algebra.monoid_algebra.idealMathlib.Algebra.MonoidAlgebra.Ideal

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -30,7 +30,8 @@ theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G
   by
   let RHS : Ideal (MonoidAlgebra k G) :=
     { carrier := {p | ∀ m : G, m ∈ p.support → ∃ m' ∈ s, ∃ d, m = d * m'}
-      add_mem' := fun x y hx hy m hm => by classical
+      add_mem' := fun x y hx hy m hm => by
+        classical exact (Finset.mem_union.1 <| Finsupp.support_add hm).elim (hx m) (hy m)
       zero_mem' := fun m hm => by cases hm
       smul_mem' := fun x y hy m hm =>
         by
Diff
@@ -30,8 +30,7 @@ theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G
   by
   let RHS : Ideal (MonoidAlgebra k G) :=
     { carrier := {p | ∀ m : G, m ∈ p.support → ∃ m' ∈ s, ∃ d, m = d * m'}
-      add_mem' := fun x y hx hy m hm => by
-        classical exact (Finset.mem_union.1 <| Finsupp.support_add hm).elim (hx m) (hy m)
+      add_mem' := fun x y hx hy m hm => by classical
       zero_mem' := fun m hm => by cases hm
       smul_mem' := fun x y hy m hm =>
         by
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2023 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
 -/
-import Mathbin.Algebra.MonoidAlgebra.Division
-import Mathbin.RingTheory.Ideal.Basic
+import Algebra.MonoidAlgebra.Division
+import RingTheory.Ideal.Basic
 
 #align_import algebra.monoid_algebra.ideal from "leanprover-community/mathlib"@"4f81bc21e32048db7344b7867946e992cf5f68cc"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2023 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module algebra.monoid_algebra.ideal
-! leanprover-community/mathlib commit 4f81bc21e32048db7344b7867946e992cf5f68cc
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.MonoidAlgebra.Division
 import Mathbin.RingTheory.Ideal.Basic
 
+#align_import algebra.monoid_algebra.ideal from "leanprover-community/mathlib"@"4f81bc21e32048db7344b7867946e992cf5f68cc"
+
 /-!
 # Lemmas about ideals of `monoid_algebra` and `add_monoid_algebra`
 
Diff
@@ -21,6 +21,7 @@ import Mathbin.RingTheory.Ideal.Basic
 
 variable {k A G : Type _}
 
+#print MonoidAlgebra.mem_ideal_span_of_image /-
 /-- If `x` belongs to the ideal generated by generators in `s`, then every element of the support of
 `x` factors through an element of `s`.
 
@@ -63,7 +64,9 @@ theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G
     refine' Ideal.subset_span ⟨_, hd, rfl⟩
     rw [id.def, MonoidAlgebra.of_apply, MonoidAlgebra.single_mul_single, mul_one]
 #align monoid_algebra.mem_ideal_span_of_image MonoidAlgebra.mem_ideal_span_of_image
+-/
 
+#print AddMonoidAlgebra.mem_ideal_span_of'_image /-
 /-- If `x` belongs to the ideal generated by generators in `s`, then every element of the support of
 `x` factors additively through an element of `s`.
 -/
@@ -72,4 +75,5 @@ theorem AddMonoidAlgebra.mem_ideal_span_of'_image [AddMonoid A] [Semiring k] {s
     x ∈ Ideal.span (AddMonoidAlgebra.of' k A '' s) ↔ ∀ m ∈ x.support, ∃ m' ∈ s, ∃ d, m = d + m' :=
   @MonoidAlgebra.mem_ideal_span_of_image k (Multiplicative A) _ _ _ _
 #align add_monoid_algebra.mem_ideal_span_of'_image AddMonoidAlgebra.mem_ideal_span_of'_image
+-/
 
Diff
@@ -31,7 +31,7 @@ theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G
     x ∈ Ideal.span (MonoidAlgebra.of k G '' s) ↔ ∀ m ∈ x.support, ∃ m' ∈ s, ∃ d, m = d * m' :=
   by
   let RHS : Ideal (MonoidAlgebra k G) :=
-    { carrier := { p | ∀ m : G, m ∈ p.support → ∃ m' ∈ s, ∃ d, m = d * m' }
+    { carrier := {p | ∀ m : G, m ∈ p.support → ∃ m' ∈ s, ∃ d, m = d * m'}
       add_mem' := fun x y hx hy m hm => by
         classical exact (Finset.mem_union.1 <| Finsupp.support_add hm).elim (hx m) (hy m)
       zero_mem' := fun m hm => by cases hm
Diff
@@ -21,12 +21,6 @@ import Mathbin.RingTheory.Ideal.Basic
 
 variable {k A G : Type _}
 
-/- warning: monoid_algebra.mem_ideal_span_of_image -> MonoidAlgebra.mem_ideal_span_of_image is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : Semiring.{u1} k] {s : Set.{u2} G} {x : MonoidAlgebra.{u1, u2} k G _inst_2}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (SetLike.hasMem.{max u1 u2, max u1 u2} (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (MonoidAlgebra.{u1, u2} k G _inst_2) (Submodule.setLike.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) (Semiring.toModule.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) x (Ideal.span.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (Set.image.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_2)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) (MonoidAlgebra.of.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))) s))) (forall (m : G), (Membership.Mem.{u2, u2} G (Finset.{u2} G) (Finset.hasMem.{u2} G) m (Finsupp.support.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2)))) x)) -> (Exists.{succ u2} G (fun (m' : G) => Exists.{0} (Membership.Mem.{u2, u2} G (Set.{u2} G) (Set.hasMem.{u2} G) m' s) (fun (H : Membership.Mem.{u2, u2} G (Set.{u2} G) (Set.hasMem.{u2} G) m' s) => Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G m (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_1))) d m'))))))
-but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : Semiring.{u1} k] {s : Set.{u2} G} {x : MonoidAlgebra.{u1, u2} k G _inst_2}, Iff (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (SetLike.instMembership.{max u1 u2, max u1 u2} (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (MonoidAlgebra.{u1, u2} k G _inst_2) (Submodule.setLike.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) (Semiring.toModule.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) x (Ideal.span.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (Set.image.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_2) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) G (MonoidAlgebra.{u1, u2} k G _inst_2) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_1)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))))) (MonoidAlgebra.of.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))) s))) (forall (m : G), (Membership.mem.{u2, u2} G (Finset.{u2} G) (Finset.instMembershipFinset.{u2} G) m (Finsupp.support.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_2)) x)) -> (Exists.{succ u2} G (fun (m' : G) => And (Membership.mem.{u2, u2} G (Set.{u2} G) (Set.instMembershipSet.{u2} G) m' s) (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G m (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_1))) d m'))))))
-Case conversion may be inaccurate. Consider using '#align monoid_algebra.mem_ideal_span_of_image MonoidAlgebra.mem_ideal_span_of_imageₓ'. -/
 /-- If `x` belongs to the ideal generated by generators in `s`, then every element of the support of
 `x` factors through an element of `s`.
 
@@ -70,12 +64,6 @@ theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G
     rw [id.def, MonoidAlgebra.of_apply, MonoidAlgebra.single_mul_single, mul_one]
 #align monoid_algebra.mem_ideal_span_of_image MonoidAlgebra.mem_ideal_span_of_image
 
-/- warning: add_monoid_algebra.mem_ideal_span_of'_image -> AddMonoidAlgebra.mem_ideal_span_of'_image is a dubious translation:
-lean 3 declaration is
-  forall {k : Type.{u1}} {A : Type.{u2}} [_inst_1 : AddMonoid.{u2} A] [_inst_2 : Semiring.{u1} k] {s : Set.{u2} A} {x : AddMonoidAlgebra.{u1, u2} k A _inst_2}, Iff (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (Ideal.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)) (SetLike.hasMem.{max u2 u1, max u2 u1} (Ideal.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)) (AddMonoidAlgebra.{u1, u2} k A _inst_2) (Submodule.setLike.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)))) (Semiring.toModule.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)))) x (Ideal.span.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1) (Set.image.{u2, max u2 u1} A (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.of'.{u1, u2} k A _inst_2) s))) (forall (m : A), (Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) m (Finsupp.support.{u2, u1} A k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2)))) x)) -> (Exists.{succ u2} A (fun (m' : A) => Exists.{0} (Membership.Mem.{u2, u2} A (Set.{u2} A) (Set.hasMem.{u2} A) m' s) (fun (H : Membership.Mem.{u2, u2} A (Set.{u2} A) (Set.hasMem.{u2} A) m' s) => Exists.{succ u2} A (fun (d : A) => Eq.{succ u2} A m (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_1))) d m'))))))
-but is expected to have type
-  forall {k : Type.{u1}} {A : Type.{u2}} [_inst_1 : AddMonoid.{u2} A] [_inst_2 : Semiring.{u1} k] {s : Set.{u2} A} {x : AddMonoidAlgebra.{u1, u2} k A _inst_2}, Iff (Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (Ideal.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)) (SetLike.instMembership.{max u1 u2, max u1 u2} (Ideal.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)) (AddMonoidAlgebra.{u1, u2} k A _inst_2) (Submodule.setLike.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)))) (Semiring.toModule.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)))) x (Ideal.span.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1) (Set.image.{u2, max u1 u2} A (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.of'.{u1, u2} k A _inst_2) s))) (forall (m : A), (Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) m (Finsupp.support.{u2, u1} A k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_2)) x)) -> (Exists.{succ u2} A (fun (m' : A) => And (Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) m' s) (Exists.{succ u2} A (fun (d : A) => Eq.{succ u2} A m (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_1))) d m'))))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mem_ideal_span_of'_image AddMonoidAlgebra.mem_ideal_span_of'_imageₓ'. -/
 /-- If `x` belongs to the ideal generated by generators in `s`, then every element of the support of
 `x` factors additively through an element of `s`.
 -/
