ring_theory.finite_type
⟷
Mathlib.RingTheory.FiniteType
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -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 /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/63721b2c3eba6c325ecf8ae8cca27155a4f6306f
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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 ι <;>
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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,
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -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,
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -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`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -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,
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -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,
mathlib commit https://github.com/leanprover-community/mathlib/commit/06a655b5fcfbda03502f9158bbf6c0f1400886f9
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/d95bef0d215ea58c0fd7bbc4b151bf3fe952c095
@@ -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,
mathlib commit https://github.com/leanprover-community/mathlib/commit/1a313d8bba1bad05faba71a4a4e9742ab5bd9efd
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/2af0836443b4cfb5feda0df0051acdb398304931
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Data
(#11751)
Polynomial
and MvPolynomial
are algebraic objects, hence should be under Algebra
(or at least not under Data
)
@@ -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"
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)
@@ -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.
open Classical
(#11199)
We remove all but one open Classical
s, 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.
@@ -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 ι
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -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)
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>
@@ -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
The main result is Module.End.isSemisimple_of_squarefree_aeval_eq_zero
@@ -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"
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>
@@ -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₂⟩
@@ -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))
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>
@@ -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
R[A]
for addMonoidAlgebra R A
(#7203)
Introduce the notation R[A]
for AddMonoidAlgebra R A
. This is to align Mathlib
s 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 A
s 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
@@ -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
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.
@@ -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
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:
Algebra.adjoin_algebraMap
from Mathlib/RingTheory/Adjoin/Tower.lean
to Mathlib/RingTheory/Adjoin/Basic.lean
and golf the proof to oblivionadjoin_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.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.@@ -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]
@@ -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) :
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:
variables
are in scope, but pasting the lemma in the wrong sectionHaving set_option autoImplicit false
as the default prevents these types of mistake being made in the 90% of files where autoImplicit
s 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.
@@ -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)
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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
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.use (discharger := tacticSeq...)
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
).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>
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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⟩⟩
@@ -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)
Now that leanprover/lean4#2210 has been merged, this PR:
set_option synthInstance.etaExperiment true
commands (and some etaExperiment%
term elaborators)set_option maxHeartbeats
commandsCo-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>
@@ -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 :=
Fg
to FG
(#3948)
Please refer to this Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Naming.20convention/near/357712556
@@ -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
sSup
/iSup
(#3938)
As discussed on Zulip
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>
@@ -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
by
s! (#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 by
s".
@@ -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)
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>
@@ -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} :
@@ -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⟩⟩
The unported dependencies are