ring_theory.finite_typeMathlib.RingTheory.FiniteType

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)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -475,7 +475,7 @@ theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
   by
   refine' ⟨fun h => _, fun h => Submodule.subset_span <| Set.mem_image_of_mem (of R M) h⟩
   rw [of', ← Finsupp.supported_eq_span_single, Finsupp.mem_supported,
-    Finsupp.support_single_ne_zero _ (one_ne_zero' R)] at h 
+    Finsupp.support_single_ne_zero _ (one_ne_zero' R)] at h
   simpa using h
 #align add_monoid_algebra.of'_mem_span AddMonoidAlgebra.of'_mem_span
 -/
@@ -493,7 +493,7 @@ theorem mem_closure_of_mem_span_closure [Nontrivial R] {m : M} {S : Set M}
   let S' := @Submonoid.closure M Multiplicative.mulOneClass S
   have h' : Submonoid.map (of R M) S' = Submonoid.closure ((fun x : M => (of R M) x) '' S) :=
     MonoidHom.map_mclosure _ _
-  rw [Set.image_congr' (show ∀ x, of' R M x = of R M x from fun x => of'_eq_of x), ← h'] at h 
+  rw [Set.image_congr' (show ∀ x, of' R M x = of R M x from fun x => of'_eq_of x), ← h'] at h
   simpa using of'_mem_span.1 h
 #align add_monoid_algebra.mem_closure_of_mem_span_closure AddMonoidAlgebra.mem_closure_of_mem_span_closure
 -/
@@ -558,7 +558,7 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
   refine' AddMonoid.fg_def.2 ⟨S, (eq_top_iff' _).2 fun m => _⟩
   have hm : of' R M m ∈ (adjoin R (of' R M '' ↑S)).toSubmodule := by
     simp only [hS, top_to_submodule, Submodule.mem_top]
-  rw [adjoin_eq_span] at hm 
+  rw [adjoin_eq_span] at hm
   exact mem_closure_of_mem_span_closure hm
 #align add_monoid_algebra.finite_type_iff_fg AddMonoidAlgebra.finiteType_iff_fg
 -/
@@ -664,7 +664,7 @@ theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
   by
   refine' ⟨fun h => _, fun h => Submodule.subset_span <| Set.mem_image_of_mem (of R M) h⟩
   rw [of, MonoidHom.coe_mk, ← Finsupp.supported_eq_span_single, Finsupp.mem_supported,
-    Finsupp.support_single_ne_zero _ (one_ne_zero' R)] at h 
+    Finsupp.support_single_ne_zero _ (one_ne_zero' R)] at h
   simpa using h
 #align monoid_algebra.of_mem_span_of_iff MonoidAlgebra.of_mem_span_of_iff
 -/
@@ -676,7 +676,7 @@ closure of some `S : set M` then `m ∈ closure S`. -/
 theorem mem_closure_of_mem_span_closure [Nontrivial R] {m : M} {S : Set M}
     (h : of R M m ∈ span R (Submonoid.closure (of R M '' S) : Set (MonoidAlgebra R M))) :
     m ∈ closure S := by
-  rw [← MonoidHom.map_mclosure] at h 
+  rw [← MonoidHom.map_mclosure] at h
   simpa using of_mem_span_of_iff.1 h
 #align monoid_algebra.mem_closure_of_mem_span_closure MonoidAlgebra.mem_closure_of_mem_span_closure
 -/
@@ -806,11 +806,11 @@ theorem Module.Finite.injective_of_surjective_endomorphism [hfg : Finite R M]
       (finite_def.mp hfgpoly) this
   rw [← LinearMap.ker_eq_bot, LinearMap.ker_eq_bot']
   intro m hm
-  rw [Ideal.mem_span_singleton'] at hFa 
+  rw [Ideal.mem_span_singleton'] at hFa
   obtain ⟨G, hG⟩ := hFa
   suffices (F - 1) • m = 0 by
     have Fmzero := hFb m (by simp)
-    rwa [← sub_add_cancel F 1, add_smul, one_smul, this, zero_add] at Fmzero 
+    rwa [← sub_add_cancel F 1, add_smul, one_smul, this, zero_add] at Fmzero
   rw [← hG, mul_smul, X_mul m, hm, smul_zero]
 #align module.finite.injective_of_surjective_endomorphism Module.Finite.injective_of_surjective_endomorphism
 -/
Diff
@@ -755,24 +755,19 @@ variable {R : Type _} [CommRing R] {M : Type _} [AddCommGroup M] [Module R M] (f
 
 noncomputable section
 
-#print modulePolynomialOfEndo /-
 /-- The structure of a module `M` over a ring `R` as a module over `R[X]` when given a
 choice of how `X` acts by choosing a linear map `f : M →ₗ[R] M` -/
 def modulePolynomialOfEndo : Module R[X] M :=
   Module.compHom M (Polynomial.aeval f).toRingHom
 #align module_polynomial_of_endo modulePolynomialOfEndo
--/
 
-#print modulePolynomialOfEndo_smul_def /-
 theorem modulePolynomialOfEndo_smul_def (n : R[X]) (a : M) :
     @SMul.smul (modulePolynomialOfEndo f).toSMul n a = Polynomial.aeval f n a :=
   rfl
 #align module_polynomial_of_endo_smul_def modulePolynomialOfEndo_smul_def
--/
 
 attribute [local simp] modulePolynomialOfEndo_smul_def
 
-#print modulePolynomialOfEndo.isScalarTower /-
 theorem modulePolynomialOfEndo.isScalarTower :
     @IsScalarTower R R[X] M _ (by letI := modulePolynomialOfEndo f; infer_instance) _ :=
   by
@@ -781,7 +776,6 @@ theorem modulePolynomialOfEndo.isScalarTower :
   intro x y z
   simp
 #align module_polynomial_of_endo.is_scalar_tower modulePolynomialOfEndo.isScalarTower
--/
 
 open Polynomial Module
 
Diff
@@ -3,10 +3,10 @@ Copyright (c) 2020 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin
 -/
-import Mathbin.GroupTheory.Finiteness
-import Mathbin.RingTheory.Adjoin.Tower
-import Mathbin.RingTheory.Finiteness
-import Mathbin.RingTheory.Noetherian
+import GroupTheory.Finiteness
+import RingTheory.Adjoin.Tower
+import RingTheory.Finiteness
+import RingTheory.Noetherian
 
 #align_import ring_theory.finite_type from "leanprover-community/mathlib"@"d64d67d000b974f0d86a2be7918cf800be6271c8"
 
Diff
@@ -298,7 +298,7 @@ theorem of_finite {f : A →+* B} (hf : f.Finite) : f.FiniteType :=
 #align ring_hom.finite_type.of_finite RingHom.FiniteType.of_finite
 -/
 
-alias of_finite ← _root_.ring_hom.finite.to_finite_type
+alias _root_.ring_hom.finite.to_finite_type := of_finite
 #align ring_hom.finite.to_finite_type RingHom.Finite.to_finiteType
 
 #print RingHom.FiniteType.of_comp_finiteType /-
Diff
@@ -166,7 +166,7 @@ theorem iff_quotient_mvPolynomial' :
   constructor
   · rw [iff_quotient_mv_polynomial]
     rintro ⟨s, ⟨f, hsur⟩⟩
-    use { x // x ∈ s }, by infer_instance, f, hsur
+    use{ x // x ∈ s }, by infer_instance, f, hsur
   · rintro ⟨ι, ⟨hfintype, ⟨f, hsur⟩⟩⟩
     letI : Fintype ι := hfintype
     exact finite_type.of_surjective (finite_type.mv_polynomial R ι) f hsur
Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2020 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin
-
-! This file was ported from Lean 3 source module ring_theory.finite_type
-! leanprover-community/mathlib commit d64d67d000b974f0d86a2be7918cf800be6271c8
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.GroupTheory.Finiteness
 import Mathbin.RingTheory.Adjoin.Tower
 import Mathbin.RingTheory.Finiteness
 import Mathbin.RingTheory.Noetherian
 
+#align_import ring_theory.finite_type from "leanprover-community/mathlib"@"d64d67d000b974f0d86a2be7918cf800be6271c8"
+
 /-!
 # Finiteness conditions in commutative algebra
 
Diff
@@ -37,11 +37,13 @@ section ModuleAndAlgebra
 
 variable (R A B M N : Type _)
 
+#print Algebra.FiniteType /-
 /-- An algebra over a commutative semiring is of `finite_type` if it is finitely generated
 over the base ring as algebra. -/
 class Algebra.FiniteType [CommSemiring R] [Semiring A] [Algebra R A] : Prop where
   out : (⊤ : Subalgebra R A).FG
 #align algebra.finite_type Algebra.FiniteType
+-/
 
 namespace Module
 
@@ -55,11 +57,13 @@ variable {R M N}
 
 section Algebra
 
+#print Module.Finite.finiteType /-
 -- see Note [lower instance priority]
 instance (priority := 100) finiteType {R : Type _} (A : Type _) [CommSemiring R] [Semiring A]
     [Algebra R A] [hRA : Finite R A] : Algebra.FiniteType R A :=
   ⟨Subalgebra.fg_of_submodule_fg hRA.1⟩
 #align module.finite.finite_type Module.Finite.finiteType
+-/
 
 end Algebra
 
@@ -91,13 +95,16 @@ protected theorem polynomial : FiniteType R R[X] :=
 
 open scoped Classical
 
+#print Algebra.FiniteType.mvPolynomial /-
 protected theorem mvPolynomial (ι : Type _) [Finite ι] : FiniteType R (MvPolynomial ι R) := by
   cases nonempty_fintype ι <;>
     exact
       ⟨⟨finset.univ.image MvPolynomial.X, by rw [Finset.coe_image, Finset.coe_univ, Set.image_univ];
           exact MvPolynomial.adjoin_range_X⟩⟩
 #align algebra.finite_type.mv_polynomial Algebra.FiniteType.mvPolynomial
+-/
 
+#print Algebra.FiniteType.of_restrictScalars_finiteType /-
 theorem of_restrictScalars_finiteType [Algebra A B] [IsScalarTower R A B] [hB : FiniteType R B] :
     FiniteType A B := by
   obtain ⟨S, hS⟩ := hB.out
@@ -109,24 +116,32 @@ theorem of_restrictScalars_finiteType [Algebra A B] [IsScalarTower R A B] [hB :
     exact Algebra.subset_adjoin
   exact le (eq_top_iff.1 hS b)
 #align algebra.finite_type.of_restrict_scalars_finite_type Algebra.FiniteType.of_restrictScalars_finiteType
+-/
 
 variable {R A B}
 
+#print Algebra.FiniteType.of_surjective /-
 theorem of_surjective (hRA : FiniteType R A) (f : A →ₐ[R] B) (hf : Surjective f) : FiniteType R B :=
   ⟨by
     convert hRA.1.map f
     simpa only [map_top f, @eq_comm _ ⊤, eq_top_iff, AlgHom.mem_range] using hf⟩
 #align algebra.finite_type.of_surjective Algebra.FiniteType.of_surjective
+-/
 
+#print Algebra.FiniteType.equiv /-
 theorem equiv (hRA : FiniteType R A) (e : A ≃ₐ[R] B) : FiniteType R B :=
   hRA.ofSurjective e e.Surjective
 #align algebra.finite_type.equiv Algebra.FiniteType.equiv
+-/
 
+#print Algebra.FiniteType.trans /-
 theorem trans [Algebra A B] [IsScalarTower R A B] (hRA : FiniteType R A) (hAB : FiniteType A B) :
     FiniteType R B :=
   ⟨fg_trans' hRA.1 hAB.1⟩
 #align algebra.finite_type.trans Algebra.FiniteType.trans
+-/
 
+#print Algebra.FiniteType.iff_quotient_mvPolynomial /-
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a finset. -/
 theorem iff_quotient_mvPolynomial :
@@ -142,7 +157,9 @@ theorem iff_quotient_mvPolynomial :
   · rintro ⟨s, ⟨f, hsur⟩⟩
     exact finite_type.of_surjective (finite_type.mv_polynomial R { x // x ∈ s }) f hsur
 #align algebra.finite_type.iff_quotient_mv_polynomial Algebra.FiniteType.iff_quotient_mvPolynomial
+-/
 
+#print Algebra.FiniteType.iff_quotient_mvPolynomial' /-
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a fintype. -/
 theorem iff_quotient_mvPolynomial' :
@@ -157,7 +174,9 @@ theorem iff_quotient_mvPolynomial' :
     letI : Fintype ι := hfintype
     exact finite_type.of_surjective (finite_type.mv_polynomial R ι) f hsur
 #align algebra.finite_type.iff_quotient_mv_polynomial' Algebra.FiniteType.iff_quotient_mvPolynomial'
+-/
 
+#print Algebra.FiniteType.iff_quotient_mvPolynomial'' /-
 /-- An algebra is finitely generated if and only if it is a quotient of a polynomial ring in `n`
 variables. -/
 theorem iff_quotient_mvPolynomial'' :
@@ -174,13 +193,17 @@ theorem iff_quotient_mvPolynomial'' :
   · rintro ⟨n, ⟨f, hsur⟩⟩
     exact finite_type.of_surjective (finite_type.mv_polynomial R (Fin n)) f hsur
 #align algebra.finite_type.iff_quotient_mv_polynomial'' Algebra.FiniteType.iff_quotient_mvPolynomial''
+-/
 
+#print Algebra.FiniteType.prod /-
 instance prod [hA : FiniteType R A] [hB : FiniteType R B] : FiniteType R (A × B) :=
   ⟨by
     rw [← Subalgebra.prod_top]
     exact hA.1.Prod hB.1⟩
 #align algebra.finite_type.prod Algebra.FiniteType.prod
+-/
 
+#print Algebra.FiniteType.isNoetherianRing /-
 theorem isNoetherianRing (R S : Type _) [CommRing R] [CommRing S] [Algebra R S]
     [h : Algebra.FiniteType R S] [IsNoetherianRing R] : IsNoetherianRing S :=
   by
@@ -192,11 +215,14 @@ theorem isNoetherianRing (R S : Type _) [CommRing R] [CommRing S] [Algebra R S]
     Algebra.adjoin_range_eq_range_aeval, Subtype.range_coe_subtype, Finset.setOf_mem, hs]
   rfl
 #align algebra.finite_type.is_noetherian_ring Algebra.FiniteType.isNoetherianRing
+-/
 
+#print Subalgebra.fg_iff_finiteType /-
 theorem Subalgebra.fg_iff_finiteType {R A : Type _} [CommSemiring R] [Semiring A] [Algebra R A]
     (S : Subalgebra R A) : S.FG ↔ Algebra.FiniteType R S :=
   S.fg_top.symm.trans ⟨fun h => ⟨h⟩, fun h => h.out⟩
 #align subalgebra.fg_iff_finite_type Subalgebra.fg_iff_finiteType
+-/
 
 end FiniteType
 
@@ -219,9 +245,11 @@ namespace Finite
 
 variable {A}
 
+#print RingHom.Finite.finiteType /-
 theorem finiteType {f : A →+* B} (hf : f.Finite) : FiniteType f :=
   @Module.Finite.finiteType _ _ _ _ f.toAlgebra hf
 #align ring_hom.finite.finite_type RingHom.Finite.finiteType
+-/
 
 end Finite
 
@@ -237,6 +265,7 @@ theorem id : FiniteType (RingHom.id A) :=
 
 variable {A}
 
+#print RingHom.FiniteType.comp_surjective /-
 theorem comp_surjective {f : A →+* B} {g : B →+* C} (hf : f.FiniteType) (hg : Surjective g) :
     (g.comp f).FiniteType :=
   @Algebra.FiniteType.of_surjective A B C _ _ f.toAlgebra _ (g.comp f).toAlgebra hf
@@ -245,11 +274,15 @@ theorem comp_surjective {f : A →+* B} {g : B →+* C} (hf : f.FiniteType) (hg
       commutes' := fun a => rfl }
     hg
 #align ring_hom.finite_type.comp_surjective RingHom.FiniteType.comp_surjective
+-/
 
+#print RingHom.FiniteType.of_surjective /-
 theorem of_surjective (f : A →+* B) (hf : Surjective f) : f.FiniteType := by rw [← f.comp_id];
   exact (id A).comp_surjective hf
 #align ring_hom.finite_type.of_surjective RingHom.FiniteType.of_surjective
+-/
 
+#print RingHom.FiniteType.comp /-
 theorem comp {g : B →+* C} {f : A →+* B} (hg : g.FiniteType) (hf : f.FiniteType) :
     (g.comp f).FiniteType :=
   @Algebra.FiniteType.trans A B C _ _ f.toAlgebra _ (g.comp f).toAlgebra g.toAlgebra
@@ -260,14 +293,18 @@ theorem comp {g : B →+* C} {f : A →+* B} (hg : g.FiniteType) (hf : f.FiniteT
       rfl)
     hf hg
 #align ring_hom.finite_type.comp RingHom.FiniteType.comp
+-/
 
+#print RingHom.FiniteType.of_finite /-
 theorem of_finite {f : A →+* B} (hf : f.Finite) : f.FiniteType :=
   @Module.Finite.finiteType _ _ _ _ f.toAlgebra hf
 #align ring_hom.finite_type.of_finite RingHom.FiniteType.of_finite
+-/
 
 alias of_finite ← _root_.ring_hom.finite.to_finite_type
 #align ring_hom.finite.to_finite_type RingHom.Finite.to_finiteType
 
+#print RingHom.FiniteType.of_comp_finiteType /-
 theorem of_comp_finiteType {f : A →+* B} {g : B →+* C} (h : (g.comp f).FiniteType) : g.FiniteType :=
   by
   letI := f.to_algebra
@@ -277,6 +314,7 @@ theorem of_comp_finiteType {f : A →+* B} {g : B →+* C} (h : (g.comp f).Finit
   letI : Algebra.FiniteType A C := h
   exact Algebra.FiniteType.of_restrictScalars_finiteType A B C
 #align ring_hom.finite_type.of_comp_finite_type RingHom.FiniteType.of_comp_finiteType
+-/
 
 end FiniteType
 
@@ -302,9 +340,11 @@ namespace Finite
 
 variable {R A}
 
+#print AlgHom.Finite.finiteType /-
 theorem finiteType {f : A →ₐ[R] B} (hf : f.Finite) : FiniteType f :=
   RingHom.Finite.finiteType hf
 #align alg_hom.finite.finite_type AlgHom.Finite.finiteType
+-/
 
 end Finite
 
@@ -312,30 +352,40 @@ namespace FiniteType
 
 variable (R A)
 
+#print AlgHom.FiniteType.id /-
 theorem id : FiniteType (AlgHom.id R A) :=
   RingHom.FiniteType.id A
 #align alg_hom.finite_type.id AlgHom.FiniteType.id
+-/
 
 variable {R A}
 
+#print AlgHom.FiniteType.comp /-
 theorem comp {g : B →ₐ[R] C} {f : A →ₐ[R] B} (hg : g.FiniteType) (hf : f.FiniteType) :
     (g.comp f).FiniteType :=
   RingHom.FiniteType.comp hg hf
 #align alg_hom.finite_type.comp AlgHom.FiniteType.comp
+-/
 
+#print AlgHom.FiniteType.comp_surjective /-
 theorem comp_surjective {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.FiniteType) (hg : Surjective g) :
     (g.comp f).FiniteType :=
   RingHom.FiniteType.comp_surjective hf hg
 #align alg_hom.finite_type.comp_surjective AlgHom.FiniteType.comp_surjective
+-/
 
+#print AlgHom.FiniteType.of_surjective /-
 theorem of_surjective (f : A →ₐ[R] B) (hf : Surjective f) : f.FiniteType :=
   RingHom.FiniteType.of_surjective f hf
 #align alg_hom.finite_type.of_surjective AlgHom.FiniteType.of_surjective
+-/
 
+#print AlgHom.FiniteType.of_comp_finiteType /-
 theorem of_comp_finiteType {f : A →ₐ[R] B} {g : B →ₐ[R] C} (h : (g.comp f).FiniteType) :
     g.FiniteType :=
   RingHom.FiniteType.of_comp_finiteType h
 #align alg_hom.finite_type.of_comp_finite_type AlgHom.FiniteType.of_comp_finiteType
+-/
 
 end FiniteType
 
@@ -355,6 +405,7 @@ section Semiring
 
 variable [CommSemiring R] [AddMonoid M]
 
+#print AddMonoidAlgebra.mem_adjoin_support /-
 /-- An element of `add_monoid_algebra R M` is in the subalgebra generated by its support. -/
 theorem mem_adjoin_support (f : AddMonoidAlgebra R M) : f ∈ adjoin R (of' R M '' f.support) :=
   by
@@ -363,7 +414,9 @@ theorem mem_adjoin_support (f : AddMonoidAlgebra R M) : f ∈ adjoin R (of' R M
   rw [Submodule.span_le]
   exact subset_adjoin
 #align add_monoid_algebra.mem_adjoin_support AddMonoidAlgebra.mem_adjoin_support
+-/
 
+#print AddMonoidAlgebra.support_gen_of_gen /-
 /-- If a set `S` generates, as algebra, `add_monoid_algebra R M`, then the set of supports of
 elements of `S` generates `add_monoid_algebra R M`. -/
 theorem support_gen_of_gen {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
@@ -379,7 +432,9 @@ theorem support_gen_of_gen {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin
     exact Set.mem_iUnion₂.2 ⟨f, ⟨hf, hs⟩⟩
   exact adjoin_mono hincl (mem_adjoin_support f)
 #align add_monoid_algebra.support_gen_of_gen AddMonoidAlgebra.support_gen_of_gen
+-/
 
+#print AddMonoidAlgebra.support_gen_of_gen' /-
 /-- If a set `S` generates, as algebra, `add_monoid_algebra R M`, then the image of the union of
 the supports of elements of `S` generates `add_monoid_algebra R M`. -/
 theorem support_gen_of_gen' {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
@@ -391,6 +446,7 @@ theorem support_gen_of_gen' {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoi
     exact support_gen_of_gen hS
   simp only [Set.image_iUnion]
 #align add_monoid_algebra.support_gen_of_gen' AddMonoidAlgebra.support_gen_of_gen'
+-/
 
 end Semiring
 
@@ -398,6 +454,7 @@ section Ring
 
 variable [CommRing R] [AddCommMonoid M]
 
+#print AddMonoidAlgebra.exists_finset_adjoin_eq_top /-
 /-- If `add_monoid_algebra R M` is of finite type, there there is a `G : finset M` such that its
 image generates, as algera, `add_monoid_algebra R M`. -/
 theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
@@ -411,7 +468,9 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
   rw [this]
   exact support_gen_of_gen' hS
 #align add_monoid_algebra.exists_finset_adjoin_eq_top AddMonoidAlgebra.exists_finset_adjoin_eq_top
+-/
 
+#print AddMonoidAlgebra.of'_mem_span /-
 /-- The image of an element `m : M` in `add_monoid_algebra R M` belongs the submodule generated by
 `S : set M` if and only if `m ∈ S`. -/
 theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
@@ -422,7 +481,9 @@ theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
     Finsupp.support_single_ne_zero _ (one_ne_zero' R)] at h 
   simpa using h
 #align add_monoid_algebra.of'_mem_span AddMonoidAlgebra.of'_mem_span
+-/
 
+#print AddMonoidAlgebra.mem_closure_of_mem_span_closure /-
 /--
 If the image of an element `m : M` in `add_monoid_algebra R M` belongs the submodule generated by
 the closure of some `S : set M` then `m ∈ closure S`. -/
@@ -438,6 +499,7 @@ theorem mem_closure_of_mem_span_closure [Nontrivial R] {m : M} {S : Set M}
   rw [Set.image_congr' (show ∀ x, of' R M x = of R M x from fun x => of'_eq_of x), ← h'] at h 
   simpa using of'_mem_span.1 h
 #align add_monoid_algebra.mem_closure_of_mem_span_closure AddMonoidAlgebra.mem_closure_of_mem_span_closure
+-/
 
 end Ring
 
@@ -445,6 +507,7 @@ end Span
 
 variable [AddCommMonoid M]
 
+#print AddMonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure /-
 /-- If a set `S` generates an additive monoid `M`, then the image of `M` generates, as algebra,
 `add_monoid_algebra R M`. -/
 theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
@@ -468,9 +531,11 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
   · rintro r f ⟨P, rfl⟩
     exact ⟨r • P, AlgHom.map_smul _ _ _⟩
 #align add_monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure AddMonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure
+-/
 
 variable (R M)
 
+#print AddMonoidAlgebra.finiteType_of_fg /-
 /-- If an additive monoid `M` is finitely generated then `add_monoid_algebra R M` is of finite
 type. -/
 instance finiteType_of_fg [CommRing R] [h : AddMonoid.FG M] : FiniteType R (AddMonoidAlgebra R M) :=
@@ -481,9 +546,11 @@ instance finiteType_of_fg [CommRing R] [h : AddMonoid.FG M] : FiniteType R (AddM
       (MvPolynomial.aeval fun s : (S : Set M) => of' R M ↑s)
       (mv_polynomial_aeval_of_surjective_of_closure hS)
 #align add_monoid_algebra.finite_type_of_fg AddMonoidAlgebra.finiteType_of_fg
+-/
 
 variable {R M}
 
+#print AddMonoidAlgebra.finiteType_iff_fg /-
 /-- An additive monoid `M` is finitely generated if and only if `add_monoid_algebra R M` is of
 finite type. -/
 theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
@@ -497,19 +564,24 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
   rw [adjoin_eq_span] at hm 
   exact mem_closure_of_mem_span_closure hm
 #align add_monoid_algebra.finite_type_iff_fg AddMonoidAlgebra.finiteType_iff_fg
+-/
 
+#print AddMonoidAlgebra.fg_of_finiteType /-
 /-- If `add_monoid_algebra R M` is of finite type then `M` is finitely generated. -/
 theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (AddMonoidAlgebra R M)] :
     AddMonoid.FG M :=
   finiteType_iff_fg.1 h
 #align add_monoid_algebra.fg_of_finite_type AddMonoidAlgebra.fg_of_finiteType
+-/
 
+#print AddMonoidAlgebra.finiteType_iff_group_fg /-
 /-- An additive group `G` is finitely generated if and only if `add_monoid_algebra R G` is of
 finite type. -/
 theorem finiteType_iff_group_fg {G : Type _} [AddCommGroup G] [CommRing R] [Nontrivial R] :
     FiniteType R (AddMonoidAlgebra R G) ↔ AddGroup.FG G := by
   simpa [AddGroup.fg_iff_addMonoid_fg] using finite_type_iff_fg
 #align add_monoid_algebra.finite_type_iff_group_fg AddMonoidAlgebra.finiteType_iff_group_fg
+-/
 
 end AddMonoidAlgebra
 
@@ -523,6 +595,7 @@ section Semiring
 
 variable [CommSemiring R] [Monoid M]
 
+#print MonoidAlgebra.mem_adjoin_support /-
 /-- An element of `monoid_algebra R M` is in the subalgebra generated by its support. -/
 theorem mem_adjoin_support (f : MonoidAlgebra R M) : f ∈ adjoin R (of R M '' f.support) :=
   by
@@ -531,7 +604,9 @@ theorem mem_adjoin_support (f : MonoidAlgebra R M) : f ∈ adjoin R (of R M '' f
   rw [Submodule.span_le]
   exact subset_adjoin
 #align monoid_algebra.mem_adjoin_support MonoidAlgebra.mem_adjoin_support
+-/
 
+#print MonoidAlgebra.support_gen_of_gen /-
 /-- If a set `S` generates, as algebra, `monoid_algebra R M`, then the set of supports of elements
 of `S` generates `monoid_algebra R M`. -/
 theorem support_gen_of_gen {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
@@ -546,7 +621,9 @@ theorem support_gen_of_gen {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R
     exact Set.mem_iUnion₂.2 ⟨f, ⟨hf, hs⟩⟩
   exact adjoin_mono hincl (mem_adjoin_support f)
 #align monoid_algebra.support_gen_of_gen MonoidAlgebra.support_gen_of_gen
+-/
 
+#print MonoidAlgebra.support_gen_of_gen' /-
 /-- If a set `S` generates, as algebra, `monoid_algebra R M`, then the image of the union of the
 supports of elements of `S` generates `monoid_algebra R M`. -/
 theorem support_gen_of_gen' {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
@@ -558,6 +635,7 @@ theorem support_gen_of_gen' {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R
     exact support_gen_of_gen hS
   simp only [Set.image_iUnion]
 #align monoid_algebra.support_gen_of_gen' MonoidAlgebra.support_gen_of_gen'
+-/
 
 end Semiring
 
@@ -565,6 +643,7 @@ section Ring
 
 variable [CommRing R] [CommMonoid M]
 
+#print MonoidAlgebra.exists_finset_adjoin_eq_top /-
 /-- If `monoid_algebra R M` is of finite type, there there is a `G : finset M` such that its image
 generates, as algera, `monoid_algebra R M`. -/
 theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
@@ -578,7 +657,9 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
   rw [this]
   exact support_gen_of_gen' hS
 #align monoid_algebra.exists_finset_adjoin_eq_top MonoidAlgebra.exists_finset_adjoin_eq_top
+-/
 
+#print MonoidAlgebra.of_mem_span_of_iff /-
 /-- The image of an element `m : M` in `monoid_algebra R M` belongs the submodule generated by
 `S : set M` if and only if `m ∈ S`. -/
 theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
@@ -589,7 +670,9 @@ theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
     Finsupp.support_single_ne_zero _ (one_ne_zero' R)] at h 
   simpa using h
 #align monoid_algebra.of_mem_span_of_iff MonoidAlgebra.of_mem_span_of_iff
+-/
 
+#print MonoidAlgebra.mem_closure_of_mem_span_closure /-
 /--
 If the image of an element `m : M` in `monoid_algebra R M` belongs the submodule generated by the
 closure of some `S : set M` then `m ∈ closure S`. -/
@@ -599,6 +682,7 @@ theorem mem_closure_of_mem_span_closure [Nontrivial R] {m : M} {S : Set M}
   rw [← MonoidHom.map_mclosure] at h 
   simpa using of_mem_span_of_iff.1 h
 #align monoid_algebra.mem_closure_of_mem_span_closure MonoidAlgebra.mem_closure_of_mem_span_closure
+-/
 
 end Ring
 
@@ -606,6 +690,7 @@ end Span
 
 variable [CommMonoid M]
 
+#print MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure /-
 /-- If a set `S` generates a monoid `M`, then the image of `M` generates, as algebra,
 `monoid_algebra R M`. -/
 theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
@@ -627,12 +712,16 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
   · rintro r f ⟨P, rfl⟩
     exact ⟨r • P, AlgHom.map_smul _ _ _⟩
 #align monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure
+-/
 
+#print MonoidAlgebra.finiteType_of_fg /-
 /-- If a monoid `M` is finitely generated then `monoid_algebra R M` is of finite type. -/
 instance finiteType_of_fg [CommRing R] [Monoid.FG M] : FiniteType R (MonoidAlgebra R M) :=
   (AddMonoidAlgebra.finiteType_of_fg R (Additive M)).Equiv (toAdditiveAlgEquiv R M).symm
 #align monoid_algebra.finite_type_of_fg MonoidAlgebra.finiteType_of_fg
+-/
 
+#print MonoidAlgebra.finiteType_iff_fg /-
 /-- A monoid `M` is finitely generated if and only if `monoid_algebra R M` is of finite type. -/
 theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
     FiniteType R (MonoidAlgebra R M) ↔ Monoid.FG M :=
@@ -641,18 +730,23 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
       AddMonoidAlgebra.finiteType_iff_fg.1 <| h.Equiv <| toAdditiveAlgEquiv R M,
     fun h => @MonoidAlgebra.finiteType_of_fg _ _ _ _ h⟩
 #align monoid_algebra.finite_type_iff_fg MonoidAlgebra.finiteType_iff_fg
+-/
 
+#print MonoidAlgebra.fg_of_finiteType /-
 /-- If `monoid_algebra R M` is of finite type then `M` is finitely generated. -/
 theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (MonoidAlgebra R M)] :
     Monoid.FG M :=
   finiteType_iff_fg.1 h
 #align monoid_algebra.fg_of_finite_type MonoidAlgebra.fg_of_finiteType
+-/
 
+#print MonoidAlgebra.finiteType_iff_group_fg /-
 /-- A group `G` is finitely generated if and only if `add_monoid_algebra R G` is of finite type. -/
 theorem finiteType_iff_group_fg {G : Type _} [CommGroup G] [CommRing R] [Nontrivial R] :
     FiniteType R (MonoidAlgebra R G) ↔ Group.FG G := by
   simpa [Group.fg_iff_monoid_fg] using finite_type_iff_fg
 #align monoid_algebra.finite_type_iff_group_fg MonoidAlgebra.finiteType_iff_group_fg
+-/
 
 end MonoidAlgebra
 
@@ -672,15 +766,16 @@ def modulePolynomialOfEndo : Module R[X] M :=
 #align module_polynomial_of_endo modulePolynomialOfEndo
 -/
 
+#print modulePolynomialOfEndo_smul_def /-
 theorem modulePolynomialOfEndo_smul_def (n : R[X]) (a : M) :
     @SMul.smul (modulePolynomialOfEndo f).toSMul n a = Polynomial.aeval f n a :=
   rfl
 #align module_polynomial_of_endo_smul_def modulePolynomialOfEndo_smul_def
+-/
 
 attribute [local simp] modulePolynomialOfEndo_smul_def
 
-include f
-
+#print modulePolynomialOfEndo.isScalarTower /-
 theorem modulePolynomialOfEndo.isScalarTower :
     @IsScalarTower R R[X] M _ (by letI := modulePolynomialOfEndo f; infer_instance) _ :=
   by
@@ -689,9 +784,11 @@ theorem modulePolynomialOfEndo.isScalarTower :
   intro x y z
   simp
 #align module_polynomial_of_endo.is_scalar_tower modulePolynomialOfEndo.isScalarTower
+-/
 
 open Polynomial Module
 
+#print Module.Finite.injective_of_surjective_endomorphism /-
 /-- A theorem/proof by Vasconcelos, given a finite module `M` over a commutative ring, any
 surjective endomorphism of `M` is also injective. Based on,
 https://math.stackexchange.com/a/239419/31917,
@@ -725,6 +822,7 @@ theorem Module.Finite.injective_of_surjective_endomorphism [hfg : Finite R M]
     rwa [← sub_add_cancel F 1, add_smul, one_smul, this, zero_add] at Fmzero 
   rw [← hG, mul_smul, X_mul m, hm, smul_zero]
 #align module.finite.injective_of_surjective_endomorphism Module.Finite.injective_of_surjective_endomorphism
+-/
 
 end Vasconcelos
 
Diff
@@ -130,7 +130,7 @@ theorem trans [Algebra A B] [IsScalarTower R A B] (hRA : FiniteType R A) (hAB :
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a finset. -/
 theorem iff_quotient_mvPolynomial :
-    FiniteType R A ↔ ∃ (s : Finset A)(f : MvPolynomial { x // x ∈ s } R →ₐ[R] A), Surjective f :=
+    FiniteType R A ↔ ∃ (s : Finset A) (f : MvPolynomial { x // x ∈ s } R →ₐ[R] A), Surjective f :=
   by
   constructor
   · rintro ⟨s, hs⟩
@@ -146,7 +146,8 @@ theorem iff_quotient_mvPolynomial :
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a fintype. -/
 theorem iff_quotient_mvPolynomial' :
-    FiniteType R A ↔ ∃ (ι : Type u_2)(_ : Fintype ι)(f : MvPolynomial ι R →ₐ[R] A), Surjective f :=
+    FiniteType R A ↔
+      ∃ (ι : Type u_2) (_ : Fintype ι) (f : MvPolynomial ι R →ₐ[R] A), Surjective f :=
   by
   constructor
   · rw [iff_quotient_mv_polynomial]
@@ -160,7 +161,7 @@ theorem iff_quotient_mvPolynomial' :
 /-- An algebra is finitely generated if and only if it is a quotient of a polynomial ring in `n`
 variables. -/
 theorem iff_quotient_mvPolynomial'' :
-    FiniteType R A ↔ ∃ (n : ℕ)(f : MvPolynomial (Fin n) R →ₐ[R] A), Surjective f :=
+    FiniteType R A ↔ ∃ (n : ℕ) (f : MvPolynomial (Fin n) R →ₐ[R] A), Surjective f :=
   by
   constructor
   · rw [iff_quotient_mv_polynomial']
@@ -418,7 +419,7 @@ theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
   by
   refine' ⟨fun h => _, fun h => Submodule.subset_span <| Set.mem_image_of_mem (of R M) h⟩
   rw [of', ← Finsupp.supported_eq_span_single, Finsupp.mem_supported,
-    Finsupp.support_single_ne_zero _ (one_ne_zero' R)] at h
+    Finsupp.support_single_ne_zero _ (one_ne_zero' R)] at h 
   simpa using h
 #align add_monoid_algebra.of'_mem_span AddMonoidAlgebra.of'_mem_span
 
@@ -434,7 +435,7 @@ theorem mem_closure_of_mem_span_closure [Nontrivial R] {m : M} {S : Set M}
   let S' := @Submonoid.closure M Multiplicative.mulOneClass S
   have h' : Submonoid.map (of R M) S' = Submonoid.closure ((fun x : M => (of R M) x) '' S) :=
     MonoidHom.map_mclosure _ _
-  rw [Set.image_congr' (show ∀ x, of' R M x = of R M x from fun x => of'_eq_of x), ← h'] at h
+  rw [Set.image_congr' (show ∀ x, of' R M x = of R M x from fun x => of'_eq_of x), ← h'] at h 
   simpa using of'_mem_span.1 h
 #align add_monoid_algebra.mem_closure_of_mem_span_closure AddMonoidAlgebra.mem_closure_of_mem_span_closure
 
@@ -493,7 +494,7 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
   refine' AddMonoid.fg_def.2 ⟨S, (eq_top_iff' _).2 fun m => _⟩
   have hm : of' R M m ∈ (adjoin R (of' R M '' ↑S)).toSubmodule := by
     simp only [hS, top_to_submodule, Submodule.mem_top]
-  rw [adjoin_eq_span] at hm
+  rw [adjoin_eq_span] at hm 
   exact mem_closure_of_mem_span_closure hm
 #align add_monoid_algebra.finite_type_iff_fg AddMonoidAlgebra.finiteType_iff_fg
 
@@ -585,7 +586,7 @@ theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
   by
   refine' ⟨fun h => _, fun h => Submodule.subset_span <| Set.mem_image_of_mem (of R M) h⟩
   rw [of, MonoidHom.coe_mk, ← Finsupp.supported_eq_span_single, Finsupp.mem_supported,
-    Finsupp.support_single_ne_zero _ (one_ne_zero' R)] at h
+    Finsupp.support_single_ne_zero _ (one_ne_zero' R)] at h 
   simpa using h
 #align monoid_algebra.of_mem_span_of_iff MonoidAlgebra.of_mem_span_of_iff
 
@@ -595,7 +596,7 @@ closure of some `S : set M` then `m ∈ closure S`. -/
 theorem mem_closure_of_mem_span_closure [Nontrivial R] {m : M} {S : Set M}
     (h : of R M m ∈ span R (Submonoid.closure (of R M '' S) : Set (MonoidAlgebra R M))) :
     m ∈ closure S := by
-  rw [← MonoidHom.map_mclosure] at h
+  rw [← MonoidHom.map_mclosure] at h 
   simpa using of_mem_span_of_iff.1 h
 #align monoid_algebra.mem_closure_of_mem_span_closure MonoidAlgebra.mem_closure_of_mem_span_closure
 
@@ -717,11 +718,11 @@ theorem Module.Finite.injective_of_surjective_endomorphism [hfg : Finite R M]
       (finite_def.mp hfgpoly) this
   rw [← LinearMap.ker_eq_bot, LinearMap.ker_eq_bot']
   intro m hm
-  rw [Ideal.mem_span_singleton'] at hFa
+  rw [Ideal.mem_span_singleton'] at hFa 
   obtain ⟨G, hG⟩ := hFa
   suffices (F - 1) • m = 0 by
     have Fmzero := hFb m (by simp)
-    rwa [← sub_add_cancel F 1, add_smul, one_smul, this, zero_add] at Fmzero
+    rwa [← sub_add_cancel F 1, add_smul, one_smul, this, zero_add] at Fmzero 
   rw [← hG, mul_smul, X_mul m, hm, smul_zero]
 #align module.finite.injective_of_surjective_endomorphism Module.Finite.injective_of_surjective_endomorphism
 
Diff
@@ -31,7 +31,7 @@ In this file we define a notion of finiteness that is common in commutative alge
 
 open Function (Surjective)
 
-open BigOperators Polynomial
+open scoped BigOperators Polynomial
 
 section ModuleAndAlgebra
 
@@ -89,7 +89,7 @@ protected theorem polynomial : FiniteType R R[X] :=
 #align algebra.finite_type.polynomial Algebra.FiniteType.polynomial
 -/
 
-open Classical
+open scoped Classical
 
 protected theorem mvPolynomial (ι : Type _) [Finite ι] : FiniteType R (MvPolynomial ι R) := by
   cases nonempty_fintype ι <;>
Diff
@@ -37,12 +37,6 @@ section ModuleAndAlgebra
 
 variable (R A B M N : Type _)
 
-/- warning: algebra.finite_type -> Algebra.FiniteType is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) (A : Type.{u2}) [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2], Prop
-but is expected to have type
-  forall (R : Type.{u2}) (A : Type.{u1}) [_inst_1 : CommSemiring.{u2} R] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} R A _inst_1 _inst_2], Prop
-Case conversion may be inaccurate. Consider using '#align algebra.finite_type Algebra.FiniteTypeₓ'. -/
 /-- An algebra over a commutative semiring is of `finite_type` if it is finitely generated
 over the base ring as algebra. -/
 class Algebra.FiniteType [CommSemiring R] [Semiring A] [Algebra R A] : Prop where
@@ -61,12 +55,6 @@ variable {R M N}
 
 section Algebra
 
-/- warning: module.finite.finite_type -> Module.Finite.finiteType is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} (A : Type.{u2}) [_inst_6 : CommSemiring.{u1} R] [_inst_7 : Semiring.{u2} A] [_inst_8 : Algebra.{u1, u2} R A _inst_6 _inst_7] [hRA : Module.Finite.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_7))) (Algebra.toModule.{u1, u2} R A _inst_6 _inst_7 _inst_8)], Algebra.FiniteType.{u1, u2} R A _inst_6 _inst_7 _inst_8
-but is expected to have type
-  forall {R : Type.{u1}} (A : Type.{u2}) [_inst_6 : CommSemiring.{u1} R] [_inst_7 : Semiring.{u2} A] [_inst_8 : Algebra.{u1, u2} R A _inst_6 _inst_7] [hRA : Module.Finite.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_7))) (Algebra.toModule.{u1, u2} R A _inst_6 _inst_7 _inst_8)], Algebra.FiniteType.{u2, u1} R A _inst_6 _inst_7 _inst_8
-Case conversion may be inaccurate. Consider using '#align module.finite.finite_type Module.Finite.finiteTypeₓ'. -/
 -- see Note [lower instance priority]
 instance (priority := 100) finiteType {R : Type _} (A : Type _) [CommSemiring R] [Semiring A]
     [Algebra R A] [hRA : Finite R A] : Algebra.FiniteType R A :=
@@ -103,12 +91,6 @@ protected theorem polynomial : FiniteType R R[X] :=
 
 open Classical
 
-/- warning: algebra.finite_type.mv_polynomial -> Algebra.FiniteType.mvPolynomial is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] (ι : Type.{u2}) [_inst_10 : Finite.{succ u2} ι], Algebra.FiniteType.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] (ι : Type.{u2}) [_inst_10 : Finite.{succ u2} ι], Algebra.FiniteType.{max u1 u2, u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u1 u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))
-Case conversion may be inaccurate. Consider using '#align algebra.finite_type.mv_polynomial Algebra.FiniteType.mvPolynomialₓ'. -/
 protected theorem mvPolynomial (ι : Type _) [Finite ι] : FiniteType R (MvPolynomial ι R) := by
   cases nonempty_fintype ι <;>
     exact
@@ -116,12 +98,6 @@ protected theorem mvPolynomial (ι : Type _) [Finite ι] : FiniteType R (MvPolyn
           exact MvPolynomial.adjoin_range_X⟩⟩
 #align algebra.finite_type.mv_polynomial Algebra.FiniteType.mvPolynomial
 
-/- warning: algebra.finite_type.of_restrict_scalars_finite_type -> Algebra.FiniteType.of_restrictScalars_finiteType is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) (A : Type.{u2}) (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [_inst_10 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_10))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)))))] [hB : Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5], Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_10
-but is expected to have type
-  forall (R : Type.{u1}) (A : Type.{u3}) (B : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))] [_inst_10 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_10) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_5)] [hB : Algebra.FiniteType.{u2, u1} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_5], Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_10
-Case conversion may be inaccurate. Consider using '#align algebra.finite_type.of_restrict_scalars_finite_type Algebra.FiniteType.of_restrictScalars_finiteTypeₓ'. -/
 theorem of_restrictScalars_finiteType [Algebra A B] [IsScalarTower R A B] [hB : FiniteType R B] :
     FiniteType A B := by
   obtain ⟨S, hS⟩ := hB.out
@@ -136,39 +112,21 @@ theorem of_restrictScalars_finiteType [Algebra A B] [IsScalarTower R A B] [hB :
 
 variable {R A B}
 
-/- warning: algebra.finite_type.of_surjective -> Algebra.FiniteType.of_surjective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align algebra.finite_type.of_surjective Algebra.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (hRA : FiniteType R A) (f : A →ₐ[R] B) (hf : Surjective f) : FiniteType R B :=
   ⟨by
     convert hRA.1.map f
     simpa only [map_top f, @eq_comm _ ⊤, eq_top_iff, AlgHom.mem_range] using hf⟩
 #align algebra.finite_type.of_surjective Algebra.FiniteType.of_surjective
 
-/- warning: algebra.finite_type.equiv -> Algebra.FiniteType.equiv is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))], (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) -> (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) -> (Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_4 : CommRing.{u1} B] [_inst_5 : Algebra.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))], (Algebra.FiniteType.{u3, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3) -> (AlgEquiv.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) -> (Algebra.FiniteType.{u1, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5)
-Case conversion may be inaccurate. Consider using '#align algebra.finite_type.equiv Algebra.FiniteType.equivₓ'. -/
 theorem equiv (hRA : FiniteType R A) (e : A ≃ₐ[R] B) : FiniteType R B :=
   hRA.ofSurjective e e.Surjective
 #align algebra.finite_type.equiv Algebra.FiniteType.equiv
 
-/- warning: algebra.finite_type.trans -> Algebra.FiniteType.trans is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [_inst_10 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_10))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)))))], (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) -> (Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_10) -> (Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))] [_inst_10 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_10) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_5)], (Algebra.FiniteType.{u3, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3) -> (Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_10) -> (Algebra.FiniteType.{u2, u1} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_5)
-Case conversion may be inaccurate. Consider using '#align algebra.finite_type.trans Algebra.FiniteType.transₓ'. -/
 theorem trans [Algebra A B] [IsScalarTower R A B] (hRA : FiniteType R A) (hAB : FiniteType A B) :
     FiniteType R B :=
   ⟨fg_trans' hRA.1 hAB.1⟩
 #align algebra.finite_type.trans Algebra.FiniteType.trans
 
-/- warning: algebra.finite_type.iff_quotient_mv_polynomial -> Algebra.FiniteType.iff_quotient_mvPolynomial is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial Algebra.FiniteType.iff_quotient_mvPolynomialₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a finset. -/
 theorem iff_quotient_mvPolynomial :
@@ -185,9 +143,6 @@ theorem iff_quotient_mvPolynomial :
     exact finite_type.of_surjective (finite_type.mv_polynomial R { x // x ∈ s }) f hsur
 #align algebra.finite_type.iff_quotient_mv_polynomial Algebra.FiniteType.iff_quotient_mvPolynomial
 
-/- warning: algebra.finite_type.iff_quotient_mv_polynomial' -> Algebra.FiniteType.iff_quotient_mvPolynomial' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial' Algebra.FiniteType.iff_quotient_mvPolynomial'ₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a fintype. -/
 theorem iff_quotient_mvPolynomial' :
@@ -202,9 +157,6 @@ theorem iff_quotient_mvPolynomial' :
     exact finite_type.of_surjective (finite_type.mv_polynomial R ι) f hsur
 #align algebra.finite_type.iff_quotient_mv_polynomial' Algebra.FiniteType.iff_quotient_mvPolynomial'
 
-/- warning: algebra.finite_type.iff_quotient_mv_polynomial'' -> Algebra.FiniteType.iff_quotient_mvPolynomial'' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial'' Algebra.FiniteType.iff_quotient_mvPolynomial''ₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient of a polynomial ring in `n`
 variables. -/
 theorem iff_quotient_mvPolynomial'' :
@@ -222,24 +174,12 @@ theorem iff_quotient_mvPolynomial'' :
     exact finite_type.of_surjective (finite_type.mv_polynomial R (Fin n)) f hsur
 #align algebra.finite_type.iff_quotient_mv_polynomial'' Algebra.FiniteType.iff_quotient_mvPolynomial''
 
-/- warning: algebra.finite_type.prod -> Algebra.FiniteType.prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [hA : Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3] [hB : Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5], Algebra.FiniteType.{u1, max u2 u3} R (Prod.{u2, u3} A B) (CommRing.toCommSemiring.{u1} R _inst_1) (Prod.semiring.{u2, u3} A B (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))) (Prod.algebra.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} {B : Type.{u3}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u2, u3} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_4))] [hA : Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3] [hB : Algebra.FiniteType.{u3, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_4)) _inst_5], Algebra.FiniteType.{max u3 u1, u2} R (Prod.{u1, u3} A B) (CommRing.toCommSemiring.{u2} R _inst_1) (Prod.instSemiringProd.{u1, u3} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_4))) (Prod.algebra.{u2, u1, u3} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3 (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_4)) _inst_5)
-Case conversion may be inaccurate. Consider using '#align algebra.finite_type.prod Algebra.FiniteType.prodₓ'. -/
 instance prod [hA : FiniteType R A] [hB : FiniteType R B] : FiniteType R (A × B) :=
   ⟨by
     rw [← Subalgebra.prod_top]
     exact hA.1.Prod hB.1⟩
 #align algebra.finite_type.prod Algebra.FiniteType.prod
 
-/- warning: algebra.finite_type.is_noetherian_ring -> Algebra.FiniteType.isNoetherianRing is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) (S : Type.{u2}) [_inst_10 : CommRing.{u1} R] [_inst_11 : CommRing.{u2} S] [_inst_12 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11))] [h : Algebra.FiniteType.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11)) _inst_12] [_inst_13 : IsNoetherianRing.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_10))], IsNoetherianRing.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11))
-but is expected to have type
-  forall (R : Type.{u2}) (S : Type.{u1}) [_inst_10 : CommRing.{u2} R] [_inst_11 : CommRing.{u1} S] [_inst_12 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_11))] [h : Algebra.FiniteType.{u1, u2} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_11)) _inst_12] [_inst_13 : IsNoetherianRing.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))], IsNoetherianRing.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_11))
-Case conversion may be inaccurate. Consider using '#align algebra.finite_type.is_noetherian_ring Algebra.FiniteType.isNoetherianRingₓ'. -/
 theorem isNoetherianRing (R S : Type _) [CommRing R] [CommRing S] [Algebra R S]
     [h : Algebra.FiniteType R S] [IsNoetherianRing R] : IsNoetherianRing S :=
   by
@@ -252,12 +192,6 @@ theorem isNoetherianRing (R S : Type _) [CommRing R] [CommRing S] [Algebra R S]
   rfl
 #align algebra.finite_type.is_noetherian_ring Algebra.FiniteType.isNoetherianRing
 
-/- warning: subalgebra.fg_iff_finite_type -> Subalgebra.fg_iff_finiteType is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_10 : CommSemiring.{u1} R] [_inst_11 : Semiring.{u2} A] [_inst_12 : Algebra.{u1, u2} R A _inst_10 _inst_11] (S : Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12), Iff (Subalgebra.FG.{u1, u2} R A _inst_10 _inst_11 _inst_12 S) (Algebra.FiniteType.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12) A (Subalgebra.setLike.{u1, u2} R A _inst_10 _inst_11 _inst_12)) S) _inst_10 (Subalgebra.toSemiring.{u1, u2} R A _inst_10 _inst_11 _inst_12 S) (Subalgebra.algebra.{u1, u2} R A _inst_10 _inst_11 _inst_12 S))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_10 : CommSemiring.{u2} R] [_inst_11 : Semiring.{u1} A] [_inst_12 : Algebra.{u2, u1} R A _inst_10 _inst_11] (S : Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12), Iff (Subalgebra.FG.{u2, u1} R A _inst_10 _inst_11 _inst_12 S) (Algebra.FiniteType.{u1, u2} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12)) x S)) _inst_10 (Subalgebra.toSemiring.{u2, u1} R A _inst_10 _inst_11 _inst_12 S) (Subalgebra.algebra.{u2, u1} R A _inst_10 _inst_11 _inst_12 S))
-Case conversion may be inaccurate. Consider using '#align subalgebra.fg_iff_finite_type Subalgebra.fg_iff_finiteTypeₓ'. -/
 theorem Subalgebra.fg_iff_finiteType {R A : Type _} [CommSemiring R] [Semiring A] [Algebra R A]
     (S : Subalgebra R A) : S.FG ↔ Algebra.FiniteType R S :=
   S.fg_top.symm.trans ⟨fun h => ⟨h⟩, fun h => h.out⟩
@@ -284,12 +218,6 @@ namespace Finite
 
 variable {A}
 
-/- warning: ring_hom.finite.finite_type -> RingHom.Finite.finiteType is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))}, (RingHom.Finite.{u1, u2} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f)
-but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] {f : RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))}, (RingHom.Finite.{u2, u1} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align ring_hom.finite.finite_type RingHom.Finite.finiteTypeₓ'. -/
 theorem finiteType {f : A →+* B} (hf : f.Finite) : FiniteType f :=
   @Module.Finite.finiteType _ _ _ _ f.toAlgebra hf
 #align ring_hom.finite.finite_type RingHom.Finite.finiteType
@@ -308,12 +236,6 @@ theorem id : FiniteType (RingHom.id A) :=
 
 variable {A}
 
-/- warning: ring_hom.finite_type.comp_surjective -> RingHom.FiniteType.comp_surjective is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} {C : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u3} C] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))} {g : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))}, (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f) -> (Function.Surjective.{succ u2, succ u3} B C (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))) (fun (_x : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))) => B -> C) (RingHom.hasCoeToFun.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))) g)) -> (RingHom.FiniteType.{u1, u3} A C _inst_1 _inst_3 (RingHom.comp.{u1, u2, u3} A B C (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3))) g f))
-but is expected to have type
-  forall {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u1} C] {f : RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2)))} {g : RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))}, (RingHom.FiniteType.{u3, u2} A B _inst_1 _inst_2 f) -> (Function.Surjective.{succ u2, succ u1} B C (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => C) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B C (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))))))) g)) -> (RingHom.FiniteType.{u3, u1} A C _inst_1 _inst_3 (RingHom.comp.{u3, u2, u1} A B C (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))) g f))
-Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.comp_surjective RingHom.FiniteType.comp_surjectiveₓ'. -/
 theorem comp_surjective {f : A →+* B} {g : B →+* C} (hf : f.FiniteType) (hg : Surjective g) :
     (g.comp f).FiniteType :=
   @Algebra.FiniteType.of_surjective A B C _ _ f.toAlgebra _ (g.comp f).toAlgebra hf
@@ -323,22 +245,10 @@ theorem comp_surjective {f : A →+* B} {g : B →+* C} (hf : f.FiniteType) (hg
     hg
 #align ring_hom.finite_type.comp_surjective RingHom.FiniteType.comp_surjective
 
-/- warning: ring_hom.finite_type.of_surjective -> RingHom.FiniteType.of_surjective is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] (f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))), (Function.Surjective.{succ u1, succ u2} A B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) (fun (_x : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) => A -> B) (RingHom.hasCoeToFun.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) f)) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f)
-but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] (f : RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))), (Function.Surjective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))) (RingHom.instRingHomClassRingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))))))) f)) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.of_surjective RingHom.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (f : A →+* B) (hf : Surjective f) : f.FiniteType := by rw [← f.comp_id];
   exact (id A).comp_surjective hf
 #align ring_hom.finite_type.of_surjective RingHom.FiniteType.of_surjective
 
-/- warning: ring_hom.finite_type.comp -> RingHom.FiniteType.comp is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} {C : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u3} C] {g : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))} {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))}, (RingHom.FiniteType.{u2, u3} B C _inst_2 _inst_3 g) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u3} A C _inst_1 _inst_3 (RingHom.comp.{u1, u2, u3} A B C (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3))) g f))
-but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u3}} {C : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u3} B] [_inst_3 : CommRing.{u2} C] {g : RingHom.{u3, u2} B C (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_2))) (Semiring.toNonAssocSemiring.{u2} C (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_3)))} {f : RingHom.{u1, u3} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_2)))}, (RingHom.FiniteType.{u3, u2} B C _inst_2 _inst_3 g) -> (RingHom.FiniteType.{u1, u3} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u2} A C _inst_1 _inst_3 (RingHom.comp.{u1, u3, u2} A B C (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_2))) (Semiring.toNonAssocSemiring.{u2} C (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_3))) g f))
-Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.comp RingHom.FiniteType.compₓ'. -/
 theorem comp {g : B →+* C} {f : A →+* B} (hg : g.FiniteType) (hf : f.FiniteType) :
     (g.comp f).FiniteType :=
   @Algebra.FiniteType.trans A B C _ _ f.toAlgebra _ (g.comp f).toAlgebra g.toAlgebra
@@ -350,31 +260,13 @@ theorem comp {g : B →+* C} {f : A →+* B} (hg : g.FiniteType) (hf : f.FiniteT
     hf hg
 #align ring_hom.finite_type.comp RingHom.FiniteType.comp
 
-/- warning: ring_hom.finite_type.of_finite -> RingHom.FiniteType.of_finite is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))}, (RingHom.Finite.{u1, u2} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f)
-but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] {f : RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))}, (RingHom.Finite.{u2, u1} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.of_finite RingHom.FiniteType.of_finiteₓ'. -/
 theorem of_finite {f : A →+* B} (hf : f.Finite) : f.FiniteType :=
   @Module.Finite.finiteType _ _ _ _ f.toAlgebra hf
 #align ring_hom.finite_type.of_finite RingHom.FiniteType.of_finite
 
-/- warning: ring_hom.finite.to_finite_type -> RingHom.Finite.to_finiteType is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))}, (RingHom.Finite.{u1, u2} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f)
-but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] {f : RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))}, (RingHom.Finite.{u2, u1} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align ring_hom.finite.to_finite_type RingHom.Finite.to_finiteTypeₓ'. -/
 alias of_finite ← _root_.ring_hom.finite.to_finite_type
 #align ring_hom.finite.to_finite_type RingHom.Finite.to_finiteType
 
-/- warning: ring_hom.finite_type.of_comp_finite_type -> RingHom.FiniteType.of_comp_finiteType is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} {C : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u3} C] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))} {g : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))}, (RingHom.FiniteType.{u1, u3} A C _inst_1 _inst_3 (RingHom.comp.{u1, u2, u3} A B C (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3))) g f)) -> (RingHom.FiniteType.{u2, u3} B C _inst_2 _inst_3 g)
-but is expected to have type
-  forall {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u1} C] {f : RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2)))} {g : RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))}, (RingHom.FiniteType.{u3, u1} A C _inst_1 _inst_3 (RingHom.comp.{u3, u2, u1} A B C (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))) g f)) -> (RingHom.FiniteType.{u2, u1} B C _inst_2 _inst_3 g)
-Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.of_comp_finite_type RingHom.FiniteType.of_comp_finiteTypeₓ'. -/
 theorem of_comp_finiteType {f : A →+* B} {g : B →+* C} (h : (g.comp f).FiniteType) : g.FiniteType :=
   by
   letI := f.to_algebra
@@ -409,12 +301,6 @@ namespace Finite
 
 variable {R A}
 
-/- warning: alg_hom.finite.finite_type -> AlgHom.Finite.finiteType is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] {f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6}, (AlgHom.Finite.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
-but is expected to have type
-  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_5 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_6 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] {f : AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6}, (AlgHom.Finite.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
-Case conversion may be inaccurate. Consider using '#align alg_hom.finite.finite_type AlgHom.Finite.finiteTypeₓ'. -/
 theorem finiteType {f : A →ₐ[R] B} (hf : f.Finite) : FiniteType f :=
   RingHom.Finite.finiteType hf
 #align alg_hom.finite.finite_type AlgHom.Finite.finiteType
@@ -425,50 +311,26 @@ namespace FiniteType
 
 variable (R A)
 
-/- warning: alg_hom.finite_type.id -> AlgHom.FiniteType.id is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) (A : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], AlgHom.FiniteType.{u1, u2, u2} R A A _inst_1 _inst_2 _inst_2 _inst_5 _inst_5 (AlgHom.id.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)
-but is expected to have type
-  forall (R : Type.{u2}) (A : Type.{u1}) [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], AlgHom.FiniteType.{u2, u1, u1} R A A _inst_1 _inst_2 _inst_2 _inst_5 _inst_5 (AlgHom.id.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)
-Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.id AlgHom.FiniteType.idₓ'. -/
 theorem id : FiniteType (AlgHom.id R A) :=
   RingHom.FiniteType.id A
 #align alg_hom.finite_type.id AlgHom.FiniteType.id
 
 variable {R A}
 
-/- warning: alg_hom.finite_type.comp -> AlgHom.FiniteType.comp is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {C : Type.{u4}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u4} C] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4))] {g : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7} {f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6}, (AlgHom.FiniteType.{u1, u3, u4} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g) -> (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u1, u2, u4} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u1, u2, u3, u4} R A B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
-but is expected to have type
-  forall {R : Type.{u4}} {A : Type.{u1}} {B : Type.{u3}} {C : Type.{u2}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u2} C] [_inst_5 : Algebra.{u4, u1} R A (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] [_inst_6 : Algebra.{u4, u3} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_3))] [_inst_7 : Algebra.{u4, u2} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_4))] {g : AlgHom.{u4, u3, u2} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_3)) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_4)) _inst_6 _inst_7} {f : AlgHom.{u4, u1, u3} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_3)) _inst_5 _inst_6}, (AlgHom.FiniteType.{u4, u3, u2} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g) -> (AlgHom.FiniteType.{u4, u1, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u4, u1, u2} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u1, u3, u2} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_3)) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
-Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.comp AlgHom.FiniteType.compₓ'. -/
 theorem comp {g : B →ₐ[R] C} {f : A →ₐ[R] B} (hg : g.FiniteType) (hf : f.FiniteType) :
     (g.comp f).FiniteType :=
   RingHom.FiniteType.comp hg hf
 #align alg_hom.finite_type.comp AlgHom.FiniteType.comp
 
-/- warning: alg_hom.finite_type.comp_surjective -> AlgHom.FiniteType.comp_surjective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.comp_surjective AlgHom.FiniteType.comp_surjectiveₓ'. -/
 theorem comp_surjective {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.FiniteType) (hg : Surjective g) :
     (g.comp f).FiniteType :=
   RingHom.FiniteType.comp_surjective hf hg
 #align alg_hom.finite_type.comp_surjective AlgHom.FiniteType.comp_surjective
 
-/- warning: alg_hom.finite_type.of_surjective -> AlgHom.FiniteType.of_surjective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.of_surjective AlgHom.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (f : A →ₐ[R] B) (hf : Surjective f) : f.FiniteType :=
   RingHom.FiniteType.of_surjective f hf
 #align alg_hom.finite_type.of_surjective AlgHom.FiniteType.of_surjective
 
-/- warning: alg_hom.finite_type.of_comp_finite_type -> AlgHom.FiniteType.of_comp_finiteType is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {C : Type.{u4}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u4} C] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4))] {f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u1, u2, u4} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u1, u2, u3, u4} R A B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_5 _inst_6 _inst_7 g f)) -> (AlgHom.FiniteType.{u1, u3, u4} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g)
-but is expected to have type
-  forall {R : Type.{u4}} {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : CommRing.{u1} C] [_inst_5 : Algebra.{u4, u3} R A (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_6 : Algebra.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))] {f : AlgHom.{u4, u3, u2} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u4, u3, u1} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u3, u2, u1} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_5 _inst_6 _inst_7 g f)) -> (AlgHom.FiniteType.{u4, u2, u1} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g)
-Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.of_comp_finite_type AlgHom.FiniteType.of_comp_finiteTypeₓ'. -/
 theorem of_comp_finiteType {f : A →ₐ[R] B} {g : B →ₐ[R] C} (h : (g.comp f).FiniteType) :
     g.FiniteType :=
   RingHom.FiniteType.of_comp_finiteType h
@@ -492,12 +354,6 @@ section Semiring
 
 variable [CommSemiring R] [AddMonoid M]
 
-/- warning: add_monoid_algebra.mem_adjoin_support -> AddMonoidAlgebra.mem_adjoin_support is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)), Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (SetLike.hasMem.{max u2 u1, max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Subalgebra.setLike.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))) f (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f))))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommSemiring.{u2} R] [_inst_2 : AddMonoid.{u1} M] (f : AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)), Membership.mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Subalgebra.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2)) (SetLike.instMembership.{max u2 u1, max u2 u1} (Subalgebra.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2)) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Subalgebra.instSetLikeSubalgebra.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2))) f (Algebra.adjoin.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2) (Set.image.{u1, max u2 u1} M (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Finset.toSet.{u1} M (Finsupp.support.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) f))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mem_adjoin_support AddMonoidAlgebra.mem_adjoin_supportₓ'. -/
 /-- An element of `add_monoid_algebra R M` is in the subalgebra generated by its support. -/
 theorem mem_adjoin_support (f : AddMonoidAlgebra R M) : f ∈ adjoin R (of' R M '' f.support) :=
   by
@@ -507,9 +363,6 @@ theorem mem_adjoin_support (f : AddMonoidAlgebra R M) : f ∈ adjoin R (of' R M
   exact subset_adjoin
 #align add_monoid_algebra.mem_adjoin_support AddMonoidAlgebra.mem_adjoin_support
 
-/- warning: add_monoid_algebra.support_gen_of_gen -> AddMonoidAlgebra.support_gen_of_gen is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.support_gen_of_gen AddMonoidAlgebra.support_gen_of_genₓ'. -/
 /-- If a set `S` generates, as algebra, `add_monoid_algebra R M`, then the set of supports of
 elements of `S` generates `add_monoid_algebra R M`. -/
 theorem support_gen_of_gen {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
@@ -526,9 +379,6 @@ theorem support_gen_of_gen {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin
   exact adjoin_mono hincl (mem_adjoin_support f)
 #align add_monoid_algebra.support_gen_of_gen AddMonoidAlgebra.support_gen_of_gen
 
-/- warning: add_monoid_algebra.support_gen_of_gen' -> AddMonoidAlgebra.support_gen_of_gen' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.support_gen_of_gen' AddMonoidAlgebra.support_gen_of_gen'ₓ'. -/
 /-- If a set `S` generates, as algebra, `add_monoid_algebra R M`, then the image of the union of
 the supports of elements of `S` generates `add_monoid_algebra R M`. -/
 theorem support_gen_of_gen' {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
@@ -547,12 +397,6 @@ section Ring
 
 variable [CommRing R] [AddCommMonoid M]
 
-/- warning: add_monoid_algebra.exists_finset_adjoin_eq_top -> AddMonoidAlgebra.exists_finset_adjoin_eq_top is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [h : Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) G))) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [h : Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Finset.toSet.{u2} M G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.exists_finset_adjoin_eq_top AddMonoidAlgebra.exists_finset_adjoin_eq_topₓ'. -/
 /-- If `add_monoid_algebra R M` is of finite type, there there is a `G : finset M` such that its
 image generates, as algera, `add_monoid_algebra R M`. -/
 theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
@@ -567,12 +411,6 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
   exact support_gen_of_gen' hS
 #align add_monoid_algebra.exists_finset_adjoin_eq_top AddMonoidAlgebra.exists_finset_adjoin_eq_top
 
-/- warning: add_monoid_algebra.of'_mem_span -> AddMonoidAlgebra.of'_mem_span is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, Iff (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u2 u1, max u2 u1} (Submodule.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) m) (Submodule.span.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) S))) (Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) m S)
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, Iff (Membership.mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) m) (Submodule.span.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Set.image.{u1, max u2 u1} M (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S))) (Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) m S)
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of'_mem_span AddMonoidAlgebra.of'_mem_spanₓ'. -/
 /-- The image of an element `m : M` in `add_monoid_algebra R M` belongs the submodule generated by
 `S : set M` if and only if `m ∈ S`. -/
 theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
@@ -584,9 +422,6 @@ theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
   simpa using h
 #align add_monoid_algebra.of'_mem_span AddMonoidAlgebra.of'_mem_span
 
-/- warning: add_monoid_algebra.mem_closure_of_mem_span_closure -> AddMonoidAlgebra.mem_closure_of_mem_span_closure is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mem_closure_of_mem_span_closure AddMonoidAlgebra.mem_closure_of_mem_span_closureₓ'. -/
 /--
 If the image of an element `m : M` in `add_monoid_algebra R M` belongs the submodule generated by
 the closure of some `S : set M` then `m ∈ closure S`. -/
@@ -609,9 +444,6 @@ end Span
 
 variable [AddCommMonoid M]
 
-/- warning: add_monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure -> AddMonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure AddMonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closureₓ'. -/
 /-- If a set `S` generates an additive monoid `M`, then the image of `M` generates, as algebra,
 `add_monoid_algebra R M`. -/
 theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
@@ -638,12 +470,6 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
 
 variable (R M)
 
-/- warning: add_monoid_algebra.finite_type_of_fg -> AddMonoidAlgebra.finiteType_of_fg is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) (M : Type.{u2}) [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [h : AddMonoid.FG.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)], Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
-but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [h : AddMonoid.FG.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)], Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.finite_type_of_fg AddMonoidAlgebra.finiteType_of_fgₓ'. -/
 /-- If an additive monoid `M` is finitely generated then `add_monoid_algebra R M` is of finite
 type. -/
 instance finiteType_of_fg [CommRing R] [h : AddMonoid.FG M] : FiniteType R (AddMonoidAlgebra R M) :=
@@ -657,12 +483,6 @@ instance finiteType_of_fg [CommRing R] [h : AddMonoid.FG M] : FiniteType R (AddM
 
 variable {R M}
 
-/- warning: add_monoid_algebra.finite_type_iff_fg -> AddMonoidAlgebra.finiteType_iff_fg is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (AddMonoid.FG.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R], Iff (Algebra.FiniteType.{max u1 u2, u2} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddMonoid.FG.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.finite_type_iff_fg AddMonoidAlgebra.finiteType_iff_fgₓ'. -/
 /-- An additive monoid `M` is finitely generated if and only if `add_monoid_algebra R M` is of
 finite type. -/
 theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
@@ -677,24 +497,12 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
   exact mem_closure_of_mem_span_closure hm
 #align add_monoid_algebra.finite_type_iff_fg AddMonoidAlgebra.finiteType_iff_fg
 
-/- warning: add_monoid_algebra.fg_of_finite_type -> AddMonoidAlgebra.fg_of_finiteType is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R] [h : Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))], AddMonoid.FG.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R] [h : Algebra.FiniteType.{max u1 u2, u2} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))], AddMonoid.FG.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1)
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.fg_of_finite_type AddMonoidAlgebra.fg_of_finiteTypeₓ'. -/
 /-- If `add_monoid_algebra R M` is of finite type then `M` is finitely generated. -/
 theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (AddMonoidAlgebra R M)] :
     AddMonoid.FG M :=
   finiteType_iff_fg.1 h
 #align add_monoid_algebra.fg_of_finite_type AddMonoidAlgebra.fg_of_finiteType
 
-/- warning: add_monoid_algebra.finite_type_iff_group_fg -> AddMonoidAlgebra.finiteType_iff_group_fg is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (AddMonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2)))) (AddMonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))))) (AddGroup.FG.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))
-but is expected to have type
-  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (AddMonoidAlgebra.semiring.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2)))) (AddMonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))))) (AddGroup.FG.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.finite_type_iff_group_fg AddMonoidAlgebra.finiteType_iff_group_fgₓ'. -/
 /-- An additive group `G` is finitely generated if and only if `add_monoid_algebra R G` is of
 finite type. -/
 theorem finiteType_iff_group_fg {G : Type _} [AddCommGroup G] [CommRing R] [Nontrivial R] :
@@ -714,12 +522,6 @@ section Semiring
 
 variable [CommSemiring R] [Monoid M]
 
-/- warning: monoid_algebra.mem_adjoin_support -> MonoidAlgebra.mem_adjoin_support is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)), Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (SetLike.hasMem.{max u1 u2, max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Subalgebra.setLike.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))) f (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f))))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommSemiring.{u2} R] [_inst_2 : Monoid.{u1} M] (f : MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)), Membership.mem.{max u2 u1, max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Subalgebra.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2)) (SetLike.instMembership.{max u2 u1, max u2 u1} (Subalgebra.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2)) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Subalgebra.instSetLikeSubalgebra.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2))) f (Algebra.adjoin.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_2)) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2)))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))) (Finset.toSet.{u1} M (Finsupp.support.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) f))))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.mem_adjoin_support MonoidAlgebra.mem_adjoin_supportₓ'. -/
 /-- An element of `monoid_algebra R M` is in the subalgebra generated by its support. -/
 theorem mem_adjoin_support (f : MonoidAlgebra R M) : f ∈ adjoin R (of R M '' f.support) :=
   by
@@ -729,9 +531,6 @@ theorem mem_adjoin_support (f : MonoidAlgebra R M) : f ∈ adjoin R (of R M '' f
   exact subset_adjoin
 #align monoid_algebra.mem_adjoin_support MonoidAlgebra.mem_adjoin_support
 
-/- warning: monoid_algebra.support_gen_of_gen -> MonoidAlgebra.support_gen_of_gen is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.support_gen_of_gen MonoidAlgebra.support_gen_of_genₓ'. -/
 /-- If a set `S` generates, as algebra, `monoid_algebra R M`, then the set of supports of elements
 of `S` generates `monoid_algebra R M`. -/
 theorem support_gen_of_gen {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
@@ -747,9 +546,6 @@ theorem support_gen_of_gen {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R
   exact adjoin_mono hincl (mem_adjoin_support f)
 #align monoid_algebra.support_gen_of_gen MonoidAlgebra.support_gen_of_gen
 
-/- warning: monoid_algebra.support_gen_of_gen' -> MonoidAlgebra.support_gen_of_gen' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.support_gen_of_gen' MonoidAlgebra.support_gen_of_gen'ₓ'. -/
 /-- If a set `S` generates, as algebra, `monoid_algebra R M`, then the image of the union of the
 supports of elements of `S` generates `monoid_algebra R M`. -/
 theorem support_gen_of_gen' {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
@@ -768,9 +564,6 @@ section Ring
 
 variable [CommRing R] [CommMonoid M]
 
-/- warning: monoid_algebra.exists_finset_adjoin_eq_top -> MonoidAlgebra.exists_finset_adjoin_eq_top is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.exists_finset_adjoin_eq_top MonoidAlgebra.exists_finset_adjoin_eq_topₓ'. -/
 /-- If `monoid_algebra R M` is of finite type, there there is a `G : finset M` such that its image
 generates, as algera, `monoid_algebra R M`. -/
 theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
@@ -785,9 +578,6 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
   exact support_gen_of_gen' hS
 #align monoid_algebra.exists_finset_adjoin_eq_top MonoidAlgebra.exists_finset_adjoin_eq_top
 
-/- warning: monoid_algebra.of_mem_span_of_iff -> MonoidAlgebra.of_mem_span_of_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.of_mem_span_of_iff MonoidAlgebra.of_mem_span_of_iffₓ'. -/
 /-- The image of an element `m : M` in `monoid_algebra R M` belongs the submodule generated by
 `S : set M` if and only if `m ∈ S`. -/
 theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
@@ -799,9 +589,6 @@ theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
   simpa using h
 #align monoid_algebra.of_mem_span_of_iff MonoidAlgebra.of_mem_span_of_iff
 
-/- warning: monoid_algebra.mem_closure_of_mem_span_closure -> MonoidAlgebra.mem_closure_of_mem_span_closure is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.mem_closure_of_mem_span_closure MonoidAlgebra.mem_closure_of_mem_span_closureₓ'. -/
 /--
 If the image of an element `m : M` in `monoid_algebra R M` belongs the submodule generated by the
 closure of some `S : set M` then `m ∈ closure S`. -/
@@ -818,9 +605,6 @@ end Span
 
 variable [CommMonoid M]
 
-/- warning: monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure -> MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closureₓ'. -/
 /-- If a set `S` generates a monoid `M`, then the image of `M` generates, as algebra,
 `monoid_algebra R M`. -/
 theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
@@ -843,23 +627,11 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
     exact ⟨r • P, AlgHom.map_smul _ _ _⟩
 #align monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure
 
-/- warning: monoid_algebra.finite_type_of_fg -> MonoidAlgebra.finiteType_of_fg is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Monoid.FG.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)], Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Monoid.FG.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)], Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.finite_type_of_fg MonoidAlgebra.finiteType_of_fgₓ'. -/
 /-- If a monoid `M` is finitely generated then `monoid_algebra R M` is of finite type. -/
 instance finiteType_of_fg [CommRing R] [Monoid.FG M] : FiniteType R (MonoidAlgebra R M) :=
   (AddMonoidAlgebra.finiteType_of_fg R (Additive M)).Equiv (toAdditiveAlgEquiv R M).symm
 #align monoid_algebra.finite_type_of_fg MonoidAlgebra.finiteType_of_fg
 
-/- warning: monoid_algebra.finite_type_iff_fg -> MonoidAlgebra.finiteType_iff_fg is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))) (Monoid.FG.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R], Iff (Algebra.FiniteType.{max u1 u2, u2} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1))) (Monoid.FG.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.finite_type_iff_fg MonoidAlgebra.finiteType_iff_fgₓ'. -/
 /-- A monoid `M` is finitely generated if and only if `monoid_algebra R M` is of finite type. -/
 theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
     FiniteType R (MonoidAlgebra R M) ↔ Monoid.FG M :=
@@ -869,24 +641,12 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
     fun h => @MonoidAlgebra.finiteType_of_fg _ _ _ _ h⟩
 #align monoid_algebra.finite_type_iff_fg MonoidAlgebra.finiteType_iff_fg
 
-/- warning: monoid_algebra.fg_of_finite_type -> MonoidAlgebra.fg_of_finiteType is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R] [h : Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))], Monoid.FG.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R] [h : Algebra.FiniteType.{max u1 u2, u2} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1))], Monoid.FG.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.fg_of_finite_type MonoidAlgebra.fg_of_finiteTypeₓ'. -/
 /-- If `monoid_algebra R M` is of finite type then `M` is finitely generated. -/
 theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (MonoidAlgebra R M)] :
     Monoid.FG M :=
   finiteType_iff_fg.1 h
 #align monoid_algebra.fg_of_finite_type MonoidAlgebra.fg_of_finiteType
 
-/- warning: monoid_algebra.finite_type_iff_group_fg -> MonoidAlgebra.finiteType_iff_group_fg is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : CommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (MonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2)))) (MonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2))))) (Group.FG.{u2} G (CommGroup.toGroup.{u2} G _inst_2))
-but is expected to have type
-  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : CommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (MonoidAlgebra.semiring.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2)))) (MonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2))))) (Group.FG.{u2} G (CommGroup.toGroup.{u2} G _inst_2))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.finite_type_iff_group_fg MonoidAlgebra.finiteType_iff_group_fgₓ'. -/
 /-- A group `G` is finitely generated if and only if `add_monoid_algebra R G` is of finite type. -/
 theorem finiteType_iff_group_fg {G : Type _} [CommGroup G] [CommRing R] [Nontrivial R] :
     FiniteType R (MonoidAlgebra R G) ↔ Group.FG G := by
@@ -911,9 +671,6 @@ def modulePolynomialOfEndo : Module R[X] M :=
 #align module_polynomial_of_endo modulePolynomialOfEndo
 -/
 
-/- warning: module_polynomial_of_endo_smul_def -> modulePolynomialOfEndo_smul_def is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module_polynomial_of_endo_smul_def modulePolynomialOfEndo_smul_defₓ'. -/
 theorem modulePolynomialOfEndo_smul_def (n : R[X]) (a : M) :
     @SMul.smul (modulePolynomialOfEndo f).toSMul n a = Polynomial.aeval f n a :=
   rfl
@@ -923,12 +680,6 @@ attribute [local simp] modulePolynomialOfEndo_smul_def
 
 include f
 
-/- warning: module_polynomial_of_endo.is_scalar_tower -> modulePolynomialOfEndo.isScalarTower is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (f : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3), IsScalarTower.{u1, u1, u2} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (SMulZeroClass.toHasSmul.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.zero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.smulZeroClass.{u1, u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) R (SMulWithZero.toSmulZeroClass.{u1, u1} R 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)))))) (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (MulZeroClass.toSMulWithZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))))) (let _inst : Module.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) := modulePolynomialOfEndo.{u1, u2} R _inst_1 M _inst_2 _inst_3 f; SMulZeroClass.toHasSmul.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MulZeroClass.toHasZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulZeroClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))
-but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3), IsScalarTower.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Algebra.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (inferInstance.{max (succ u2) (succ u1)} ([mdata noImplicitLambda:1 SMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M]) (SMulZeroClass.toSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.zero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (modulePolynomialOfEndo.{u2, u1} R _inst_1 M _inst_2 _inst_3 f)))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))
-Case conversion may be inaccurate. Consider using '#align module_polynomial_of_endo.is_scalar_tower modulePolynomialOfEndo.isScalarTowerₓ'. -/
 theorem modulePolynomialOfEndo.isScalarTower :
     @IsScalarTower R R[X] M _ (by letI := modulePolynomialOfEndo f; infer_instance) _ :=
   by
@@ -940,12 +691,6 @@ theorem modulePolynomialOfEndo.isScalarTower :
 
 open Polynomial Module
 
-/- warning: module.finite.injective_of_surjective_endomorphism -> Module.Finite.injective_of_surjective_endomorphism is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (f : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) [hfg : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3], (Function.Surjective.{succ u2, succ u2} M M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) f)) -> (Function.Injective.{succ u2, succ u2} M M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) f))
-but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) [hfg : Module.Finite.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3], (Function.Surjective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) f)) -> (Function.Injective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) f))
-Case conversion may be inaccurate. Consider using '#align module.finite.injective_of_surjective_endomorphism Module.Finite.injective_of_surjective_endomorphismₓ'. -/
 /-- A theorem/proof by Vasconcelos, given a finite module `M` over a commutative ring, any
 surjective endomorphism of `M` is also injective. Based on,
 https://math.stackexchange.com/a/239419/31917,
Diff
@@ -97,9 +97,7 @@ theorem self : FiniteType R R :=
 
 #print Algebra.FiniteType.polynomial /-
 protected theorem polynomial : FiniteType R R[X] :=
-  ⟨⟨{Polynomial.X}, by
-      rw [Finset.coe_singleton]
-      exact Polynomial.adjoin_X⟩⟩
+  ⟨⟨{Polynomial.X}, by rw [Finset.coe_singleton]; exact Polynomial.adjoin_X⟩⟩
 #align algebra.finite_type.polynomial Algebra.FiniteType.polynomial
 -/
 
@@ -114,9 +112,7 @@ Case conversion may be inaccurate. Consider using '#align algebra.finite_type.mv
 protected theorem mvPolynomial (ι : Type _) [Finite ι] : FiniteType R (MvPolynomial ι R) := by
   cases nonempty_fintype ι <;>
     exact
-      ⟨⟨finset.univ.image MvPolynomial.X,
-          by
-          rw [Finset.coe_image, Finset.coe_univ, Set.image_univ]
+      ⟨⟨finset.univ.image MvPolynomial.X, by rw [Finset.coe_image, Finset.coe_univ, Set.image_univ];
           exact MvPolynomial.adjoin_range_X⟩⟩
 #align algebra.finite_type.mv_polynomial Algebra.FiniteType.mvPolynomial
 
@@ -333,9 +329,7 @@ lean 3 declaration is
 but is expected to have type
   forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] (f : RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))), (Function.Surjective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))) (RingHom.instRingHomClassRingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))))))) f)) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
 Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.of_surjective RingHom.FiniteType.of_surjectiveₓ'. -/
-theorem of_surjective (f : A →+* B) (hf : Surjective f) : f.FiniteType :=
-  by
-  rw [← f.comp_id]
+theorem of_surjective (f : A →+* B) (hf : Surjective f) : f.FiniteType := by rw [← f.comp_id];
   exact (id A).comp_surjective hf
 #align ring_hom.finite_type.of_surjective RingHom.FiniteType.of_surjective
 
@@ -936,11 +930,7 @@ but is expected to have type
   forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3), IsScalarTower.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Algebra.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (inferInstance.{max (succ u2) (succ u1)} ([mdata noImplicitLambda:1 SMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M]) (SMulZeroClass.toSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.zero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (modulePolynomialOfEndo.{u2, u1} R _inst_1 M _inst_2 _inst_3 f)))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))
 Case conversion may be inaccurate. Consider using '#align module_polynomial_of_endo.is_scalar_tower modulePolynomialOfEndo.isScalarTowerₓ'. -/
 theorem modulePolynomialOfEndo.isScalarTower :
-    @IsScalarTower R R[X] M _
-      (by
-        letI := modulePolynomialOfEndo f
-        infer_instance)
-      _ :=
+    @IsScalarTower R R[X] M _ (by letI := modulePolynomialOfEndo f; infer_instance) _ :=
   by
   letI := modulePolynomialOfEndo f
   constructor
Diff
@@ -141,10 +141,7 @@ theorem of_restrictScalars_finiteType [Algebra A B] [IsScalarTower R A B] [hB :
 variable {R A B}
 
 /- warning: algebra.finite_type.of_surjective -> Algebra.FiniteType.of_surjective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))], (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) -> (forall (f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5), (Function.Surjective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) f)) -> (Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5))
-but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_4 : CommRing.{u1} B] [_inst_5 : Algebra.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))], (Algebra.FiniteType.{u3, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3) -> (forall (f : AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5), (Function.Surjective.{succ u3, succ u1} A B (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) R A B (SMulZeroClass.toSMul.{u2, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, u3} R A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3))))) (SMulZeroClass.toSMul.{u2, u1} R B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))))) (DistribSMul.toSMulZeroClass.{u2, u1} R B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))))) (DistribMulAction.toDistribSMul.{u2, u1} R B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)))))) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) R A B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)))))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3)) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) R A B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3)) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u3 u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5 (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) (AlgHom.algHomClass.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5))))) f)) -> (Algebra.FiniteType.{u1, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5))
+<too large>
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.of_surjective Algebra.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (hRA : FiniteType R A) (f : A →ₐ[R] B) (hf : Surjective f) : FiniteType R B :=
   ⟨by
@@ -174,10 +171,7 @@ theorem trans [Algebra A B] [IsScalarTower R A B] (hRA : FiniteType R A) (hAB :
 #align algebra.finite_type.trans Algebra.FiniteType.trans
 
 /- warning: algebra.finite_type.iff_quotient_mv_polynomial -> Algebra.FiniteType.iff_quotient_mvPolynomial is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{succ u2} (Finset.{u2} A) (fun (s : Finset.{u2} A) => Exists.{max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) f))))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (Exists.{succ u2} (Finset.{u2} A) (fun (s : Finset.{u2} A) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) 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.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u1, u2, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial Algebra.FiniteType.iff_quotient_mvPolynomialₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a finset. -/
@@ -196,10 +190,7 @@ theorem iff_quotient_mvPolynomial :
 #align algebra.finite_type.iff_quotient_mv_polynomial Algebra.FiniteType.iff_quotient_mvPolynomial
 
 /- warning: algebra.finite_type.iff_quotient_mv_polynomial' -> Algebra.FiniteType.iff_quotient_mvPolynomial' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{succ (succ u2)} Type.{u2} (fun (ι : Type.{u2}) => Exists.{succ u2} (Fintype.{u2} ι) (fun (_x : Fintype.{u2} ι) => Exists.{max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) f)))))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (Exists.{succ (succ u2)} Type.{u2} (fun (ι : Type.{u2}) => Exists.{succ u2} (Fintype.{u2} ι) (fun (_x : Fintype.{u2} ι) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι 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.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u1, u2, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial' Algebra.FiniteType.iff_quotient_mvPolynomial'ₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a fintype. -/
@@ -216,10 +207,7 @@ theorem iff_quotient_mvPolynomial' :
 #align algebra.finite_type.iff_quotient_mv_polynomial' Algebra.FiniteType.iff_quotient_mvPolynomial'
 
 /- warning: algebra.finite_type.iff_quotient_mv_polynomial'' -> Algebra.FiniteType.iff_quotient_mvPolynomial'' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{1} Nat (fun (n : Nat) => Exists.{max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{succ u1, succ u2} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) f))))
-but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (Exists.{1} Nat (fun (n : Nat) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{succ u1, succ u2} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) 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} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial'' Algebra.FiniteType.iff_quotient_mvPolynomial''ₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient of a polynomial ring in `n`
 variables. -/
@@ -467,10 +455,7 @@ theorem comp {g : B →ₐ[R] C} {f : A →ₐ[R] B} (hg : g.FiniteType) (hf : f
 #align alg_hom.finite_type.comp AlgHom.FiniteType.comp
 
 /- warning: alg_hom.finite_type.comp_surjective -> AlgHom.FiniteType.comp_surjective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {C : Type.{u4}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u4} C] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4))] {f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (Function.Surjective.{succ u3, succ u4} B C (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7) (fun (_x : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7) => B -> C) ([anonymous].{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7) g)) -> (AlgHom.FiniteType.{u1, u2, u4} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u1, u2, u3, u4} R A B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
-but is expected to have type
-  forall {R : Type.{u4}} {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : CommRing.{u1} C] [_inst_5 : Algebra.{u4, u3} R A (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_6 : Algebra.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))] {f : AlgHom.{u4, u3, u2} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u4, u3, u2} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (Function.Surjective.{succ u2, succ u1} B C (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => C) _x) (SMulHomClass.toFunLike.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) R B C (SMulZeroClass.toSMul.{u4, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u4, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u4, u2} R B (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6))))) (SMulZeroClass.toSMul.{u4, u1} R C (AddMonoid.toZero.{u1} C (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))))) (DistribSMul.toSMulZeroClass.{u4, u1} R C (AddMonoid.toAddZeroClass.{u1} C (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))))) (DistribMulAction.toDistribSMul.{u4, u1} R C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)))))) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) R B C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)))))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) R B C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u2, u1, max u2 u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7 (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) (AlgHom.algHomClass.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7))))) g)) -> (AlgHom.FiniteType.{u4, u3, u1} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u3, u2, u1} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.comp_surjective AlgHom.FiniteType.comp_surjectiveₓ'. -/
 theorem comp_surjective {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.FiniteType) (hg : Surjective g) :
     (g.comp f).FiniteType :=
@@ -478,10 +463,7 @@ theorem comp_surjective {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.FiniteTy
 #align alg_hom.finite_type.comp_surjective AlgHom.FiniteType.comp_surjective
 
 /- warning: alg_hom.finite_type.of_surjective -> AlgHom.FiniteType.of_surjective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] (f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6), (Function.Surjective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) f)) -> (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
-but is expected to have type
-  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_5 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_6 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] (f : AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6), (Function.Surjective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (SMulZeroClass.toSMul.{u3, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u3, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u3, u2} R A (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toSMul.{u3, u1} R B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u3, u1} R B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u3, u1} R B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))))) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6 (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) (AlgHom.algHomClass.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6))))) f)) -> (AlgHom.FiniteType.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.of_surjective AlgHom.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (f : A →ₐ[R] B) (hf : Surjective f) : f.FiniteType :=
   RingHom.FiniteType.of_surjective f hf
@@ -532,10 +514,7 @@ theorem mem_adjoin_support (f : AddMonoidAlgebra R M) : f ∈ adjoin R (of' R M
 #align add_monoid_algebra.mem_adjoin_support AddMonoidAlgebra.mem_adjoin_support
 
 /- warning: add_monoid_algebra.support_gen_of_gen -> AddMonoidAlgebra.support_gen_of_gen is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.iUnion.{max u2 u1, succ (max u2 u1)} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.iUnion.{max u1 u2, succ (max u1 u2)} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.support_gen_of_gen AddMonoidAlgebra.support_gen_of_genₓ'. -/
 /-- If a set `S` generates, as algebra, `add_monoid_algebra R M`, then the set of supports of
 elements of `S` generates `add_monoid_algebra R M`. -/
@@ -554,10 +533,7 @@ theorem support_gen_of_gen {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin
 #align add_monoid_algebra.support_gen_of_gen AddMonoidAlgebra.support_gen_of_gen
 
 /- warning: add_monoid_algebra.support_gen_of_gen' -> AddMonoidAlgebra.support_gen_of_gen' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.iUnion.{u2, succ (max u2 u1)} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{u2, 0} M (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.iUnion.{u2, succ (max u1 u2)} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{u2, 0} M (Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.support_gen_of_gen' AddMonoidAlgebra.support_gen_of_gen'ₓ'. -/
 /-- If a set `S` generates, as algebra, `add_monoid_algebra R M`, then the image of the union of
 the supports of elements of `S` generates `add_monoid_algebra R M`. -/
@@ -615,10 +591,7 @@ theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
 #align add_monoid_algebra.of'_mem_span AddMonoidAlgebra.of'_mem_span
 
 /- warning: add_monoid_algebra.mem_closure_of_mem_span_closure -> AddMonoidAlgebra.mem_closure_of_mem_span_closure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u2 u1, max u2 u1} (Submodule.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) m) (Submodule.span.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type.{max u2 u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ (max u2 u1), succ (max u2 u1)} a b] => self.0) (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (HasLiftT.mk.{succ (max u2 u1), succ (max u2 u1)} (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CoeTCₓ.coe.{succ (max u2 u1), succ (max u2 u1)} (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.Set.hasCoeT.{max u2 u1, max u2 u1} (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submonoid.setLike.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))))) (Submonoid.closure.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) S))))) -> (Membership.Mem.{u2, u2} M (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) M (AddSubmonoid.setLike.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) m (AddSubmonoid.closure.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) S))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, (Membership.mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) m) (Submodule.span.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))))) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))))) (Submonoid.closure.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) (Set.image.{u1, max u2 u1} M (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S))))) -> (Membership.mem.{u1, u1} M (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (SetLike.instMembership.{u1, u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) M (AddSubmonoid.instSetLikeAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))) m (AddSubmonoid.closure.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) S))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mem_closure_of_mem_span_closure AddMonoidAlgebra.mem_closure_of_mem_span_closureₓ'. -/
 /--
 If the image of an element `m : M` in `add_monoid_algebra R M` belongs the submodule generated by
@@ -643,10 +616,7 @@ end Span
 variable [AddCommMonoid M]
 
 /- warning: add_monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure -> AddMonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommSemiring.{u1} R] {S : Set.{u2} M}, (Eq.{succ u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (AddSubmonoid.closure.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) S) (Top.top.{u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (AddSubmonoid.hasTop.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeFn.{succ (max u2 u1), succ (max u2 u1)} (AlgHom.{u1, max u2 u1, max u2 u1} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (fun (_x : AlgHom.{u1, max u2 u1, max u2 u1} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) => (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) -> (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2))) ([anonymous].{u1, max u2 u1, max u2 u1} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (MvPolynomial.aeval.{u1, max u2 u1, u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 (AddMonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (fun (s : coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) => AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) x S))))) s)))))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommSemiring.{u2} R] {S : Set.{u1} M}, (Eq.{succ u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddSubmonoid.closure.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) S) (Top.top.{u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddSubmonoid.instTopAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u1) (succ u2), max (succ u2) (succ u1)} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (fun (_x : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (SMulHomClass.toFunLike.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (SMulZeroClass.toSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toZero.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2))))))) (SMulZeroClass.toSMul.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toZero.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, max u1 u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AlgHom.algHomClass.{u2, max u1 u2, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))))))) (MvPolynomial.aeval.{u2, max u2 u1, u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Set.Elem.{u1} M S) _inst_2 (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (fun (s : Set.Elem.{u1} M S) => AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x S) s)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure AddMonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closureₓ'. -/
 /-- If a set `S` generates an additive monoid `M`, then the image of `M` generates, as algebra,
 `add_monoid_algebra R M`. -/
@@ -766,10 +736,7 @@ theorem mem_adjoin_support (f : MonoidAlgebra R M) : f ∈ adjoin R (of R M '' f
 #align monoid_algebra.mem_adjoin_support MonoidAlgebra.mem_adjoin_support
 
 /- warning: monoid_algebra.support_gen_of_gen -> MonoidAlgebra.support_gen_of_gen is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.iUnion.{max u1 u2, succ (max u1 u2)} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{max u1 u2, 0} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.iUnion.{max u1 u2, succ (max u1 u2)} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{max u1 u2, 0} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.support_gen_of_gen MonoidAlgebra.support_gen_of_genₓ'. -/
 /-- If a set `S` generates, as algebra, `monoid_algebra R M`, then the set of supports of elements
 of `S` generates `monoid_algebra R M`. -/
@@ -787,10 +754,7 @@ theorem support_gen_of_gen {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R
 #align monoid_algebra.support_gen_of_gen MonoidAlgebra.support_gen_of_gen
 
 /- warning: monoid_algebra.support_gen_of_gen' -> MonoidAlgebra.support_gen_of_gen' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Set.iUnion.{u2, succ (max u1 u2)} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{u2, 0} M (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Set.iUnion.{u2, succ (max u1 u2)} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{u2, 0} M (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.support_gen_of_gen' MonoidAlgebra.support_gen_of_gen'ₓ'. -/
 /-- If a set `S` generates, as algebra, `monoid_algebra R M`, then the image of the union of the
 supports of elements of `S` generates `monoid_algebra R M`. -/
@@ -811,10 +775,7 @@ section Ring
 variable [CommRing R] [CommMonoid M]
 
 /- warning: monoid_algebra.exists_finset_adjoin_eq_top -> MonoidAlgebra.exists_finset_adjoin_eq_top is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [h : Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [h : Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) (Finset.toSet.{u2} M G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.exists_finset_adjoin_eq_top MonoidAlgebra.exists_finset_adjoin_eq_topₓ'. -/
 /-- If `monoid_algebra R M` is of finite type, there there is a `G : finset M` such that its image
 generates, as algera, `monoid_algebra R M`. -/
@@ -831,10 +792,7 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
 #align monoid_algebra.exists_finset_adjoin_eq_top MonoidAlgebra.exists_finset_adjoin_eq_top
 
 /- warning: monoid_algebra.of_mem_span_of_iff -> MonoidAlgebra.of_mem_span_of_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) m) (Submodule.span.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) S))) (Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) m S)
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, Iff (Membership.mem.{max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) m) (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) m) (Submodule.span.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) S))) (Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) m S)
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.of_mem_span_of_iff MonoidAlgebra.of_mem_span_of_iffₓ'. -/
 /-- The image of an element `m : M` in `monoid_algebra R M` belongs the submodule generated by
 `S : set M` if and only if `m ∈ S`. -/
@@ -848,10 +806,7 @@ theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
 #align monoid_algebra.of_mem_span_of_iff MonoidAlgebra.of_mem_span_of_iff
 
 /- warning: monoid_algebra.mem_closure_of_mem_span_closure -> MonoidAlgebra.mem_closure_of_mem_span_closure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) m) (Submodule.span.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.Set.hasCoeT.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submonoid.setLike.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))))))) (Submonoid.closure.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) S))))) -> (Membership.Mem.{u2, u2} M (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) M (Submonoid.setLike.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) m (Submonoid.closure.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) S))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, (Membership.mem.{max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) m) (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) m) (Submodule.span.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (Submonoid.closure.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) S))))) -> (Membership.mem.{u1, u1} M (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) M (Submonoid.instSetLikeSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) m (Submonoid.closure.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) S))
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.mem_closure_of_mem_span_closure MonoidAlgebra.mem_closure_of_mem_span_closureₓ'. -/
 /--
 If the image of an element `m : M` in `monoid_algebra R M` belongs the submodule generated by the
@@ -870,10 +825,7 @@ end Span
 variable [CommMonoid M]
 
 /- warning: monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure -> MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommSemiring.{u1} R] {S : Set.{u2} M}, (Eq.{succ u2} (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))) (Submonoid.closure.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) S) (Top.top.{u2} (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))) (Submonoid.hasTop.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), succ (max u1 u2)} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeFn.{max (succ (max u2 u1)) (succ (max u1 u2)), max (succ (max u2 u1)) (succ (max u1 u2))} (AlgHom.{u1, max u2 u1, max u1 u2} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1))) (fun (_x : AlgHom.{u1, max u2 u1, max u1 u2} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1))) => (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2))) ([anonymous].{u1, max u2 u1, max u1 u2} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1))) (MvPolynomial.aeval.{u1, max u1 u2, u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1)) (fun (s : coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) => coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) x S))))) s)))))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommSemiring.{u2} R] {S : Set.{u1} M}, (Eq.{succ u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Submonoid.closure.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) S) (Top.top.{u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Submonoid.instTopSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u1) (succ u2), max (succ u2) (succ u1)} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (fun (_x : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (SMulHomClass.toFunLike.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (SMulZeroClass.toSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toZero.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2))))))) (SMulZeroClass.toSMul.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toZero.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, max u1 u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)) (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) (AlgHom.algHomClass.{u2, max u1 u2, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))))))) (MvPolynomial.aeval.{u2, max u2 u1, u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Set.Elem.{u1} M S) _inst_2 (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)) (fun (s : Set.Elem.{u1} M S) => FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x S) s)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closureₓ'. -/
 /-- If a set `S` generates a monoid `M`, then the image of `M` generates, as algebra,
 `monoid_algebra R M`. -/
@@ -966,10 +918,7 @@ def modulePolynomialOfEndo : Module R[X] M :=
 -/
 
 /- warning: module_polynomial_of_endo_smul_def -> modulePolynomialOfEndo_smul_def is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (f : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (n : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (a : M), Eq.{succ u2} M (SMul.smul.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MulAction.toHasSmul.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DistribMulAction.toMulAction.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (modulePolynomialOfEndo.{u1, u2} R _inst_1 M _inst_2 _inst_3 f)))) n a) (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3)) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Polynomial.aeval.{u1, u2} R (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) f) n) a)
-but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (n : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (a : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) a) (HSMul.hSMul.{u2, u1, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) a) (inferInstance.{max (succ u2) (succ u1)} ([mdata noImplicitLambda:1 HSMul.{u2, u1, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) a)]) (instHSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (SMulZeroClass.toSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.zero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (modulePolynomialOfEndo.{u2, u1} R _inst_1 M _inst_2 _inst_3 f))))))) n a) (FunLike.coe.{succ u1, succ u1, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) n) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (SMulZeroClass.toSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toZero.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribSMul.toSMulZeroClass.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toAddZeroClass.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulAction.toDistribSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (Polynomial.aeval.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) f) n) a)
+<too large>
 Case conversion may be inaccurate. Consider using '#align module_polynomial_of_endo_smul_def modulePolynomialOfEndo_smul_defₓ'. -/
 theorem modulePolynomialOfEndo_smul_def (n : R[X]) (a : M) :
     @SMul.smul (modulePolynomialOfEndo f).toSMul n a = Polynomial.aeval f n a :=
Diff
@@ -144,7 +144,7 @@ variable {R A B}
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))], (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) -> (forall (f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5), (Function.Surjective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) f)) -> (Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5))
 but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_4 : CommRing.{u1} B] [_inst_5 : Algebra.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))], (Algebra.FiniteType.{u3, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3) -> (forall (f : AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5), (Function.Surjective.{succ u3, succ u1} A B (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) R A B (SMulZeroClass.toSMul.{u2, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, u3} R A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3))))) (SMulZeroClass.toSMul.{u2, u1} R B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))))) (DistribSMul.toSMulZeroClass.{u2, u1} R B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))))) (DistribMulAction.toDistribSMul.{u2, u1} R B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)))))) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) R A B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)))))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3)) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) R A B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3)) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u3 u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5 (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) (AlgHom.algHomClass.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5))))) f)) -> (Algebra.FiniteType.{u1, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5))
+  forall {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_4 : CommRing.{u1} B] [_inst_5 : Algebra.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))], (Algebra.FiniteType.{u3, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3) -> (forall (f : AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5), (Function.Surjective.{succ u3, succ u1} A B (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) R A B (SMulZeroClass.toSMul.{u2, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, u3} R A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3))))) (SMulZeroClass.toSMul.{u2, u1} R B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))))) (DistribSMul.toSMulZeroClass.{u2, u1} R B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))))) (DistribMulAction.toDistribSMul.{u2, u1} R B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)))))) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) R A B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)))))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3)) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) R A B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3)) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u3 u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5 (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) (AlgHom.algHomClass.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5))))) f)) -> (Algebra.FiniteType.{u1, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5))
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.of_surjective Algebra.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (hRA : FiniteType R A) (f : A →ₐ[R] B) (hf : Surjective f) : FiniteType R B :=
   ⟨by
@@ -177,7 +177,7 @@ theorem trans [Algebra A B] [IsScalarTower R A B] (hRA : FiniteType R A) (hAB :
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{succ u2} (Finset.{u2} A) (fun (s : Finset.{u2} A) => Exists.{max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) f))))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (Exists.{succ u2} (Finset.{u2} A) (fun (s : Finset.{u2} A) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) 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.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u1, u2, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f))))
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (Exists.{succ u2} (Finset.{u2} A) (fun (s : Finset.{u2} A) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) 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.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u1, u2, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f))))
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial Algebra.FiniteType.iff_quotient_mvPolynomialₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a finset. -/
@@ -199,7 +199,7 @@ theorem iff_quotient_mvPolynomial :
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{succ (succ u2)} Type.{u2} (fun (ι : Type.{u2}) => Exists.{succ u2} (Fintype.{u2} ι) (fun (_x : Fintype.{u2} ι) => Exists.{max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) f)))))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (Exists.{succ (succ u2)} Type.{u2} (fun (ι : Type.{u2}) => Exists.{succ u2} (Fintype.{u2} ι) (fun (_x : Fintype.{u2} ι) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι 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.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u1, u2, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f)))))
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (Exists.{succ (succ u2)} Type.{u2} (fun (ι : Type.{u2}) => Exists.{succ u2} (Fintype.{u2} ι) (fun (_x : Fintype.{u2} ι) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι 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.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u1, u2, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f)))))
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial' Algebra.FiniteType.iff_quotient_mvPolynomial'ₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a fintype. -/
@@ -219,7 +219,7 @@ theorem iff_quotient_mvPolynomial' :
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{1} Nat (fun (n : Nat) => Exists.{max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{succ u1, succ u2} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) f))))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (Exists.{1} Nat (fun (n : Nat) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{succ u1, succ u2} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) 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} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f))))
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (Exists.{1} Nat (fun (n : Nat) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{succ u1, succ u2} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) 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} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f))))
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial'' Algebra.FiniteType.iff_quotient_mvPolynomial''ₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient of a polynomial ring in `n`
 variables. -/
@@ -470,7 +470,7 @@ theorem comp {g : B →ₐ[R] C} {f : A →ₐ[R] B} (hg : g.FiniteType) (hf : f
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {C : Type.{u4}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u4} C] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4))] {f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (Function.Surjective.{succ u3, succ u4} B C (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7) (fun (_x : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7) => B -> C) ([anonymous].{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7) g)) -> (AlgHom.FiniteType.{u1, u2, u4} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u1, u2, u3, u4} R A B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
 but is expected to have type
-  forall {R : Type.{u4}} {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : CommRing.{u1} C] [_inst_5 : Algebra.{u4, u3} R A (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_6 : Algebra.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))] {f : AlgHom.{u4, u3, u2} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u4, u3, u2} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (Function.Surjective.{succ u2, succ u1} B C (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => C) _x) (SMulHomClass.toFunLike.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) R B C (SMulZeroClass.toSMul.{u4, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u4, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u4, u2} R B (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6))))) (SMulZeroClass.toSMul.{u4, u1} R C (AddMonoid.toZero.{u1} C (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))))) (DistribSMul.toSMulZeroClass.{u4, u1} R C (AddMonoid.toAddZeroClass.{u1} C (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))))) (DistribMulAction.toDistribSMul.{u4, u1} R C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)))))) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) R B C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)))))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) R B C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u2, u1, max u2 u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7 (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) (AlgHom.algHomClass.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7))))) g)) -> (AlgHom.FiniteType.{u4, u3, u1} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u3, u2, u1} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
+  forall {R : Type.{u4}} {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : CommRing.{u1} C] [_inst_5 : Algebra.{u4, u3} R A (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_6 : Algebra.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))] {f : AlgHom.{u4, u3, u2} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u4, u3, u2} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (Function.Surjective.{succ u2, succ u1} B C (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => C) _x) (SMulHomClass.toFunLike.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) R B C (SMulZeroClass.toSMul.{u4, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u4, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u4, u2} R B (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6))))) (SMulZeroClass.toSMul.{u4, u1} R C (AddMonoid.toZero.{u1} C (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))))) (DistribSMul.toSMulZeroClass.{u4, u1} R C (AddMonoid.toAddZeroClass.{u1} C (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))))) (DistribMulAction.toDistribSMul.{u4, u1} R C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)))))) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) R B C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)))))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) R B C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u2, u1, max u2 u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7 (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) (AlgHom.algHomClass.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7))))) g)) -> (AlgHom.FiniteType.{u4, u3, u1} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u3, u2, u1} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
 Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.comp_surjective AlgHom.FiniteType.comp_surjectiveₓ'. -/
 theorem comp_surjective {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.FiniteType) (hg : Surjective g) :
     (g.comp f).FiniteType :=
@@ -481,7 +481,7 @@ theorem comp_surjective {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.FiniteTy
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] (f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6), (Function.Surjective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) f)) -> (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
 but is expected to have type
-  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_5 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_6 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] (f : AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6), (Function.Surjective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (SMulZeroClass.toSMul.{u3, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u3, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u3, u2} R A (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toSMul.{u3, u1} R B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u3, u1} R B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u3, u1} R B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))))) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6 (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) (AlgHom.algHomClass.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6))))) f)) -> (AlgHom.FiniteType.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
+  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_5 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_6 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] (f : AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6), (Function.Surjective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (SMulZeroClass.toSMul.{u3, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u3, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u3, u2} R A (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toSMul.{u3, u1} R B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u3, u1} R B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u3, u1} R B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))))) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6 (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) (AlgHom.algHomClass.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6))))) f)) -> (AlgHom.FiniteType.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
 Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.of_surjective AlgHom.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (f : A →ₐ[R] B) (hf : Surjective f) : f.FiniteType :=
   RingHom.FiniteType.of_surjective f hf
@@ -646,7 +646,7 @@ variable [AddCommMonoid M]
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommSemiring.{u1} R] {S : Set.{u2} M}, (Eq.{succ u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (AddSubmonoid.closure.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) S) (Top.top.{u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (AddSubmonoid.hasTop.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeFn.{succ (max u2 u1), succ (max u2 u1)} (AlgHom.{u1, max u2 u1, max u2 u1} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (fun (_x : AlgHom.{u1, max u2 u1, max u2 u1} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) => (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) -> (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2))) ([anonymous].{u1, max u2 u1, max u2 u1} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (MvPolynomial.aeval.{u1, max u2 u1, u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 (AddMonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (fun (s : coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) => AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) x S))))) s)))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommSemiring.{u2} R] {S : Set.{u1} M}, (Eq.{succ u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddSubmonoid.closure.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) S) (Top.top.{u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddSubmonoid.instTopAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u1) (succ u2), max (succ u2) (succ u1)} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (fun (_x : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (SMulHomClass.toFunLike.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (SMulZeroClass.toSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toZero.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2))))))) (SMulZeroClass.toSMul.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toZero.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, max u1 u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AlgHom.algHomClass.{u2, max u1 u2, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))))))) (MvPolynomial.aeval.{u2, max u2 u1, u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Set.Elem.{u1} M S) _inst_2 (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (fun (s : Set.Elem.{u1} M S) => AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x S) s)))))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommSemiring.{u2} R] {S : Set.{u1} M}, (Eq.{succ u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddSubmonoid.closure.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) S) (Top.top.{u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddSubmonoid.instTopAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u1) (succ u2), max (succ u2) (succ u1)} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (fun (_x : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (SMulHomClass.toFunLike.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (SMulZeroClass.toSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toZero.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2))))))) (SMulZeroClass.toSMul.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toZero.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, max u1 u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AlgHom.algHomClass.{u2, max u1 u2, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))))))) (MvPolynomial.aeval.{u2, max u2 u1, u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Set.Elem.{u1} M S) _inst_2 (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (fun (s : Set.Elem.{u1} M S) => AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x S) s)))))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure AddMonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closureₓ'. -/
 /-- If a set `S` generates an additive monoid `M`, then the image of `M` generates, as algebra,
 `add_monoid_algebra R M`. -/
@@ -873,7 +873,7 @@ variable [CommMonoid M]
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommSemiring.{u1} R] {S : Set.{u2} M}, (Eq.{succ u2} (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))) (Submonoid.closure.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) S) (Top.top.{u2} (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))) (Submonoid.hasTop.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), succ (max u1 u2)} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeFn.{max (succ (max u2 u1)) (succ (max u1 u2)), max (succ (max u2 u1)) (succ (max u1 u2))} (AlgHom.{u1, max u2 u1, max u1 u2} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1))) (fun (_x : AlgHom.{u1, max u2 u1, max u1 u2} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1))) => (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2))) ([anonymous].{u1, max u2 u1, max u1 u2} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1))) (MvPolynomial.aeval.{u1, max u1 u2, u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1)) (fun (s : coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) => coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) x S))))) s)))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommSemiring.{u2} R] {S : Set.{u1} M}, (Eq.{succ u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Submonoid.closure.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) S) (Top.top.{u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Submonoid.instTopSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u1) (succ u2), max (succ u2) (succ u1)} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (fun (_x : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (SMulHomClass.toFunLike.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (SMulZeroClass.toSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toZero.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2))))))) (SMulZeroClass.toSMul.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toZero.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, max u1 u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)) (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) (AlgHom.algHomClass.{u2, max u1 u2, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))))))) (MvPolynomial.aeval.{u2, max u2 u1, u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Set.Elem.{u1} M S) _inst_2 (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)) (fun (s : Set.Elem.{u1} M S) => FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x S) s)))))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommSemiring.{u2} R] {S : Set.{u1} M}, (Eq.{succ u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Submonoid.closure.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) S) (Top.top.{u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Submonoid.instTopSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u1) (succ u2), max (succ u2) (succ u1)} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (fun (_x : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (SMulHomClass.toFunLike.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (SMulZeroClass.toSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toZero.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2))))))) (SMulZeroClass.toSMul.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toZero.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, max u1 u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)) (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) (AlgHom.algHomClass.{u2, max u1 u2, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))))))) (MvPolynomial.aeval.{u2, max u2 u1, u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Set.Elem.{u1} M S) _inst_2 (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)) (fun (s : Set.Elem.{u1} M S) => FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x S) s)))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closureₓ'. -/
 /-- If a set `S` generates a monoid `M`, then the image of `M` generates, as algebra,
 `monoid_algebra R M`. -/
@@ -969,7 +969,7 @@ def modulePolynomialOfEndo : Module R[X] M :=
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (f : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (n : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (a : M), Eq.{succ u2} M (SMul.smul.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MulAction.toHasSmul.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DistribMulAction.toMulAction.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (modulePolynomialOfEndo.{u1, u2} R _inst_1 M _inst_2 _inst_3 f)))) n a) (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3)) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Polynomial.aeval.{u1, u2} R (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) f) n) a)
 but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (n : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (a : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) a) (HSMul.hSMul.{u2, u1, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) a) (inferInstance.{max (succ u2) (succ u1)} ([mdata noImplicitLambda:1 HSMul.{u2, u1, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) a)]) (instHSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (SMulZeroClass.toSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.zero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (modulePolynomialOfEndo.{u2, u1} R _inst_1 M _inst_2 _inst_3 f))))))) n a) (FunLike.coe.{succ u1, succ u1, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) n) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (SMulZeroClass.toSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toZero.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribSMul.toSMulZeroClass.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toAddZeroClass.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulAction.toDistribSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (Polynomial.aeval.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) f) n) a)
+  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (n : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (a : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) a) (HSMul.hSMul.{u2, u1, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) a) (inferInstance.{max (succ u2) (succ u1)} ([mdata noImplicitLambda:1 HSMul.{u2, u1, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) a)]) (instHSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (SMulZeroClass.toSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.zero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (modulePolynomialOfEndo.{u2, u1} R _inst_1 M _inst_2 _inst_3 f))))))) n a) (FunLike.coe.{succ u1, succ u1, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) n) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (SMulZeroClass.toSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toZero.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribSMul.toSMulZeroClass.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toAddZeroClass.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulAction.toDistribSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (Polynomial.aeval.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) f) n) a)
 Case conversion may be inaccurate. Consider using '#align module_polynomial_of_endo_smul_def modulePolynomialOfEndo_smul_defₓ'. -/
 theorem modulePolynomialOfEndo_smul_def (n : R[X]) (a : M) :
     @SMul.smul (modulePolynomialOfEndo f).toSMul n a = Polynomial.aeval f n a :=
@@ -1005,7 +1005,7 @@ open Polynomial Module
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (f : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) [hfg : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3], (Function.Surjective.{succ u2, succ u2} M M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) f)) -> (Function.Injective.{succ u2, succ u2} M M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) f))
 but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) [hfg : Module.Finite.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3], (Function.Surjective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) f)) -> (Function.Injective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) f))
+  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) [hfg : Module.Finite.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3], (Function.Surjective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) f)) -> (Function.Injective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) f))
 Case conversion may be inaccurate. Consider using '#align module.finite.injective_of_surjective_endomorphism Module.Finite.injective_of_surjective_endomorphismₓ'. -/
 /-- A theorem/proof by Vasconcelos, given a finite module `M` over a commutative ring, any
 surjective endomorphism of `M` is also injective. Based on,
Diff
@@ -272,7 +272,7 @@ theorem isNoetherianRing (R S : Type _) [CommRing R] [CommRing S] [Algebra R S]
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} [_inst_10 : CommSemiring.{u1} R] [_inst_11 : Semiring.{u2} A] [_inst_12 : Algebra.{u1, u2} R A _inst_10 _inst_11] (S : Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12), Iff (Subalgebra.FG.{u1, u2} R A _inst_10 _inst_11 _inst_12 S) (Algebra.FiniteType.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12) A (Subalgebra.setLike.{u1, u2} R A _inst_10 _inst_11 _inst_12)) S) _inst_10 (Subalgebra.toSemiring.{u1, u2} R A _inst_10 _inst_11 _inst_12 S) (Subalgebra.algebra.{u1, u2} R A _inst_10 _inst_11 _inst_12 S))
 but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_10 : CommSemiring.{u2} R] [_inst_11 : Semiring.{u1} A] [_inst_12 : Algebra.{u2, u1} R A _inst_10 _inst_11] (S : Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12), Iff (Subalgebra.FG.{u2, u1} R A _inst_10 _inst_11 _inst_12 S) (Algebra.FiniteType.{u1, u2} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12)) x S)) _inst_10 (Subalgebra.toSemiring.{u2, u1} R A _inst_10 _inst_11 _inst_12 S) (Subalgebra.instAlgebraSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebraToSemiring.{u2, u1} R A _inst_10 _inst_11 _inst_12 S))
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_10 : CommSemiring.{u2} R] [_inst_11 : Semiring.{u1} A] [_inst_12 : Algebra.{u2, u1} R A _inst_10 _inst_11] (S : Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12), Iff (Subalgebra.FG.{u2, u1} R A _inst_10 _inst_11 _inst_12 S) (Algebra.FiniteType.{u1, u2} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12)) x S)) _inst_10 (Subalgebra.toSemiring.{u2, u1} R A _inst_10 _inst_11 _inst_12 S) (Subalgebra.algebra.{u2, u1} R A _inst_10 _inst_11 _inst_12 S))
 Case conversion may be inaccurate. Consider using '#align subalgebra.fg_iff_finite_type Subalgebra.fg_iff_finiteTypeₓ'. -/
 theorem Subalgebra.fg_iff_finiteType {R A : Type _} [CommSemiring R] [Semiring A] [Algebra R A]
     (S : Subalgebra R A) : S.FG ↔ Algebra.FiniteType R S :=
Diff
@@ -328,7 +328,7 @@ variable {A}
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u2}} {C : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u3} C] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))} {g : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))}, (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f) -> (Function.Surjective.{succ u2, succ u3} B C (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))) (fun (_x : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))) => B -> C) (RingHom.hasCoeToFun.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))) g)) -> (RingHom.FiniteType.{u1, u3} A C _inst_1 _inst_3 (RingHom.comp.{u1, u2, u3} A B C (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3))) g f))
 but is expected to have type
-  forall {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u1} C] {f : RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2)))} {g : RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))}, (RingHom.FiniteType.{u3, u2} A B _inst_1 _inst_2 f) -> (Function.Surjective.{succ u2, succ u1} B C (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : B) => C) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B C (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))))))) g)) -> (RingHom.FiniteType.{u3, u1} A C _inst_1 _inst_3 (RingHom.comp.{u3, u2, u1} A B C (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))) g f))
+  forall {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u1} C] {f : RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2)))} {g : RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))}, (RingHom.FiniteType.{u3, u2} A B _inst_1 _inst_2 f) -> (Function.Surjective.{succ u2, succ u1} B C (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => C) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B C (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))))))) g)) -> (RingHom.FiniteType.{u3, u1} A C _inst_1 _inst_3 (RingHom.comp.{u3, u2, u1} A B C (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))) g f))
 Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.comp_surjective RingHom.FiniteType.comp_surjectiveₓ'. -/
 theorem comp_surjective {f : A →+* B} {g : B →+* C} (hf : f.FiniteType) (hg : Surjective g) :
     (g.comp f).FiniteType :=
@@ -343,7 +343,7 @@ theorem comp_surjective {f : A →+* B} {g : B →+* C} (hf : f.FiniteType) (hg
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] (f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))), (Function.Surjective.{succ u1, succ u2} A B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) (fun (_x : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) => A -> B) (RingHom.hasCoeToFun.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) f)) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f)
 but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] (f : RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))), (Function.Surjective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : A) => B) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))) (RingHom.instRingHomClassRingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))))))) f)) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] (f : RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))), (Function.Surjective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => B) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))) (RingHom.instRingHomClassRingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))))))) f)) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
 Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.of_surjective RingHom.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (f : A →+* B) (hf : Surjective f) : f.FiniteType :=
   by
@@ -754,7 +754,7 @@ variable [CommSemiring R] [Monoid M]
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)), Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (SetLike.hasMem.{max u1 u2, max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Subalgebra.setLike.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))) f (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommSemiring.{u2} R] [_inst_2 : Monoid.{u1} M] (f : MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)), Membership.mem.{max u2 u1, max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Subalgebra.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2)) (SetLike.instMembership.{max u2 u1, max u2 u1} (Subalgebra.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2)) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Subalgebra.instSetLikeSubalgebra.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2))) f (Algebra.adjoin.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_2)) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2)))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))) (Finset.toSet.{u1} M (Finsupp.support.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) f))))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommSemiring.{u2} R] [_inst_2 : Monoid.{u1} M] (f : MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)), Membership.mem.{max u2 u1, max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Subalgebra.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2)) (SetLike.instMembership.{max u2 u1, max u2 u1} (Subalgebra.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2)) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Subalgebra.instSetLikeSubalgebra.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2))) f (Algebra.adjoin.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_2)) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2)))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))) (Finset.toSet.{u1} M (Finsupp.support.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) f))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.mem_adjoin_support MonoidAlgebra.mem_adjoin_supportₓ'. -/
 /-- An element of `monoid_algebra R M` is in the subalgebra generated by its support. -/
 theorem mem_adjoin_support (f : MonoidAlgebra R M) : f ∈ adjoin R (of R M '' f.support) :=
@@ -769,7 +769,7 @@ theorem mem_adjoin_support (f : MonoidAlgebra R M) : f ∈ adjoin R (of R M '' f
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.iUnion.{max u1 u2, succ (max u1 u2)} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{max u1 u2, 0} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.iUnion.{max u1 u2, succ (max u1 u2)} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{max u1 u2, 0} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.iUnion.{max u1 u2, succ (max u1 u2)} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{max u1 u2, 0} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.support_gen_of_gen MonoidAlgebra.support_gen_of_genₓ'. -/
 /-- If a set `S` generates, as algebra, `monoid_algebra R M`, then the set of supports of elements
 of `S` generates `monoid_algebra R M`. -/
@@ -790,7 +790,7 @@ theorem support_gen_of_gen {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Set.iUnion.{u2, succ (max u1 u2)} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{u2, 0} M (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Set.iUnion.{u2, succ (max u1 u2)} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{u2, 0} M (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Set.iUnion.{u2, succ (max u1 u2)} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{u2, 0} M (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.support_gen_of_gen' MonoidAlgebra.support_gen_of_gen'ₓ'. -/
 /-- If a set `S` generates, as algebra, `monoid_algebra R M`, then the image of the union of the
 supports of elements of `S` generates `monoid_algebra R M`. -/
@@ -814,7 +814,7 @@ variable [CommRing R] [CommMonoid M]
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [h : Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [h : Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) (Finset.toSet.{u2} M G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [h : Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) (Finset.toSet.{u2} M G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.exists_finset_adjoin_eq_top MonoidAlgebra.exists_finset_adjoin_eq_topₓ'. -/
 /-- If `monoid_algebra R M` is of finite type, there there is a `G : finset M` such that its image
 generates, as algera, `monoid_algebra R M`. -/
@@ -834,7 +834,7 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) m) (Submodule.span.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) S))) (Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) m S)
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, Iff (Membership.mem.{max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) m) (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) m) (Submodule.span.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) S))) (Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) m S)
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, Iff (Membership.mem.{max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) m) (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) m) (Submodule.span.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) S))) (Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) m S)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.of_mem_span_of_iff MonoidAlgebra.of_mem_span_of_iffₓ'. -/
 /-- The image of an element `m : M` in `monoid_algebra R M` belongs the submodule generated by
 `S : set M` if and only if `m ∈ S`. -/
@@ -851,7 +851,7 @@ theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) m) (Submodule.span.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.Set.hasCoeT.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submonoid.setLike.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))))))) (Submonoid.closure.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) S))))) -> (Membership.Mem.{u2, u2} M (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) M (Submonoid.setLike.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) m (Submonoid.closure.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) S))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, (Membership.mem.{max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) m) (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) m) (Submodule.span.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (Submonoid.closure.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) S))))) -> (Membership.mem.{u1, u1} M (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) M (Submonoid.instSetLikeSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) m (Submonoid.closure.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) S))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, (Membership.mem.{max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) m) (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) m) (Submodule.span.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (Submonoid.closure.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) S))))) -> (Membership.mem.{u1, u1} M (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) M (Submonoid.instSetLikeSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) m (Submonoid.closure.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) S))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.mem_closure_of_mem_span_closure MonoidAlgebra.mem_closure_of_mem_span_closureₓ'. -/
 /--
 If the image of an element `m : M` in `monoid_algebra R M` belongs the submodule generated by the
@@ -873,7 +873,7 @@ variable [CommMonoid M]
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommSemiring.{u1} R] {S : Set.{u2} M}, (Eq.{succ u2} (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))) (Submonoid.closure.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) S) (Top.top.{u2} (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))) (Submonoid.hasTop.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), succ (max u1 u2)} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeFn.{max (succ (max u2 u1)) (succ (max u1 u2)), max (succ (max u2 u1)) (succ (max u1 u2))} (AlgHom.{u1, max u2 u1, max u1 u2} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1))) (fun (_x : AlgHom.{u1, max u2 u1, max u1 u2} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1))) => (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2))) ([anonymous].{u1, max u2 u1, max u1 u2} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1))) (MvPolynomial.aeval.{u1, max u1 u2, u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1)) (fun (s : coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) => coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) x S))))) s)))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommSemiring.{u2} R] {S : Set.{u1} M}, (Eq.{succ u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Submonoid.closure.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) S) (Top.top.{u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Submonoid.instTopSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u1) (succ u2), max (succ u2) (succ u1)} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (fun (_x : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (SMulHomClass.toFunLike.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (SMulZeroClass.toSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toZero.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2))))))) (SMulZeroClass.toSMul.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toZero.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, max u1 u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)) (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) (AlgHom.algHomClass.{u2, max u1 u2, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))))))) (MvPolynomial.aeval.{u2, max u2 u1, u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Set.Elem.{u1} M S) _inst_2 (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)) (fun (s : Set.Elem.{u1} M S) => FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x S) s)))))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommSemiring.{u2} R] {S : Set.{u1} M}, (Eq.{succ u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Submonoid.closure.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) S) (Top.top.{u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Submonoid.instTopSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u1) (succ u2), max (succ u2) (succ u1)} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (fun (_x : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (SMulHomClass.toFunLike.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (SMulZeroClass.toSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toZero.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2))))))) (SMulZeroClass.toSMul.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toZero.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, max u1 u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)) (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) (AlgHom.algHomClass.{u2, max u1 u2, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))))))) (MvPolynomial.aeval.{u2, max u2 u1, u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Set.Elem.{u1} M S) _inst_2 (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)) (fun (s : Set.Elem.{u1} M S) => FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x S) s)))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closureₓ'. -/
 /-- If a set `S` generates a monoid `M`, then the image of `M` generates, as algebra,
 `monoid_algebra R M`. -/
Diff
@@ -969,7 +969,7 @@ def modulePolynomialOfEndo : Module R[X] M :=
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (f : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (n : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (a : M), Eq.{succ u2} M (SMul.smul.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MulAction.toHasSmul.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DistribMulAction.toMulAction.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (modulePolynomialOfEndo.{u1, u2} R _inst_1 M _inst_2 _inst_3 f)))) n a) (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3)) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Polynomial.aeval.{u1, u2} R (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) f) n) a)
 but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (n : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (a : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a) (HSMul.hSMul.{u2, u1, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a) (inferInstance.{max (succ u2) (succ u1)} ([mdata noImplicitLambda:1 HSMul.{u2, u1, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a)]) (instHSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (SMulZeroClass.toSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.zero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (modulePolynomialOfEndo.{u2, u1} R _inst_1 M _inst_2 _inst_3 f))))))) n a) (FunLike.coe.{succ u1, succ u1, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) n) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (SMulZeroClass.toSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toZero.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribSMul.toSMulZeroClass.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toAddZeroClass.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulAction.toDistribSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (Polynomial.aeval.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) f) n) a)
+  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (n : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (a : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) a) (HSMul.hSMul.{u2, u1, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) a) (inferInstance.{max (succ u2) (succ u1)} ([mdata noImplicitLambda:1 HSMul.{u2, u1, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) a)]) (instHSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (SMulZeroClass.toSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.zero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (modulePolynomialOfEndo.{u2, u1} R _inst_1 M _inst_2 _inst_3 f))))))) n a) (FunLike.coe.{succ u1, succ u1, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) n) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (SMulZeroClass.toSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toZero.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribSMul.toSMulZeroClass.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toAddZeroClass.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulAction.toDistribSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (Polynomial.aeval.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) f) n) a)
 Case conversion may be inaccurate. Consider using '#align module_polynomial_of_endo_smul_def modulePolynomialOfEndo_smul_defₓ'. -/
 theorem modulePolynomialOfEndo_smul_def (n : R[X]) (a : M) :
     @SMul.smul (modulePolynomialOfEndo f).toSMul n a = Polynomial.aeval f n a :=
@@ -1005,7 +1005,7 @@ open Polynomial Module
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (f : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) [hfg : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3], (Function.Surjective.{succ u2, succ u2} M M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) f)) -> (Function.Injective.{succ u2, succ u2} M M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) f))
 but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) [hfg : Module.Finite.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3], (Function.Surjective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) f)) -> (Function.Injective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) f))
+  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) [hfg : Module.Finite.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3], (Function.Surjective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) f)) -> (Function.Injective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) f))
 Case conversion may be inaccurate. Consider using '#align module.finite.injective_of_surjective_endomorphism Module.Finite.injective_of_surjective_endomorphismₓ'. -/
 /-- A theorem/proof by Vasconcelos, given a finite module `M` over a commutative ring, any
 surjective endomorphism of `M` is also injective. Based on,
Diff
@@ -46,7 +46,7 @@ Case conversion may be inaccurate. Consider using '#align algebra.finite_type Al
 /-- An algebra over a commutative semiring is of `finite_type` if it is finitely generated
 over the base ring as algebra. -/
 class Algebra.FiniteType [CommSemiring R] [Semiring A] [Algebra R A] : Prop where
-  out : (⊤ : Subalgebra R A).Fg
+  out : (⊤ : Subalgebra R A).FG
 #align algebra.finite_type Algebra.FiniteType
 
 namespace Module
@@ -270,12 +270,12 @@ theorem isNoetherianRing (R S : Type _) [CommRing R] [CommRing S] [Algebra R S]
 
 /- warning: subalgebra.fg_iff_finite_type -> Subalgebra.fg_iff_finiteType is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_10 : CommSemiring.{u1} R] [_inst_11 : Semiring.{u2} A] [_inst_12 : Algebra.{u1, u2} R A _inst_10 _inst_11] (S : Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12), Iff (Subalgebra.Fg.{u1, u2} R A _inst_10 _inst_11 _inst_12 S) (Algebra.FiniteType.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12) A (Subalgebra.setLike.{u1, u2} R A _inst_10 _inst_11 _inst_12)) S) _inst_10 (Subalgebra.toSemiring.{u1, u2} R A _inst_10 _inst_11 _inst_12 S) (Subalgebra.algebra.{u1, u2} R A _inst_10 _inst_11 _inst_12 S))
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_10 : CommSemiring.{u1} R] [_inst_11 : Semiring.{u2} A] [_inst_12 : Algebra.{u1, u2} R A _inst_10 _inst_11] (S : Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12), Iff (Subalgebra.FG.{u1, u2} R A _inst_10 _inst_11 _inst_12 S) (Algebra.FiniteType.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12) A (Subalgebra.setLike.{u1, u2} R A _inst_10 _inst_11 _inst_12)) S) _inst_10 (Subalgebra.toSemiring.{u1, u2} R A _inst_10 _inst_11 _inst_12 S) (Subalgebra.algebra.{u1, u2} R A _inst_10 _inst_11 _inst_12 S))
 but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_10 : CommSemiring.{u2} R] [_inst_11 : Semiring.{u1} A] [_inst_12 : Algebra.{u2, u1} R A _inst_10 _inst_11] (S : Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12), Iff (Subalgebra.Fg.{u2, u1} R A _inst_10 _inst_11 _inst_12 S) (Algebra.FiniteType.{u1, u2} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12)) x S)) _inst_10 (Subalgebra.toSemiring.{u2, u1} R A _inst_10 _inst_11 _inst_12 S) (Subalgebra.instAlgebraSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebraToSemiring.{u2, u1} R A _inst_10 _inst_11 _inst_12 S))
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_10 : CommSemiring.{u2} R] [_inst_11 : Semiring.{u1} A] [_inst_12 : Algebra.{u2, u1} R A _inst_10 _inst_11] (S : Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12), Iff (Subalgebra.FG.{u2, u1} R A _inst_10 _inst_11 _inst_12 S) (Algebra.FiniteType.{u1, u2} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12)) x S)) _inst_10 (Subalgebra.toSemiring.{u2, u1} R A _inst_10 _inst_11 _inst_12 S) (Subalgebra.instAlgebraSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebraToSemiring.{u2, u1} R A _inst_10 _inst_11 _inst_12 S))
 Case conversion may be inaccurate. Consider using '#align subalgebra.fg_iff_finite_type Subalgebra.fg_iff_finiteTypeₓ'. -/
 theorem Subalgebra.fg_iff_finiteType {R A : Type _} [CommSemiring R] [Semiring A] [Algebra R A]
-    (S : Subalgebra R A) : S.Fg ↔ Algebra.FiniteType R S :=
+    (S : Subalgebra R A) : S.FG ↔ Algebra.FiniteType R S :=
   S.fg_top.symm.trans ⟨fun h => ⟨h⟩, fun h => h.out⟩
 #align subalgebra.fg_iff_finite_type Subalgebra.fg_iff_finiteType
 
@@ -676,13 +676,13 @@ variable (R M)
 
 /- warning: add_monoid_algebra.finite_type_of_fg -> AddMonoidAlgebra.finiteType_of_fg is a dubious translation:
 lean 3 declaration is
-  forall (R : Type.{u1}) (M : Type.{u2}) [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [h : AddMonoid.Fg.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)], Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
+  forall (R : Type.{u1}) (M : Type.{u2}) [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [h : AddMonoid.FG.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)], Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
 but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [h : AddMonoid.Fg.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)], Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
+  forall (R : Type.{u1}) (M : Type.{u2}) [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [h : AddMonoid.FG.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)], Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.finite_type_of_fg AddMonoidAlgebra.finiteType_of_fgₓ'. -/
 /-- If an additive monoid `M` is finitely generated then `add_monoid_algebra R M` is of finite
 type. -/
-instance finiteType_of_fg [CommRing R] [h : AddMonoid.Fg M] : FiniteType R (AddMonoidAlgebra R M) :=
+instance finiteType_of_fg [CommRing R] [h : AddMonoid.FG M] : FiniteType R (AddMonoidAlgebra R M) :=
   by
   obtain ⟨S, hS⟩ := h.out
   exact
@@ -695,14 +695,14 @@ variable {R M}
 
 /- warning: add_monoid_algebra.finite_type_iff_fg -> AddMonoidAlgebra.finiteType_iff_fg is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (AddMonoid.Fg.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (AddMonoid.FG.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R], Iff (Algebra.FiniteType.{max u1 u2, u2} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddMonoid.Fg.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R], Iff (Algebra.FiniteType.{max u1 u2, u2} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddMonoid.FG.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.finite_type_iff_fg AddMonoidAlgebra.finiteType_iff_fgₓ'. -/
 /-- An additive monoid `M` is finitely generated if and only if `add_monoid_algebra R M` is of
 finite type. -/
 theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
-    FiniteType R (AddMonoidAlgebra R M) ↔ AddMonoid.Fg M :=
+    FiniteType R (AddMonoidAlgebra R M) ↔ AddMonoid.FG M :=
   by
   refine' ⟨fun h => _, fun h => @AddMonoidAlgebra.finiteType_of_fg _ _ _ _ h⟩
   obtain ⟨S, hS⟩ := @exists_finset_adjoin_eq_top R M _ _ h
@@ -715,26 +715,26 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
 
 /- warning: add_monoid_algebra.fg_of_finite_type -> AddMonoidAlgebra.fg_of_finiteType is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R] [h : Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))], AddMonoid.Fg.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R] [h : Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))], AddMonoid.FG.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R] [h : Algebra.FiniteType.{max u1 u2, u2} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))], AddMonoid.Fg.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1)
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R] [h : Algebra.FiniteType.{max u1 u2, u2} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))], AddMonoid.FG.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.fg_of_finite_type AddMonoidAlgebra.fg_of_finiteTypeₓ'. -/
 /-- If `add_monoid_algebra R M` is of finite type then `M` is finitely generated. -/
 theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (AddMonoidAlgebra R M)] :
-    AddMonoid.Fg M :=
+    AddMonoid.FG M :=
   finiteType_iff_fg.1 h
 #align add_monoid_algebra.fg_of_finite_type AddMonoidAlgebra.fg_of_finiteType
 
 /- warning: add_monoid_algebra.finite_type_iff_group_fg -> AddMonoidAlgebra.finiteType_iff_group_fg is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (AddMonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2)))) (AddMonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))))) (AddGroup.Fg.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))
+  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (AddMonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2)))) (AddMonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))))) (AddGroup.FG.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))
 but is expected to have type
-  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (AddMonoidAlgebra.semiring.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2)))) (AddMonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))))) (AddGroup.Fg.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))
+  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (AddMonoidAlgebra.semiring.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2)))) (AddMonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))))) (AddGroup.FG.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.finite_type_iff_group_fg AddMonoidAlgebra.finiteType_iff_group_fgₓ'. -/
 /-- An additive group `G` is finitely generated if and only if `add_monoid_algebra R G` is of
 finite type. -/
 theorem finiteType_iff_group_fg {G : Type _} [AddCommGroup G] [CommRing R] [Nontrivial R] :
-    FiniteType R (AddMonoidAlgebra R G) ↔ AddGroup.Fg G := by
+    FiniteType R (AddMonoidAlgebra R G) ↔ AddGroup.FG G := by
   simpa [AddGroup.fg_iff_addMonoid_fg] using finite_type_iff_fg
 #align add_monoid_algebra.finite_type_iff_group_fg AddMonoidAlgebra.finiteType_iff_group_fg
 
@@ -899,24 +899,24 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
 
 /- warning: monoid_algebra.finite_type_of_fg -> MonoidAlgebra.finiteType_of_fg is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Monoid.Fg.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)], Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Monoid.FG.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)], Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Monoid.Fg.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)], Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Monoid.FG.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)], Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.finite_type_of_fg MonoidAlgebra.finiteType_of_fgₓ'. -/
 /-- If a monoid `M` is finitely generated then `monoid_algebra R M` is of finite type. -/
-instance finiteType_of_fg [CommRing R] [Monoid.Fg M] : FiniteType R (MonoidAlgebra R M) :=
+instance finiteType_of_fg [CommRing R] [Monoid.FG M] : FiniteType R (MonoidAlgebra R M) :=
   (AddMonoidAlgebra.finiteType_of_fg R (Additive M)).Equiv (toAdditiveAlgEquiv R M).symm
 #align monoid_algebra.finite_type_of_fg MonoidAlgebra.finiteType_of_fg
 
 /- warning: monoid_algebra.finite_type_iff_fg -> MonoidAlgebra.finiteType_iff_fg is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))) (Monoid.Fg.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))) (Monoid.FG.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R], Iff (Algebra.FiniteType.{max u1 u2, u2} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1))) (Monoid.Fg.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R], Iff (Algebra.FiniteType.{max u1 u2, u2} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1))) (Monoid.FG.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.finite_type_iff_fg MonoidAlgebra.finiteType_iff_fgₓ'. -/
 /-- A monoid `M` is finitely generated if and only if `monoid_algebra R M` is of finite type. -/
 theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
-    FiniteType R (MonoidAlgebra R M) ↔ Monoid.Fg M :=
+    FiniteType R (MonoidAlgebra R M) ↔ Monoid.FG M :=
   ⟨fun h =>
     Monoid.fg_iff_add_fg.2 <|
       AddMonoidAlgebra.finiteType_iff_fg.1 <| h.Equiv <| toAdditiveAlgEquiv R M,
@@ -925,25 +925,25 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
 
 /- warning: monoid_algebra.fg_of_finite_type -> MonoidAlgebra.fg_of_finiteType is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R] [h : Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))], Monoid.Fg.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R] [h : Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))], Monoid.FG.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R] [h : Algebra.FiniteType.{max u1 u2, u2} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1))], Monoid.Fg.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R] [h : Algebra.FiniteType.{max u1 u2, u2} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1))], Monoid.FG.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.fg_of_finite_type MonoidAlgebra.fg_of_finiteTypeₓ'. -/
 /-- If `monoid_algebra R M` is of finite type then `M` is finitely generated. -/
 theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (MonoidAlgebra R M)] :
-    Monoid.Fg M :=
+    Monoid.FG M :=
   finiteType_iff_fg.1 h
 #align monoid_algebra.fg_of_finite_type MonoidAlgebra.fg_of_finiteType
 
 /- warning: monoid_algebra.finite_type_iff_group_fg -> MonoidAlgebra.finiteType_iff_group_fg is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : CommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (MonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2)))) (MonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2))))) (Group.Fg.{u2} G (CommGroup.toGroup.{u2} G _inst_2))
+  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : CommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (MonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2)))) (MonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2))))) (Group.FG.{u2} G (CommGroup.toGroup.{u2} G _inst_2))
 but is expected to have type
-  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : CommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (MonoidAlgebra.semiring.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2)))) (MonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2))))) (Group.Fg.{u2} G (CommGroup.toGroup.{u2} G _inst_2))
+  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : CommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (MonoidAlgebra.semiring.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2)))) (MonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2))))) (Group.FG.{u2} G (CommGroup.toGroup.{u2} G _inst_2))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.finite_type_iff_group_fg MonoidAlgebra.finiteType_iff_group_fgₓ'. -/
 /-- A group `G` is finitely generated if and only if `add_monoid_algebra R G` is of finite type. -/
 theorem finiteType_iff_group_fg {G : Type _} [CommGroup G] [CommRing R] [Nontrivial R] :
-    FiniteType R (MonoidAlgebra R G) ↔ Group.Fg G := by
+    FiniteType R (MonoidAlgebra R G) ↔ Group.FG G := by
   simpa [Group.fg_iff_monoid_fg] using finite_type_iff_fg
 #align monoid_algebra.finite_type_iff_group_fg MonoidAlgebra.finiteType_iff_group_fg
 
Diff
@@ -533,9 +533,9 @@ theorem mem_adjoin_support (f : AddMonoidAlgebra R M) : f ∈ adjoin R (of' R M
 
 /- warning: add_monoid_algebra.support_gen_of_gen -> AddMonoidAlgebra.support_gen_of_gen is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.unionᵢ.{max u2 u1, succ (max u2 u1)} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.iUnion.{max u2 u1, succ (max u2 u1)} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.unionᵢ.{max u1 u2, succ (max u1 u2)} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.iUnion.{max u1 u2, succ (max u1 u2)} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.support_gen_of_gen AddMonoidAlgebra.support_gen_of_genₓ'. -/
 /-- If a set `S` generates, as algebra, `add_monoid_algebra R M`, then the set of supports of
 elements of `S` generates `add_monoid_algebra R M`. -/
@@ -549,15 +549,15 @@ theorem support_gen_of_gen {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin
     of' R M '' f.support ⊆ ⋃ (g : AddMonoidAlgebra R M) (H : g ∈ S), of' R M '' g.support :=
     by
     intro s hs
-    exact Set.mem_unionᵢ₂.2 ⟨f, ⟨hf, hs⟩⟩
+    exact Set.mem_iUnion₂.2 ⟨f, ⟨hf, hs⟩⟩
   exact adjoin_mono hincl (mem_adjoin_support f)
 #align add_monoid_algebra.support_gen_of_gen AddMonoidAlgebra.support_gen_of_gen
 
 /- warning: add_monoid_algebra.support_gen_of_gen' -> AddMonoidAlgebra.support_gen_of_gen' is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.unionᵢ.{u2, succ (max u2 u1)} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{u2, 0} M (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.iUnion.{u2, succ (max u2 u1)} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{u2, 0} M (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.unionᵢ.{u2, succ (max u1 u2)} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{u2, 0} M (Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.iUnion.{u2, succ (max u1 u2)} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{u2, 0} M (Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.support_gen_of_gen' AddMonoidAlgebra.support_gen_of_gen'ₓ'. -/
 /-- If a set `S` generates, as algebra, `add_monoid_algebra R M`, then the image of the union of
 the supports of elements of `S` generates `add_monoid_algebra R M`. -/
@@ -568,7 +568,7 @@ theorem support_gen_of_gen' {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoi
     by
     rw [this]
     exact support_gen_of_gen hS
-  simp only [Set.image_unionᵢ]
+  simp only [Set.image_iUnion]
 #align add_monoid_algebra.support_gen_of_gen' AddMonoidAlgebra.support_gen_of_gen'
 
 end Semiring
@@ -590,9 +590,9 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
   by
   obtain ⟨S, hS⟩ := h
   letI : DecidableEq M := Classical.decEq M
-  use Finset.bunionᵢ S fun f => f.support
-  have : (Finset.bunionᵢ S fun f => f.support : Set M) = ⋃ f ∈ S, (f.support : Set M) := by
-    simp only [Finset.set_bunionᵢ_coe, Finset.coe_bunionᵢ]
+  use Finset.biUnion S fun f => f.support
+  have : (Finset.biUnion S fun f => f.support : Set M) = ⋃ f ∈ S, (f.support : Set M) := by
+    simp only [Finset.set_biUnion_coe, Finset.coe_biUnion]
   rw [this]
   exact support_gen_of_gen' hS
 #align add_monoid_algebra.exists_finset_adjoin_eq_top AddMonoidAlgebra.exists_finset_adjoin_eq_top
@@ -767,9 +767,9 @@ theorem mem_adjoin_support (f : MonoidAlgebra R M) : f ∈ adjoin R (of R M '' f
 
 /- warning: monoid_algebra.support_gen_of_gen -> MonoidAlgebra.support_gen_of_gen is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.unionᵢ.{max u1 u2, succ (max u1 u2)} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{max u1 u2, 0} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.iUnion.{max u1 u2, succ (max u1 u2)} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{max u1 u2, 0} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.unionᵢ.{max u1 u2, succ (max u1 u2)} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{max u1 u2, 0} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.iUnion.{max u1 u2, succ (max u1 u2)} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{max u1 u2, 0} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.support_gen_of_gen MonoidAlgebra.support_gen_of_genₓ'. -/
 /-- If a set `S` generates, as algebra, `monoid_algebra R M`, then the set of supports of elements
 of `S` generates `monoid_algebra R M`. -/
@@ -782,15 +782,15 @@ theorem support_gen_of_gen {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R
   have hincl : of R M '' f.support ⊆ ⋃ (g : MonoidAlgebra R M) (H : g ∈ S), of R M '' g.support :=
     by
     intro s hs
-    exact Set.mem_unionᵢ₂.2 ⟨f, ⟨hf, hs⟩⟩
+    exact Set.mem_iUnion₂.2 ⟨f, ⟨hf, hs⟩⟩
   exact adjoin_mono hincl (mem_adjoin_support f)
 #align monoid_algebra.support_gen_of_gen MonoidAlgebra.support_gen_of_gen
 
 /- warning: monoid_algebra.support_gen_of_gen' -> MonoidAlgebra.support_gen_of_gen' is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Set.unionᵢ.{u2, succ (max u1 u2)} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{u2, 0} M (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Set.iUnion.{u2, succ (max u1 u2)} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{u2, 0} M (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Set.unionᵢ.{u2, succ (max u1 u2)} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{u2, 0} M (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Set.iUnion.{u2, succ (max u1 u2)} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.iUnion.{u2, 0} M (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.support_gen_of_gen' MonoidAlgebra.support_gen_of_gen'ₓ'. -/
 /-- If a set `S` generates, as algebra, `monoid_algebra R M`, then the image of the union of the
 supports of elements of `S` generates `monoid_algebra R M`. -/
@@ -801,7 +801,7 @@ theorem support_gen_of_gen' {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R
     by
     rw [this]
     exact support_gen_of_gen hS
-  simp only [Set.image_unionᵢ]
+  simp only [Set.image_iUnion]
 #align monoid_algebra.support_gen_of_gen' MonoidAlgebra.support_gen_of_gen'
 
 end Semiring
@@ -823,9 +823,9 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
   by
   obtain ⟨S, hS⟩ := h
   letI : DecidableEq M := Classical.decEq M
-  use Finset.bunionᵢ S fun f => f.support
-  have : (Finset.bunionᵢ S fun f => f.support : Set M) = ⋃ f ∈ S, (f.support : Set M) := by
-    simp only [Finset.set_bunionᵢ_coe, Finset.coe_bunionᵢ]
+  use Finset.biUnion S fun f => f.support
+  have : (Finset.biUnion S fun f => f.support : Set M) = ⋃ f ∈ S, (f.support : Set M) := by
+    simp only [Finset.set_biUnion_coe, Finset.coe_biUnion]
   rw [this]
   exact support_gen_of_gen' hS
 #align monoid_algebra.exists_finset_adjoin_eq_top MonoidAlgebra.exists_finset_adjoin_eq_top
Diff
@@ -109,7 +109,7 @@ open Classical
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] (ι : Type.{u2}) [_inst_10 : Finite.{succ u2} ι], Algebra.FiniteType.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] (ι : Type.{u2}) [_inst_10 : Finite.{succ u2} ι], Algebra.FiniteType.{max u1 u2, u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u1 u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u1 u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] (ι : Type.{u2}) [_inst_10 : Finite.{succ u2} ι], Algebra.FiniteType.{max u1 u2, u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u1 u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.mv_polynomial Algebra.FiniteType.mvPolynomialₓ'. -/
 protected theorem mvPolynomial (ι : Type _) [Finite ι] : FiniteType R (MvPolynomial ι R) := by
   cases nonempty_fintype ι <;>
@@ -124,7 +124,7 @@ protected theorem mvPolynomial (ι : Type _) [Finite ι] : FiniteType R (MvPolyn
 lean 3 declaration is
   forall (R : Type.{u1}) (A : Type.{u2}) (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [_inst_10 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_10))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)))))] [hB : Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5], Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_10
 but is expected to have type
-  forall (R : Type.{u1}) (A : Type.{u3}) (B : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))] [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4))] [_inst_10 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_10) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_5)] [hB : Algebra.FiniteType.{u2, u1} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_5], Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u3} A _inst_2) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_10
+  forall (R : Type.{u1}) (A : Type.{u3}) (B : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))] [_inst_10 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_10) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_5)] [hB : Algebra.FiniteType.{u2, u1} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_5], Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_10
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.of_restrict_scalars_finite_type Algebra.FiniteType.of_restrictScalars_finiteTypeₓ'. -/
 theorem of_restrictScalars_finiteType [Algebra A B] [IsScalarTower R A B] [hB : FiniteType R B] :
     FiniteType A B := by
@@ -144,7 +144,7 @@ variable {R A B}
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))], (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) -> (forall (f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5), (Function.Surjective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) f)) -> (Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5))
 but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))] [_inst_4 : CommRing.{u1} B] [_inst_5 : Algebra.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))], (Algebra.FiniteType.{u3, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3) -> (forall (f : AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5), (Function.Surjective.{succ u3, succ u1} A B (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5) R A B (SMulZeroClass.toSMul.{u2, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, u3} R A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3))))) (SMulZeroClass.toSMul.{u2, u1} R B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))))))) (DistribSMul.toSMulZeroClass.{u2, u1} R B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))))))) (DistribMulAction.toDistribSMul.{u2, u1} R B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)))))) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5) R A B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)))))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3)) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5) R A B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3)) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u3 u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5 (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5) (AlgHom.algHomClass.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5))))) f)) -> (Algebra.FiniteType.{u1, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_5))
+  forall {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_4 : CommRing.{u1} B] [_inst_5 : Algebra.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))], (Algebra.FiniteType.{u3, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3) -> (forall (f : AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5), (Function.Surjective.{succ u3, succ u1} A B (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) R A B (SMulZeroClass.toSMul.{u2, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, u3} R A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3))))) (SMulZeroClass.toSMul.{u2, u1} R B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))))) (DistribSMul.toSMulZeroClass.{u2, u1} R B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))))) (DistribMulAction.toDistribSMul.{u2, u1} R B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)))))) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) R A B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)))))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3)) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) R A B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3)) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u3 u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5 (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) (AlgHom.algHomClass.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5))))) f)) -> (Algebra.FiniteType.{u1, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5))
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.of_surjective Algebra.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (hRA : FiniteType R A) (f : A →ₐ[R] B) (hf : Surjective f) : FiniteType R B :=
   ⟨by
@@ -156,7 +156,7 @@ theorem of_surjective (hRA : FiniteType R A) (f : A →ₐ[R] B) (hf : Surjectiv
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))], (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) -> (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) -> (Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)
 but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))] [_inst_4 : CommRing.{u1} B] [_inst_5 : Algebra.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))], (Algebra.FiniteType.{u3, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3) -> (AlgEquiv.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5) -> (Algebra.FiniteType.{u1, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_5)
+  forall {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_4 : CommRing.{u1} B] [_inst_5 : Algebra.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4))], (Algebra.FiniteType.{u3, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3) -> (AlgEquiv.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_3 _inst_5) -> (Algebra.FiniteType.{u1, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_4)) _inst_5)
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.equiv Algebra.FiniteType.equivₓ'. -/
 theorem equiv (hRA : FiniteType R A) (e : A ≃ₐ[R] B) : FiniteType R B :=
   hRA.ofSurjective e e.Surjective
@@ -166,7 +166,7 @@ theorem equiv (hRA : FiniteType R A) (e : A ≃ₐ[R] B) : FiniteType R B :=
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [_inst_10 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_10))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)))))], (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) -> (Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_10) -> (Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))] [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4))] [_inst_10 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_10) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_5)], (Algebra.FiniteType.{u3, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3) -> (Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u3} A _inst_2) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_10) -> (Algebra.FiniteType.{u2, u1} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_5)
+  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))] [_inst_10 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_10) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_5)], (Algebra.FiniteType.{u3, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) _inst_3) -> (Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u3} A _inst_2) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_10) -> (Algebra.FiniteType.{u2, u1} R B (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_4)) _inst_5)
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.trans Algebra.FiniteType.transₓ'. -/
 theorem trans [Algebra A B] [IsScalarTower R A B] (hRA : FiniteType R A) (hAB : FiniteType A B) :
     FiniteType R B :=
@@ -177,7 +177,7 @@ theorem trans [Algebra A B] [IsScalarTower R A B] (hRA : FiniteType R A) (hAB :
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{succ u2} (Finset.{u2} A) (fun (s : Finset.{u2} A) => Exists.{max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) f))))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{succ u2} (Finset.{u2} A) (fun (s : Finset.{u2} A) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) 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.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u1, u2, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f))))
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (Exists.{succ u2} (Finset.{u2} A) (fun (s : Finset.{u2} A) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) 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.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u1, u2, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f))))
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial Algebra.FiniteType.iff_quotient_mvPolynomialₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a finset. -/
@@ -199,7 +199,7 @@ theorem iff_quotient_mvPolynomial :
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{succ (succ u2)} Type.{u2} (fun (ι : Type.{u2}) => Exists.{succ u2} (Fintype.{u2} ι) (fun (_x : Fintype.{u2} ι) => Exists.{max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) f)))))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{succ (succ u2)} Type.{u2} (fun (ι : Type.{u2}) => Exists.{succ u2} (Fintype.{u2} ι) (fun (_x : Fintype.{u2} ι) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι 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.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u1, u2, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f)))))
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (Exists.{succ (succ u2)} Type.{u2} (fun (ι : Type.{u2}) => Exists.{succ u2} (Fintype.{u2} ι) (fun (_x : Fintype.{u2} ι) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι 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.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u1, u2, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, u2} R ι (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f)))))
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial' Algebra.FiniteType.iff_quotient_mvPolynomial'ₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a fintype. -/
@@ -219,7 +219,7 @@ theorem iff_quotient_mvPolynomial' :
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{1} Nat (fun (n : Nat) => Exists.{max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{succ u1, succ u2} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) f))))
 but is expected to have type
-  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{1} Nat (fun (n : Nat) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{succ u1, succ u2} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) 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} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f))))
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3) (Exists.{1} Nat (fun (n : Nat) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{succ u1, succ u2} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) 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} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commSemiring.{u1, 0} R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f))))
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial'' Algebra.FiniteType.iff_quotient_mvPolynomial''ₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient of a polynomial ring in `n`
 variables. -/
@@ -242,7 +242,7 @@ theorem iff_quotient_mvPolynomial'' :
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [hA : Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3] [hB : Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5], Algebra.FiniteType.{u1, max u2 u3} R (Prod.{u2, u3} A B) (CommRing.toCommSemiring.{u1} R _inst_1) (Prod.semiring.{u2, u3} A B (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))) (Prod.algebra.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)
 but is expected to have type
-  forall {R : Type.{u2}} {A : Type.{u1}} {B : Type.{u3}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u2, u3} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [hA : Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2)) _inst_3] [hB : Algebra.FiniteType.{u3, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5], Algebra.FiniteType.{max u3 u1, u2} R (Prod.{u1, u3} A B) (CommRing.toCommSemiring.{u2} R _inst_1) (Prod.instSemiringProd.{u1, u3} A B (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))) (Prod.algebra.{u2, u1, u3} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2)) _inst_3 (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)
+  forall {R : Type.{u2}} {A : Type.{u1}} {B : Type.{u3}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u2, u3} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_4))] [hA : Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3] [hB : Algebra.FiniteType.{u3, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_4)) _inst_5], Algebra.FiniteType.{max u3 u1, u2} R (Prod.{u1, u3} A B) (CommRing.toCommSemiring.{u2} R _inst_1) (Prod.instSemiringProd.{u1, u3} A B (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_4))) (Prod.algebra.{u2, u1, u3} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_3 (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_4)) _inst_5)
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.prod Algebra.FiniteType.prodₓ'. -/
 instance prod [hA : FiniteType R A] [hB : FiniteType R B] : FiniteType R (A × B) :=
   ⟨by
@@ -254,7 +254,7 @@ instance prod [hA : FiniteType R A] [hB : FiniteType R B] : FiniteType R (A × B
 lean 3 declaration is
   forall (R : Type.{u1}) (S : Type.{u2}) [_inst_10 : CommRing.{u1} R] [_inst_11 : CommRing.{u2} S] [_inst_12 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11))] [h : Algebra.FiniteType.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11)) _inst_12] [_inst_13 : IsNoetherianRing.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_10))], IsNoetherianRing.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11))
 but is expected to have type
-  forall (R : Type.{u2}) (S : Type.{u1}) [_inst_10 : CommRing.{u2} R] [_inst_11 : CommRing.{u1} S] [_inst_12 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_11))] [h : Algebra.FiniteType.{u1, u2} R S (CommRing.toCommSemiring.{u2} R _inst_10) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_11)) _inst_12] [_inst_13 : IsNoetherianRing.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_10))], IsNoetherianRing.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_11))
+  forall (R : Type.{u2}) (S : Type.{u1}) [_inst_10 : CommRing.{u2} R] [_inst_11 : CommRing.{u1} S] [_inst_12 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_11))] [h : Algebra.FiniteType.{u1, u2} R S (CommRing.toCommSemiring.{u2} R _inst_10) (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_11)) _inst_12] [_inst_13 : IsNoetherianRing.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_10))], IsNoetherianRing.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_11))
 Case conversion may be inaccurate. Consider using '#align algebra.finite_type.is_noetherian_ring Algebra.FiniteType.isNoetherianRingₓ'. -/
 theorem isNoetherianRing (R S : Type _) [CommRing R] [CommRing S] [Algebra R S]
     [h : Algebra.FiniteType R S] [IsNoetherianRing R] : IsNoetherianRing S :=
@@ -304,7 +304,7 @@ variable {A}
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))}, (RingHom.Finite.{u1, u2} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f)
 but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] {f : RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))}, (RingHom.Finite.{u2, u1} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] {f : RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))}, (RingHom.Finite.{u2, u1} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
 Case conversion may be inaccurate. Consider using '#align ring_hom.finite.finite_type RingHom.Finite.finiteTypeₓ'. -/
 theorem finiteType {f : A →+* B} (hf : f.Finite) : FiniteType f :=
   @Module.Finite.finiteType _ _ _ _ f.toAlgebra hf
@@ -328,7 +328,7 @@ variable {A}
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u2}} {C : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u3} C] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))} {g : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))}, (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f) -> (Function.Surjective.{succ u2, succ u3} B C (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))) (fun (_x : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))) => B -> C) (RingHom.hasCoeToFun.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))) g)) -> (RingHom.FiniteType.{u1, u3} A C _inst_1 _inst_3 (RingHom.comp.{u1, u2, u3} A B C (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3))) g f))
 but is expected to have type
-  forall {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u1} C] {f : RingHom.{u3, u2} A B (NonAssocRing.toNonAssocSemiring.{u3} A (Ring.toNonAssocRing.{u3} A (CommRing.toRing.{u3} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))} {g : RingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))}, (RingHom.FiniteType.{u3, u2} A B _inst_1 _inst_2 f) -> (Function.Surjective.{succ u2, succ u1} B C (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : B) => C) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))) B C (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))) B C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))) B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3))))))) g)) -> (RingHom.FiniteType.{u3, u1} A C _inst_1 _inst_3 (RingHom.comp.{u3, u2, u1} A B C (NonAssocRing.toNonAssocSemiring.{u3} A (Ring.toNonAssocRing.{u3} A (CommRing.toRing.{u3} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3))) g f))
+  forall {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u1} C] {f : RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2)))} {g : RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))}, (RingHom.FiniteType.{u3, u2} A B _inst_1 _inst_2 f) -> (Function.Surjective.{succ u2, succ u1} B C (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : B) => C) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B C (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))) B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))))))) g)) -> (RingHom.FiniteType.{u3, u1} A C _inst_1 _inst_3 (RingHom.comp.{u3, u2, u1} A B C (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))) g f))
 Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.comp_surjective RingHom.FiniteType.comp_surjectiveₓ'. -/
 theorem comp_surjective {f : A →+* B} {g : B →+* C} (hf : f.FiniteType) (hg : Surjective g) :
     (g.comp f).FiniteType :=
@@ -343,7 +343,7 @@ theorem comp_surjective {f : A →+* B} {g : B →+* C} (hf : f.FiniteType) (hg
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] (f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))), (Function.Surjective.{succ u1, succ u2} A B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) (fun (_x : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) => A -> B) (RingHom.hasCoeToFun.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) f)) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f)
 but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] (f : RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))), (Function.Surjective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : A) => B) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))) A B (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))) A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2))) (RingHom.instRingHomClassRingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2))))))) f)) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] (f : RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))), (Function.Surjective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : A) => B) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))) A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))) (RingHom.instRingHomClassRingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2))))))) f)) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
 Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.of_surjective RingHom.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (f : A →+* B) (hf : Surjective f) : f.FiniteType :=
   by
@@ -355,7 +355,7 @@ theorem of_surjective (f : A →+* B) (hf : Surjective f) : f.FiniteType :=
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u2}} {C : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u3} C] {g : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))} {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))}, (RingHom.FiniteType.{u2, u3} B C _inst_2 _inst_3 g) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u3} A C _inst_1 _inst_3 (RingHom.comp.{u1, u2, u3} A B C (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3))) g f))
 but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u3}} {C : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u3} B] [_inst_3 : CommRing.{u2} C] {g : RingHom.{u3, u2} B C (NonAssocRing.toNonAssocSemiring.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u2} C (Ring.toNonAssocRing.{u2} C (CommRing.toRing.{u2} C _inst_3)))} {f : RingHom.{u1, u3} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_2)))}, (RingHom.FiniteType.{u3, u2} B C _inst_2 _inst_3 g) -> (RingHom.FiniteType.{u1, u3} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u2} A C _inst_1 _inst_3 (RingHom.comp.{u1, u3, u2} A B C (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u2} C (Ring.toNonAssocRing.{u2} C (CommRing.toRing.{u2} C _inst_3))) g f))
+  forall {A : Type.{u1}} {B : Type.{u3}} {C : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u3} B] [_inst_3 : CommRing.{u2} C] {g : RingHom.{u3, u2} B C (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_2))) (Semiring.toNonAssocSemiring.{u2} C (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_3)))} {f : RingHom.{u1, u3} A B (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_2)))}, (RingHom.FiniteType.{u3, u2} B C _inst_2 _inst_3 g) -> (RingHom.FiniteType.{u1, u3} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u2} A C _inst_1 _inst_3 (RingHom.comp.{u1, u3, u2} A B C (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_2))) (Semiring.toNonAssocSemiring.{u2} C (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_3))) g f))
 Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.comp RingHom.FiniteType.compₓ'. -/
 theorem comp {g : B →+* C} {f : A →+* B} (hg : g.FiniteType) (hf : f.FiniteType) :
     (g.comp f).FiniteType :=
@@ -372,7 +372,7 @@ theorem comp {g : B →+* C} {f : A →+* B} (hg : g.FiniteType) (hf : f.FiniteT
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))}, (RingHom.Finite.{u1, u2} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f)
 but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] {f : RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))}, (RingHom.Finite.{u2, u1} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] {f : RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))}, (RingHom.Finite.{u2, u1} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
 Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.of_finite RingHom.FiniteType.of_finiteₓ'. -/
 theorem of_finite {f : A →+* B} (hf : f.Finite) : f.FiniteType :=
   @Module.Finite.finiteType _ _ _ _ f.toAlgebra hf
@@ -382,7 +382,7 @@ theorem of_finite {f : A →+* B} (hf : f.Finite) : f.FiniteType :=
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))}, (RingHom.Finite.{u1, u2} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f)
 but is expected to have type
-  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] {f : RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))}, (RingHom.Finite.{u2, u1} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] {f : RingHom.{u2, u1} A B (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_2)))}, (RingHom.Finite.{u2, u1} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
 Case conversion may be inaccurate. Consider using '#align ring_hom.finite.to_finite_type RingHom.Finite.to_finiteTypeₓ'. -/
 alias of_finite ← _root_.ring_hom.finite.to_finite_type
 #align ring_hom.finite.to_finite_type RingHom.Finite.to_finiteType
@@ -391,7 +391,7 @@ alias of_finite ← _root_.ring_hom.finite.to_finite_type
 lean 3 declaration is
   forall {A : Type.{u1}} {B : Type.{u2}} {C : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u3} C] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))} {g : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))}, (RingHom.FiniteType.{u1, u3} A C _inst_1 _inst_3 (RingHom.comp.{u1, u2, u3} A B C (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3))) g f)) -> (RingHom.FiniteType.{u2, u3} B C _inst_2 _inst_3 g)
 but is expected to have type
-  forall {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u1} C] {f : RingHom.{u3, u2} A B (NonAssocRing.toNonAssocSemiring.{u3} A (Ring.toNonAssocRing.{u3} A (CommRing.toRing.{u3} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))} {g : RingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))}, (RingHom.FiniteType.{u3, u1} A C _inst_1 _inst_3 (RingHom.comp.{u3, u2, u1} A B C (NonAssocRing.toNonAssocSemiring.{u3} A (Ring.toNonAssocRing.{u3} A (CommRing.toRing.{u3} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3))) g f)) -> (RingHom.FiniteType.{u2, u1} B C _inst_2 _inst_3 g)
+  forall {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u1} C] {f : RingHom.{u3, u2} A B (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2)))} {g : RingHom.{u2, u1} B C (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3)))}, (RingHom.FiniteType.{u3, u1} A C _inst_1 _inst_3 (RingHom.comp.{u3, u2, u1} A B C (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_2))) (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_3))) g f)) -> (RingHom.FiniteType.{u2, u1} B C _inst_2 _inst_3 g)
 Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.of_comp_finite_type RingHom.FiniteType.of_comp_finiteTypeₓ'. -/
 theorem of_comp_finiteType {f : A →+* B} {g : B →+* C} (h : (g.comp f).FiniteType) : g.FiniteType :=
   by
@@ -431,7 +431,7 @@ variable {R A}
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] {f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6}, (AlgHom.Finite.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
 but is expected to have type
-  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_5 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))] {f : AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6}, (AlgHom.Finite.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
+  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_5 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_6 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] {f : AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6}, (AlgHom.Finite.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
 Case conversion may be inaccurate. Consider using '#align alg_hom.finite.finite_type AlgHom.Finite.finiteTypeₓ'. -/
 theorem finiteType {f : A →ₐ[R] B} (hf : f.Finite) : FiniteType f :=
   RingHom.Finite.finiteType hf
@@ -447,7 +447,7 @@ variable (R A)
 lean 3 declaration is
   forall (R : Type.{u1}) (A : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], AlgHom.FiniteType.{u1, u2, u2} R A A _inst_1 _inst_2 _inst_2 _inst_5 _inst_5 (AlgHom.id.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)
 but is expected to have type
-  forall (R : Type.{u2}) (A : Type.{u1}) [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2))], AlgHom.FiniteType.{u2, u1, u1} R A A _inst_1 _inst_2 _inst_2 _inst_5 _inst_5 (AlgHom.id.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2)) _inst_5)
+  forall (R : Type.{u2}) (A : Type.{u1}) [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))], AlgHom.FiniteType.{u2, u1, u1} R A A _inst_1 _inst_2 _inst_2 _inst_5 _inst_5 (AlgHom.id.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) _inst_5)
 Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.id AlgHom.FiniteType.idₓ'. -/
 theorem id : FiniteType (AlgHom.id R A) :=
   RingHom.FiniteType.id A
@@ -459,7 +459,7 @@ variable {R A}
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {C : Type.{u4}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u4} C] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4))] {g : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7} {f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6}, (AlgHom.FiniteType.{u1, u3, u4} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g) -> (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u1, u2, u4} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u1, u2, u3, u4} R A B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
 but is expected to have type
-  forall {R : Type.{u4}} {A : Type.{u1}} {B : Type.{u3}} {C : Type.{u2}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u2} C] [_inst_5 : Algebra.{u4, u1} R A (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2))] [_inst_6 : Algebra.{u4, u3} R B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u4, u2} R C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} C (CommRing.toRing.{u2} C _inst_4))] {g : AlgHom.{u4, u3, u2} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u2} C (CommRing.toRing.{u2} C _inst_4)) _inst_6 _inst_7} {f : AlgHom.{u4, u1, u3} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6}, (AlgHom.FiniteType.{u4, u3, u2} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g) -> (AlgHom.FiniteType.{u4, u1, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u4, u1, u2} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u1, u3, u2} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u2} C (CommRing.toRing.{u2} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
+  forall {R : Type.{u4}} {A : Type.{u1}} {B : Type.{u3}} {C : Type.{u2}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u2} C] [_inst_5 : Algebra.{u4, u1} R A (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2))] [_inst_6 : Algebra.{u4, u3} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_3))] [_inst_7 : Algebra.{u4, u2} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_4))] {g : AlgHom.{u4, u3, u2} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_3)) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_4)) _inst_6 _inst_7} {f : AlgHom.{u4, u1, u3} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_3)) _inst_5 _inst_6}, (AlgHom.FiniteType.{u4, u3, u2} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g) -> (AlgHom.FiniteType.{u4, u1, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u4, u1, u2} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u1, u3, u2} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_2)) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_3)) (CommSemiring.toSemiring.{u2} C (CommRing.toCommSemiring.{u2} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
 Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.comp AlgHom.FiniteType.compₓ'. -/
 theorem comp {g : B →ₐ[R] C} {f : A →ₐ[R] B} (hg : g.FiniteType) (hf : f.FiniteType) :
     (g.comp f).FiniteType :=
@@ -470,7 +470,7 @@ theorem comp {g : B →ₐ[R] C} {f : A →ₐ[R] B} (hg : g.FiniteType) (hf : f
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {C : Type.{u4}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u4} C] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4))] {f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (Function.Surjective.{succ u3, succ u4} B C (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7) (fun (_x : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7) => B -> C) ([anonymous].{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7) g)) -> (AlgHom.FiniteType.{u1, u2, u4} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u1, u2, u3, u4} R A B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
 but is expected to have type
-  forall {R : Type.{u4}} {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : CommRing.{u1} C] [_inst_5 : Algebra.{u4, u3} R A (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))] [_inst_6 : Algebra.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))] [_inst_7 : Algebra.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))] {f : AlgHom.{u4, u3, u2} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u4, u3, u2} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (Function.Surjective.{succ u2, succ u1} B C (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => C) _x) (SMulHomClass.toFunLike.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7) R B C (SMulZeroClass.toSMul.{u4, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u4, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u4, u2} R B (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_6))))) (SMulZeroClass.toSMul.{u4, u1} R C (AddMonoid.toZero.{u1} C (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))))))) (DistribSMul.toSMulZeroClass.{u4, u1} R C (AddMonoid.toAddZeroClass.{u1} C (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))))))) (DistribMulAction.toDistribSMul.{u4, u1} R C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)))))) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7) R B C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)))))) (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)))))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_6)) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7) R B C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_6)) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u2, u1, max u2 u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7 (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7) (AlgHom.algHomClass.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7))))) g)) -> (AlgHom.FiniteType.{u4, u3, u1} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u3, u2, u1} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
+  forall {R : Type.{u4}} {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : CommRing.{u1} C] [_inst_5 : Algebra.{u4, u3} R A (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_6 : Algebra.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))] {f : AlgHom.{u4, u3, u2} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u4, u3, u2} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (Function.Surjective.{succ u2, succ u1} B C (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => C) _x) (SMulHomClass.toFunLike.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) R B C (SMulZeroClass.toSMul.{u4, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u4, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u4, u2} R B (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6))))) (SMulZeroClass.toSMul.{u4, u1} R C (AddMonoid.toZero.{u1} C (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))))) (DistribSMul.toSMulZeroClass.{u4, u1} R C (AddMonoid.toAddZeroClass.{u1} C (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))))) (DistribMulAction.toDistribSMul.{u4, u1} R C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)))))) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) R B C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))))) (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)))))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) R B C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_6)) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u2, u1, max u2 u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7 (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7) (AlgHom.algHomClass.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7))))) g)) -> (AlgHom.FiniteType.{u4, u3, u1} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u3, u2, u1} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
 Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.comp_surjective AlgHom.FiniteType.comp_surjectiveₓ'. -/
 theorem comp_surjective {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.FiniteType) (hg : Surjective g) :
     (g.comp f).FiniteType :=
@@ -481,7 +481,7 @@ theorem comp_surjective {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.FiniteTy
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] (f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6), (Function.Surjective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) f)) -> (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
 but is expected to have type
-  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_5 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))] (f : AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6), (Function.Surjective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6) R A B (SMulZeroClass.toSMul.{u3, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u3, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u3, u2} R A (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toSMul.{u3, u1} R B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u3, u1} R B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u3, u1} R B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)))))) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6) R A B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)))))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6) R A B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6 (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6) (AlgHom.algHomClass.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6))))) f)) -> (AlgHom.FiniteType.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
+  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_5 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))] [_inst_6 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))] (f : AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6), (Function.Surjective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (SMulZeroClass.toSMul.{u3, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u3, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u3, u2} R A (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toSMul.{u3, u1} R B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u3, u1} R B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u3, u1} R B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))))) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) R A B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) _inst_5)) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6 (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6) (AlgHom.algHomClass.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (CommSemiring.toSemiring.{u1} B (CommRing.toCommSemiring.{u1} B _inst_3)) _inst_5 _inst_6))))) f)) -> (AlgHom.FiniteType.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
 Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.of_surjective AlgHom.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (f : A →ₐ[R] B) (hf : Surjective f) : f.FiniteType :=
   RingHom.FiniteType.of_surjective f hf
@@ -491,7 +491,7 @@ theorem of_surjective (f : A →ₐ[R] B) (hf : Surjective f) : f.FiniteType :=
 lean 3 declaration is
   forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {C : Type.{u4}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u4} C] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4))] {f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u1, u2, u4} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u1, u2, u3, u4} R A B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_5 _inst_6 _inst_7 g f)) -> (AlgHom.FiniteType.{u1, u3, u4} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g)
 but is expected to have type
-  forall {R : Type.{u4}} {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : CommRing.{u1} C] [_inst_5 : Algebra.{u4, u3} R A (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))] [_inst_6 : Algebra.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))] [_inst_7 : Algebra.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))] {f : AlgHom.{u4, u3, u2} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u4, u3, u1} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u3, u2, u1} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_5 _inst_6 _inst_7 g f)) -> (AlgHom.FiniteType.{u4, u2, u1} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g)
+  forall {R : Type.{u4}} {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : CommRing.{u1} C] [_inst_5 : Algebra.{u4, u3} R A (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2))] [_inst_6 : Algebra.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3))] [_inst_7 : Algebra.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4))] {f : AlgHom.{u4, u3, u2} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u4, u3, u1} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u3, u2, u1} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (CommSemiring.toSemiring.{u3} A (CommRing.toCommSemiring.{u3} A _inst_2)) (CommSemiring.toSemiring.{u2} B (CommRing.toCommSemiring.{u2} B _inst_3)) (CommSemiring.toSemiring.{u1} C (CommRing.toCommSemiring.{u1} C _inst_4)) _inst_5 _inst_6 _inst_7 g f)) -> (AlgHom.FiniteType.{u4, u2, u1} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g)
 Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.of_comp_finite_type AlgHom.FiniteType.of_comp_finiteTypeₓ'. -/
 theorem of_comp_finiteType {f : A →ₐ[R] B} {g : B →ₐ[R] C} (h : (g.comp f).FiniteType) :
     g.FiniteType :=
@@ -581,7 +581,7 @@ variable [CommRing R] [AddCommMonoid M]
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [h : Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) G))) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [h : Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Finset.toSet.{u2} M G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [h : Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Finset.toSet.{u2} M G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.exists_finset_adjoin_eq_top AddMonoidAlgebra.exists_finset_adjoin_eq_topₓ'. -/
 /-- If `add_monoid_algebra R M` is of finite type, there there is a `G : finset M` such that its
 image generates, as algera, `add_monoid_algebra R M`. -/
@@ -601,7 +601,7 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, Iff (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u2 u1, max u2 u1} (Submodule.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) m) (Submodule.span.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) S))) (Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) m S)
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, Iff (Membership.mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddMonoidAlgebra.of'.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) m) (Submodule.span.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Set.image.{u1, max u2 u1} M (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.of'.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) S))) (Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) m S)
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, Iff (Membership.mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) m) (Submodule.span.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Set.image.{u1, max u2 u1} M (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S))) (Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) m S)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of'_mem_span AddMonoidAlgebra.of'_mem_spanₓ'. -/
 /-- The image of an element `m : M` in `add_monoid_algebra R M` belongs the submodule generated by
 `S : set M` if and only if `m ∈ S`. -/
@@ -618,7 +618,7 @@ theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u2 u1, max u2 u1} (Submodule.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) m) (Submodule.span.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type.{max u2 u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ (max u2 u1), succ (max u2 u1)} a b] => self.0) (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (HasLiftT.mk.{succ (max u2 u1), succ (max u2 u1)} (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CoeTCₓ.coe.{succ (max u2 u1), succ (max u2 u1)} (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.Set.hasCoeT.{max u2 u1, max u2 u1} (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submonoid.setLike.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))))) (Submonoid.closure.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) S))))) -> (Membership.Mem.{u2, u2} M (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) M (AddSubmonoid.setLike.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) m (AddSubmonoid.closure.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) S))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, (Membership.mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddMonoidAlgebra.of'.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) m) (Submodule.span.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))))) (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))))) (Submonoid.closure.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) (Set.image.{u1, max u2 u1} M (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.of'.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) S))))) -> (Membership.mem.{u1, u1} M (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (SetLike.instMembership.{u1, u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) M (AddSubmonoid.instSetLikeAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))) m (AddSubmonoid.closure.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) S))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, (Membership.mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) m) (Submodule.span.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))))) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))))) (Submonoid.closure.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) (Set.image.{u1, max u2 u1} M (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) S))))) -> (Membership.mem.{u1, u1} M (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (SetLike.instMembership.{u1, u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) M (AddSubmonoid.instSetLikeAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))) m (AddSubmonoid.closure.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) S))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mem_closure_of_mem_span_closure AddMonoidAlgebra.mem_closure_of_mem_span_closureₓ'. -/
 /--
 If the image of an element `m : M` in `add_monoid_algebra R M` belongs the submodule generated by
@@ -678,7 +678,7 @@ variable (R M)
 lean 3 declaration is
   forall (R : Type.{u1}) (M : Type.{u2}) [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [h : AddMonoid.Fg.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)], Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
 but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [h : AddMonoid.Fg.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)], Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
+  forall (R : Type.{u1}) (M : Type.{u2}) [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [h : AddMonoid.Fg.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)], Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.finite_type_of_fg AddMonoidAlgebra.finiteType_of_fgₓ'. -/
 /-- If an additive monoid `M` is finitely generated then `add_monoid_algebra R M` is of finite
 type. -/
@@ -697,7 +697,7 @@ variable {R M}
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (AddMonoid.Fg.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R], Iff (Algebra.FiniteType.{max u1 u2, u2} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (AddMonoidAlgebra.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddMonoid.Fg.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R], Iff (Algebra.FiniteType.{max u1 u2, u2} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddMonoid.Fg.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.finite_type_iff_fg AddMonoidAlgebra.finiteType_iff_fgₓ'. -/
 /-- An additive monoid `M` is finitely generated if and only if `add_monoid_algebra R M` is of
 finite type. -/
@@ -717,7 +717,7 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R] [h : Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))], AddMonoid.Fg.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R] [h : Algebra.FiniteType.{max u1 u2, u2} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (AddMonoidAlgebra.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))], AddMonoid.Fg.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1)
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R] [h : Algebra.FiniteType.{max u1 u2, u2} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))], AddMonoid.Fg.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1)
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.fg_of_finite_type AddMonoidAlgebra.fg_of_finiteTypeₓ'. -/
 /-- If `add_monoid_algebra R M` is of finite type then `M` is finitely generated. -/
 theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (AddMonoidAlgebra R M)] :
@@ -729,7 +729,7 @@ theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (AddMonoi
 lean 3 declaration is
   forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (AddMonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2)))) (AddMonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))))) (AddGroup.Fg.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))
 but is expected to have type
-  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (AddMonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2)))) (AddMonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))))) (AddGroup.Fg.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))
+  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (AddMonoidAlgebra.semiring.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2)))) (AddMonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))))) (AddGroup.Fg.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))
 Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.finite_type_iff_group_fg AddMonoidAlgebra.finiteType_iff_group_fgₓ'. -/
 /-- An additive group `G` is finitely generated if and only if `add_monoid_algebra R G` is of
 finite type. -/
@@ -814,7 +814,7 @@ variable [CommRing R] [CommMonoid M]
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [h : Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [h : Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) (Finset.toSet.{u2} M G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [h : Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) (Finset.toSet.{u2} M G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.exists_finset_adjoin_eq_top MonoidAlgebra.exists_finset_adjoin_eq_topₓ'. -/
 /-- If `monoid_algebra R M` is of finite type, there there is a `G : finset M` such that its image
 generates, as algera, `monoid_algebra R M`. -/
@@ -834,7 +834,7 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) m) (Submodule.span.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) S))) (Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) m S)
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, Iff (Membership.mem.{max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) m) (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) m) (Submodule.span.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) S))) (Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) m S)
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, Iff (Membership.mem.{max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) m) (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) m) (Submodule.span.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) S))) (Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) m S)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.of_mem_span_of_iff MonoidAlgebra.of_mem_span_of_iffₓ'. -/
 /-- The image of an element `m : M` in `monoid_algebra R M` belongs the submodule generated by
 `S : set M` if and only if `m ∈ S`. -/
@@ -851,7 +851,7 @@ theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) m) (Submodule.span.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.Set.hasCoeT.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submonoid.setLike.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))))))) (Submonoid.closure.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) S))))) -> (Membership.Mem.{u2, u2} M (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) M (Submonoid.setLike.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) m (Submonoid.closure.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) S))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, (Membership.mem.{max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) m) (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) m) (Submodule.span.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (Submonoid.closure.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) S))))) -> (Membership.mem.{u1, u1} M (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) M (Submonoid.instSetLikeSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) m (Submonoid.closure.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) S))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, (Membership.mem.{max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) m) (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) m) (Submodule.span.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Semiring.toModule.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (Submonoid.closure.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) S))))) -> (Membership.mem.{u1, u1} M (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) M (Submonoid.instSetLikeSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) m (Submonoid.closure.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) S))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.mem_closure_of_mem_span_closure MonoidAlgebra.mem_closure_of_mem_span_closureₓ'. -/
 /--
 If the image of an element `m : M` in `monoid_algebra R M` belongs the submodule generated by the
@@ -901,7 +901,7 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Monoid.Fg.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)], Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Monoid.Fg.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)], Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Monoid.Fg.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)], Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.finite_type_of_fg MonoidAlgebra.finiteType_of_fgₓ'. -/
 /-- If a monoid `M` is finitely generated then `monoid_algebra R M` is of finite type. -/
 instance finiteType_of_fg [CommRing R] [Monoid.Fg M] : FiniteType R (MonoidAlgebra R M) :=
@@ -912,7 +912,7 @@ instance finiteType_of_fg [CommRing R] [Monoid.Fg M] : FiniteType R (MonoidAlgeb
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))) (Monoid.Fg.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R], Iff (Algebra.FiniteType.{max u1 u2, u2} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (MonoidAlgebra.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1))) (Monoid.Fg.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R], Iff (Algebra.FiniteType.{max u1 u2, u2} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1))) (Monoid.Fg.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.finite_type_iff_fg MonoidAlgebra.finiteType_iff_fgₓ'. -/
 /-- A monoid `M` is finitely generated if and only if `monoid_algebra R M` is of finite type. -/
 theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
@@ -927,7 +927,7 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R] [h : Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))], Monoid.Fg.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R] [h : Algebra.FiniteType.{max u1 u2, u2} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (MonoidAlgebra.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1))], Monoid.Fg.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R] [h : Algebra.FiniteType.{max u1 u2, u2} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1))], Monoid.Fg.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.fg_of_finite_type MonoidAlgebra.fg_of_finiteTypeₓ'. -/
 /-- If `monoid_algebra R M` is of finite type then `M` is finitely generated. -/
 theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (MonoidAlgebra R M)] :
@@ -939,7 +939,7 @@ theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (MonoidAl
 lean 3 declaration is
   forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : CommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (MonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2)))) (MonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2))))) (Group.Fg.{u2} G (CommGroup.toGroup.{u2} G _inst_2))
 but is expected to have type
-  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : CommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (MonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2)))) (MonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2))))) (Group.Fg.{u2} G (CommGroup.toGroup.{u2} G _inst_2))
+  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : CommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (MonoidAlgebra.semiring.{u1, u2} R G (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2)))) (MonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2))))) (Group.Fg.{u2} G (CommGroup.toGroup.{u2} G _inst_2))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.finite_type_iff_group_fg MonoidAlgebra.finiteType_iff_group_fgₓ'. -/
 /-- A group `G` is finitely generated if and only if `add_monoid_algebra R G` is of finite type. -/
 theorem finiteType_iff_group_fg {G : Type _} [CommGroup G] [CommRing R] [Nontrivial R] :
@@ -969,7 +969,7 @@ def modulePolynomialOfEndo : Module R[X] M :=
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (f : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (n : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (a : M), Eq.{succ u2} M (SMul.smul.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MulAction.toHasSmul.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DistribMulAction.toMulAction.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (modulePolynomialOfEndo.{u1, u2} R _inst_1 M _inst_2 _inst_3 f)))) n a) (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3)) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Polynomial.aeval.{u1, u2} R (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) f) n) a)
 but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (n : Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (a : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a) (HSMul.hSMul.{u2, u1, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a) (inferInstance.{max (succ u2) (succ u1)} ([mdata noImplicitLambda:1 HSMul.{u2, u1, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a)]) (instHSMul.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (SMulZeroClass.toSMul.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Polynomial.zero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (modulePolynomialOfEndo.{u2, u1} R _inst_1 M _inst_2 _inst_3 f))))))) n a) (FunLike.coe.{succ u1, succ u1, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) n) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (SMulZeroClass.toSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toZero.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribSMul.toSMulZeroClass.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toAddZeroClass.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulAction.toDistribSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (Polynomial.aeval.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) f) n) a)
+  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (n : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (a : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a) (HSMul.hSMul.{u2, u1, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a) (inferInstance.{max (succ u2) (succ u1)} ([mdata noImplicitLambda:1 HSMul.{u2, u1, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a)]) (instHSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (SMulZeroClass.toSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.zero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (modulePolynomialOfEndo.{u2, u1} R _inst_1 M _inst_2 _inst_3 f))))))) n a) (FunLike.coe.{succ u1, succ u1, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) n) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (SMulZeroClass.toSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toZero.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribSMul.toSMulZeroClass.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toAddZeroClass.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulAction.toDistribSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (Polynomial.aeval.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) f) n) a)
 Case conversion may be inaccurate. Consider using '#align module_polynomial_of_endo_smul_def modulePolynomialOfEndo_smul_defₓ'. -/
 theorem modulePolynomialOfEndo_smul_def (n : R[X]) (a : M) :
     @SMul.smul (modulePolynomialOfEndo f).toSMul n a = Polynomial.aeval f n a :=
@@ -984,7 +984,7 @@ include f
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (f : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3), IsScalarTower.{u1, u1, u2} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (SMulZeroClass.toHasSmul.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.zero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.smulZeroClass.{u1, u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) R (SMulWithZero.toSmulZeroClass.{u1, u1} R 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)))))) (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (MulZeroClass.toSMulWithZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))))) (let _inst : Module.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) := modulePolynomialOfEndo.{u1, u2} R _inst_1 M _inst_2 _inst_3 f; SMulZeroClass.toHasSmul.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MulZeroClass.toHasZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulZeroClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))
 but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3), IsScalarTower.{u2, u2, u1} R (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Algebra.toSMul.{u2, u2} R (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (inferInstance.{max (succ u2) (succ u1)} ([mdata noImplicitLambda:1 SMul.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M]) (SMulZeroClass.toSMul.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Polynomial.zero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (modulePolynomialOfEndo.{u2, u1} R _inst_1 M _inst_2 _inst_3 f)))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))
+  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3), IsScalarTower.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Algebra.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (inferInstance.{max (succ u2) (succ u1)} ([mdata noImplicitLambda:1 SMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M]) (SMulZeroClass.toSMul.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.zero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) M (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (modulePolynomialOfEndo.{u2, u1} R _inst_1 M _inst_2 _inst_3 f)))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))
 Case conversion may be inaccurate. Consider using '#align module_polynomial_of_endo.is_scalar_tower modulePolynomialOfEndo.isScalarTowerₓ'. -/
 theorem modulePolynomialOfEndo.isScalarTower :
     @IsScalarTower R R[X] M _
@@ -1005,7 +1005,7 @@ open Polynomial Module
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (f : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) [hfg : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3], (Function.Surjective.{succ u2, succ u2} M M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) f)) -> (Function.Injective.{succ u2, succ u2} M M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) f))
 but is expected to have type
-  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) [hfg : Module.Finite.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3], (Function.Surjective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) f)) -> (Function.Injective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) f))
+  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) [hfg : Module.Finite.{u2, u1} R M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3], (Function.Surjective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) f)) -> (Function.Injective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) f))
 Case conversion may be inaccurate. Consider using '#align module.finite.injective_of_surjective_endomorphism Module.Finite.injective_of_surjective_endomorphismₓ'. -/
 /-- A theorem/proof by Vasconcelos, given a finite module `M` over a commutative ring, any
 surjective endomorphism of `M` is also injective. Based on,
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin
 
 ! This file was ported from Lean 3 source module ring_theory.finite_type
-! leanprover-community/mathlib commit bb168510ef455e9280a152e7f31673cabd3d7496
+! leanprover-community/mathlib commit d64d67d000b974f0d86a2be7918cf800be6271c8
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -16,6 +16,9 @@ import Mathbin.RingTheory.Noetherian
 /-!
 # Finiteness conditions in commutative algebra
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file we define a notion of finiteness that is common in commutative algebra.
 
 ## Main declarations
Diff
@@ -34,6 +34,12 @@ section ModuleAndAlgebra
 
 variable (R A B M N : Type _)
 
+/- warning: algebra.finite_type -> Algebra.FiniteType is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) (A : Type.{u2}) [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2], Prop
+but is expected to have type
+  forall (R : Type.{u2}) (A : Type.{u1}) [_inst_1 : CommSemiring.{u2} R] [_inst_2 : Semiring.{u1} A] [_inst_3 : Algebra.{u2, u1} R A _inst_1 _inst_2], Prop
+Case conversion may be inaccurate. Consider using '#align algebra.finite_type Algebra.FiniteTypeₓ'. -/
 /-- An algebra over a commutative semiring is of `finite_type` if it is finitely generated
 over the base ring as algebra. -/
 class Algebra.FiniteType [CommSemiring R] [Semiring A] [Algebra R A] : Prop where
@@ -52,6 +58,12 @@ variable {R M N}
 
 section Algebra
 
+/- warning: module.finite.finite_type -> Module.Finite.finiteType is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} (A : Type.{u2}) [_inst_6 : CommSemiring.{u1} R] [_inst_7 : Semiring.{u2} A] [_inst_8 : Algebra.{u1, u2} R A _inst_6 _inst_7] [hRA : Module.Finite.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_7))) (Algebra.toModule.{u1, u2} R A _inst_6 _inst_7 _inst_8)], Algebra.FiniteType.{u1, u2} R A _inst_6 _inst_7 _inst_8
+but is expected to have type
+  forall {R : Type.{u1}} (A : Type.{u2}) [_inst_6 : CommSemiring.{u1} R] [_inst_7 : Semiring.{u2} A] [_inst_8 : Algebra.{u1, u2} R A _inst_6 _inst_7] [hRA : Module.Finite.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_6) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_7))) (Algebra.toModule.{u1, u2} R A _inst_6 _inst_7 _inst_8)], Algebra.FiniteType.{u2, u1} R A _inst_6 _inst_7 _inst_8
+Case conversion may be inaccurate. Consider using '#align module.finite.finite_type Module.Finite.finiteTypeₓ'. -/
 -- see Note [lower instance priority]
 instance (priority := 100) finiteType {R : Type _} (A : Type _) [CommSemiring R] [Semiring A]
     [Algebra R A] [hRA : Finite R A] : Algebra.FiniteType R A :=
@@ -74,18 +86,28 @@ variable [AddCommGroup N] [Module R N]
 
 namespace FiniteType
 
+#print Algebra.FiniteType.self /-
 theorem self : FiniteType R R :=
   ⟨⟨{1}, Subsingleton.elim _ _⟩⟩
 #align algebra.finite_type.self Algebra.FiniteType.self
+-/
 
+#print Algebra.FiniteType.polynomial /-
 protected theorem polynomial : FiniteType R R[X] :=
   ⟨⟨{Polynomial.X}, by
       rw [Finset.coe_singleton]
       exact Polynomial.adjoin_X⟩⟩
 #align algebra.finite_type.polynomial Algebra.FiniteType.polynomial
+-/
 
 open Classical
 
+/- warning: algebra.finite_type.mv_polynomial -> Algebra.FiniteType.mvPolynomial is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] (ι : Type.{u2}) [_inst_10 : Finite.{succ u2} ι], Algebra.FiniteType.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] (ι : Type.{u2}) [_inst_10 : Finite.{succ u2} ι], Algebra.FiniteType.{max u1 u2, u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u1 u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u1 u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))
+Case conversion may be inaccurate. Consider using '#align algebra.finite_type.mv_polynomial Algebra.FiniteType.mvPolynomialₓ'. -/
 protected theorem mvPolynomial (ι : Type _) [Finite ι] : FiniteType R (MvPolynomial ι R) := by
   cases nonempty_fintype ι <;>
     exact
@@ -95,7 +117,13 @@ protected theorem mvPolynomial (ι : Type _) [Finite ι] : FiniteType R (MvPolyn
           exact MvPolynomial.adjoin_range_X⟩⟩
 #align algebra.finite_type.mv_polynomial Algebra.FiniteType.mvPolynomial
 
-theorem of_restrict_scalars_finiteType [Algebra A B] [IsScalarTower R A B] [hB : FiniteType R B] :
+/- warning: algebra.finite_type.of_restrict_scalars_finite_type -> Algebra.FiniteType.of_restrictScalars_finiteType is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) (A : Type.{u2}) (B : Type.{u3}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [_inst_10 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_10))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)))))] [hB : Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5], Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_10
+but is expected to have type
+  forall (R : Type.{u1}) (A : Type.{u3}) (B : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))] [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4))] [_inst_10 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_10) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_5)] [hB : Algebra.FiniteType.{u2, u1} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_5], Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u3} A _inst_2) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_10
+Case conversion may be inaccurate. Consider using '#align algebra.finite_type.of_restrict_scalars_finite_type Algebra.FiniteType.of_restrictScalars_finiteTypeₓ'. -/
+theorem of_restrictScalars_finiteType [Algebra A B] [IsScalarTower R A B] [hB : FiniteType R B] :
     FiniteType A B := by
   obtain ⟨S, hS⟩ := hB.out
   refine' ⟨⟨S, eq_top_iff.2 fun b => _⟩⟩
@@ -105,25 +133,49 @@ theorem of_restrict_scalars_finiteType [Algebra A B] [IsScalarTower R A B] [hB :
     simp only [Subalgebra.coe_restrictScalars]
     exact Algebra.subset_adjoin
   exact le (eq_top_iff.1 hS b)
-#align algebra.finite_type.of_restrict_scalars_finite_type Algebra.FiniteType.of_restrict_scalars_finiteType
+#align algebra.finite_type.of_restrict_scalars_finite_type Algebra.FiniteType.of_restrictScalars_finiteType
 
 variable {R A B}
 
+/- warning: algebra.finite_type.of_surjective -> Algebra.FiniteType.of_surjective is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))], (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) -> (forall (f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5), (Function.Surjective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) f)) -> (Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))] [_inst_4 : CommRing.{u1} B] [_inst_5 : Algebra.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))], (Algebra.FiniteType.{u3, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3) -> (forall (f : AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5), (Function.Surjective.{succ u3, succ u1} A B (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5) R A B (SMulZeroClass.toSMul.{u2, u3} R A (AddMonoid.toZero.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, u3} R A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, u3} R A (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)))))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3))))) (SMulZeroClass.toSMul.{u2, u1} R B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))))))) (DistribSMul.toSMulZeroClass.{u2, u1} R B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))))))) (DistribMulAction.toDistribSMul.{u2, u1} R B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)))))) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_5))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5) R A B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)))))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3)) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_5)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5) R A B (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)))) (Module.toDistribMulAction.{u2, u3} R A (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))))) (Algebra.toModule.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3)) (Module.toDistribMulAction.{u2, u1} R B (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))))) (Algebra.toModule.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_5)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u3 u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5 (AlgHom.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5) (AlgHom.algHomClass.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5))))) f)) -> (Algebra.FiniteType.{u1, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_5))
+Case conversion may be inaccurate. Consider using '#align algebra.finite_type.of_surjective Algebra.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (hRA : FiniteType R A) (f : A →ₐ[R] B) (hf : Surjective f) : FiniteType R B :=
   ⟨by
     convert hRA.1.map f
     simpa only [map_top f, @eq_comm _ ⊤, eq_top_iff, AlgHom.mem_range] using hf⟩
 #align algebra.finite_type.of_surjective Algebra.FiniteType.of_surjective
 
+/- warning: algebra.finite_type.equiv -> Algebra.FiniteType.equiv is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))], (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) -> (AlgEquiv.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_3 _inst_5) -> (Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u3}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u2, u3} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))] [_inst_4 : CommRing.{u1} B] [_inst_5 : Algebra.{u2, u1} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4))], (Algebra.FiniteType.{u3, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3) -> (AlgEquiv.{u2, u3, u1} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_3 _inst_5) -> (Algebra.FiniteType.{u1, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_4)) _inst_5)
+Case conversion may be inaccurate. Consider using '#align algebra.finite_type.equiv Algebra.FiniteType.equivₓ'. -/
 theorem equiv (hRA : FiniteType R A) (e : A ≃ₐ[R] B) : FiniteType R B :=
   hRA.ofSurjective e e.Surjective
 #align algebra.finite_type.equiv Algebra.FiniteType.equiv
 
+/- warning: algebra.finite_type.trans -> Algebra.FiniteType.trans is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [_inst_10 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u2, u3} R A B (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3))))) (SMulZeroClass.toHasSmul.{u2, u3} A B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u2, u3} A B (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u2, u3} A B (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (Module.toMulActionWithZero.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_10))))) (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)))))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))))) (Algebra.toModule.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)))))], (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) -> (Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_2) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_10) -> (Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : Algebra.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))] [_inst_4 : CommRing.{u2} B] [_inst_5 : Algebra.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4))] [_inst_10 : Algebra.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4))] [_inst_11 : IsScalarTower.{u1, u3, u2} R A B (Algebra.toSMul.{u1, u3} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3) (Algebra.toSMul.{u3, u2} A B (CommRing.toCommSemiring.{u3} A _inst_2) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_10) (Algebra.toSMul.{u1, u2} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_5)], (Algebra.FiniteType.{u3, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) _inst_3) -> (Algebra.FiniteType.{u2, u3} A B (CommRing.toCommSemiring.{u3} A _inst_2) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_10) -> (Algebra.FiniteType.{u2, u1} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_4)) _inst_5)
+Case conversion may be inaccurate. Consider using '#align algebra.finite_type.trans Algebra.FiniteType.transₓ'. -/
 theorem trans [Algebra A B] [IsScalarTower R A B] (hRA : FiniteType R A) (hAB : FiniteType A B) :
     FiniteType R B :=
   ⟨fg_trans' hRA.1 hAB.1⟩
 #align algebra.finite_type.trans Algebra.FiniteType.trans
 
+/- warning: algebra.finite_type.iff_quotient_mv_polynomial -> Algebra.FiniteType.iff_quotient_mvPolynomial is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{succ u2} (Finset.{u2} A) (fun (s : Finset.{u2} A) => Exists.{max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) f))))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{succ u2} (Finset.{u2} A) (fun (s : Finset.{u2} A) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) 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.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u1, u2, max u2 u1} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) x s)) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f))))
+Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial Algebra.FiniteType.iff_quotient_mvPolynomialₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a finset. -/
 theorem iff_quotient_mvPolynomial :
@@ -140,9 +192,15 @@ theorem iff_quotient_mvPolynomial :
     exact finite_type.of_surjective (finite_type.mv_polynomial R { x // x ∈ s }) f hsur
 #align algebra.finite_type.iff_quotient_mv_polynomial Algebra.FiniteType.iff_quotient_mvPolynomial
 
+/- warning: algebra.finite_type.iff_quotient_mv_polynomial' -> Algebra.FiniteType.iff_quotient_mvPolynomial' is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{succ (succ u2)} Type.{u2} (fun (ι : Type.{u2}) => Exists.{succ u2} (Fintype.{u2} ι) (fun (_x : Fintype.{u2} ι) => Exists.{max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (coeFn.{max (succ (max u2 u1)) (succ u2), max (succ (max u2 u1)) (succ u2)} (AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) f)))))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{succ (succ u2)} Type.{u2} (fun (ι : Type.{u2}) => Exists.{succ u2} (Fintype.{u2} ι) (fun (_x : Fintype.{u2} ι) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{max (succ u2) (succ u1), succ u2} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι 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.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, max u2 u1, u2} (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1)))))) (Algebra.toModule.{u1, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (MvPolynomial.algebra.{u1, u1, u2} R R ι (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u1, u2, max u2 u1} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, max u1 u2, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, max u2 u1, u2} R (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{max u2 u1} (MvPolynomial.{u2, u1} ι R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, u2} R ι _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, u2} R R ι (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f)))))
+Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial' Algebra.FiniteType.iff_quotient_mvPolynomial'ₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a fintype. -/
-theorem iff_quotient_mv_polynomial' :
+theorem iff_quotient_mvPolynomial' :
     FiniteType R A ↔ ∃ (ι : Type u_2)(_ : Fintype ι)(f : MvPolynomial ι R →ₐ[R] A), Surjective f :=
   by
   constructor
@@ -152,11 +210,17 @@ theorem iff_quotient_mv_polynomial' :
   · rintro ⟨ι, ⟨hfintype, ⟨f, hsur⟩⟩⟩
     letI : Fintype ι := hfintype
     exact finite_type.of_surjective (finite_type.mv_polynomial R ι) f hsur
-#align algebra.finite_type.iff_quotient_mv_polynomial' Algebra.FiniteType.iff_quotient_mv_polynomial'
-
+#align algebra.finite_type.iff_quotient_mv_polynomial' Algebra.FiniteType.iff_quotient_mvPolynomial'
+
+/- warning: algebra.finite_type.iff_quotient_mv_polynomial'' -> Algebra.FiniteType.iff_quotient_mvPolynomial'' is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{1} Nat (fun (n : Nat) => Exists.{max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{succ u1, succ u2} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (_x : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) -> A) ([anonymous].{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.commRing.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) f))))
+but is expected to have type
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], Iff (Algebra.FiniteType.{u2, u1} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3) (Exists.{1} Nat (fun (n : Nat) => Exists.{max (succ u2) (succ u1)} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (fun (f : AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) => Function.Surjective.{succ u1, succ u2} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (fun (_x : MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) => A) _x) (SMulHomClass.toFunLike.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (SMulZeroClass.toSMul.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) 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} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u1, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u1, u2} R A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))))))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u1, u1, u2} (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (Module.toDistribMulAction.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1)))))) (Algebra.toModule.{u1, u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (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, u2} R A (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u2, max u2 u1} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (AlgHom.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3) (AlgHom.algHomClass.{u1, u1, u2} R (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommRing.toRing.{u1} (MvPolynomial.{0, u1} (Fin n) R (CommRing.toCommSemiring.{u1} R _inst_1)) (MvPolynomial.instCommRingMvPolynomialToCommSemiring.{u1, 0} R (Fin n) _inst_1))) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (MvPolynomial.algebra.{u1, u1, 0} R R (Fin n) (CommRing.toCommSemiring.{u1} R _inst_1) (CommRing.toCommSemiring.{u1} R _inst_1) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3))))) f))))
+Case conversion may be inaccurate. Consider using '#align algebra.finite_type.iff_quotient_mv_polynomial'' Algebra.FiniteType.iff_quotient_mvPolynomial''ₓ'. -/
 /-- An algebra is finitely generated if and only if it is a quotient of a polynomial ring in `n`
 variables. -/
-theorem iff_quotient_mv_polynomial'' :
+theorem iff_quotient_mvPolynomial'' :
     FiniteType R A ↔ ∃ (n : ℕ)(f : MvPolynomial (Fin n) R →ₐ[R] A), Surjective f :=
   by
   constructor
@@ -169,14 +233,26 @@ theorem iff_quotient_mv_polynomial'' :
         Function.Surjective.comp hsur (AlgEquiv.symm Equiv).Surjective⟩
   · rintro ⟨n, ⟨f, hsur⟩⟩
     exact finite_type.of_surjective (finite_type.mv_polynomial R (Fin n)) f hsur
-#align algebra.finite_type.iff_quotient_mv_polynomial'' Algebra.FiniteType.iff_quotient_mv_polynomial''
-
+#align algebra.finite_type.iff_quotient_mv_polynomial'' Algebra.FiniteType.iff_quotient_mvPolynomial''
+
+/- warning: algebra.finite_type.prod -> Algebra.FiniteType.prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [hA : Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3] [hB : Algebra.FiniteType.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5], Algebra.FiniteType.{u1, max u2 u3} R (Prod.{u2, u3} A B) (CommRing.toCommSemiring.{u1} R _inst_1) (Prod.semiring.{u2, u3} A B (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))) (Prod.algebra.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_3 (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} {B : Type.{u3}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2))] [_inst_4 : CommRing.{u3} B] [_inst_5 : Algebra.{u2, u3} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))] [hA : Algebra.FiniteType.{u1, u2} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2)) _inst_3] [hB : Algebra.FiniteType.{u3, u2} R B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5], Algebra.FiniteType.{max u3 u1, u2} R (Prod.{u1, u3} A B) (CommRing.toCommSemiring.{u2} R _inst_1) (Prod.instSemiringProd.{u1, u3} A B (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4))) (Prod.algebra.{u2, u1, u3} R A B (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2)) _inst_3 (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_4)) _inst_5)
+Case conversion may be inaccurate. Consider using '#align algebra.finite_type.prod Algebra.FiniteType.prodₓ'. -/
 instance prod [hA : FiniteType R A] [hB : FiniteType R B] : FiniteType R (A × B) :=
   ⟨by
     rw [← Subalgebra.prod_top]
     exact hA.1.Prod hB.1⟩
 #align algebra.finite_type.prod Algebra.FiniteType.prod
 
+/- warning: algebra.finite_type.is_noetherian_ring -> Algebra.FiniteType.isNoetherianRing is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) (S : Type.{u2}) [_inst_10 : CommRing.{u1} R] [_inst_11 : CommRing.{u2} S] [_inst_12 : Algebra.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11))] [h : Algebra.FiniteType.{u1, u2} R S (CommRing.toCommSemiring.{u1} R _inst_10) (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11)) _inst_12] [_inst_13 : IsNoetherianRing.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_10))], IsNoetherianRing.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_11))
+but is expected to have type
+  forall (R : Type.{u2}) (S : Type.{u1}) [_inst_10 : CommRing.{u2} R] [_inst_11 : CommRing.{u1} S] [_inst_12 : Algebra.{u2, u1} R S (CommRing.toCommSemiring.{u2} R _inst_10) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_11))] [h : Algebra.FiniteType.{u1, u2} R S (CommRing.toCommSemiring.{u2} R _inst_10) (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_11)) _inst_12] [_inst_13 : IsNoetherianRing.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_10))], IsNoetherianRing.{u1} S (Ring.toSemiring.{u1} S (CommRing.toRing.{u1} S _inst_11))
+Case conversion may be inaccurate. Consider using '#align algebra.finite_type.is_noetherian_ring Algebra.FiniteType.isNoetherianRingₓ'. -/
 theorem isNoetherianRing (R S : Type _) [CommRing R] [CommRing S] [Algebra R S]
     [h : Algebra.FiniteType R S] [IsNoetherianRing R] : IsNoetherianRing S :=
   by
@@ -189,6 +265,12 @@ theorem isNoetherianRing (R S : Type _) [CommRing R] [CommRing S] [Algebra R S]
   rfl
 #align algebra.finite_type.is_noetherian_ring Algebra.FiniteType.isNoetherianRing
 
+/- warning: subalgebra.fg_iff_finite_type -> Subalgebra.fg_iff_finiteType is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} [_inst_10 : CommSemiring.{u1} R] [_inst_11 : Semiring.{u2} A] [_inst_12 : Algebra.{u1, u2} R A _inst_10 _inst_11] (S : Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12), Iff (Subalgebra.Fg.{u1, u2} R A _inst_10 _inst_11 _inst_12 S) (Algebra.FiniteType.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} R A _inst_10 _inst_11 _inst_12) A (Subalgebra.setLike.{u1, u2} R A _inst_10 _inst_11 _inst_12)) S) _inst_10 (Subalgebra.toSemiring.{u1, u2} R A _inst_10 _inst_11 _inst_12 S) (Subalgebra.algebra.{u1, u2} R A _inst_10 _inst_11 _inst_12 S))
+but is expected to have type
+  forall {R : Type.{u2}} {A : Type.{u1}} [_inst_10 : CommSemiring.{u2} R] [_inst_11 : Semiring.{u1} A] [_inst_12 : Algebra.{u2, u1} R A _inst_10 _inst_11] (S : Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12), Iff (Subalgebra.Fg.{u2, u1} R A _inst_10 _inst_11 _inst_12 S) (Algebra.FiniteType.{u1, u2} R (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12) A (Subalgebra.instSetLikeSubalgebra.{u2, u1} R A _inst_10 _inst_11 _inst_12)) x S)) _inst_10 (Subalgebra.toSemiring.{u2, u1} R A _inst_10 _inst_11 _inst_12 S) (Subalgebra.instAlgebraSubtypeMemSubalgebraInstMembershipInstSetLikeSubalgebraToSemiring.{u2, u1} R A _inst_10 _inst_11 _inst_12 S))
+Case conversion may be inaccurate. Consider using '#align subalgebra.fg_iff_finite_type Subalgebra.fg_iff_finiteTypeₓ'. -/
 theorem Subalgebra.fg_iff_finiteType {R A : Type _} [CommSemiring R] [Semiring A] [Algebra R A]
     (S : Subalgebra R A) : S.Fg ↔ Algebra.FiniteType R S :=
   S.fg_top.symm.trans ⟨fun h => ⟨h⟩, fun h => h.out⟩
@@ -204,15 +286,23 @@ namespace RingHom
 
 variable {A B C : Type _} [CommRing A] [CommRing B] [CommRing C]
 
+#print RingHom.FiniteType /-
 /-- A ring morphism `A →+* B` is of `finite_type` if `B` is finitely generated as `A`-algebra. -/
 def FiniteType (f : A →+* B) : Prop :=
   @Algebra.FiniteType A B _ _ f.toAlgebra
 #align ring_hom.finite_type RingHom.FiniteType
+-/
 
 namespace Finite
 
 variable {A}
 
+/- warning: ring_hom.finite.finite_type -> RingHom.Finite.finiteType is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))}, (RingHom.Finite.{u1, u2} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f)
+but is expected to have type
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] {f : RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))}, (RingHom.Finite.{u2, u1} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align ring_hom.finite.finite_type RingHom.Finite.finiteTypeₓ'. -/
 theorem finiteType {f : A →+* B} (hf : f.Finite) : FiniteType f :=
   @Module.Finite.finiteType _ _ _ _ f.toAlgebra hf
 #align ring_hom.finite.finite_type RingHom.Finite.finiteType
@@ -223,12 +313,20 @@ namespace FiniteType
 
 variable (A)
 
+#print RingHom.FiniteType.id /-
 theorem id : FiniteType (RingHom.id A) :=
   Algebra.FiniteType.self A
 #align ring_hom.finite_type.id RingHom.FiniteType.id
+-/
 
 variable {A}
 
+/- warning: ring_hom.finite_type.comp_surjective -> RingHom.FiniteType.comp_surjective is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} {C : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u3} C] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))} {g : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))}, (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f) -> (Function.Surjective.{succ u2, succ u3} B C (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))) (fun (_x : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))) => B -> C) (RingHom.hasCoeToFun.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))) g)) -> (RingHom.FiniteType.{u1, u3} A C _inst_1 _inst_3 (RingHom.comp.{u1, u2, u3} A B C (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3))) g f))
+but is expected to have type
+  forall {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u1} C] {f : RingHom.{u3, u2} A B (NonAssocRing.toNonAssocSemiring.{u3} A (Ring.toNonAssocRing.{u3} A (CommRing.toRing.{u3} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))} {g : RingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))}, (RingHom.FiniteType.{u3, u2} A B _inst_1 _inst_2 f) -> (Function.Surjective.{succ u2, succ u1} B C (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : B) => C) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))) B C (NonUnitalNonAssocSemiring.toMul.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))))) (NonUnitalNonAssocSemiring.toMul.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))) B C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))) B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3))) (RingHom.instRingHomClassRingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3))))))) g)) -> (RingHom.FiniteType.{u3, u1} A C _inst_1 _inst_3 (RingHom.comp.{u3, u2, u1} A B C (NonAssocRing.toNonAssocSemiring.{u3} A (Ring.toNonAssocRing.{u3} A (CommRing.toRing.{u3} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3))) g f))
+Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.comp_surjective RingHom.FiniteType.comp_surjectiveₓ'. -/
 theorem comp_surjective {f : A →+* B} {g : B →+* C} (hf : f.FiniteType) (hg : Surjective g) :
     (g.comp f).FiniteType :=
   @Algebra.FiniteType.of_surjective A B C _ _ f.toAlgebra _ (g.comp f).toAlgebra hf
@@ -238,12 +336,24 @@ theorem comp_surjective {f : A →+* B} {g : B →+* C} (hf : f.FiniteType) (hg
     hg
 #align ring_hom.finite_type.comp_surjective RingHom.FiniteType.comp_surjective
 
+/- warning: ring_hom.finite_type.of_surjective -> RingHom.FiniteType.of_surjective is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] (f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))), (Function.Surjective.{succ u1, succ u2} A B (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) (fun (_x : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) => A -> B) (RingHom.hasCoeToFun.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))) f)) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f)
+but is expected to have type
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] (f : RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))), (Function.Surjective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : A) => B) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))) A B (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))) A B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))) A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2))) (RingHom.instRingHomClassRingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2))))))) f)) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.of_surjective RingHom.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (f : A →+* B) (hf : Surjective f) : f.FiniteType :=
   by
   rw [← f.comp_id]
   exact (id A).comp_surjective hf
 #align ring_hom.finite_type.of_surjective RingHom.FiniteType.of_surjective
 
+/- warning: ring_hom.finite_type.comp -> RingHom.FiniteType.comp is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} {C : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u3} C] {g : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))} {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))}, (RingHom.FiniteType.{u2, u3} B C _inst_2 _inst_3 g) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u3} A C _inst_1 _inst_3 (RingHom.comp.{u1, u2, u3} A B C (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3))) g f))
+but is expected to have type
+  forall {A : Type.{u1}} {B : Type.{u3}} {C : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u3} B] [_inst_3 : CommRing.{u2} C] {g : RingHom.{u3, u2} B C (NonAssocRing.toNonAssocSemiring.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u2} C (Ring.toNonAssocRing.{u2} C (CommRing.toRing.{u2} C _inst_3)))} {f : RingHom.{u1, u3} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_2)))}, (RingHom.FiniteType.{u3, u2} B C _inst_2 _inst_3 g) -> (RingHom.FiniteType.{u1, u3} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u2} A C _inst_1 _inst_3 (RingHom.comp.{u1, u3, u2} A B C (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u3} B (Ring.toNonAssocRing.{u3} B (CommRing.toRing.{u3} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u2} C (Ring.toNonAssocRing.{u2} C (CommRing.toRing.{u2} C _inst_3))) g f))
+Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.comp RingHom.FiniteType.compₓ'. -/
 theorem comp {g : B →+* C} {f : A →+* B} (hg : g.FiniteType) (hf : f.FiniteType) :
     (g.comp f).FiniteType :=
   @Algebra.FiniteType.trans A B C _ _ f.toAlgebra _ (g.comp f).toAlgebra g.toAlgebra
@@ -255,13 +365,31 @@ theorem comp {g : B →+* C} {f : A →+* B} (hg : g.FiniteType) (hf : f.FiniteT
     hf hg
 #align ring_hom.finite_type.comp RingHom.FiniteType.comp
 
+/- warning: ring_hom.finite_type.of_finite -> RingHom.FiniteType.of_finite is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))}, (RingHom.Finite.{u1, u2} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f)
+but is expected to have type
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] {f : RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))}, (RingHom.Finite.{u2, u1} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.of_finite RingHom.FiniteType.of_finiteₓ'. -/
 theorem of_finite {f : A →+* B} (hf : f.Finite) : f.FiniteType :=
   @Module.Finite.finiteType _ _ _ _ f.toAlgebra hf
 #align ring_hom.finite_type.of_finite RingHom.FiniteType.of_finite
 
+/- warning: ring_hom.finite.to_finite_type -> RingHom.Finite.to_finiteType is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))}, (RingHom.Finite.{u1, u2} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u1, u2} A B _inst_1 _inst_2 f)
+but is expected to have type
+  forall {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u2} A] [_inst_2 : CommRing.{u1} B] {f : RingHom.{u2, u1} A B (NonAssocRing.toNonAssocSemiring.{u2} A (Ring.toNonAssocRing.{u2} A (CommRing.toRing.{u2} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u1} B (Ring.toNonAssocRing.{u1} B (CommRing.toRing.{u1} B _inst_2)))}, (RingHom.Finite.{u2, u1} A B _inst_1 _inst_2 f) -> (RingHom.FiniteType.{u2, u1} A B _inst_1 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align ring_hom.finite.to_finite_type RingHom.Finite.to_finiteTypeₓ'. -/
 alias of_finite ← _root_.ring_hom.finite.to_finite_type
 #align ring_hom.finite.to_finite_type RingHom.Finite.to_finiteType
 
+/- warning: ring_hom.finite_type.of_comp_finite_type -> RingHom.FiniteType.of_comp_finiteType is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} {C : Type.{u3}} [_inst_1 : CommRing.{u1} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u3} C] {f : RingHom.{u1, u2} A B (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))} {g : RingHom.{u2, u3} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3)))}, (RingHom.FiniteType.{u1, u3} A C _inst_1 _inst_3 (RingHom.comp.{u1, u2, u3} A B C (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u3} C (Ring.toNonAssocRing.{u3} C (CommRing.toRing.{u3} C _inst_3))) g f)) -> (RingHom.FiniteType.{u2, u3} B C _inst_2 _inst_3 g)
+but is expected to have type
+  forall {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u3} A] [_inst_2 : CommRing.{u2} B] [_inst_3 : CommRing.{u1} C] {f : RingHom.{u3, u2} A B (NonAssocRing.toNonAssocSemiring.{u3} A (Ring.toNonAssocRing.{u3} A (CommRing.toRing.{u3} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2)))} {g : RingHom.{u2, u1} B C (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3)))}, (RingHom.FiniteType.{u3, u1} A C _inst_1 _inst_3 (RingHom.comp.{u3, u2, u1} A B C (NonAssocRing.toNonAssocSemiring.{u3} A (Ring.toNonAssocRing.{u3} A (CommRing.toRing.{u3} A _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} B (Ring.toNonAssocRing.{u2} B (CommRing.toRing.{u2} B _inst_2))) (NonAssocRing.toNonAssocSemiring.{u1} C (Ring.toNonAssocRing.{u1} C (CommRing.toRing.{u1} C _inst_3))) g f)) -> (RingHom.FiniteType.{u2, u1} B C _inst_2 _inst_3 g)
+Case conversion may be inaccurate. Consider using '#align ring_hom.finite_type.of_comp_finite_type RingHom.FiniteType.of_comp_finiteTypeₓ'. -/
 theorem of_comp_finiteType {f : A →+* B} {g : B →+* C} (h : (g.comp f).FiniteType) : g.FiniteType :=
   by
   letI := f.to_algebra
@@ -269,7 +397,7 @@ theorem of_comp_finiteType {f : A →+* B} {g : B →+* C} (h : (g.comp f).Finit
   letI := (g.comp f).toAlgebra
   letI : IsScalarTower A B C := RestrictScalars.isScalarTower A B C
   letI : Algebra.FiniteType A C := h
-  exact Algebra.FiniteType.of_restrict_scalars_finiteType A B C
+  exact Algebra.FiniteType.of_restrictScalars_finiteType A B C
 #align ring_hom.finite_type.of_comp_finite_type RingHom.FiniteType.of_comp_finiteType
 
 end FiniteType
@@ -284,16 +412,24 @@ variable [CommRing A] [CommRing B] [CommRing C]
 
 variable [Algebra R A] [Algebra R B] [Algebra R C]
 
+#print AlgHom.FiniteType /-
 /-- An algebra morphism `A →ₐ[R] B` is of `finite_type` if it is of finite type as ring morphism.
 In other words, if `B` is finitely generated as `A`-algebra. -/
 def FiniteType (f : A →ₐ[R] B) : Prop :=
   f.toRingHom.FiniteType
 #align alg_hom.finite_type AlgHom.FiniteType
+-/
 
 namespace Finite
 
 variable {R A}
 
+/- warning: alg_hom.finite.finite_type -> AlgHom.Finite.finiteType is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] {f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6}, (AlgHom.Finite.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
+but is expected to have type
+  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_5 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))] {f : AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6}, (AlgHom.Finite.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
+Case conversion may be inaccurate. Consider using '#align alg_hom.finite.finite_type AlgHom.Finite.finiteTypeₓ'. -/
 theorem finiteType {f : A →ₐ[R] B} (hf : f.Finite) : FiniteType f :=
   RingHom.Finite.finiteType hf
 #align alg_hom.finite.finite_type AlgHom.Finite.finiteType
@@ -304,26 +440,56 @@ namespace FiniteType
 
 variable (R A)
 
+/- warning: alg_hom.finite_type.id -> AlgHom.FiniteType.id is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) (A : Type.{u2}) [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))], AlgHom.FiniteType.{u1, u2, u2} R A A _inst_1 _inst_2 _inst_2 _inst_5 _inst_5 (AlgHom.id.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)
+but is expected to have type
+  forall (R : Type.{u2}) (A : Type.{u1}) [_inst_1 : CommRing.{u2} R] [_inst_2 : CommRing.{u1} A] [_inst_5 : Algebra.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2))], AlgHom.FiniteType.{u2, u1, u1} R A A _inst_1 _inst_2 _inst_2 _inst_5 _inst_5 (AlgHom.id.{u2, u1} R A (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2)) _inst_5)
+Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.id AlgHom.FiniteType.idₓ'. -/
 theorem id : FiniteType (AlgHom.id R A) :=
   RingHom.FiniteType.id A
 #align alg_hom.finite_type.id AlgHom.FiniteType.id
 
 variable {R A}
 
+/- warning: alg_hom.finite_type.comp -> AlgHom.FiniteType.comp is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {C : Type.{u4}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u4} C] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4))] {g : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7} {f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6}, (AlgHom.FiniteType.{u1, u3, u4} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g) -> (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u1, u2, u4} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u1, u2, u3, u4} R A B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
+but is expected to have type
+  forall {R : Type.{u4}} {A : Type.{u1}} {B : Type.{u3}} {C : Type.{u2}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u1} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u2} C] [_inst_5 : Algebra.{u4, u1} R A (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2))] [_inst_6 : Algebra.{u4, u3} R B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u4, u2} R C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} C (CommRing.toRing.{u2} C _inst_4))] {g : AlgHom.{u4, u3, u2} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u2} C (CommRing.toRing.{u2} C _inst_4)) _inst_6 _inst_7} {f : AlgHom.{u4, u1, u3} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6}, (AlgHom.FiniteType.{u4, u3, u2} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g) -> (AlgHom.FiniteType.{u4, u1, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (AlgHom.FiniteType.{u4, u1, u2} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u1, u3, u2} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u2} C (CommRing.toRing.{u2} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
+Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.comp AlgHom.FiniteType.compₓ'. -/
 theorem comp {g : B →ₐ[R] C} {f : A →ₐ[R] B} (hg : g.FiniteType) (hf : f.FiniteType) :
     (g.comp f).FiniteType :=
   RingHom.FiniteType.comp hg hf
 #align alg_hom.finite_type.comp AlgHom.FiniteType.comp
 
+/- warning: alg_hom.finite_type.comp_surjective -> AlgHom.FiniteType.comp_surjective is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {C : Type.{u4}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u4} C] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4))] {f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (Function.Surjective.{succ u3, succ u4} B C (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7) (fun (_x : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7) => B -> C) ([anonymous].{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7) g)) -> (AlgHom.FiniteType.{u1, u2, u4} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u1, u2, u3, u4} R A B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
+but is expected to have type
+  forall {R : Type.{u4}} {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : CommRing.{u1} C] [_inst_5 : Algebra.{u4, u3} R A (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))] [_inst_6 : Algebra.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))] [_inst_7 : Algebra.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))] {f : AlgHom.{u4, u3, u2} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u4, u3, u2} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f) -> (Function.Surjective.{succ u2, succ u1} B C (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => C) _x) (SMulHomClass.toFunLike.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7) R B C (SMulZeroClass.toSMul.{u4, u2} R B (AddMonoid.toZero.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u4, u2} R B (AddMonoid.toAddZeroClass.{u2} B (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u4, u2} R B (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)))))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_6))))) (SMulZeroClass.toSMul.{u4, u1} R C (AddMonoid.toZero.{u1} C (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))))))) (DistribSMul.toSMulZeroClass.{u4, u1} R C (AddMonoid.toAddZeroClass.{u1} C (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))))))) (DistribMulAction.toDistribSMul.{u4, u1} R C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)))))) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_7))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7) R B C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)))))) (AddCommMonoid.toAddMonoid.{u1} C (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)))))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_6)) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_7)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u4, u2, u1} (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7) R B C (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)))) (Module.toDistribMulAction.{u4, u2} R B (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} B (Semiring.toNonAssocSemiring.{u2} B (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))))) (Algebra.toModule.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_6)) (Module.toDistribMulAction.{u4, u1} R C (CommSemiring.toSemiring.{u4} R (CommRing.toCommSemiring.{u4} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} C (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} C (Semiring.toNonAssocSemiring.{u1} C (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))))) (Algebra.toModule.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_7)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u4, u2, u1, max u2 u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7 (AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7) (AlgHom.algHomClass.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7))))) g)) -> (AlgHom.FiniteType.{u4, u3, u1} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u3, u2, u1} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_5 _inst_6 _inst_7 g f))
+Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.comp_surjective AlgHom.FiniteType.comp_surjectiveₓ'. -/
 theorem comp_surjective {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.FiniteType) (hg : Surjective g) :
     (g.comp f).FiniteType :=
   RingHom.FiniteType.comp_surjective hf hg
 #align alg_hom.finite_type.comp_surjective AlgHom.FiniteType.comp_surjective
 
+/- warning: alg_hom.finite_type.of_surjective -> AlgHom.FiniteType.of_surjective is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] (f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6), (Function.Surjective.{succ u2, succ u3} A B (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) (fun (_x : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) => A -> B) ([anonymous].{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6) f)) -> (AlgHom.FiniteType.{u1, u2, u3} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
+but is expected to have type
+  forall {R : Type.{u3}} {A : Type.{u2}} {B : Type.{u1}} [_inst_1 : CommRing.{u3} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u1} B] [_inst_5 : Algebra.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))] (f : AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6), (Function.Surjective.{succ u2, succ u1} A B (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : A) => B) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6) R A B (SMulZeroClass.toSMul.{u3, u2} R A (AddMonoid.toZero.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribSMul.toSMulZeroClass.{u3, u2} R A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))))) (DistribMulAction.toDistribSMul.{u3, u2} R A (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5))))) (SMulZeroClass.toSMul.{u3, u1} R B (AddMonoid.toZero.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))))))) (DistribSMul.toSMulZeroClass.{u3, u1} R B (AddMonoid.toAddZeroClass.{u1} B (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))))))) (DistribMulAction.toDistribSMul.{u3, u1} R B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)))))) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6) R A B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))))) (AddCommMonoid.toAddMonoid.{u1} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)))))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u3, u2, u1} (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6) R A B (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)))) (Module.toDistribMulAction.{u3, u2} R A (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))))) (Algebra.toModule.{u3, u2} R A (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) _inst_5)) (Module.toDistribMulAction.{u3, u1} R B (CommSemiring.toSemiring.{u3} R (CommRing.toCommSemiring.{u3} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} B (Semiring.toNonAssocSemiring.{u1} B (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3))))) (Algebra.toModule.{u3, u1} R B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u3, u2, u1, max u2 u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6 (AlgHom.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6) (AlgHom.algHomClass.{u3, u2, u1} R A B (CommRing.toCommSemiring.{u3} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u1} B (CommRing.toRing.{u1} B _inst_3)) _inst_5 _inst_6))))) f)) -> (AlgHom.FiniteType.{u3, u2, u1} R A B _inst_1 _inst_2 _inst_3 _inst_5 _inst_6 f)
+Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.of_surjective AlgHom.FiniteType.of_surjectiveₓ'. -/
 theorem of_surjective (f : A →ₐ[R] B) (hf : Surjective f) : f.FiniteType :=
   RingHom.FiniteType.of_surjective f hf
 #align alg_hom.finite_type.of_surjective AlgHom.FiniteType.of_surjective
 
+/- warning: alg_hom.finite_type.of_comp_finite_type -> AlgHom.FiniteType.of_comp_finiteType is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {C : Type.{u4}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommRing.{u2} A] [_inst_3 : CommRing.{u3} B] [_inst_4 : CommRing.{u4} C] [_inst_5 : Algebra.{u1, u2} R A (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2))] [_inst_6 : Algebra.{u1, u3} R B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3))] [_inst_7 : Algebra.{u1, u4} R C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4))] {f : AlgHom.{u1, u2, u3} R A B (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u1, u3, u4} R B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u1, u2, u4} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u1, u2, u3, u4} R A B C (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} A (CommRing.toRing.{u2} A _inst_2)) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_3)) (Ring.toSemiring.{u4} C (CommRing.toRing.{u4} C _inst_4)) _inst_5 _inst_6 _inst_7 g f)) -> (AlgHom.FiniteType.{u1, u3, u4} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g)
+but is expected to have type
+  forall {R : Type.{u4}} {A : Type.{u3}} {B : Type.{u2}} {C : Type.{u1}} [_inst_1 : CommRing.{u4} R] [_inst_2 : CommRing.{u3} A] [_inst_3 : CommRing.{u2} B] [_inst_4 : CommRing.{u1} C] [_inst_5 : Algebra.{u4, u3} R A (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2))] [_inst_6 : Algebra.{u4, u2} R B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3))] [_inst_7 : Algebra.{u4, u1} R C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4))] {f : AlgHom.{u4, u3, u2} R A B (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) _inst_5 _inst_6} {g : AlgHom.{u4, u2, u1} R B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_6 _inst_7}, (AlgHom.FiniteType.{u4, u3, u1} R A C _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 (AlgHom.comp.{u4, u3, u2, u1} R A B C (CommRing.toCommSemiring.{u4} R _inst_1) (Ring.toSemiring.{u3} A (CommRing.toRing.{u3} A _inst_2)) (Ring.toSemiring.{u2} B (CommRing.toRing.{u2} B _inst_3)) (Ring.toSemiring.{u1} C (CommRing.toRing.{u1} C _inst_4)) _inst_5 _inst_6 _inst_7 g f)) -> (AlgHom.FiniteType.{u4, u2, u1} R B C _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 g)
+Case conversion may be inaccurate. Consider using '#align alg_hom.finite_type.of_comp_finite_type AlgHom.FiniteType.of_comp_finiteTypeₓ'. -/
 theorem of_comp_finiteType {f : A →ₐ[R] B} {g : B →ₐ[R] C} (h : (g.comp f).FiniteType) :
     g.FiniteType :=
   RingHom.FiniteType.of_comp_finiteType h
@@ -347,6 +513,12 @@ section Semiring
 
 variable [CommSemiring R] [AddMonoid M]
 
+/- warning: add_monoid_algebra.mem_adjoin_support -> AddMonoidAlgebra.mem_adjoin_support is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)), Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (SetLike.hasMem.{max u2 u1, max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Subalgebra.setLike.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))) f (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f))))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommSemiring.{u2} R] [_inst_2 : AddMonoid.{u1} M] (f : AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)), Membership.mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Subalgebra.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2)) (SetLike.instMembership.{max u2 u1, max u2 u1} (Subalgebra.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2)) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Subalgebra.instSetLikeSubalgebra.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2))) f (Algebra.adjoin.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2) (Set.image.{u1, max u2 u1} M (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Finset.toSet.{u1} M (Finsupp.support.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) f))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mem_adjoin_support AddMonoidAlgebra.mem_adjoin_supportₓ'. -/
 /-- An element of `add_monoid_algebra R M` is in the subalgebra generated by its support. -/
 theorem mem_adjoin_support (f : AddMonoidAlgebra R M) : f ∈ adjoin R (of' R M '' f.support) :=
   by
@@ -356,6 +528,12 @@ theorem mem_adjoin_support (f : AddMonoidAlgebra R M) : f ∈ adjoin R (of' R M
   exact subset_adjoin
 #align add_monoid_algebra.mem_adjoin_support AddMonoidAlgebra.mem_adjoin_support
 
+/- warning: add_monoid_algebra.support_gen_of_gen -> AddMonoidAlgebra.support_gen_of_gen is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.unionᵢ.{max u2 u1, succ (max u2 u1)} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{max u2 u1, 0} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.unionᵢ.{max u1 u2, succ (max u1 u2)} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{max u1 u2, 0} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.support_gen_of_gen AddMonoidAlgebra.support_gen_of_genₓ'. -/
 /-- If a set `S` generates, as algebra, `add_monoid_algebra R M`, then the set of supports of
 elements of `S` generates `add_monoid_algebra R M`. -/
 theorem support_gen_of_gen {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
@@ -372,6 +550,12 @@ theorem support_gen_of_gen {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin
   exact adjoin_mono hincl (mem_adjoin_support f)
 #align add_monoid_algebra.support_gen_of_gen AddMonoidAlgebra.support_gen_of_gen
 
+/- warning: add_monoid_algebra.support_gen_of_gen' -> AddMonoidAlgebra.support_gen_of_gen' is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.unionᵢ.{u2, succ (max u2 u1)} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{u2, 0} M (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddMonoid.{u2} M] {S : Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.unionᵢ.{u2, succ (max u1 u2)} M (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{u2, 0} M (Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (AddMonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.support_gen_of_gen' AddMonoidAlgebra.support_gen_of_gen'ₓ'. -/
 /-- If a set `S` generates, as algebra, `add_monoid_algebra R M`, then the image of the union of
 the supports of elements of `S` generates `add_monoid_algebra R M`. -/
 theorem support_gen_of_gen' {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
@@ -390,6 +574,12 @@ section Ring
 
 variable [CommRing R] [AddCommMonoid M]
 
+/- warning: add_monoid_algebra.exists_finset_adjoin_eq_top -> AddMonoidAlgebra.exists_finset_adjoin_eq_top is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [h : Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{succ (max u2 u1)} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) G))) (Top.top.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (CompleteLattice.toHasTop.{max u2 u1} (Subalgebra.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.Subalgebra.completeLattice.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [h : Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Finset.toSet.{u2} M G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.exists_finset_adjoin_eq_top AddMonoidAlgebra.exists_finset_adjoin_eq_topₓ'. -/
 /-- If `add_monoid_algebra R M` is of finite type, there there is a `G : finset M` such that its
 image generates, as algera, `add_monoid_algebra R M`. -/
 theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
@@ -404,6 +594,12 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
   exact support_gen_of_gen' hS
 #align add_monoid_algebra.exists_finset_adjoin_eq_top AddMonoidAlgebra.exists_finset_adjoin_eq_top
 
+/- warning: add_monoid_algebra.of'_mem_span -> AddMonoidAlgebra.of'_mem_span is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, Iff (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u2 u1, max u2 u1} (Submodule.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) m) (Submodule.span.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) S))) (Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) m S)
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, Iff (Membership.mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddMonoidAlgebra.of'.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) m) (Submodule.span.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Set.image.{u1, max u2 u1} M (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.of'.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) S))) (Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) m S)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.of'_mem_span AddMonoidAlgebra.of'_mem_spanₓ'. -/
 /-- The image of an element `m : M` in `add_monoid_algebra R M` belongs the submodule generated by
 `S : set M` if and only if `m ∈ S`. -/
 theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
@@ -415,6 +611,12 @@ theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
   simpa using h
 #align add_monoid_algebra.of'_mem_span AddMonoidAlgebra.of'_mem_span
 
+/- warning: add_monoid_algebra.mem_closure_of_mem_span_closure -> AddMonoidAlgebra.mem_closure_of_mem_span_closure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u2 u1, max u2 u1} (Submodule.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) m) (Submodule.span.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type.{max u2 u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ (max u2 u1), succ (max u2 u1)} a b] => self.0) (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (HasLiftT.mk.{succ (max u2 u1), succ (max u2 u1)} (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CoeTCₓ.coe.{succ (max u2 u1), succ (max u2 u1)} (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) (Set.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.Set.hasCoeT.{max u2 u1, max u2 u1} (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submonoid.setLike.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))))) (Submonoid.closure.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (Set.image.{u2, max u2 u1} M (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddMonoidAlgebra.of'.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) S))))) -> (Membership.Mem.{u2, u2} M (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) M (AddSubmonoid.setLike.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) m (AddSubmonoid.closure.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) S))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, (Membership.mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (AddMonoidAlgebra.of'.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) m) (Submodule.span.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))))) (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))))) (Submonoid.closure.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) (Set.image.{u1, max u2 u1} M (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddMonoidAlgebra.of'.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) S))))) -> (Membership.mem.{u1, u1} M (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (SetLike.instMembership.{u1, u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) M (AddSubmonoid.instSetLikeAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))) m (AddSubmonoid.closure.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) S))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mem_closure_of_mem_span_closure AddMonoidAlgebra.mem_closure_of_mem_span_closureₓ'. -/
 /--
 If the image of an element `m : M` in `add_monoid_algebra R M` belongs the submodule generated by
 the closure of some `S : set M` then `m ∈ closure S`. -/
@@ -437,6 +639,12 @@ end Span
 
 variable [AddCommMonoid M]
 
+/- warning: add_monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure -> AddMonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommSemiring.{u1} R] {S : Set.{u2} M}, (Eq.{succ u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (AddSubmonoid.closure.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) S) (Top.top.{u2} (AddSubmonoid.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (AddSubmonoid.hasTop.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeFn.{succ (max u2 u1), succ (max u2 u1)} (AlgHom.{u1, max u2 u1, max u2 u1} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (fun (_x : AlgHom.{u1, max u2 u1, max u2 u1} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) => (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) -> (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2))) ([anonymous].{u1, max u2 u1, max u2 u1} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (MvPolynomial.aeval.{u1, max u2 u1, u2} R (AddMonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 (AddMonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (fun (s : coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) => AddMonoidAlgebra.of'.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) x S))))) s)))))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommSemiring.{u2} R] {S : Set.{u1} M}, (Eq.{succ u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddSubmonoid.closure.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) S) (Top.top.{u1} (AddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddSubmonoid.instTopAddSubmonoid.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u1) (succ u2), max (succ u2) (succ u1)} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (fun (_x : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (SMulHomClass.toFunLike.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (SMulZeroClass.toSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toZero.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2))))))) (SMulZeroClass.toSMul.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toZero.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, max u1 u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AlgHom.algHomClass.{u2, max u1 u2, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))))))) (MvPolynomial.aeval.{u2, max u2 u1, u1} R (AddMonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Set.Elem.{u1} M S) _inst_2 (AddMonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (fun (s : Set.Elem.{u1} M S) => AddMonoidAlgebra.of'.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x S) s)))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure AddMonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closureₓ'. -/
 /-- If a set `S` generates an additive monoid `M`, then the image of `M` generates, as algebra,
 `add_monoid_algebra R M`. -/
 theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
@@ -463,6 +671,12 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
 
 variable (R M)
 
+/- warning: add_monoid_algebra.finite_type_of_fg -> AddMonoidAlgebra.finiteType_of_fg is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) (M : Type.{u2}) [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [h : AddMonoid.Fg.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)], Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
+but is expected to have type
+  forall (R : Type.{u1}) (M : Type.{u2}) [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [h : AddMonoid.Fg.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)], Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.finite_type_of_fg AddMonoidAlgebra.finiteType_of_fgₓ'. -/
 /-- If an additive monoid `M` is finitely generated then `add_monoid_algebra R M` is of finite
 type. -/
 instance finiteType_of_fg [CommRing R] [h : AddMonoid.Fg M] : FiniteType R (AddMonoidAlgebra R M) :=
@@ -476,6 +690,12 @@ instance finiteType_of_fg [CommRing R] [h : AddMonoid.Fg M] : FiniteType R (AddM
 
 variable {R M}
 
+/- warning: add_monoid_algebra.finite_type_iff_fg -> AddMonoidAlgebra.finiteType_iff_fg is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))) (AddMonoid.Fg.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R], Iff (Algebra.FiniteType.{max u1 u2, u2} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (AddMonoidAlgebra.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))) (AddMonoid.Fg.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.finite_type_iff_fg AddMonoidAlgebra.finiteType_iff_fgₓ'. -/
 /-- An additive monoid `M` is finitely generated if and only if `add_monoid_algebra R M` is of
 finite type. -/
 theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
@@ -490,12 +710,24 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
   exact mem_closure_of_mem_span_closure hm
 #align add_monoid_algebra.finite_type_iff_fg AddMonoidAlgebra.finiteType_iff_fg
 
+/- warning: add_monoid_algebra.fg_of_finite_type -> AddMonoidAlgebra.fg_of_finiteType is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R] [h : Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (AddCommMonoid.toAddMonoid.{u2} M _inst_1))], AddMonoid.Fg.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R] [h : Algebra.FiniteType.{max u1 u2, u2} R (AddMonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (AddMonoidAlgebra.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AddMonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{u1} M _inst_1))], AddMonoid.Fg.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.fg_of_finite_type AddMonoidAlgebra.fg_of_finiteTypeₓ'. -/
 /-- If `add_monoid_algebra R M` is of finite type then `M` is finitely generated. -/
 theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (AddMonoidAlgebra R M)] :
     AddMonoid.Fg M :=
   finiteType_iff_fg.1 h
 #align add_monoid_algebra.fg_of_finite_type AddMonoidAlgebra.fg_of_finiteType
 
+/- warning: add_monoid_algebra.finite_type_iff_group_fg -> AddMonoidAlgebra.finiteType_iff_group_fg is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u2 u1} R (AddMonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (AddMonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2)))) (AddMonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))))) (AddGroup.Fg.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))
+but is expected to have type
+  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{max u2 u1, u1} R (AddMonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (AddMonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2)))) (AddMonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))))) (AddGroup.Fg.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.finite_type_iff_group_fg AddMonoidAlgebra.finiteType_iff_group_fgₓ'. -/
 /-- An additive group `G` is finitely generated if and only if `add_monoid_algebra R G` is of
 finite type. -/
 theorem finiteType_iff_group_fg {G : Type _} [AddCommGroup G] [CommRing R] [Nontrivial R] :
@@ -515,6 +747,12 @@ section Semiring
 
 variable [CommSemiring R] [Monoid M]
 
+/- warning: monoid_algebra.mem_adjoin_support -> MonoidAlgebra.mem_adjoin_support is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)), Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (SetLike.hasMem.{max u1 u2, max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Subalgebra.setLike.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))) f (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f))))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommSemiring.{u2} R] [_inst_2 : Monoid.{u1} M] (f : MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)), Membership.mem.{max u2 u1, max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Subalgebra.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2)) (SetLike.instMembership.{max u2 u1, max u2 u1} (Subalgebra.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2)) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Subalgebra.instSetLikeSubalgebra.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2))) f (Algebra.adjoin.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_1 (CommSemiring.toSemiring.{u2} R _inst_1) (Algebra.id.{u2} R _inst_1) _inst_2) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_2)) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2)))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_1) (Monoid.toMulOneClass.{u1} M _inst_2))) (Finset.toSet.{u1} M (Finsupp.support.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1))) f))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.mem_adjoin_support MonoidAlgebra.mem_adjoin_supportₓ'. -/
 /-- An element of `monoid_algebra R M` is in the subalgebra generated by its support. -/
 theorem mem_adjoin_support (f : MonoidAlgebra R M) : f ∈ adjoin R (of R M '' f.support) :=
   by
@@ -524,6 +762,12 @@ theorem mem_adjoin_support (f : MonoidAlgebra R M) : f ∈ adjoin R (of R M '' f
   exact subset_adjoin
 #align monoid_algebra.mem_adjoin_support MonoidAlgebra.mem_adjoin_support
 
+/- warning: monoid_algebra.support_gen_of_gen -> MonoidAlgebra.support_gen_of_gen is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.unionᵢ.{max u1 u2, succ (max u1 u2)} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{max u1 u2, 0} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.unionᵢ.{max u1 u2, succ (max u1 u2)} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{max u1 u2, 0} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.support_gen_of_gen MonoidAlgebra.support_gen_of_genₓ'. -/
 /-- If a set `S` generates, as algebra, `monoid_algebra R M`, then the set of supports of elements
 of `S` generates `monoid_algebra R M`. -/
 theorem support_gen_of_gen {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
@@ -539,6 +783,12 @@ theorem support_gen_of_gen {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R
   exact adjoin_mono hincl (mem_adjoin_support f)
 #align monoid_algebra.support_gen_of_gen MonoidAlgebra.support_gen_of_gen
 
+/- warning: monoid_algebra.support_gen_of_gen' -> MonoidAlgebra.support_gen_of_gen' is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Set.unionᵢ.{u2, succ (max u1 u2)} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{u2, 0} M (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.hasMem.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) (Finsupp.support.{u2, u1} M R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Monoid.{u2} M] {S : Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))}, (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) S) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2))))) -> (Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M _inst_2)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))) M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) (Monoid.toMulOneClass.{u2} M _inst_2))) (Set.unionᵢ.{u2, succ (max u1 u2)} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (fun (f : MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) => Set.unionᵢ.{u2, 0} M (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) (fun (H : Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) (Set.{max u2 u1} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) (Set.instMembershipSet.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1))) f S) => Finset.toSet.{u2} M (Finsupp.support.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) f)))))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1)) _inst_1 (MonoidAlgebra.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1) _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.support_gen_of_gen' MonoidAlgebra.support_gen_of_gen'ₓ'. -/
 /-- If a set `S` generates, as algebra, `monoid_algebra R M`, then the image of the union of the
 supports of elements of `S` generates `monoid_algebra R M`. -/
 theorem support_gen_of_gen' {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
@@ -557,6 +807,12 @@ section Ring
 
 variable [CommRing R] [CommMonoid M]
 
+/- warning: monoid_algebra.exists_finset_adjoin_eq_top -> MonoidAlgebra.exists_finset_adjoin_eq_top is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [h : Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{succ (max u1 u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} M) (Set.{u2} M) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} M) (Set.{u2} M) (Finset.Set.hasCoeT.{u2} M))) G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (CompleteLattice.toHasTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.Subalgebra.completeLattice.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [h : Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))], Exists.{succ u2} (Finset.{u2} M) (fun (G : Finset.{u2} M) => Eq.{max (succ u1) (succ u2)} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.adjoin.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulOneClass.toMul.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))) (MonoidHom.monoidHomClass.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) (Finset.toSet.{u2} M G))) (Top.top.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (CompleteLattice.toTop.{max u1 u2} (Subalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))) (Algebra.instCompleteLatticeSubalgebra.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommMonoid.toMonoid.{u2} M _inst_2))))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.exists_finset_adjoin_eq_top MonoidAlgebra.exists_finset_adjoin_eq_topₓ'. -/
 /-- If `monoid_algebra R M` is of finite type, there there is a `G : finset M` such that its image
 generates, as algera, `monoid_algebra R M`. -/
 theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
@@ -571,6 +827,12 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
   exact support_gen_of_gen' hS
 #align monoid_algebra.exists_finset_adjoin_eq_top MonoidAlgebra.exists_finset_adjoin_eq_top
 
+/- warning: monoid_algebra.of_mem_span_of_iff -> MonoidAlgebra.of_mem_span_of_iff is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) m) (Submodule.span.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) S))) (Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) m S)
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, Iff (Membership.mem.{max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) m) (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) m) (Submodule.span.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) S))) (Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) m S)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.of_mem_span_of_iff MonoidAlgebra.of_mem_span_of_iffₓ'. -/
 /-- The image of an element `m : M` in `monoid_algebra R M` belongs the submodule generated by
 `S : set M` if and only if `m ∈ S`. -/
 theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
@@ -582,6 +844,12 @@ theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
   simpa using h
 #align monoid_algebra.of_mem_span_of_iff MonoidAlgebra.of_mem_span_of_iff
 
+/- warning: monoid_algebra.mem_closure_of_mem_span_closure -> MonoidAlgebra.mem_closure_of_mem_span_closure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommRing.{u1} R] [_inst_2 : CommMonoid.{u2} M] [_inst_3 : Nontrivial.{u1} R] {m : M} {S : Set.{u2} M}, (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submodule.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submodule.setLike.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) m) (Submodule.span.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.module.{u1, u2, u1} R M R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (Set.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (SetLike.Set.hasCoeT.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Submonoid.setLike.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))))))) (Submonoid.closure.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))))) (Set.image.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) => M -> (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))))) (MonoidAlgebra.of.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) S))))) -> (Membership.Mem.{u2, u2} M (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2))) M (Submonoid.setLike.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)))) m (Submonoid.closure.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_2)) S))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : CommMonoid.{u1} M] [_inst_3 : Nontrivial.{u2} R] {m : M} {S : Set.{u1} M}, (Membership.mem.{max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) m) (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submodule.setLike.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) m) (Submodule.span.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (MonoidAlgebra.addCommMonoid.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.module.{u2, u1, u2} R M R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Semiring.toModule.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (Submonoid.closure.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (Set.image.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))) M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))))))) (MonoidAlgebra.of.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) S))))) -> (Membership.mem.{u1, u1} M (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2))) M (Submonoid.instSetLikeSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)))) m (Submonoid.closure.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_2)) S))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.mem_closure_of_mem_span_closure MonoidAlgebra.mem_closure_of_mem_span_closureₓ'. -/
 /--
 If the image of an element `m : M` in `monoid_algebra R M` belongs the submodule generated by the
 closure of some `S : set M` then `m ∈ closure S`. -/
@@ -598,6 +866,12 @@ end Span
 
 variable [CommMonoid M]
 
+/- warning: monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure -> MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommSemiring.{u1} R] {S : Set.{u2} M}, (Eq.{succ u2} (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))) (Submonoid.closure.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) S) (Top.top.{u2} (Submonoid.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))) (Submonoid.hasTop.{u2} M (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), succ (max u1 u2)} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeFn.{max (succ (max u2 u1)) (succ (max u1 u2)), max (succ (max u2 u1)) (succ (max u1 u2))} (AlgHom.{u1, max u2 u1, max u1 u2} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1))) (fun (_x : AlgHom.{u1, max u2 u1, max u1 u2} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1))) => (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2))) ([anonymous].{u1, max u2 u1, max u1 u2} R (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) R _inst_2) (MvPolynomial.commSemiring.{u1, u2} R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2)) (CommSemiring.toSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u1, u1, u2} R R (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 _inst_2 (Algebra.id.{u1} R _inst_2)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1))) (MvPolynomial.aeval.{u1, max u1 u2, u2} R (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) _inst_2 (MonoidAlgebra.commSemiring.{u1, u2} R M _inst_2 _inst_1) (MonoidAlgebra.algebra.{u1, u2, u1} R M R _inst_2 (CommSemiring.toSemiring.{u1} R _inst_2) (Algebra.id.{u1} R _inst_2) (CommMonoid.toMonoid.{u2} M _inst_1)) (fun (s : coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) => coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))))) (fun (_x : MonoidHom.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))))) => M -> (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2))) (MonoidHom.hasCoeToFun.{u2, max u1 u2} M (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)))))) (MonoidAlgebra.of.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_2) (Monoid.toMulOneClass.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} M) Type.{u2} (Set.hasCoeToSort.{u2} M) S) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) x S))))) s)))))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommSemiring.{u2} R] {S : Set.{u1} M}, (Eq.{succ u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Submonoid.closure.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) S) (Top.top.{u1} (Submonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Submonoid.instTopSubmonoid.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))))) -> (Function.Surjective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u1) (succ u2), max (succ u2) (succ u1)} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (fun (_x : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (SMulHomClass.toFunLike.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (SMulZeroClass.toSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toZero.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2))))))) (SMulZeroClass.toSMul.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toZero.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribSMul.toSMulZeroClass.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))))) (DistribMulAction.toDistribSMul.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))))))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (AddCommMonoid.toAddMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u2 u1, u2, max u1 u2, max u2 u1} (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)))) (Module.toDistribMulAction.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2))))) (Algebra.toModule.{u2, max u1 u2} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)))) (Module.toDistribMulAction.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{u2} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Semiring.toNonAssocSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1))))) (Algebra.toModule.{u2, max u2 u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, max u1 u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)) (AlgHom.{u2, max u2 u1, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))) (AlgHom.algHomClass.{u2, max u1 u2, max u2 u1} R (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _inst_2 (CommSemiring.toSemiring.{max u2 u1} (MvPolynomial.{u1, u2} (Set.Elem.{u1} M S) R _inst_2) (MvPolynomial.commSemiring.{u2, u1} R (Set.Elem.{u1} M S) _inst_2)) (CommSemiring.toSemiring.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1)) (MvPolynomial.algebra.{u2, u2, u1} R R (Set.Elem.{u1} M S) _inst_2 _inst_2 (Algebra.id.{u2} R _inst_2)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1))))))) (MvPolynomial.aeval.{u2, max u2 u1, u1} R (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Set.Elem.{u1} M S) _inst_2 (MonoidAlgebra.commSemiring.{u2, u1} R M _inst_2 _inst_1) (MonoidAlgebra.algebra.{u2, u1, u2} R M R _inst_2 (CommSemiring.toSemiring.{u2} R _inst_2) (Algebra.id.{u2} R _inst_2) (CommMonoid.toMonoid.{u1} M _inst_1)) (fun (s : Set.Elem.{u1} M S) => FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : M) => MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (MulOneClass.toMul.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (MonoidHom.{u1, max u1 u2} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))) M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))))) (MonoidHom.monoidHomClass.{u1, max u2 u1} M (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)) (MulZeroOneClass.toMulOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (MonoidAlgebra.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2)) (MonoidAlgebra.nonAssocSemiring.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)))))))) (MonoidAlgebra.of.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_2) (Monoid.toMulOneClass.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))) (Subtype.val.{succ u1} M (fun (x : M) => Membership.mem.{u1, u1} M (Set.{u1} M) (Set.instMembershipSet.{u1} M) x S) s)))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closureₓ'. -/
 /-- If a set `S` generates a monoid `M`, then the image of `M` generates, as algebra,
 `monoid_algebra R M`. -/
 theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
@@ -620,11 +894,23 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
     exact ⟨r • P, AlgHom.map_smul _ _ _⟩
 #align monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure
 
+/- warning: monoid_algebra.finite_type_of_fg -> MonoidAlgebra.finiteType_of_fg is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Monoid.Fg.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)], Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Monoid.Fg.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)], Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.finite_type_of_fg MonoidAlgebra.finiteType_of_fgₓ'. -/
 /-- If a monoid `M` is finitely generated then `monoid_algebra R M` is of finite type. -/
 instance finiteType_of_fg [CommRing R] [Monoid.Fg M] : FiniteType R (MonoidAlgebra R M) :=
   (AddMonoidAlgebra.finiteType_of_fg R (Additive M)).Equiv (toAdditiveAlgEquiv R M).symm
 #align monoid_algebra.finite_type_of_fg MonoidAlgebra.finiteType_of_fg
 
+/- warning: monoid_algebra.finite_type_iff_fg -> MonoidAlgebra.finiteType_iff_fg is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))) (Monoid.Fg.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R], Iff (Algebra.FiniteType.{max u1 u2, u2} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (MonoidAlgebra.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1))) (Monoid.Fg.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.finite_type_iff_fg MonoidAlgebra.finiteType_iff_fgₓ'. -/
 /-- A monoid `M` is finitely generated if and only if `monoid_algebra R M` is of finite type. -/
 theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
     FiniteType R (MonoidAlgebra R M) ↔ Monoid.Fg M :=
@@ -634,12 +920,24 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
     fun h => @MonoidAlgebra.finiteType_of_fg _ _ _ _ h⟩
 #align monoid_algebra.finite_type_iff_fg MonoidAlgebra.finiteType_iff_fg
 
+/- warning: monoid_algebra.fg_of_finite_type -> MonoidAlgebra.fg_of_finiteType is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : CommMonoid.{u2} M] [_inst_2 : CommRing.{u1} R] [_inst_3 : Nontrivial.{u1} R] [h : Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2))) (CommRing.toCommSemiring.{u1} R _inst_2) (MonoidAlgebra.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1)) (MonoidAlgebra.algebra.{u1, u2, u1} R M R (CommRing.toCommSemiring.{u1} R _inst_2) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_2)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)) (CommMonoid.toMonoid.{u2} M _inst_1))], Monoid.Fg.{u2} M (CommMonoid.toMonoid.{u2} M _inst_1)
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : CommMonoid.{u1} M] [_inst_2 : CommRing.{u2} R] [_inst_3 : Nontrivial.{u2} R] [h : Algebra.FiniteType.{max u1 u2, u2} R (MonoidAlgebra.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (CommRing.toCommSemiring.{u2} R _inst_2) (MonoidAlgebra.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1)) (MonoidAlgebra.algebra.{u2, u1, u2} R M R (CommRing.toCommSemiring.{u2} R _inst_2) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)) (CommMonoid.toMonoid.{u1} M _inst_1))], Monoid.Fg.{u1} M (CommMonoid.toMonoid.{u1} M _inst_1)
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.fg_of_finite_type MonoidAlgebra.fg_of_finiteTypeₓ'. -/
 /-- If `monoid_algebra R M` is of finite type then `M` is finitely generated. -/
 theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (MonoidAlgebra R M)] :
     Monoid.Fg M :=
   finiteType_iff_fg.1 h
 #align monoid_algebra.fg_of_finite_type MonoidAlgebra.fg_of_finiteType
 
+/- warning: monoid_algebra.finite_type_iff_group_fg -> MonoidAlgebra.finiteType_iff_group_fg is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : CommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{u1, max u1 u2} R (MonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (MonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2)))) (MonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2))))) (Group.Fg.{u2} G (CommGroup.toGroup.{u2} G _inst_2))
+but is expected to have type
+  forall {R : Type.{u1}} {G : Type.{u2}} [_inst_2 : CommGroup.{u2} G] [_inst_3 : CommRing.{u1} R] [_inst_4 : Nontrivial.{u1} R], Iff (Algebra.FiniteType.{max u2 u1, u1} R (MonoidAlgebra.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommSemiring.{u1} R _inst_3) (MonoidAlgebra.semiring.{u1, u2} R G (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2)))) (MonoidAlgebra.algebra.{u1, u2, u1} R G R (CommRing.toCommSemiring.{u1} R _inst_3) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)) (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G (CommGroup.toGroup.{u2} G _inst_2))))) (Group.Fg.{u2} G (CommGroup.toGroup.{u2} G _inst_2))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.finite_type_iff_group_fg MonoidAlgebra.finiteType_iff_group_fgₓ'. -/
 /-- A group `G` is finitely generated if and only if `add_monoid_algebra R G` is of finite type. -/
 theorem finiteType_iff_group_fg {G : Type _} [CommGroup G] [CommRing R] [Nontrivial R] :
     FiniteType R (MonoidAlgebra R G) ↔ Group.Fg G := by
@@ -656,12 +954,20 @@ variable {R : Type _} [CommRing R] {M : Type _} [AddCommGroup M] [Module R M] (f
 
 noncomputable section
 
+#print modulePolynomialOfEndo /-
 /-- The structure of a module `M` over a ring `R` as a module over `R[X]` when given a
 choice of how `X` acts by choosing a linear map `f : M →ₗ[R] M` -/
 def modulePolynomialOfEndo : Module R[X] M :=
   Module.compHom M (Polynomial.aeval f).toRingHom
 #align module_polynomial_of_endo modulePolynomialOfEndo
+-/
 
+/- warning: module_polynomial_of_endo_smul_def -> modulePolynomialOfEndo_smul_def is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (f : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (n : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (a : M), Eq.{succ u2} M (SMul.smul.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MulAction.toHasSmul.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DistribMulAction.toMulAction.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (modulePolynomialOfEndo.{u1, u2} R _inst_1 M _inst_2 _inst_3 f)))) n a) (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : AlgHom.{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3)) ([anonymous].{u1, u1, u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Polynomial.aeval.{u1, u2} R (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u1} R _inst_1) (Module.End.semiring.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Module.End.algebra.{u1, u2} R M (CommRing.toCommSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) f) n) a)
+but is expected to have type
+  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (n : Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (a : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a) (HSMul.hSMul.{u2, u1, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a) (inferInstance.{max (succ u2) (succ u1)} ([mdata noImplicitLambda:1 HSMul.{u2, u1, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a)]) (instHSMul.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (SMulZeroClass.toSMul.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Polynomial.zero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (modulePolynomialOfEndo.{u2, u1} R _inst_1 M _inst_2 _inst_3 f))))))) n a) (FunLike.coe.{succ u1, succ u1, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) n) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) => LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) _x) (SMulHomClass.toFunLike.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (SMulZeroClass.toSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))))) (SMulZeroClass.toSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toZero.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribSMul.toSMulZeroClass.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddMonoid.toAddZeroClass.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulAction.toDistribSMul.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u2, u2, u1} (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (Module.toDistribMulAction.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (Algebra.toModule.{u2, u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (Module.toDistribMulAction.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Semiring.toNonAssocSemiring.{u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (Algebra.toModule.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u2, u1, max u1 u2} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (AlgHom.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (AlgHom.algHomClass.{u2, u2, u1} R (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))))) (Polynomial.aeval.{u2, u1} R (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) (CommRing.toCommSemiring.{u2} R _inst_1) (Module.End.semiring.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.instAlgebraEndToSemiringSemiring.{u2, u1} R M (CommRing.toCommSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) f) n) a)
+Case conversion may be inaccurate. Consider using '#align module_polynomial_of_endo_smul_def modulePolynomialOfEndo_smul_defₓ'. -/
 theorem modulePolynomialOfEndo_smul_def (n : R[X]) (a : M) :
     @SMul.smul (modulePolynomialOfEndo f).toSMul n a = Polynomial.aeval f n a :=
   rfl
@@ -671,6 +977,12 @@ attribute [local simp] modulePolynomialOfEndo_smul_def
 
 include f
 
+/- warning: module_polynomial_of_endo.is_scalar_tower -> modulePolynomialOfEndo.isScalarTower is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (f : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3), IsScalarTower.{u1, u1, u2} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (SMulZeroClass.toHasSmul.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.zero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.smulZeroClass.{u1, u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) R (SMulWithZero.toSmulZeroClass.{u1, u1} R 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)))))) (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (MulZeroClass.toSMulWithZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))))))) (let _inst : Module.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) := modulePolynomialOfEndo.{u1, u2} R _inst_1 M _inst_2 _inst_3 f; SMulZeroClass.toHasSmul.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (MulZeroClass.toHasZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MulZeroOneClass.toMulZeroClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) M (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))
+but is expected to have type
+  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3), IsScalarTower.{u2, u2, u1} R (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Algebra.toSMul.{u2, u2} R (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommRing.toCommSemiring.{u2} R _inst_1) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.algebraOfAlgebra.{u2, u2} R R (CommRing.toCommSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Algebra.id.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (inferInstance.{max (succ u2) (succ u1)} ([mdata noImplicitLambda:1 SMul.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M]) (SMulZeroClass.toSMul.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Polynomial.zero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) M (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (modulePolynomialOfEndo.{u2, u1} R _inst_1 M _inst_2 _inst_3 f)))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))
+Case conversion may be inaccurate. Consider using '#align module_polynomial_of_endo.is_scalar_tower modulePolynomialOfEndo.isScalarTowerₓ'. -/
 theorem modulePolynomialOfEndo.isScalarTower :
     @IsScalarTower R R[X] M _
       (by
@@ -686,6 +998,12 @@ theorem modulePolynomialOfEndo.isScalarTower :
 
 open Polynomial Module
 
+/- warning: module.finite.injective_of_surjective_endomorphism -> Module.Finite.injective_of_surjective_endomorphism is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (f : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) [hfg : Module.Finite.{u1, u2} R M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3], (Function.Surjective.{succ u2, succ u2} M M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) f)) -> (Function.Injective.{succ u2, succ u2} M M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) (fun (_x : LinearMap.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) f))
+but is expected to have type
+  forall {R : Type.{u2}} [_inst_1 : CommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (f : LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) [hfg : Module.Finite.{u2, u1} R M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3], (Function.Surjective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) f)) -> (Function.Injective.{succ u1, succ u1} M M (FunLike.coe.{succ u1, succ u1, succ u1} (LinearMap.{u2, u2, u1, u1} R R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1)))) M M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 _inst_3 (RingHom.id.{u2} R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_1))))) f))
+Case conversion may be inaccurate. Consider using '#align module.finite.injective_of_surjective_endomorphism Module.Finite.injective_of_surjective_endomorphismₓ'. -/
 /-- A theorem/proof by Vasconcelos, given a finite module `M` over a commutative ring, any
 surjective endomorphism of `M` is also injective. Based on,
 https://math.stackexchange.com/a/239419/31917,
Diff
@@ -89,10 +89,10 @@ open Classical
 protected theorem mvPolynomial (ι : Type _) [Finite ι] : FiniteType R (MvPolynomial ι R) := by
   cases nonempty_fintype ι <;>
     exact
-      ⟨⟨finset.univ.image MvPolynomial.x,
+      ⟨⟨finset.univ.image MvPolynomial.X,
           by
           rw [Finset.coe_image, Finset.coe_univ, Set.image_univ]
-          exact MvPolynomial.adjoin_range_x⟩⟩
+          exact MvPolynomial.adjoin_range_X⟩⟩
 #align algebra.finite_type.mv_polynomial Algebra.FiniteType.mvPolynomial
 
 theorem of_restrict_scalars_finiteType [Algebra A B] [IsScalarTower R A B] [hB : FiniteType R B] :
@@ -447,7 +447,7 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
   refine' fun f => induction_on f (fun m => _) _ _
   · have : m ∈ closure S := hS.symm ▸ mem_top _
     refine' closure_induction this (fun m hm => _) _ _
-    · exact ⟨MvPolynomial.x ⟨m, hm⟩, MvPolynomial.aeval_x _ _⟩
+    · exact ⟨MvPolynomial.X ⟨m, hm⟩, MvPolynomial.aeval_X _ _⟩
     · exact ⟨1, AlgHom.map_one _⟩
     · rintro m₁ m₂ ⟨P₁, hP₁⟩ ⟨P₂, hP₂⟩
       exact
@@ -608,7 +608,7 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
   refine' fun f => induction_on f (fun m => _) _ _
   · have : m ∈ closure S := hS.symm ▸ mem_top _
     refine' closure_induction this (fun m hm => _) _ _
-    · exact ⟨MvPolynomial.x ⟨m, hm⟩, MvPolynomial.aeval_x _ _⟩
+    · exact ⟨MvPolynomial.X ⟨m, hm⟩, MvPolynomial.aeval_X _ _⟩
     · exact ⟨1, AlgHom.map_one _⟩
     · rintro m₁ m₂ ⟨P₁, hP₁⟩ ⟨P₂, hP₂⟩
       exact
Diff
@@ -81,7 +81,7 @@ theorem self : FiniteType R R :=
 protected theorem polynomial : FiniteType R R[X] :=
   ⟨⟨{Polynomial.X}, by
       rw [Finset.coe_singleton]
-      exact Polynomial.adjoin_x⟩⟩
+      exact Polynomial.adjoin_X⟩⟩
 #align algebra.finite_type.polynomial Algebra.FiniteType.polynomial
 
 open Classical
Diff
@@ -79,7 +79,7 @@ theorem self : FiniteType R R :=
 #align algebra.finite_type.self Algebra.FiniteType.self
 
 protected theorem polynomial : FiniteType R R[X] :=
-  ⟨⟨{Polynomial.x}, by
+  ⟨⟨{Polynomial.X}, by
       rw [Finset.coe_singleton]
       exact Polynomial.adjoin_x⟩⟩
 #align algebra.finite_type.polynomial Algebra.FiniteType.polynomial

Changes in mathlib4

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

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

Diff
@@ -4,11 +4,11 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin
 -/
 import Mathlib.Algebra.FreeAlgebra
+import Mathlib.Algebra.Polynomial.Module.Basic
 import Mathlib.GroupTheory.Finiteness
 import Mathlib.RingTheory.Adjoin.Tower
 import Mathlib.RingTheory.Finiteness
 import Mathlib.RingTheory.Noetherian
-import Mathlib.Data.Polynomial.Module.Basic
 
 #align_import ring_theory.finite_type from "leanprover-community/mathlib"@"bb168510ef455e9280a152e7f31673cabd3d7496"
 
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
@@ -305,9 +305,7 @@ end RingHom
 namespace AlgHom
 
 variable {R A B C : Type*} [CommRing R]
-
 variable [CommRing A] [CommRing B] [CommRing C]
-
 variable [Algebra R A] [Algebra R B] [Algebra R C]
 
 /-- An algebra morphism `A →ₐ[R] B` is of `FiniteType` if it is of finite type as ring morphism.
chore: scope open Classical (#11199)

We remove all but one open Classicals, instead preferring to use open scoped Classical. The only real side-effect this led to is moving a couple declarations to use Exists.choose instead of Classical.choose.

The first few commits are explicitly labelled regex replaces for ease of review.

Diff
@@ -85,7 +85,7 @@ protected theorem polynomial : FiniteType R R[X] :=
       exact Polynomial.adjoin_X⟩⟩
 #align algebra.finite_type.polynomial Algebra.FiniteType.polynomial
 
-open Classical
+open scoped Classical
 
 protected theorem freeAlgebra (ι : Type*) [Finite ι] : FiniteType R (FreeAlgebra R ι) := by
   cases nonempty_fintype ι
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
@@ -568,7 +568,7 @@ theorem support_gen_of_gen {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R
   refine' le_antisymm le_top _
   rw [← hS, adjoin_le_iff]
   intro f hf
-  --Porting note: ⋃ notation did not work here. Was
+  -- Porting note: ⋃ notation did not work here. Was
   -- ⋃ (g : MonoidAlgebra R M) (H : g ∈ S), (of R M '' g.support)
   have hincl : (of R M '' f.support) ⊆
       Set.iUnion fun (g : MonoidAlgebra R M)
chore: remove stream-of-consciousness uses of have, replace and suffices (#10640)

No changes to tactic file, it's just boring fixes throughout the library.

This follows on from #6964.

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -719,8 +719,8 @@ commutative case, but does not use a Noetherian hypothesis. -/
 theorem Module.Finite.injective_of_surjective_endomorphism {R : Type*} [CommRing R] {M : Type*}
     [AddCommGroup M] [Module R M] [Finite R M] (f : M →ₗ[R] M)
     (f_surj : Function.Surjective f) : Function.Injective f := by
-  have : (⊤ : Submodule R[X] (AEval' f)) ≤ Ideal.span {(X : R[X])} • ⊤
-  · intro a _
+  have : (⊤ : Submodule R[X] (AEval' f)) ≤ Ideal.span {(X : R[X])} • ⊤ := by
+    intro a _
     obtain ⟨y, rfl⟩ := f_surj.comp (AEval'.of f).symm.surjective a
     rw [Function.comp_apply, ← AEval'.of_symm_X_smul]
     exact Submodule.smul_mem_smul (Ideal.mem_span_singleton.mpr (dvd_refl _)) trivial
feat: a linear endomorphism that is a root of a squarefree polynomial is semisimple (#10128)

The main result is Module.End.isSemisimple_of_squarefree_aeval_eq_zero

Diff
@@ -8,7 +8,7 @@ import Mathlib.GroupTheory.Finiteness
 import Mathlib.RingTheory.Adjoin.Tower
 import Mathlib.RingTheory.Finiteness
 import Mathlib.RingTheory.Noetherian
-import Mathlib.Data.Polynomial.Module
+import Mathlib.Data.Polynomial.Module.Basic
 
 #align_import ring_theory.finite_type from "leanprover-community/mathlib"@"bb168510ef455e9280a152e7f31673cabd3d7496"
 
feat: generalize Module.Finite.trans (#9380)

Add span_eq_closure and closure_induction which say that Submodule.span R s is generated by R • s as an AddSubmonoid. I feel that the existing span_induction should be replaced by closure_induction as the latter is stronger, and allow us to remove the commutativity condition in span_smul_of_span_eq_top in Algebra/Tower and generalize Module.Finite.trans to allow a non-commutative base ring.

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

Diff
@@ -461,7 +461,7 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [AddCommMonoid M] [CommSemir
   intro f
   induction' f using induction_on with m f g ihf ihg r f ih
   · have : m ∈ closure S := hS.symm ▸ mem_top _
-    refine' closure_induction this (fun m hm => _) _ _
+    refine' AddSubmonoid.closure_induction this (fun m hm => _) _ _
     · exact ⟨MvPolynomial.X ⟨m, hm⟩, MvPolynomial.aeval_X _ _⟩
     · exact ⟨1, AlgHom.map_one _⟩
     · rintro m₁ m₂ ⟨P₁, hP₁⟩ ⟨P₂, hP₂⟩
@@ -487,7 +487,7 @@ theorem freeAlgebra_lift_of_surjective_of_closure [CommSemiring R] {S : Set M}
   intro f
   induction' f using induction_on with m f g ihf ihg r f ih
   · have : m ∈ closure S := hS.symm ▸ mem_top _
-    refine' closure_induction this (fun m hm => _) _ _
+    refine' AddSubmonoid.closure_induction this (fun m hm => _) _ _
     · exact ⟨FreeAlgebra.ι R ⟨m, hm⟩, FreeAlgebra.lift_ι_apply _ _⟩
     · exact ⟨1, AlgHom.map_one _⟩
     · rintro m₁ m₂ ⟨P₁, hP₁⟩ ⟨P₂, hP₂⟩
@@ -640,7 +640,7 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommMonoid M] [CommSemiring
   intro f
   induction' f using induction_on with m f g ihf ihg r f ih
   · have : m ∈ closure S := hS.symm ▸ mem_top _
-    refine' closure_induction this (fun m hm => _) _ _
+    refine' Submonoid.closure_induction this (fun m hm => _) _ _
     · exact ⟨MvPolynomial.X ⟨m, hm⟩, MvPolynomial.aeval_X _ _⟩
     · exact ⟨1, AlgHom.map_one _⟩
     · rintro m₁ m₂ ⟨P₁, hP₁⟩ ⟨P₂, hP₂⟩
@@ -665,7 +665,7 @@ theorem freeAlgebra_lift_of_surjective_of_closure [CommSemiring R] {S : Set M}
   intro f
   induction' f using induction_on with m f g ihf ihg r f ih
   · have : m ∈ closure S := hS.symm ▸ mem_top _
-    refine' closure_induction this (fun m hm => _) _ _
+    refine' Submonoid.closure_induction this (fun m hm => _) _ _
     · exact ⟨FreeAlgebra.ι R ⟨m, hm⟩, FreeAlgebra.lift_ι_apply _ _⟩
     · exact ⟨1, AlgHom.map_one _⟩
     · rintro m₁ m₂ ⟨P₁, hP₁⟩ ⟨P₂, hP₂⟩
chore: space after (#8178)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -722,7 +722,7 @@ theorem Module.Finite.injective_of_surjective_endomorphism {R : Type*} [CommRing
   have : (⊤ : Submodule R[X] (AEval' f)) ≤ Ideal.span {(X : R[X])} • ⊤
   · intro a _
     obtain ⟨y, rfl⟩ := f_surj.comp (AEval'.of f).symm.surjective a
-    rw [Function.comp_apply, ←AEval'.of_symm_X_smul]
+    rw [Function.comp_apply, ← AEval'.of_symm_X_smul]
     exact Submodule.smul_mem_smul (Ideal.mem_span_singleton.mpr (dvd_refl _)) trivial
   obtain ⟨F, hFa, hFb⟩ :=
     Submodule.exists_sub_one_mem_and_smul_eq_zero_of_fg_of_le_smul _ (⊤ : Submodule R[X] (AEval' f))
feat(Data/Polynomial/Module) : define an R[X] module, given a linear map. (#7728)

Given an element a in an R-algebra A and an A-module M, define an R[X]-module Module.AEval R M a, whose elements correspond to elements of M, and where the action of f : R[X] is f • m = aeval a f • m. Equivalently, X • m = a • m.

This module is abbreviated to Module.AEval' φ in the special case that A is the algebra of R-linear maps and φ : M → M is an R-linear map.

This is needed in #7419.

Co-authored-by: Richard M. Hill <86743862+rmhi@users.noreply.github.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -8,6 +8,7 @@ import Mathlib.GroupTheory.Finiteness
 import Mathlib.RingTheory.Adjoin.Tower
 import Mathlib.RingTheory.Finiteness
 import Mathlib.RingTheory.Noetherian
+import Mathlib.Data.Polynomial.Module
 
 #align_import ring_theory.finite_type from "leanprover-community/mathlib"@"bb168510ef455e9280a152e7f31673cabd3d7496"
 
@@ -709,70 +710,33 @@ end MonoidAlgebra
 
 section Vasconcelos
 
-variable {R : Type*} [CommRing R] {M : Type*} [AddCommGroup M] [Module R M] (f : M →ₗ[R] M)
-
-noncomputable section
-
-/-- The structure of a module `M` over a ring `R` as a module over `R[X]` when given a
-choice of how `X` acts by choosing a linear map `f : M →ₗ[R] M` -/
-def modulePolynomialOfEndo : Module R[X] M :=
-  Module.compHom M (Polynomial.aeval f).toRingHom
-#align module_polynomial_of_endo modulePolynomialOfEndo
-
-theorem modulePolynomialOfEndo_smul_def (n : R[X]) (a : M) :
-    @HSMul.hSMul _ _ _ (by letI := modulePolynomialOfEndo f; infer_instance) n a =
-    Polynomial.aeval f n a :=
-  rfl
-#align module_polynomial_of_endo_smul_def modulePolynomialOfEndo_smul_def
-
-attribute [local simp] modulePolynomialOfEndo_smul_def
-
-theorem modulePolynomialOfEndo.isScalarTower :
-    @IsScalarTower R R[X] M _
-      (by
-        letI := modulePolynomialOfEndo f
-        infer_instance)
-      _ := by
-  let _ := modulePolynomialOfEndo f
-  constructor
-  intro x y z
-  simp
-#align module_polynomial_of_endo.is_scalar_tower modulePolynomialOfEndo.isScalarTower
-
-open Polynomial Module
-
 /-- A theorem/proof by Vasconcelos, given a finite module `M` over a commutative ring, any
 surjective endomorphism of `M` is also injective. Based on,
 https://math.stackexchange.com/a/239419/31917,
 https://www.ams.org/journals/tran/1969-138-00/S0002-9947-1969-0238839-5/.
 This is similar to `IsNoetherian.injective_of_surjective_endomorphism` but only applies in the
 commutative case, but does not use a Noetherian hypothesis. -/
-theorem Module.Finite.injective_of_surjective_endomorphism [hfg : Finite R M]
+theorem Module.Finite.injective_of_surjective_endomorphism {R : Type*} [CommRing R] {M : Type*}
+    [AddCommGroup M] [Module R M] [Finite R M] (f : M →ₗ[R] M)
     (f_surj : Function.Surjective f) : Function.Injective f := by
-  let _ := modulePolynomialOfEndo f
-  haveI : IsScalarTower R R[X] M := modulePolynomialOfEndo.isScalarTower f
-  have hfgpoly : Finite R[X] M := Finite.of_restrictScalars_finite R _ _
-  have X_mul : ∀ o, (X : R[X]) • o = f o := by
-    intro
-    rw [modulePolynomialOfEndo_smul_def, aeval_X]
-  have : (⊤ : Submodule R[X] M) ≤ Ideal.span {(X : R[X])} • ⊤ := by
-    intro a ha
-    obtain ⟨y, rfl⟩ := f_surj a
-    rw [← X_mul y]
+  have : (⊤ : Submodule R[X] (AEval' f)) ≤ Ideal.span {(X : R[X])} • ⊤
+  · intro a _
+    obtain ⟨y, rfl⟩ := f_surj.comp (AEval'.of f).symm.surjective a
+    rw [Function.comp_apply, ←AEval'.of_symm_X_smul]
     exact Submodule.smul_mem_smul (Ideal.mem_span_singleton.mpr (dvd_refl _)) trivial
   obtain ⟨F, hFa, hFb⟩ :=
-    Submodule.exists_sub_one_mem_and_smul_eq_zero_of_fg_of_le_smul _ (⊤ : Submodule R[X] M)
-      (finite_def.mp hfgpoly) this
+    Submodule.exists_sub_one_mem_and_smul_eq_zero_of_fg_of_le_smul _ (⊤ : Submodule R[X] (AEval' f))
+      (finite_def.mp inferInstance) this
   rw [← LinearMap.ker_eq_bot, LinearMap.ker_eq_bot']
   intro m hm
+  rw [← map_eq_zero_iff (AEval'.of f) (AEval'.of f).injective]
+  set m' := Module.AEval'.of f m
   rw [Ideal.mem_span_singleton'] at hFa
   obtain ⟨G, hG⟩ := hFa
-  suffices (F - 1) • m = 0 by
-    have Fmzero := hFb m (by simp)
+  suffices (F - 1) • m' = 0 by
+    have Fmzero := hFb m' (by simp)
     rwa [← sub_add_cancel F 1, add_smul, one_smul, this, zero_add] at Fmzero
-  rw [← hG, mul_smul, X_mul m, hm, smul_zero]
+  rw [← hG, mul_smul, AEval'.X_smul_of, hm, map_zero, smul_zero]
 #align module.finite.injective_of_surjective_endomorphism Module.Finite.injective_of_surjective_endomorphism
 
-end
-
 end Vasconcelos
feat(AddMonoidAlgebra*): add notation R[A] for addMonoidAlgebra R A (#7203)

Introduce the notation R[A] for AddMonoidAlgebra R A. This is to align Mathlibs notation with the standard notation for group ring.

The notation is scoped in AddMonoidAlgebra and there is no analogous notation for MonoidAlgebra.

I only used the notation for single-character R and As and only in the range [a-zA-Z].

The extra lines are all in Mathlib/Algebra/MonoidAlgebra/Basic.lean. They are accounted for by extra text in the doc-module and the actual notation.

Affected files:

Counterexamples/ZeroDivisorsInAddMonoidAlgebras
Algebra/AlgebraicCard
Algebra/MonoidAlgebra/Basic
Algebra/MonoidAlgebra/Degree
Algebra/MonoidAlgebra/Division
Algebra/MonoidAlgebra/Grading
Algebra/MonoidAlgebra/NoZeroDivisors
Algebra/MonoidAlgebra/Support
Data/Polynomial/AlgebraMap
Data/Polynomial/Basic
Data/Polynomial/Eval
Data/Polynomial/Laurent
RingTheory/FiniteType
Diff
@@ -370,8 +370,8 @@ section Semiring
 
 variable [CommSemiring R] [AddMonoid M]
 
-/-- An element of `AddMonoidAlgebra R M` is in the subalgebra generated by its support. -/
-theorem mem_adjoin_support (f : AddMonoidAlgebra R M) : f ∈ adjoin R (of' R M '' f.support) := by
+/-- An element of `R[M]` is in the subalgebra generated by its support. -/
+theorem mem_adjoin_support (f : R[M]) : f ∈ adjoin R (of' R M '' f.support) := by
   suffices span R (of' R M '' f.support) ≤
       Subalgebra.toSubmodule (adjoin R (of' R M '' f.support)) by
     exact this (mem_span_support f)
@@ -379,23 +379,23 @@ theorem mem_adjoin_support (f : AddMonoidAlgebra R M) : f ∈ adjoin R (of' R M
   exact subset_adjoin
 #align add_monoid_algebra.mem_adjoin_support AddMonoidAlgebra.mem_adjoin_support
 
-/-- If a set `S` generates, as algebra, `AddMonoidAlgebra R M`, then the set of supports of
-elements of `S` generates `AddMonoidAlgebra R M`. -/
-theorem support_gen_of_gen {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
+/-- If a set `S` generates, as algebra, `R[M]`, then the set of supports of
+elements of `S` generates `R[M]`. -/
+theorem support_gen_of_gen {S : Set R[M]} (hS : Algebra.adjoin R S = ⊤) :
     Algebra.adjoin R (⋃ f ∈ S, of' R M '' (f.support : Set M)) = ⊤ := by
   refine' le_antisymm le_top _
   rw [← hS, adjoin_le_iff]
   intro f hf
   have hincl :
-    of' R M '' f.support ⊆ ⋃ (g : AddMonoidAlgebra R M) (_ : g ∈ S), of' R M '' g.support := by
+    of' R M '' f.support ⊆ ⋃ (g : R[M]) (_ : g ∈ S), of' R M '' g.support := by
     intro s hs
     exact Set.mem_iUnion₂.2 ⟨f, ⟨hf, hs⟩⟩
   exact adjoin_mono hincl (mem_adjoin_support f)
 #align add_monoid_algebra.support_gen_of_gen AddMonoidAlgebra.support_gen_of_gen
 
-/-- If a set `S` generates, as algebra, `AddMonoidAlgebra R M`, then the image of the union of
-the supports of elements of `S` generates `AddMonoidAlgebra R M`. -/
-theorem support_gen_of_gen' {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin R S = ⊤) :
+/-- If a set `S` generates, as algebra, `R[M]`, then the image of the union of
+the supports of elements of `S` generates `R[M]`. -/
+theorem support_gen_of_gen' {S : Set R[M]} (hS : Algebra.adjoin R S = ⊤) :
     Algebra.adjoin R (of' R M '' ⋃ f ∈ S, (f.support : Set M)) = ⊤ := by
   suffices (of' R M '' ⋃ f ∈ S, (f.support : Set M)) = ⋃ f ∈ S, of' R M '' (f.support : Set M) by
     rw [this]
@@ -409,9 +409,9 @@ section Ring
 
 variable [CommRing R] [AddMonoid M]
 
-/-- If `AddMonoidAlgebra R M` is of finite type, then there is a `G : Finset M` such that its
-image generates, as algebra, `AddMonoidAlgebra R M`. -/
-theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
+/-- If `R[M]` is of finite type, then there is a `G : Finset M` such that its
+image generates, as algebra, `R[M]`. -/
+theorem exists_finset_adjoin_eq_top [h : FiniteType R R[M]] :
     ∃ G : Finset M, Algebra.adjoin R (of' R M '' G) = ⊤ := by
   obtain ⟨S, hS⟩ := h
   letI : DecidableEq M := Classical.decEq M
@@ -422,7 +422,7 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
   exact support_gen_of_gen' hS
 #align add_monoid_algebra.exists_finset_adjoin_eq_top AddMonoidAlgebra.exists_finset_adjoin_eq_top
 
-/-- The image of an element `m : M` in `AddMonoidAlgebra R M` belongs the submodule generated by
+/-- The image of an element `m : M` in `R[M]` belongs the submodule generated by
 `S : Set M` if and only if `m ∈ S`. -/
 theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
     of' R M m ∈ span R (of' R M '' S) ↔ m ∈ S := by
@@ -433,10 +433,10 @@ theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
 #align add_monoid_algebra.of'_mem_span AddMonoidAlgebra.of'_mem_span
 
 /--
-If the image of an element `m : M` in `AddMonoidAlgebra R M` belongs the submodule generated by
+If the image of an element `m : M` in `R[M]` belongs the submodule generated by
 the closure of some `S : Set M` then `m ∈ closure S`. -/
 theorem mem_closure_of_mem_span_closure [Nontrivial R] {m : M} {S : Set M}
-    (h : of' R M m ∈ span R (Submonoid.closure (of' R M '' S) : Set (AddMonoidAlgebra R M))) :
+    (h : of' R M m ∈ span R (Submonoid.closure (of' R M '' S) : Set R[M])) :
     m ∈ closure S := by
   suffices Multiplicative.ofAdd m ∈ Submonoid.closure (Multiplicative.toAdd ⁻¹' S) by
     simpa [← toSubmonoid_closure]
@@ -452,11 +452,11 @@ end Ring
 end Span
 
 /-- If a set `S` generates an additive monoid `M`, then the image of `M` generates, as algebra,
-`AddMonoidAlgebra R M`. -/
+`R[M]`. -/
 theorem mvPolynomial_aeval_of_surjective_of_closure [AddCommMonoid M] [CommSemiring R] {S : Set M}
     (hS : closure S = ⊤) :
     Function.Surjective
-      (MvPolynomial.aeval fun s : S => of' R M ↑s : MvPolynomial S R → AddMonoidAlgebra R M) := by
+      (MvPolynomial.aeval fun s : S => of' R M ↑s : MvPolynomial S R → R[M]) := by
   intro f
   induction' f using induction_on with m f g ihf ihg r f ih
   · have : m ∈ closure S := hS.symm ▸ mem_top _
@@ -478,11 +478,11 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [AddCommMonoid M] [CommSemir
 variable [AddMonoid M]
 
 /-- If a set `S` generates an additive monoid `M`, then the image of `M` generates, as algebra,
-`AddMonoidAlgebra R M`. -/
+`R[M]`. -/
 theorem freeAlgebra_lift_of_surjective_of_closure [CommSemiring R] {S : Set M}
     (hS : closure S = ⊤) :
     Function.Surjective
-      (FreeAlgebra.lift R fun s : S => of' R M ↑s : FreeAlgebra R S → AddMonoidAlgebra R M) := by
+      (FreeAlgebra.lift R fun s : S => of' R M ↑s : FreeAlgebra R S → R[M]) := by
   intro f
   induction' f using induction_on with m f g ihf ihg r f ih
   · have : m ∈ closure S := hS.symm ▸ mem_top _
@@ -502,10 +502,10 @@ theorem freeAlgebra_lift_of_surjective_of_closure [CommSemiring R] {S : Set M}
 
 variable (R M)
 
-/-- If an additive monoid `M` is finitely generated then `AddMonoidAlgebra R M` is of finite
+/-- If an additive monoid `M` is finitely generated then `R[M]` is of finite
 type. -/
 instance finiteType_of_fg [CommRing R] [h : AddMonoid.FG M] :
-    FiniteType R (AddMonoidAlgebra R M) := by
+    FiniteType R R[M] := by
   obtain ⟨S, hS⟩ := h.out
   exact (FiniteType.freeAlgebra R (S : Set M)).of_surjective
       (FreeAlgebra.lift R fun s : (S : Set M) => of' R M ↑s)
@@ -514,10 +514,10 @@ instance finiteType_of_fg [CommRing R] [h : AddMonoid.FG M] :
 
 variable {R M}
 
-/-- An additive monoid `M` is finitely generated if and only if `AddMonoidAlgebra R M` is of
+/-- An additive monoid `M` is finitely generated if and only if `R[M]` is of
 finite type. -/
 theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
-    FiniteType R (AddMonoidAlgebra R M) ↔ AddMonoid.FG M := by
+    FiniteType R R[M] ↔ AddMonoid.FG M := by
   refine' ⟨fun h => _, fun h => @AddMonoidAlgebra.finiteType_of_fg _ _ _ _ h⟩
   obtain ⟨S, hS⟩ := @exists_finset_adjoin_eq_top R M _ _ h
   refine' AddMonoid.fg_def.2 ⟨S, (eq_top_iff' _).2 fun m => _⟩
@@ -527,16 +527,16 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
   exact mem_closure_of_mem_span_closure hm
 #align add_monoid_algebra.finite_type_iff_fg AddMonoidAlgebra.finiteType_iff_fg
 
-/-- If `AddMonoidAlgebra R M` is of finite type then `M` is finitely generated. -/
-theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (AddMonoidAlgebra R M)] :
+/-- If `R[M]` is of finite type then `M` is finitely generated. -/
+theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R R[M]] :
     AddMonoid.FG M :=
   finiteType_iff_fg.1 h
 #align add_monoid_algebra.fg_of_finite_type AddMonoidAlgebra.fg_of_finiteType
 
-/-- An additive group `G` is finitely generated if and only if `AddMonoidAlgebra R G` is of
+/-- An additive group `G` is finitely generated if and only if `R[G]` is of
 finite type. -/
 theorem finiteType_iff_group_fg {G : Type*} [AddCommGroup G] [CommRing R] [Nontrivial R] :
-    FiniteType R (AddMonoidAlgebra R G) ↔ AddGroup.FG G := by
+    FiniteType R R[G] ↔ AddGroup.FG G := by
   simpa [AddGroup.fg_iff_addMonoid_fg] using finiteType_iff_fg
 #align add_monoid_algebra.finite_type_iff_group_fg AddMonoidAlgebra.finiteType_iff_group_fg
 
@@ -656,7 +656,7 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommMonoid M] [CommSemiring
 variable [Monoid M]
 
 /-- If a set `S` generates an additive monoid `M`, then the image of `M` generates, as algebra,
-`AddMonoidAlgebra R M`. -/
+`R[M]`. -/
 theorem freeAlgebra_lift_of_surjective_of_closure [CommSemiring R] {S : Set M}
     (hS : closure S = ⊤) :
     Function.Surjective
@@ -697,7 +697,7 @@ theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (MonoidAl
   finiteType_iff_fg.1 h
 #align monoid_algebra.fg_of_finite_type MonoidAlgebra.fg_of_finiteType
 
-/-- A group `G` is finitely generated if and only if `AddMonoidAlgebra R G` is of finite type. -/
+/-- A group `G` is finitely generated if and only if `R[G]` is of finite type. -/
 theorem finiteType_iff_group_fg {G : Type*} [Group G] [CommRing R] [Nontrivial R] :
     FiniteType R (MonoidAlgebra R G) ↔ Group.FG G := by
   simpa [Group.fg_iff_monoid_fg] using finiteType_iff_fg
feat(RingTheory/FiniteType): generalize results to non-commutative generators (#6757)

Many of the proofs in this file go via quotients of MvPolynomial; but this forces a commutativity assumption that can be avoided by instead going via quotients of FreeAlgebra.

Most of the new FreeAlgebra results are just copies of the proofs for MvPolynomial, which isn't ideal in terms of duplication.

Diff
@@ -3,6 +3,7 @@ Copyright (c) 2020 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin
 -/
+import Mathlib.Algebra.FreeAlgebra
 import Mathlib.GroupTheory.Finiteness
 import Mathlib.RingTheory.Adjoin.Tower
 import Mathlib.RingTheory.Finiteness
@@ -85,6 +86,13 @@ protected theorem polynomial : FiniteType R R[X] :=
 
 open Classical
 
+protected theorem freeAlgebra (ι : Type*) [Finite ι] : FiniteType R (FreeAlgebra R ι) := by
+  cases nonempty_fintype ι
+  exact
+    ⟨⟨Finset.univ.image (FreeAlgebra.ι R), by
+        rw [Finset.coe_image, Finset.coe_univ, Set.image_univ]
+        exact FreeAlgebra.adjoin_range_ι R ι⟩⟩
+
 protected theorem mvPolynomial (ι : Type*) [Finite ι] : FiniteType R (MvPolynomial ι R) := by
   cases nonempty_fintype ι
   exact
@@ -122,6 +130,22 @@ theorem trans [Algebra S A] [IsScalarTower R S A] (hRS : FiniteType R S) (hSA :
 #align algebra.finite_type.trans Algebra.FiniteType.trans
 
 /-- An algebra is finitely generated if and only if it is a quotient
+of a free algebra whose variables are indexed by a finset. -/
+theorem iff_quotient_freeAlgebra :
+    FiniteType R A ↔
+      ∃ (s : Finset A) (f : FreeAlgebra R s →ₐ[R] A), Surjective f := by
+  constructor
+  · rintro ⟨s, hs⟩
+    refine ⟨s, FreeAlgebra.lift _ (↑), ?_⟩
+    intro x
+    have hrw : (↑s : Set A) = fun x : A => x ∈ s.val := rfl
+    rw [← Set.mem_range, ← AlgHom.coe_range]
+    erw [← adjoin_eq_range_freeAlgebra_lift, ← hrw, hs]
+    exact Set.mem_univ x
+  · rintro ⟨s, ⟨f, hsur⟩⟩
+    exact FiniteType.of_surjective (FiniteType.freeAlgebra R s) f hsur
+
+/-- A commutative algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a finset. -/
 theorem iff_quotient_mvPolynomial :
     FiniteType R S ↔
@@ -139,6 +163,18 @@ theorem iff_quotient_mvPolynomial :
 
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a fintype. -/
+theorem iff_quotient_freeAlgebra' : FiniteType R A ↔
+    ∃ (ι : Type uA) (_ : Fintype ι) (f : FreeAlgebra R ι →ₐ[R] A), Surjective f := by
+  constructor
+  · rw [iff_quotient_freeAlgebra]
+    rintro ⟨s, ⟨f, hsur⟩⟩
+    use { x : A // x ∈ s }, inferInstance, f
+  · rintro ⟨ι, ⟨hfintype, ⟨f, hsur⟩⟩⟩
+    letI : Fintype ι := hfintype
+    exact FiniteType.of_surjective (FiniteType.freeAlgebra R ι) f hsur
+
+/-- A commutative algebra is finitely generated if and only if it is a quotient
+of a polynomial ring whose variables are indexed by a fintype. -/
 theorem iff_quotient_mvPolynomial' : FiniteType R S ↔
     ∃ (ι : Type uS) (_ : Fintype ι) (f : MvPolynomial ι R →ₐ[R] S), Surjective f := by
   constructor
@@ -150,8 +186,8 @@ theorem iff_quotient_mvPolynomial' : FiniteType R S ↔
     exact FiniteType.of_surjective (FiniteType.mvPolynomial R ι) f hsur
 #align algebra.finite_type.iff_quotient_mv_polynomial' Algebra.FiniteType.iff_quotient_mvPolynomial'
 
-/-- An algebra is finitely generated if and only if it is a quotient of a polynomial ring in `n`
-variables. -/
+/-- A commutative algebra is finitely generated if and only if it is a quotient of a polynomial ring
+in `n` variables. -/
 theorem iff_quotient_mvPolynomial'' :
     FiniteType R S ↔ ∃ (n : ℕ) (f : MvPolynomial (Fin n) R →ₐ[R] S), Surjective f := by
   constructor
@@ -371,7 +407,7 @@ end Semiring
 
 section Ring
 
-variable [CommRing R] [AddCommMonoid M]
+variable [CommRing R] [AddMonoid M]
 
 /-- If `AddMonoidAlgebra R M` is of finite type, then there is a `G : Finset M` such that its
 image generates, as algebra, `AddMonoidAlgebra R M`. -/
@@ -415,11 +451,9 @@ end Ring
 
 end Span
 
-variable [AddCommMonoid M]
-
 /-- If a set `S` generates an additive monoid `M`, then the image of `M` generates, as algebra,
 `AddMonoidAlgebra R M`. -/
-theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
+theorem mvPolynomial_aeval_of_surjective_of_closure [AddCommMonoid M] [CommSemiring R] {S : Set M}
     (hS : closure S = ⊤) :
     Function.Surjective
       (MvPolynomial.aeval fun s : S => of' R M ↑s : MvPolynomial S R → AddMonoidAlgebra R M) := by
@@ -441,6 +475,31 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
     exact ⟨r • P, AlgHom.map_smul _ _ _⟩
 #align add_monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure AddMonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure
 
+variable [AddMonoid M]
+
+/-- If a set `S` generates an additive monoid `M`, then the image of `M` generates, as algebra,
+`AddMonoidAlgebra R M`. -/
+theorem freeAlgebra_lift_of_surjective_of_closure [CommSemiring R] {S : Set M}
+    (hS : closure S = ⊤) :
+    Function.Surjective
+      (FreeAlgebra.lift R fun s : S => of' R M ↑s : FreeAlgebra R S → AddMonoidAlgebra R M) := by
+  intro f
+  induction' f using induction_on with m f g ihf ihg r f ih
+  · have : m ∈ closure S := hS.symm ▸ mem_top _
+    refine' closure_induction this (fun m hm => _) _ _
+    · exact ⟨FreeAlgebra.ι R ⟨m, hm⟩, FreeAlgebra.lift_ι_apply _ _⟩
+    · exact ⟨1, AlgHom.map_one _⟩
+    · rintro m₁ m₂ ⟨P₁, hP₁⟩ ⟨P₂, hP₂⟩
+      exact
+        ⟨P₁ * P₂, by
+          rw [AlgHom.map_mul, hP₁, hP₂, of_apply, of_apply, of_apply, single_mul_single,
+            one_mul]; rfl⟩
+  · rcases ihf with ⟨P, rfl⟩
+    rcases ihg with ⟨Q, rfl⟩
+    exact ⟨P + Q, AlgHom.map_add _ _ _⟩
+  · rcases ih with ⟨P, rfl⟩
+    exact ⟨r • P, AlgHom.map_smul _ _ _⟩
+
 variable (R M)
 
 /-- If an additive monoid `M` is finitely generated then `AddMonoidAlgebra R M` is of finite
@@ -448,9 +507,9 @@ type. -/
 instance finiteType_of_fg [CommRing R] [h : AddMonoid.FG M] :
     FiniteType R (AddMonoidAlgebra R M) := by
   obtain ⟨S, hS⟩ := h.out
-  exact (FiniteType.mvPolynomial R (S : Set M)).of_surjective
-      (MvPolynomial.aeval fun s : (S : Set M) => of' R M ↑s)
-      (mvPolynomial_aeval_of_surjective_of_closure hS)
+  exact (FiniteType.freeAlgebra R (S : Set M)).of_surjective
+      (FreeAlgebra.lift R fun s : (S : Set M) => of' R M ↑s)
+      (freeAlgebra_lift_of_surjective_of_closure hS)
 #align add_monoid_algebra.finite_type_of_fg AddMonoidAlgebra.finiteType_of_fg
 
 variable {R M}
@@ -532,7 +591,7 @@ end Semiring
 
 section Ring
 
-variable [CommRing R] [CommMonoid M]
+variable [CommRing R] [Monoid M]
 
 /-- If `MonoidAlgebra R M` is of finite type, then there is a `G : Finset M` such that its image
 generates, as algebra, `MonoidAlgebra R M`. -/
@@ -571,11 +630,9 @@ end Ring
 
 end Span
 
-variable [CommMonoid M]
-
 /-- If a set `S` generates a monoid `M`, then the image of `M` generates, as algebra,
 `MonoidAlgebra R M`. -/
-theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
+theorem mvPolynomial_aeval_of_surjective_of_closure [CommMonoid M] [CommSemiring R] {S : Set M}
     (hS : closure S = ⊤) :
     Function.Surjective
       (MvPolynomial.aeval fun s : S => of R M ↑s : MvPolynomial S R → MonoidAlgebra R M) := by
@@ -595,6 +652,31 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
     exact ⟨r • P, AlgHom.map_smul _ _ _⟩
 #align monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure
 
+
+variable [Monoid M]
+
+/-- If a set `S` generates an additive monoid `M`, then the image of `M` generates, as algebra,
+`AddMonoidAlgebra R M`. -/
+theorem freeAlgebra_lift_of_surjective_of_closure [CommSemiring R] {S : Set M}
+    (hS : closure S = ⊤) :
+    Function.Surjective
+      (FreeAlgebra.lift R fun s : S => of R M ↑s : FreeAlgebra R S → MonoidAlgebra R M) := by
+  intro f
+  induction' f using induction_on with m f g ihf ihg r f ih
+  · have : m ∈ closure S := hS.symm ▸ mem_top _
+    refine' closure_induction this (fun m hm => _) _ _
+    · exact ⟨FreeAlgebra.ι R ⟨m, hm⟩, FreeAlgebra.lift_ι_apply _ _⟩
+    · exact ⟨1, AlgHom.map_one _⟩
+    · rintro m₁ m₂ ⟨P₁, hP₁⟩ ⟨P₂, hP₂⟩
+      exact
+        ⟨P₁ * P₂, by
+          rw [AlgHom.map_mul, hP₁, hP₂, of_apply, of_apply, of_apply, single_mul_single, one_mul]⟩
+  · rcases ihf with ⟨P, rfl⟩
+    rcases ihg with ⟨Q, rfl⟩
+    exact ⟨P + Q, AlgHom.map_add _ _ _⟩
+  · rcases ih with ⟨P, rfl⟩
+    exact ⟨r • P, AlgHom.map_smul _ _ _⟩
+
 /-- If a monoid `M` is finitely generated then `MonoidAlgebra R M` is of finite type. -/
 instance finiteType_of_fg [CommRing R] [Monoid.FG M] : FiniteType R (MonoidAlgebra R M) :=
   (AddMonoidAlgebra.finiteType_of_fg R (Additive M)).equiv (toAdditiveAlgEquiv R M).symm
@@ -616,7 +698,7 @@ theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (MonoidAl
 #align monoid_algebra.fg_of_finite_type MonoidAlgebra.fg_of_finiteType
 
 /-- A group `G` is finitely generated if and only if `AddMonoidAlgebra R G` is of finite type. -/
-theorem finiteType_iff_group_fg {G : Type*} [CommGroup G] [CommRing R] [Nontrivial R] :
+theorem finiteType_iff_group_fg {G : Type*} [Group G] [CommRing R] [Nontrivial R] :
     FiniteType R (MonoidAlgebra R G) ↔ Group.FG G := by
   simpa [Group.fg_iff_monoid_fg] using finiteType_iff_fg
 #align monoid_algebra.finite_type_iff_group_fg MonoidAlgebra.finiteType_iff_group_fg
feat(RingTheory/FiniteType): generalize some results to non-commutative rings (#6681)

I was hoping to use this in combination with #6680 to show the TensorAlgebra is finitely generated, where I needed to generalize FiniteType.equiv; but it turns out that the FiniteType instance on MonoidAlgebra also isn't generalized!

The summary here is:

  • Move Algebra.adjoin_algebraMap from Mathlib/RingTheory/Adjoin/Tower.lean to Mathlib/RingTheory/Adjoin/Basic.lean and golf the proof to oblivion
  • Provide an alternative statement of adjoin_union_eq_adjoin_adjoin, adjoin_algebraMap_image_union_eq_adjoin_adjoin, which works in non-commutative rings, and use it along with a new adjoin_top lemma to prove Algebra.fg_trans' more generally.
  • Introduce a new S variable throughout, with the convention that R and S are commutative, A and B remain not-necessarily-commutative, and A/S/R is a tower of algebras.
  • Apply some zero-effort generalizations to semirings.
Diff
@@ -31,7 +31,8 @@ open BigOperators Polynomial
 
 section ModuleAndAlgebra
 
-variable (R) (A : Type u) (B M N : Type*)
+universe uR uS uA uB uM uN
+variable (R : Type uR) (S : Type uS) (A : Type uA) (B : Type uB) (M : Type uM) (N : Type uN)
 
 /-- An algebra over a commutative semiring is of `FiniteType` if it is finitely generated
 over the base ring as algebra. -/
@@ -47,7 +48,7 @@ namespace Finite
 
 open Submodule Set
 
-variable {R M N}
+variable {R S M N}
 
 section Algebra
 
@@ -65,11 +66,10 @@ end Module
 
 namespace Algebra
 
-variable [CommRing R] [CommRing A] [Algebra R A] [CommRing B] [Algebra R B]
-
-variable [AddCommGroup M] [Module R M]
-
-variable [AddCommGroup N] [Module R N]
+variable [CommSemiring R] [CommSemiring S] [Semiring A] [Semiring B]
+variable [Algebra R S] [Algebra R A] [Algebra R B]
+variable [AddCommMonoid M] [Module R M]
+variable [AddCommMonoid N] [Module R N]
 
 namespace FiniteType
 
@@ -93,18 +93,18 @@ protected theorem mvPolynomial (ι : Type*) [Finite ι] : FiniteType R (MvPolyno
         exact MvPolynomial.adjoin_range_X⟩⟩
 #align algebra.finite_type.mv_polynomial Algebra.FiniteType.mvPolynomial
 
-theorem of_restrictScalars_finiteType [Algebra A B] [IsScalarTower R A B] [hB : FiniteType R B] :
-    FiniteType A B := by
-  obtain ⟨S, hS⟩ := hB.out
-  refine' ⟨⟨S, eq_top_iff.2 fun b => _⟩⟩
-  have le : adjoin R (S : Set B) ≤ Subalgebra.restrictScalars R (adjoin A S) := by
-    apply (Algebra.adjoin_le _ : adjoin R (S : Set B) ≤ Subalgebra.restrictScalars R (adjoin A ↑S))
+theorem of_restrictScalars_finiteType [Algebra S A] [IsScalarTower R S A] [hA : FiniteType R A] :
+    FiniteType S A := by
+  obtain ⟨s, hS⟩ := hA.out
+  refine' ⟨⟨s, eq_top_iff.2 fun b => _⟩⟩
+  have le : adjoin R (s : Set A) ≤ Subalgebra.restrictScalars R (adjoin S s) := by
+    apply (Algebra.adjoin_le _ : adjoin R (s : Set A) ≤ Subalgebra.restrictScalars R (adjoin S ↑s))
     simp only [Subalgebra.coe_restrictScalars]
     exact Algebra.subset_adjoin
   exact le (eq_top_iff.1 hS b)
 #align algebra.finite_type.of_restrict_scalars_finite_type Algebra.FiniteType.of_restrictScalars_finiteType
 
-variable {R A B}
+variable {R S A B}
 
 theorem of_surjective (hRA : FiniteType R A) (f : A →ₐ[R] B) (hf : Surjective f) : FiniteType R B :=
   ⟨by
@@ -116,21 +116,21 @@ theorem equiv (hRA : FiniteType R A) (e : A ≃ₐ[R] B) : FiniteType R B :=
   hRA.of_surjective e e.surjective
 #align algebra.finite_type.equiv Algebra.FiniteType.equiv
 
-theorem trans [Algebra A B] [IsScalarTower R A B] (hRA : FiniteType R A) (hAB : FiniteType A B) :
-    FiniteType R B :=
-  ⟨fg_trans' hRA.1 hAB.1⟩
+theorem trans [Algebra S A] [IsScalarTower R S A] (hRS : FiniteType R S) (hSA : FiniteType S A) :
+    FiniteType R A :=
+  ⟨fg_trans' hRS.1 hSA.1⟩
 #align algebra.finite_type.trans Algebra.FiniteType.trans
 
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a finset. -/
 theorem iff_quotient_mvPolynomial :
-    FiniteType R A ↔
-      ∃ (s : Finset A) (f : MvPolynomial { x // x ∈ s } R →ₐ[R] A), Surjective f := by
+    FiniteType R S ↔
+      ∃ (s : Finset S) (f : MvPolynomial { x // x ∈ s } R →ₐ[R] S), Surjective f := by
   constructor
   · rintro ⟨s, hs⟩
     use s, MvPolynomial.aeval (↑)
     intro x
-    have hrw : (↑s : Set A) = fun x : A => x ∈ s.val := rfl
+    have hrw : (↑s : Set S) = fun x : S => x ∈ s.val := rfl
     rw [← Set.mem_range, ← AlgHom.coe_range, ← adjoin_eq_range, ← hrw, hs]
     exact Set.mem_univ x
   · rintro ⟨s, ⟨f, hsur⟩⟩
@@ -139,12 +139,12 @@ theorem iff_quotient_mvPolynomial :
 
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a fintype. -/
-theorem iff_quotient_mvPolynomial' : FiniteType R A ↔
-    ∃ (ι : Type u) (_ : Fintype ι) (f : MvPolynomial ι R →ₐ[R] A), Surjective f := by
+theorem iff_quotient_mvPolynomial' : FiniteType R S ↔
+    ∃ (ι : Type uS) (_ : Fintype ι) (f : MvPolynomial ι R →ₐ[R] S), Surjective f := by
   constructor
   · rw [iff_quotient_mvPolynomial]
     rintro ⟨s, ⟨f, hsur⟩⟩
-    use { x : A // x ∈ s }, inferInstance, f
+    use { x : S // x ∈ s }, inferInstance, f
   · rintro ⟨ι, ⟨hfintype, ⟨f, hsur⟩⟩⟩
     letI : Fintype ι := hfintype
     exact FiniteType.of_surjective (FiniteType.mvPolynomial R ι) f hsur
@@ -153,7 +153,7 @@ theorem iff_quotient_mvPolynomial' : FiniteType R A ↔
 /-- An algebra is finitely generated if and only if it is a quotient of a polynomial ring in `n`
 variables. -/
 theorem iff_quotient_mvPolynomial'' :
-    FiniteType R A ↔ ∃ (n : ℕ) (f : MvPolynomial (Fin n) R →ₐ[R] A), Surjective f := by
+    FiniteType R S ↔ ∃ (n : ℕ) (f : MvPolynomial (Fin n) R →ₐ[R] S), Surjective f := by
   constructor
   · rw [iff_quotient_mvPolynomial']
     rintro ⟨ι, hfintype, ⟨f, hsur⟩⟩
@@ -178,8 +178,7 @@ theorem isNoetherianRing (R S : Type*) [CommRing R] [CommRing S] [Algebra R S]
   rfl
 #align algebra.finite_type.is_noetherian_ring Algebra.FiniteType.isNoetherianRing
 
-theorem _root_.Subalgebra.fg_iff_finiteType {R A : Type*} [CommSemiring R]
-    [Semiring A] [Algebra R A] (S : Subalgebra R A) : S.FG ↔ Algebra.FiniteType R S :=
+theorem _root_.Subalgebra.fg_iff_finiteType (S : Subalgebra R A) : S.FG ↔ Algebra.FiniteType R S :=
   S.fg_top.symm.trans ⟨fun h => ⟨h⟩, fun h => h.out⟩
 #align subalgebra.fg_iff_finite_type Subalgebra.fg_iff_finiteType
 
@@ -237,7 +236,7 @@ theorem comp {g : B →+* C} {f : A →+* B} (hg : g.FiniteType) (hf : f.FiniteT
   let _ : Algebra A B := f.toAlgebra
   let _ : Algebra A C := (g.comp f).toAlgebra
   let _ : Algebra B C := g.toAlgebra
-  exact @Algebra.FiniteType.trans A B C _ _ f.toAlgebra _ (g.comp f).toAlgebra g.toAlgebra
+  exact @Algebra.FiniteType.trans A B C _ _ _ f.toAlgebra (g.comp f).toAlgebra g.toAlgebra
     ⟨by
       intro a b c
       simp [Algebra.smul_def, RingHom.map_mul, mul_assoc]
feat: patch for new alias command (#6172)
Diff
@@ -249,7 +249,7 @@ theorem of_finite {f : A →+* B} (hf : f.Finite) : f.FiniteType :=
   @Module.Finite.finiteType _ _ _ _ f.toAlgebra hf
 #align ring_hom.finite_type.of_finite RingHom.FiniteType.of_finite
 
-alias of_finite ← _root_.RingHom.Finite.to_finiteType
+alias _root_.RingHom.Finite.to_finiteType := of_finite
 #align ring_hom.finite.to_finite_type RingHom.Finite.to_finiteType
 
 theorem of_comp_finiteType {f : A →+* B} {g : B →+* C} (h : (g.comp f).FiniteType) :
fix: disable autoImplicit globally (#6528)

Autoimplicits are highly controversial and also defeat the performance-improving work in #6474.

The intent of this PR is to make autoImplicit opt-in on a per-file basis, by disabling it in the lakefile and enabling it again with set_option autoImplicit true in the few files that rely on it.

That also keeps this PR small, as opposed to attempting to "fix" files to not need it any more.

I claim that many of the uses of autoImplicit in these files are accidental; situations such as:

  • Assuming variables are in scope, but pasting the lemma in the wrong section
  • Pasting in a lemma from a scratch file without checking to see if the variable names are consistent with the rest of the file
  • Making a copy-paste error between lemmas and forgetting to add an explicit arguments.

Having set_option autoImplicit false as the default prevents these types of mistake being made in the 90% of files where autoImplicits are not used at all, and causes them to be caught by CI during review.

I think there were various points during the port where we encouraged porters to delete the universes u v lines; I think having autoparams for universe variables only would cover a lot of the cases we actually use them, while avoiding any real shortcomings.

A Zulip poll (after combining overlapping votes accordingly) was in favor of this change with 5:5:18 as the no:dontcare:yes vote ratio.

While this PR was being reviewed, a handful of files gained some more likely-accidental autoImplicits. In these places, set_option autoImplicit true has been placed locally within a section, rather than at the top of the file.

Diff
@@ -22,6 +22,8 @@ In this file we define a notion of finiteness that is common in commutative alge
 
 -/
 
+set_option autoImplicit true
+
 
 open Function (Surjective)
 
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
@@ -29,7 +29,7 @@ open BigOperators Polynomial
 
 section ModuleAndAlgebra
 
-variable (R) (A : Type u) (B M N : Type _)
+variable (R) (A : Type u) (B M N : Type*)
 
 /-- An algebra over a commutative semiring is of `FiniteType` if it is finitely generated
 over the base ring as algebra. -/
@@ -50,7 +50,7 @@ variable {R M N}
 section Algebra
 
 -- see Note [lower instance priority]
-instance (priority := 100) finiteType {R : Type _} (A : Type _) [CommSemiring R] [Semiring A]
+instance (priority := 100) finiteType {R : Type*} (A : Type*) [CommSemiring R] [Semiring A]
     [Algebra R A] [hRA : Finite R A] : Algebra.FiniteType R A :=
   ⟨Subalgebra.fg_of_submodule_fg hRA.1⟩
 #align module.finite.finite_type Module.Finite.finiteType
@@ -83,7 +83,7 @@ protected theorem polynomial : FiniteType R R[X] :=
 
 open Classical
 
-protected theorem mvPolynomial (ι : Type _) [Finite ι] : FiniteType R (MvPolynomial ι R) := by
+protected theorem mvPolynomial (ι : Type*) [Finite ι] : FiniteType R (MvPolynomial ι R) := by
   cases nonempty_fintype ι
   exact
     ⟨⟨Finset.univ.image MvPolynomial.X, by
@@ -165,7 +165,7 @@ instance prod [hA : FiniteType R A] [hB : FiniteType R B] : FiniteType R (A × B
   ⟨by rw [← Subalgebra.prod_top]; exact hA.1.prod hB.1⟩
 #align algebra.finite_type.prod Algebra.FiniteType.prod
 
-theorem isNoetherianRing (R S : Type _) [CommRing R] [CommRing S] [Algebra R S]
+theorem isNoetherianRing (R S : Type*) [CommRing R] [CommRing S] [Algebra R S]
     [h : Algebra.FiniteType R S] [IsNoetherianRing R] : IsNoetherianRing S := by
   obtain ⟨s, hs⟩ := h.1
   apply
@@ -176,7 +176,7 @@ theorem isNoetherianRing (R S : Type _) [CommRing R] [CommRing S] [Algebra R S]
   rfl
 #align algebra.finite_type.is_noetherian_ring Algebra.FiniteType.isNoetherianRing
 
-theorem _root_.Subalgebra.fg_iff_finiteType {R A : Type _} [CommSemiring R]
+theorem _root_.Subalgebra.fg_iff_finiteType {R A : Type*} [CommSemiring R]
     [Semiring A] [Algebra R A] (S : Subalgebra R A) : S.FG ↔ Algebra.FiniteType R S :=
   S.fg_top.symm.trans ⟨fun h => ⟨h⟩, fun h => h.out⟩
 #align subalgebra.fg_iff_finite_type Subalgebra.fg_iff_finiteType
@@ -189,7 +189,7 @@ end ModuleAndAlgebra
 
 namespace RingHom
 
-variable {A B C : Type _} [CommRing A] [CommRing B] [CommRing C]
+variable {A B C : Type*} [CommRing A] [CommRing B] [CommRing C]
 
 /-- A ring morphism `A →+* B` is of `FiniteType` if `B` is finitely generated as `A`-algebra. -/
 def FiniteType (f : A →+* B) : Prop :=
@@ -266,7 +266,7 @@ end RingHom
 
 namespace AlgHom
 
-variable {R A B C : Type _} [CommRing R]
+variable {R A B C : Type*} [CommRing R]
 
 variable [CommRing A] [CommRing B] [CommRing C]
 
@@ -321,7 +321,7 @@ end AlgHom
 
 section MonoidAlgebra
 
-variable {R : Type _} {M : Type _}
+variable {R : Type*} {M : Type*}
 
 namespace AddMonoidAlgebra
 
@@ -475,7 +475,7 @@ theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (AddMonoi
 
 /-- An additive group `G` is finitely generated if and only if `AddMonoidAlgebra R G` is of
 finite type. -/
-theorem finiteType_iff_group_fg {G : Type _} [AddCommGroup G] [CommRing R] [Nontrivial R] :
+theorem finiteType_iff_group_fg {G : Type*} [AddCommGroup G] [CommRing R] [Nontrivial R] :
     FiniteType R (AddMonoidAlgebra R G) ↔ AddGroup.FG G := by
   simpa [AddGroup.fg_iff_addMonoid_fg] using finiteType_iff_fg
 #align add_monoid_algebra.finite_type_iff_group_fg AddMonoidAlgebra.finiteType_iff_group_fg
@@ -615,7 +615,7 @@ theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (MonoidAl
 #align monoid_algebra.fg_of_finite_type MonoidAlgebra.fg_of_finiteType
 
 /-- A group `G` is finitely generated if and only if `AddMonoidAlgebra R G` is of finite type. -/
-theorem finiteType_iff_group_fg {G : Type _} [CommGroup G] [CommRing R] [Nontrivial R] :
+theorem finiteType_iff_group_fg {G : Type*} [CommGroup G] [CommRing R] [Nontrivial R] :
     FiniteType R (MonoidAlgebra R G) ↔ Group.FG G := by
   simpa [Group.fg_iff_monoid_fg] using finiteType_iff_fg
 #align monoid_algebra.finite_type_iff_group_fg MonoidAlgebra.finiteType_iff_group_fg
@@ -626,7 +626,7 @@ end MonoidAlgebra
 
 section Vasconcelos
 
-variable {R : Type _} [CommRing R] {M : Type _} [AddCommGroup M] [Module R M] (f : M →ₗ[R] M)
+variable {R : Type*} [CommRing R] {M : Type*} [AddCommGroup M] [Module R M] (f : M →ₗ[R] M)
 
 noncomputable section
 
fix: let use provide last constructor argument, introduce mathlib3-like flattening use! (#5350)

Changes:

  • use now by default discharges with try with_reducible use_discharger with a custom discharger tactic rather than try with_reducible rfl, which makes it be closer to exists and the use in mathlib3. It doesn't go so far as to do try with_reducible trivial since that involves the contradiction tactic.
  • this discharger is configurable with use (discharger := tacticSeq...)
  • the use evaluation loop will try refining after constructor failure, so it can be used to fill in all arguments rather than all but the last, like in mathlib3 (closes #5072) but with the caveat that it only works so long as the last argument is not an inductive type (like Eq).
  • adds use!, which is nearly the same as the mathlib3 use and fills in constructor arguments along the nodes and leaves of the nested constructor expressions. This version tries refining before applying constructors, so it can be used like exact for the last argument.

The difference between mathlib3 use and this use! is that (1) use! uses a different tactic to discharge goals (mathlib3 used trivial', which did reducible refl, but also contradiction, which we don't emulate) (2) it does not rewrite using exists_prop. Regarding 2, this feature seems to be less useful now that bounded existentials encode the bound using a conjunction rather than with nested existentials. We do have exists_prop as part of use_discharger however.

Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>

Diff
@@ -143,7 +143,6 @@ theorem iff_quotient_mvPolynomial' : FiniteType R A ↔
   · rw [iff_quotient_mvPolynomial]
     rintro ⟨s, ⟨f, hsur⟩⟩
     use { x : A // x ∈ s }, inferInstance, f
-    exact hsur
   · rintro ⟨ι, ⟨hfintype, ⟨f, hsur⟩⟩⟩
     letI : Fintype ι := hfintype
     exact FiniteType.of_surjective (FiniteType.mvPolynomial R ι) f hsur
chore: fix grammar mistakes (#6121)
Diff
@@ -373,7 +373,7 @@ section Ring
 
 variable [CommRing R] [AddCommMonoid M]
 
-/-- If `AddMonoidAlgebra R M` is of finite type, there there is a `G : Finset M` such that its
+/-- If `AddMonoidAlgebra R M` is of finite type, then there is a `G : Finset M` such that its
 image generates, as algebra, `AddMonoidAlgebra R M`. -/
 theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
     ∃ G : Finset M, Algebra.adjoin R (of' R M '' G) = ⊤ := by
@@ -534,7 +534,7 @@ section Ring
 
 variable [CommRing R] [CommMonoid M]
 
-/-- If `MonoidAlgebra R M` is of finite type, there there is a `G : Finset M` such that its image
+/-- If `MonoidAlgebra R M` is of finite type, then there is a `G : Finset M` such that its image
 generates, as algebra, `MonoidAlgebra R M`. -/
 theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
     ∃ G : Finset M, Algebra.adjoin R (of R M '' G) = ⊤ := by
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,17 +2,14 @@
 Copyright (c) 2020 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin
-
-! This file was ported from Lean 3 source module ring_theory.finite_type
-! leanprover-community/mathlib commit bb168510ef455e9280a152e7f31673cabd3d7496
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.GroupTheory.Finiteness
 import Mathlib.RingTheory.Adjoin.Tower
 import Mathlib.RingTheory.Finiteness
 import Mathlib.RingTheory.Noetherian
 
+#align_import ring_theory.finite_type from "leanprover-community/mathlib"@"bb168510ef455e9280a152e7f31673cabd3d7496"
+
 /-!
 # Finiteness conditions in commutative algebra
 
chore: fix many typos (#4983)

These are all doc fixes

Diff
@@ -377,7 +377,7 @@ section Ring
 variable [CommRing R] [AddCommMonoid M]
 
 /-- If `AddMonoidAlgebra R M` is of finite type, there there is a `G : Finset M` such that its
-image generates, as algera, `AddMonoidAlgebra R M`. -/
+image generates, as algebra, `AddMonoidAlgebra R M`. -/
 theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
     ∃ G : Finset M, Algebra.adjoin R (of' R M '' G) = ⊤ := by
   obtain ⟨S, hS⟩ := h
@@ -538,7 +538,7 @@ section Ring
 variable [CommRing R] [CommMonoid M]
 
 /-- If `MonoidAlgebra R M` is of finite type, there there is a `G : Finset M` such that its image
-generates, as algera, `MonoidAlgebra R M`. -/
+generates, as algebra, `MonoidAlgebra R M`. -/
 theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
     ∃ G : Finset M, Algebra.adjoin R (of R M '' G) = ⊤ := by
   obtain ⟨S, hS⟩ := h
chore: formatting issues (#4947)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -125,7 +125,8 @@ theorem trans [Algebra A B] [IsScalarTower R A B] (hRA : FiniteType R A) (hAB :
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a finset. -/
 theorem iff_quotient_mvPolynomial :
-    FiniteType R A ↔ ∃ (s : Finset A)(f : MvPolynomial { x // x ∈ s } R →ₐ[R] A), Surjective f := by
+    FiniteType R A ↔
+      ∃ (s : Finset A) (f : MvPolynomial { x // x ∈ s } R →ₐ[R] A), Surjective f := by
   constructor
   · rintro ⟨s, hs⟩
     use s, MvPolynomial.aeval (↑)
@@ -140,7 +141,7 @@ theorem iff_quotient_mvPolynomial :
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a fintype. -/
 theorem iff_quotient_mvPolynomial' : FiniteType R A ↔
-    ∃ (ι : Type u) (_ : Fintype ι)(f : MvPolynomial ι R →ₐ[R] A), Surjective f := by
+    ∃ (ι : Type u) (_ : Fintype ι) (f : MvPolynomial ι R →ₐ[R] A), Surjective f := by
   constructor
   · rw [iff_quotient_mvPolynomial]
     rintro ⟨s, ⟨f, hsur⟩⟩
@@ -154,7 +155,7 @@ theorem iff_quotient_mvPolynomial' : FiniteType R A ↔
 /-- An algebra is finitely generated if and only if it is a quotient of a polynomial ring in `n`
 variables. -/
 theorem iff_quotient_mvPolynomial'' :
-    FiniteType R A ↔ ∃ (n : ℕ)(f : MvPolynomial (Fin n) R →ₐ[R] A), Surjective f := by
+    FiniteType R A ↔ ∃ (n : ℕ) (f : MvPolynomial (Fin n) R →ₐ[R] A), Surjective f := by
   constructor
   · rw [iff_quotient_mvPolynomial']
     rintro ⟨ι, hfintype, ⟨f, hsur⟩⟩
style: allow _ for an argument in notation3 & replace _foo with _ in notation3 (#4652)
Diff
@@ -353,7 +353,7 @@ theorem support_gen_of_gen {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin
   rw [← hS, adjoin_le_iff]
   intro f hf
   have hincl :
-    of' R M '' f.support ⊆ ⋃ (g : AddMonoidAlgebra R M) (_H : g ∈ S), of' R M '' g.support := by
+    of' R M '' f.support ⊆ ⋃ (g : AddMonoidAlgebra R M) (_ : g ∈ S), of' R M '' g.support := by
     intro s hs
     exact Set.mem_iUnion₂.2 ⟨f, ⟨hf, hs⟩⟩
   exact adjoin_mono hincl (mem_adjoin_support f)
chore: reenable eta, bump to nightly 2023-05-16 (#3414)

Now that leanprover/lean4#2210 has been merged, this PR:

  • removes all the set_option synthInstance.etaExperiment true commands (and some etaExperiment% term elaborators)
  • removes many but not quite all set_option maxHeartbeats commands
  • makes various other changes required to cope with leanprover/lean4#2210.

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>

Diff
@@ -253,7 +253,6 @@ theorem of_finite {f : A →+* B} (hf : f.Finite) : f.FiniteType :=
 alias of_finite ← _root_.RingHom.Finite.to_finiteType
 #align ring_hom.finite.to_finite_type RingHom.Finite.to_finiteType
 
-set_option synthInstance.etaExperiment true in
 theorem of_comp_finiteType {f : A →+* B} {g : B →+* C} (h : (g.comp f).FiniteType) :
     g.FiniteType := by
   let _ := f.toAlgebra
@@ -389,7 +388,6 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
   exact support_gen_of_gen' hS
 #align add_monoid_algebra.exists_finset_adjoin_eq_top AddMonoidAlgebra.exists_finset_adjoin_eq_top
 
-set_option synthInstance.etaExperiment true in
 /-- The image of an element `m : M` in `AddMonoidAlgebra R M` belongs the submodule generated by
 `S : Set M` if and only if `m ∈ S`. -/
 theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
@@ -551,7 +549,6 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
   exact support_gen_of_gen' hS
 #align monoid_algebra.exists_finset_adjoin_eq_top MonoidAlgebra.exists_finset_adjoin_eq_top
 
-set_option synthInstance.etaExperiment true in
 /-- The image of an element `m : M` in `MonoidAlgebra R M` belongs the submodule generated by
 `S : Set M` if and only if `m ∈ S`. -/
 theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
@@ -636,8 +633,6 @@ variable {R : Type _} [CommRing R] {M : Type _} [AddCommGroup M] [Module R M] (f
 
 noncomputable section
 
---Porting note: could not synthesize `Semiring (M →ₗ[R] M)` without this line
-set_option synthInstance.etaExperiment true
 /-- The structure of a module `M` over a ring `R` as a module over `R[X]` when given a
 choice of how `X` acts by choosing a linear map `f : M →ₗ[R] M` -/
 def modulePolynomialOfEndo : Module R[X] M :=
Diff
@@ -37,7 +37,7 @@ variable (R) (A : Type u) (B M N : Type _)
 /-- An algebra over a commutative semiring is of `FiniteType` if it is finitely generated
 over the base ring as algebra. -/
 class Algebra.FiniteType [CommSemiring R] [Semiring A] [Algebra R A] : Prop where
-  out : (⊤ : Subalgebra R A).Fg
+  out : (⊤ : Subalgebra R A).FG
 #align algebra.finite_type Algebra.FiniteType
 
 namespace Module
@@ -180,7 +180,7 @@ theorem isNoetherianRing (R S : Type _) [CommRing R] [CommRing S] [Algebra R S]
 #align algebra.finite_type.is_noetherian_ring Algebra.FiniteType.isNoetherianRing
 
 theorem _root_.Subalgebra.fg_iff_finiteType {R A : Type _} [CommSemiring R]
-    [Semiring A] [Algebra R A] (S : Subalgebra R A) : S.Fg ↔ Algebra.FiniteType R S :=
+    [Semiring A] [Algebra R A] (S : Subalgebra R A) : S.FG ↔ Algebra.FiniteType R S :=
   S.fg_top.symm.trans ⟨fun h => ⟨h⟩, fun h => h.out⟩
 #align subalgebra.fg_iff_finite_type Subalgebra.fg_iff_finiteType
 
@@ -449,7 +449,7 @@ variable (R M)
 
 /-- If an additive monoid `M` is finitely generated then `AddMonoidAlgebra R M` is of finite
 type. -/
-instance finiteType_of_fg [CommRing R] [h : AddMonoid.Fg M] :
+instance finiteType_of_fg [CommRing R] [h : AddMonoid.FG M] :
     FiniteType R (AddMonoidAlgebra R M) := by
   obtain ⟨S, hS⟩ := h.out
   exact (FiniteType.mvPolynomial R (S : Set M)).of_surjective
@@ -462,7 +462,7 @@ variable {R M}
 /-- An additive monoid `M` is finitely generated if and only if `AddMonoidAlgebra R M` is of
 finite type. -/
 theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
-    FiniteType R (AddMonoidAlgebra R M) ↔ AddMonoid.Fg M := by
+    FiniteType R (AddMonoidAlgebra R M) ↔ AddMonoid.FG M := by
   refine' ⟨fun h => _, fun h => @AddMonoidAlgebra.finiteType_of_fg _ _ _ _ h⟩
   obtain ⟨S, hS⟩ := @exists_finset_adjoin_eq_top R M _ _ h
   refine' AddMonoid.fg_def.2 ⟨S, (eq_top_iff' _).2 fun m => _⟩
@@ -474,14 +474,14 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
 
 /-- If `AddMonoidAlgebra R M` is of finite type then `M` is finitely generated. -/
 theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (AddMonoidAlgebra R M)] :
-    AddMonoid.Fg M :=
+    AddMonoid.FG M :=
   finiteType_iff_fg.1 h
 #align add_monoid_algebra.fg_of_finite_type AddMonoidAlgebra.fg_of_finiteType
 
 /-- An additive group `G` is finitely generated if and only if `AddMonoidAlgebra R G` is of
 finite type. -/
 theorem finiteType_iff_group_fg {G : Type _} [AddCommGroup G] [CommRing R] [Nontrivial R] :
-    FiniteType R (AddMonoidAlgebra R G) ↔ AddGroup.Fg G := by
+    FiniteType R (AddMonoidAlgebra R G) ↔ AddGroup.FG G := by
   simpa [AddGroup.fg_iff_addMonoid_fg] using finiteType_iff_fg
 #align add_monoid_algebra.finite_type_iff_group_fg AddMonoidAlgebra.finiteType_iff_group_fg
 
@@ -601,13 +601,13 @@ theorem mvPolynomial_aeval_of_surjective_of_closure [CommSemiring R] {S : Set M}
 #align monoid_algebra.mv_polynomial_aeval_of_surjective_of_closure MonoidAlgebra.mvPolynomial_aeval_of_surjective_of_closure
 
 /-- If a monoid `M` is finitely generated then `MonoidAlgebra R M` is of finite type. -/
-instance finiteType_of_fg [CommRing R] [Monoid.Fg M] : FiniteType R (MonoidAlgebra R M) :=
+instance finiteType_of_fg [CommRing R] [Monoid.FG M] : FiniteType R (MonoidAlgebra R M) :=
   (AddMonoidAlgebra.finiteType_of_fg R (Additive M)).equiv (toAdditiveAlgEquiv R M).symm
 #align monoid_algebra.finite_type_of_fg MonoidAlgebra.finiteType_of_fg
 
 /-- A monoid `M` is finitely generated if and only if `MonoidAlgebra R M` is of finite type. -/
 theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
-    FiniteType R (MonoidAlgebra R M) ↔ Monoid.Fg M :=
+    FiniteType R (MonoidAlgebra R M) ↔ Monoid.FG M :=
   ⟨fun h =>
     Monoid.fg_iff_add_fg.2 <|
       AddMonoidAlgebra.finiteType_iff_fg.1 <| h.equiv <| toAdditiveAlgEquiv R M,
@@ -616,13 +616,13 @@ theorem finiteType_iff_fg [CommRing R] [Nontrivial R] :
 
 /-- If `MonoidAlgebra R M` is of finite type then `M` is finitely generated. -/
 theorem fg_of_finiteType [CommRing R] [Nontrivial R] [h : FiniteType R (MonoidAlgebra R M)] :
-    Monoid.Fg M :=
+    Monoid.FG M :=
   finiteType_iff_fg.1 h
 #align monoid_algebra.fg_of_finite_type MonoidAlgebra.fg_of_finiteType
 
 /-- A group `G` is finitely generated if and only if `AddMonoidAlgebra R G` is of finite type. -/
 theorem finiteType_iff_group_fg {G : Type _} [CommGroup G] [CommRing R] [Nontrivial R] :
-    FiniteType R (MonoidAlgebra R G) ↔ Group.Fg G := by
+    FiniteType R (MonoidAlgebra R G) ↔ Group.FG G := by
   simpa [Group.fg_iff_monoid_fg] using finiteType_iff_fg
 #align monoid_algebra.finite_type_iff_group_fg MonoidAlgebra.finiteType_iff_group_fg
 
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -356,7 +356,7 @@ theorem support_gen_of_gen {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoin
   have hincl :
     of' R M '' f.support ⊆ ⋃ (g : AddMonoidAlgebra R M) (_H : g ∈ S), of' R M '' g.support := by
     intro s hs
-    exact Set.mem_unionᵢ₂.2 ⟨f, ⟨hf, hs⟩⟩
+    exact Set.mem_iUnion₂.2 ⟨f, ⟨hf, hs⟩⟩
   exact adjoin_mono hincl (mem_adjoin_support f)
 #align add_monoid_algebra.support_gen_of_gen AddMonoidAlgebra.support_gen_of_gen
 
@@ -367,7 +367,7 @@ theorem support_gen_of_gen' {S : Set (AddMonoidAlgebra R M)} (hS : Algebra.adjoi
   suffices (of' R M '' ⋃ f ∈ S, (f.support : Set M)) = ⋃ f ∈ S, of' R M '' (f.support : Set M) by
     rw [this]
     exact support_gen_of_gen hS
-  simp only [Set.image_unionᵢ]
+  simp only [Set.image_iUnion]
 #align add_monoid_algebra.support_gen_of_gen' AddMonoidAlgebra.support_gen_of_gen'
 
 end Semiring
@@ -382,9 +382,9 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
     ∃ G : Finset M, Algebra.adjoin R (of' R M '' G) = ⊤ := by
   obtain ⟨S, hS⟩ := h
   letI : DecidableEq M := Classical.decEq M
-  use Finset.bunionᵢ S fun f => f.support
-  have : (Finset.bunionᵢ S fun f => f.support : Set M) = ⋃ f ∈ S, (f.support : Set M) := by
-    simp only [Finset.set_bunionᵢ_coe, Finset.coe_bunionᵢ]
+  use Finset.biUnion S fun f => f.support
+  have : (Finset.biUnion S fun f => f.support : Set M) = ⋃ f ∈ S, (f.support : Set M) := by
+    simp only [Finset.set_biUnion_coe, Finset.coe_biUnion]
   rw [this]
   exact support_gen_of_gen' hS
 #align add_monoid_algebra.exists_finset_adjoin_eq_top AddMonoidAlgebra.exists_finset_adjoin_eq_top
@@ -515,10 +515,10 @@ theorem support_gen_of_gen {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R
   --Porting note: ⋃ notation did not work here. Was
   -- ⋃ (g : MonoidAlgebra R M) (H : g ∈ S), (of R M '' g.support)
   have hincl : (of R M '' f.support) ⊆
-      Set.unionᵢ fun (g : MonoidAlgebra R M)
-        => Set.unionᵢ fun (_ : g ∈ S) => (of R M '' g.support) := by
+      Set.iUnion fun (g : MonoidAlgebra R M)
+        => Set.iUnion fun (_ : g ∈ S) => (of R M '' g.support) := by
     intro s hs
-    exact Set.mem_unionᵢ₂.2 ⟨f, ⟨hf, hs⟩⟩
+    exact Set.mem_iUnion₂.2 ⟨f, ⟨hf, hs⟩⟩
   exact adjoin_mono hincl (mem_adjoin_support f)
 #align monoid_algebra.support_gen_of_gen MonoidAlgebra.support_gen_of_gen
 
@@ -529,7 +529,7 @@ theorem support_gen_of_gen' {S : Set (MonoidAlgebra R M)} (hS : Algebra.adjoin R
   suffices (of R M '' ⋃ f ∈ S, (f.support : Set M)) = ⋃ f ∈ S, of R M '' (f.support : Set M) by
     rw [this]
     exact support_gen_of_gen hS
-  simp only [Set.image_unionᵢ]
+  simp only [Set.image_iUnion]
 #align monoid_algebra.support_gen_of_gen' MonoidAlgebra.support_gen_of_gen'
 
 end Semiring
@@ -544,9 +544,9 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
     ∃ G : Finset M, Algebra.adjoin R (of R M '' G) = ⊤ := by
   obtain ⟨S, hS⟩ := h
   letI : DecidableEq M := Classical.decEq M
-  use Finset.bunionᵢ S fun f => f.support
-  have : (Finset.bunionᵢ S fun f => f.support : Set M) = ⋃ f ∈ S, (f.support : Set M) := by
-    simp only [Finset.set_bunionᵢ_coe, Finset.coe_bunionᵢ]
+  use Finset.biUnion S fun f => f.support
+  have : (Finset.biUnion S fun f => f.support : Set M) = ⋃ f ∈ S, (f.support : Set M) := by
+    simp only [Finset.set_biUnion_coe, Finset.coe_biUnion]
   rw [this]
   exact support_gen_of_gen' hS
 #align monoid_algebra.exists_finset_adjoin_eq_top MonoidAlgebra.exists_finset_adjoin_eq_top
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -139,9 +139,8 @@ theorem iff_quotient_mvPolynomial :
 
 /-- An algebra is finitely generated if and only if it is a quotient
 of a polynomial ring whose variables are indexed by a fintype. -/
-theorem iff_quotient_mvPolynomial' :
-    FiniteType R A ↔ ∃ (ι : Type u) (_ : Fintype ι)(f : MvPolynomial ι R →ₐ[R] A), Surjective f :=
-  by
+theorem iff_quotient_mvPolynomial' : FiniteType R A ↔
+    ∃ (ι : Type u) (_ : Fintype ι)(f : MvPolynomial ι R →ₐ[R] A), Surjective f := by
   constructor
   · rw [iff_quotient_mvPolynomial]
     rintro ⟨s, ⟨f, hsur⟩⟩
@@ -255,8 +254,8 @@ alias of_finite ← _root_.RingHom.Finite.to_finiteType
 #align ring_hom.finite.to_finite_type RingHom.Finite.to_finiteType
 
 set_option synthInstance.etaExperiment true in
-theorem of_comp_finiteType {f : A →+* B} {g : B →+* C} (h : (g.comp f).FiniteType) : g.FiniteType :=
-  by
+theorem of_comp_finiteType {f : A →+* B} {g : B →+* C} (h : (g.comp f).FiniteType) :
+    g.FiniteType := by
   let _ := f.toAlgebra
   let _ := g.toAlgebra
   let _ := (g.comp f).toAlgebra
@@ -450,8 +449,8 @@ variable (R M)
 
 /-- If an additive monoid `M` is finitely generated then `AddMonoidAlgebra R M` is of finite
 type. -/
-instance finiteType_of_fg [CommRing R] [h : AddMonoid.Fg M] : FiniteType R (AddMonoidAlgebra R M) :=
-  by
+instance finiteType_of_fg [CommRing R] [h : AddMonoid.Fg M] :
+    FiniteType R (AddMonoidAlgebra R M) := by
   obtain ⟨S, hS⟩ := h.out
   exact (FiniteType.mvPolynomial R (S : Set M)).of_surjective
       (MvPolynomial.aeval fun s : (S : Set M) => of' R M ↑s)
chore: use etaExperiment rather than hacking with instances (#3668)

This is to fix timeouts in https://github.com/leanprover-community/mathlib4/pull/3552.

See discussion at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.233552.20.28LinearAlgebra.2EMatrix.2EToLin.29.

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

Diff
@@ -254,6 +254,7 @@ theorem of_finite {f : A →+* B} (hf : f.Finite) : f.FiniteType :=
 alias of_finite ← _root_.RingHom.Finite.to_finiteType
 #align ring_hom.finite.to_finite_type RingHom.Finite.to_finiteType
 
+set_option synthInstance.etaExperiment true in
 theorem of_comp_finiteType {f : A →+* B} {g : B →+* C} (h : (g.comp f).FiniteType) : g.FiniteType :=
   by
   let _ := f.toAlgebra
@@ -389,6 +390,7 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (AddMonoidAlgebra R M)] :
   exact support_gen_of_gen' hS
 #align add_monoid_algebra.exists_finset_adjoin_eq_top AddMonoidAlgebra.exists_finset_adjoin_eq_top
 
+set_option synthInstance.etaExperiment true in
 /-- The image of an element `m : M` in `AddMonoidAlgebra R M` belongs the submodule generated by
 `S : Set M` if and only if `m ∈ S`. -/
 theorem of'_mem_span [Nontrivial R] {m : M} {S : Set M} :
@@ -550,6 +552,7 @@ theorem exists_finset_adjoin_eq_top [h : FiniteType R (MonoidAlgebra R M)] :
   exact support_gen_of_gen' hS
 #align monoid_algebra.exists_finset_adjoin_eq_top MonoidAlgebra.exists_finset_adjoin_eq_top
 
+set_option synthInstance.etaExperiment true in
 /-- The image of an element `m : M` in `MonoidAlgebra R M` belongs the submodule generated by
 `S : Set M` if and only if `m ∈ S`. -/
 theorem of_mem_span_of_iff [Nontrivial R] {m : M} {S : Set M} :
chore: tidy various files (#3408)
Diff
@@ -159,7 +159,6 @@ theorem iff_quotient_mvPolynomial'' :
   constructor
   · rw [iff_quotient_mvPolynomial']
     rintro ⟨ι, hfintype, ⟨f, hsur⟩⟩
-    skip
     have equiv := MvPolynomial.renameEquiv R (Fintype.equivFin ι)
     exact ⟨Fintype.card ι, AlgHom.comp f equiv.symm.toAlgHom, by simpa using hsur⟩
   · rintro ⟨n, ⟨f, hsur⟩⟩
feat: port RingTheory.FiniteType (#3241)

Dependencies 8 + 537

538 files ported (98.5%)
225138 lines ported (98.6%)
Show graph

The unported dependencies are