Diff
@@ -25,7 +25,7 @@ variable {k A G : Type _}
 lean 3 declaration is
   forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : Semiring.{u1} k] {s : Set.{u2} G} {x : MonoidAlgebra.{u1, u2} k G _inst_2}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (SetLike.hasMem.{max u1 u2, max u1 u2} (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (MonoidAlgebra.{u1, u2} k G _inst_2) (Submodule.setLike.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) (Semiring.toModule.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) x (Ideal.span.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (Set.image.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_2)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) (MonoidAlgebra.of.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))) s))) (forall (m : G), (Membership.Mem.{u2, u2} G (Finset.{u2} G) (Finset.hasMem.{u2} G) m (Finsupp.support.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2)))) x)) -> (Exists.{succ u2} G (fun (m' : G) => Exists.{0} (Membership.Mem.{u2, u2} G (Set.{u2} G) (Set.hasMem.{u2} G) m' s) (fun (H : Membership.Mem.{u2, u2} G (Set.{u2} G) (Set.hasMem.{u2} G) m' s) => Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G m (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_1))) d m'))))))
 but is expected to have type
-  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : Semiring.{u1} k] {s : Set.{u2} G} {x : MonoidAlgebra.{u1, u2} k G _inst_2}, Iff (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (SetLike.instMembership.{max u1 u2, max u1 u2} (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (MonoidAlgebra.{u1, u2} k G _inst_2) (Submodule.setLike.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) (Semiring.toModule.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) x (Ideal.span.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (Set.image.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_2) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) G (MonoidAlgebra.{u1, u2} k G _inst_2) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_1)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))))) (MonoidAlgebra.of.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))) s))) (forall (m : G), (Membership.mem.{u2, u2} G (Finset.{u2} G) (Finset.instMembershipFinset.{u2} G) m (Finsupp.support.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_2)) x)) -> (Exists.{succ u2} G (fun (m' : G) => And (Membership.mem.{u2, u2} G (Set.{u2} G) (Set.instMembershipSet.{u2} G) m' s) (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G m (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_1))) d m'))))))
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : Semiring.{u1} k] {s : Set.{u2} G} {x : MonoidAlgebra.{u1, u2} k G _inst_2}, Iff (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (SetLike.instMembership.{max u1 u2, max u1 u2} (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (MonoidAlgebra.{u1, u2} k G _inst_2) (Submodule.setLike.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) (Semiring.toModule.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) x (Ideal.span.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (Set.image.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => MonoidAlgebra.{u1, u2} k G _inst_2) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) G (MonoidAlgebra.{u1, u2} k G _inst_2) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_1)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))))) (MonoidAlgebra.of.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))) s))) (forall (m : G), (Membership.mem.{u2, u2} G (Finset.{u2} G) (Finset.instMembershipFinset.{u2} G) m (Finsupp.support.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_2)) x)) -> (Exists.{succ u2} G (fun (m' : G) => And (Membership.mem.{u2, u2} G (Set.{u2} G) (Set.instMembershipSet.{u2} G) m' s) (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G m (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_1))) d m'))))))
 Case conversion may be inaccurate. Consider using '#align monoid_algebra.mem_ideal_span_of_image MonoidAlgebra.mem_ideal_span_of_imageₓ'. -/
 /-- If `x` belongs to the ideal generated by generators in `s`, then every element of the support of
 `x` factors through an element of `s`.
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
 
 ! This file was ported from Lean 3 source module algebra.monoid_algebra.ideal
-! leanprover-community/mathlib commit 72c366d0475675f1309d3027d3d7d47ee4423951
+! leanprover-community/mathlib commit 4f81bc21e32048db7344b7867946e992cf5f68cc
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.RingTheory.Ideal.Basic
 
 /-!
 # Lemmas about ideals of `monoid_algebra` and `add_monoid_algebra`
+
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
 -/
 
 
Diff
@@ -18,6 +18,12 @@ import Mathbin.RingTheory.Ideal.Basic
 
 variable {k A G : Type _}
 
+/- warning: monoid_algebra.mem_ideal_span_of_image -> MonoidAlgebra.mem_ideal_span_of_image is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : Semiring.{u1} k] {s : Set.{u2} G} {x : MonoidAlgebra.{u1, u2} k G _inst_2}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (SetLike.hasMem.{max u1 u2, max u1 u2} (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (MonoidAlgebra.{u1, u2} k G _inst_2) (Submodule.setLike.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) (Semiring.toModule.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) x (Ideal.span.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (Set.image.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) (fun (_x : MonoidHom.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) => G -> (MonoidAlgebra.{u1, u2} k G _inst_2)) (MonoidHom.hasCoeToFun.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) (MonoidAlgebra.of.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))) s))) (forall (m : G), (Membership.Mem.{u2, u2} G (Finset.{u2} G) (Finset.hasMem.{u2} G) m (Finsupp.support.{u2, u1} G k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2)))) x)) -> (Exists.{succ u2} G (fun (m' : G) => Exists.{0} (Membership.Mem.{u2, u2} G (Set.{u2} G) (Set.hasMem.{u2} G) m' s) (fun (H : Membership.Mem.{u2, u2} G (Set.{u2} G) (Set.hasMem.{u2} G) m' s) => Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G m (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toHasMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_1))) d m'))))))
+but is expected to have type
+  forall {k : Type.{u1}} {G : Type.{u2}} [_inst_1 : Monoid.{u2} G] [_inst_2 : Semiring.{u1} k] {s : Set.{u2} G} {x : MonoidAlgebra.{u1, u2} k G _inst_2}, Iff (Membership.mem.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (SetLike.instMembership.{max u1 u2, max u1 u2} (Ideal.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)) (MonoidAlgebra.{u1, u2} k G _inst_2) (Submodule.setLike.{max u1 u2, max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) (Semiring.toModule.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1)))) x (Ideal.span.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.semiring.{u1, u2} k G _inst_2 _inst_1) (Set.image.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => MonoidAlgebra.{u1, u2} k G _inst_2) _x) (MulHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) G (MonoidAlgebra.{u1, u2} k G _inst_2) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_1)) (MulOneClass.toMul.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, max u1 u2} (MonoidHom.{u2, max u2 u1} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))) G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1)))) (MonoidHom.monoidHomClass.{u2, max u1 u2} G (MonoidAlgebra.{u1, u2} k G _inst_2) (Monoid.toMulOneClass.{u2} G _inst_1) (MulZeroOneClass.toMulOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (MonoidAlgebra.{u1, u2} k G _inst_2) (MonoidAlgebra.nonAssocSemiring.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))))))) (MonoidAlgebra.of.{u1, u2} k G _inst_2 (Monoid.toMulOneClass.{u2} G _inst_1))) s))) (forall (m : G), (Membership.mem.{u2, u2} G (Finset.{u2} G) (Finset.instMembershipFinset.{u2} G) m (Finsupp.support.{u2, u1} G k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_2)) x)) -> (Exists.{succ u2} G (fun (m' : G) => And (Membership.mem.{u2, u2} G (Set.{u2} G) (Set.instMembershipSet.{u2} G) m' s) (Exists.{succ u2} G (fun (d : G) => Eq.{succ u2} G m (HMul.hMul.{u2, u2, u2} G G G (instHMul.{u2} G (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G _inst_1))) d m'))))))
+Case conversion may be inaccurate. Consider using '#align monoid_algebra.mem_ideal_span_of_image MonoidAlgebra.mem_ideal_span_of_imageₓ'. -/
 /-- If `x` belongs to the ideal generated by generators in `s`, then every element of the support of
 `x` factors through an element of `s`.
 
@@ -61,6 +67,12 @@ theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G
     rw [id.def, MonoidAlgebra.of_apply, MonoidAlgebra.single_mul_single, mul_one]
 #align monoid_algebra.mem_ideal_span_of_image MonoidAlgebra.mem_ideal_span_of_image
 
+/- warning: add_monoid_algebra.mem_ideal_span_of'_image -> AddMonoidAlgebra.mem_ideal_span_of'_image is a dubious translation:
+lean 3 declaration is
+  forall {k : Type.{u1}} {A : Type.{u2}} [_inst_1 : AddMonoid.{u2} A] [_inst_2 : Semiring.{u1} k] {s : Set.{u2} A} {x : AddMonoidAlgebra.{u1, u2} k A _inst_2}, Iff (Membership.Mem.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (Ideal.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)) (SetLike.hasMem.{max u2 u1, max u2 u1} (Ideal.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)) (AddMonoidAlgebra.{u1, u2} k A _inst_2) (Submodule.setLike.{max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (Semiring.toNonAssocSemiring.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)))) (Semiring.toModule.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)))) x (Ideal.span.{max u2 u1} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1) (Set.image.{u2, max u2 u1} A (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.of'.{u1, u2} k A _inst_2) s))) (forall (m : A), (Membership.Mem.{u2, u2} A (Finset.{u2} A) (Finset.hasMem.{u2} A) m (Finsupp.support.{u2, u1} A k (MulZeroClass.toHasZero.{u1} k (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} k (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} k (Semiring.toNonAssocSemiring.{u1} k _inst_2)))) x)) -> (Exists.{succ u2} A (fun (m' : A) => Exists.{0} (Membership.Mem.{u2, u2} A (Set.{u2} A) (Set.hasMem.{u2} A) m' s) (fun (H : Membership.Mem.{u2, u2} A (Set.{u2} A) (Set.hasMem.{u2} A) m' s) => Exists.{succ u2} A (fun (d : A) => Eq.{succ u2} A m (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toHasAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_1))) d m'))))))
+but is expected to have type
+  forall {k : Type.{u1}} {A : Type.{u2}} [_inst_1 : AddMonoid.{u2} A] [_inst_2 : Semiring.{u1} k] {s : Set.{u2} A} {x : AddMonoidAlgebra.{u1, u2} k A _inst_2}, Iff (Membership.mem.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (Ideal.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)) (SetLike.instMembership.{max u1 u2, max u1 u2} (Ideal.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)) (AddMonoidAlgebra.{u1, u2} k A _inst_2) (Submodule.setLike.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (Semiring.toNonAssocSemiring.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)))) (Semiring.toModule.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1)))) x (Ideal.span.{max u1 u2} (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.semiring.{u1, u2} k A _inst_2 _inst_1) (Set.image.{u2, max u1 u2} A (AddMonoidAlgebra.{u1, u2} k A _inst_2) (AddMonoidAlgebra.of'.{u1, u2} k A _inst_2) s))) (forall (m : A), (Membership.mem.{u2, u2} A (Finset.{u2} A) (Finset.instMembershipFinset.{u2} A) m (Finsupp.support.{u2, u1} A k (MonoidWithZero.toZero.{u1} k (Semiring.toMonoidWithZero.{u1} k _inst_2)) x)) -> (Exists.{succ u2} A (fun (m' : A) => And (Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) m' s) (Exists.{succ u2} A (fun (d : A) => Eq.{succ u2} A m (HAdd.hAdd.{u2, u2, u2} A A A (instHAdd.{u2} A (AddZeroClass.toAdd.{u2} A (AddMonoid.toAddZeroClass.{u2} A _inst_1))) d m'))))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.mem_ideal_span_of'_image AddMonoidAlgebra.mem_ideal_span_of'_imageₓ'. -/
 /-- If `x` belongs to the ideal generated by generators in `s`, then every element of the support of
 `x` factors additively through an element of `s`.
 -/

Changes in mathlib4

mathlib3
mathlib4
chore: adapt to multiple goal linter 3 (#12372)

A PR analogous to #12338 and #12361: reformatting proofs following the multiple goals linter of #12339.

Diff
@@ -56,7 +56,7 @@ theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G
     obtain ⟨d, hd, d2, rfl⟩ := hx _ hi
     convert Ideal.mul_mem_left _ (id <| Finsupp.single d2 <| x (d2 * d) : MonoidAlgebra k G) _
     pick_goal 3
-    refine' Ideal.subset_span ⟨_, hd, rfl⟩
+    · refine' Ideal.subset_span ⟨_, hd, rfl⟩
     rw [id, MonoidAlgebra.of_apply, MonoidAlgebra.single_mul_single, mul_one]
 #align monoid_algebra.mem_ideal_span_of_image MonoidAlgebra.mem_ideal_span_of_image
 
chore: avoid id.def (adaptation for nightly-2024-03-27) (#11829)

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

Diff
@@ -57,7 +57,7 @@ theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G
     convert Ideal.mul_mem_left _ (id <| Finsupp.single d2 <| x (d2 * d) : MonoidAlgebra k G) _
     pick_goal 3
     refine' Ideal.subset_span ⟨_, hd, rfl⟩
-    rw [id.def, MonoidAlgebra.of_apply, MonoidAlgebra.single_mul_single, mul_one]
+    rw [id, MonoidAlgebra.of_apply, MonoidAlgebra.single_mul_single, mul_one]
 #align monoid_algebra.mem_ideal_span_of_image MonoidAlgebra.mem_ideal_span_of_image
 
 /-- If `x` belongs to the ideal generated by generators in `s`, then every element of the support of
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -36,7 +36,7 @@ theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G
         obtain ⟨ym, hym, hm⟩ := hm
         replace hm := Finset.mem_singleton.mp (Finsupp.support_single_subset hm)
         obtain rfl := hm
-        -- porting note: changed `Exists.imp` to `And.imp_right` due to change in `∃ x ∈ s`
+        -- Porting note: changed `Exists.imp` to `And.imp_right` due to change in `∃ x ∈ s`
         -- elaboration
         refine' (hy _ hym).imp fun sm p => And.imp_right _ p
         rintro ⟨d, rfl⟩
@@ -44,7 +44,7 @@ theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G
   change _ ↔ x ∈ RHS
   constructor
   · revert x
-    rw [← SetLike.le_def] -- porting note: refine needs this even though it's defeq?
+    rw [← SetLike.le_def] -- Porting note: refine needs this even though it's defeq?
     refine Ideal.span_le.2 ?_
     rintro _ ⟨i, hi, rfl⟩ m hm
     refine' ⟨_, hi, 1, _⟩
@@ -52,7 +52,7 @@ theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G
     exact (one_mul _).symm
   · intro hx
     rw [← Finsupp.sum_single x]
-    refine Ideal.sum_mem _ fun i hi => ?_  -- porting note: changed `apply` to `refine`
+    refine Ideal.sum_mem _ fun i hi => ?_  -- Porting note: changed `apply` to `refine`
     obtain ⟨d, hd, d2, rfl⟩ := hx _ hi
     convert Ideal.mul_mem_left _ (id <| Finsupp.single d2 <| x (d2 * d) : MonoidAlgebra k G) _
     pick_goal 3
chore: reduce imports (#9830)

This uses the improved shake script from #9772 to reduce imports across mathlib. The corresponding noshake.json file has been added to #9772.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2023 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
 -/
-import Mathlib.Algebra.MonoidAlgebra.Division
+import Mathlib.Algebra.MonoidAlgebra.Basic
 import Mathlib.RingTheory.Ideal.Basic
 
 #align_import algebra.monoid_algebra.ideal from "leanprover-community/mathlib"@"72c366d0475675f1309d3027d3d7d47ee4423951"
chore: space after (#8178)

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

Diff
@@ -44,7 +44,7 @@ theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G
   change _ ↔ x ∈ RHS
   constructor
   · revert x
-    rw [←SetLike.le_def] -- porting note: refine needs this even though it's defeq?
+    rw [← SetLike.le_def] -- porting note: refine needs this even though it's defeq?
     refine Ideal.span_le.2 ?_
     rintro _ ⟨i, hi, rfl⟩ m hm
     refine' ⟨_, hi, 1, _⟩
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -13,7 +13,7 @@ import Mathlib.RingTheory.Ideal.Basic
 -/
 
 
-variable {k A G : Type _}
+variable {k A G : Type*}
 
 /-- If `x` belongs to the ideal generated by generators in `s`, then every element of the support of
 `x` factors through an element of `s`.
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2023 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module algebra.monoid_algebra.ideal
-! leanprover-community/mathlib commit 72c366d0475675f1309d3027d3d7d47ee4423951
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.MonoidAlgebra.Division
 import Mathlib.RingTheory.Ideal.Basic
 
+#align_import algebra.monoid_algebra.ideal from "leanprover-community/mathlib"@"72c366d0475675f1309d3027d3d7d47ee4423951"
+
 /-!
 # Lemmas about ideals of `MonoidAlgebra` and `AddMonoidAlgebra`
 -/
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

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

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

Diff
@@ -33,9 +33,9 @@ theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G
       zero_mem' := fun m hm => by cases hm
       smul_mem' := fun x y hy m hm => by
         classical
-        replace hm := Finset.mem_bunionᵢ.mp (Finsupp.support_sum hm)
+        replace hm := Finset.mem_biUnion.mp (Finsupp.support_sum hm)
         obtain ⟨xm, -, hm⟩ := hm
-        replace hm := Finset.mem_bunionᵢ.mp (Finsupp.support_sum hm)
+        replace hm := Finset.mem_biUnion.mp (Finsupp.support_sum hm)
         obtain ⟨ym, hym, hm⟩ := hm
         replace hm := Finset.mem_singleton.mp (Finsupp.support_single_subset hm)
         obtain rfl := hm
chore: tidy various files (#3718)
Diff
@@ -12,7 +12,7 @@ import Mathlib.Algebra.MonoidAlgebra.Division
 import Mathlib.RingTheory.Ideal.Basic
 
 /-!
-# Lemmas about ideals of `monoid_algebra` and `add_monoid_algebra`
+# Lemmas about ideals of `MonoidAlgebra` and `AddMonoidAlgebra`
 -/
 
 
@@ -21,14 +21,14 @@ variable {k A G : Type _}
 /-- If `x` belongs to the ideal generated by generators in `s`, then every element of the support of
 `x` factors through an element of `s`.
 
-We could spell `∃ d, m = d * m` as `mul_opposite.op m' ∣ mul_opposite.op m` but this would be worse.
+We could spell `∃ d, m = d * m` as `MulOpposite.op m' ∣ MulOpposite.op m` but this would be worse.
 -/
 theorem MonoidAlgebra.mem_ideal_span_of_image [Monoid G] [Semiring k] {s : Set G}
     {x : MonoidAlgebra k G} :
     x ∈ Ideal.span (MonoidAlgebra.of k G '' s) ↔ ∀ m ∈ x.support, ∃ m' ∈ s, ∃ d, m = d * m' := by
   let RHS : Ideal (MonoidAlgebra k G) :=
     { carrier := { p | ∀ m : G, m ∈ p.support → ∃ m' ∈ s, ∃ d, m = d * m' }
-      add_mem' := @fun x y hx hy m hm => by
+      add_mem' := fun {x y} hx hy m hm => by
         classical exact (Finset.mem_union.1 <| Finsupp.support_add hm).elim (hx m) (hy m)
       zero_mem' := fun m hm => by cases hm
       smul_mem' := fun x y hy m hm => by
feat: port Algebra.MonoidAlgebra.Ideal (#3106)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Dependencies 8 + 385

386 files ported (98.0%)
159937 lines ported (98.1%)
Show graph

The unported dependencies are