Documentation

Mathlib.Algebra.MonoidAlgebra.Module

Module structure on monoid algebras #

Main results #

Implementation notes #

We do not state the equivalent of DistribMulAction M (MonoidAlgebra S M) for AddMonoidAlgebra because mathlib does not have the notion of distributive actions of additive groups.

Multiplicative monoids #

@[implicit_reducible]
noncomputable instance MonoidAlgebra.distribMulAction {R : Type u_1} {S : Type u_2} {M : Type u_3} [Monoid S] [Semiring R] [DistribMulAction S R] :
Equations
@[implicit_reducible]
noncomputable instance AddMonoidAlgebra.distribMulAction {R : Type u_1} {S : Type u_2} {M : Type u_3} [Monoid S] [Semiring R] [DistribMulAction S R] :
Equations
@[simp]
theorem MonoidAlgebra.mapDomain_smul {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [Monoid S] [Semiring R] [DistribMulAction S R] (f : MN) (s : S) (x : MonoidAlgebra R M) :
mapDomain f (s x) = s mapDomain f x
@[simp]
theorem AddMonoidAlgebra.mapDomain_vadd {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [Monoid S] [Semiring R] [DistribMulAction S R] (f : MN) (s : S) (x : AddMonoidAlgebra R M) :
mapDomain f (s x) = s mapDomain f x
@[implicit_reducible]
noncomputable instance MonoidAlgebra.instModule {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] :
Equations
@[implicit_reducible]
noncomputable instance AddMonoidAlgebra.instModule {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] :
Equations
noncomputable def MonoidAlgebra.coeffLinearEquiv (R : Type u_1) {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] :

MonoidAlgebra.coeff as a linear equiv.

Equations
Instances For
    @[simp]
    theorem AddMonoidAlgebra.coeffLinearEquiv_symm_apply (R : Type u_1) {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (a✝ : M →₀ S) :
    @[simp]
    theorem MonoidAlgebra.coeffLinearEquiv_apply (R : Type u_1) {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (a✝ : MonoidAlgebra S M) :
    (coeffLinearEquiv R) a✝ = a✝.coeff
    @[simp]
    theorem AddMonoidAlgebra.coeffLinearEquiv_apply (R : Type u_1) {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (a✝ : AddMonoidAlgebra S M) :
    (coeffLinearEquiv R) a✝ = a✝.coeff
    @[simp]
    theorem MonoidAlgebra.coeffLinearEquiv_symm_apply (R : Type u_1) {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (a✝ : M →₀ S) :
    noncomputable def MonoidAlgebra.mapDomainLinearMap (R : Type u_1) (S : Type u_2) {M : Type u_3} {N : Type u_4} [Semiring R] [Semiring S] [Module R S] (f : MN) :

    MonoidAlgebra.mapDomain as a linear map.

    Equations
    Instances For
      @[simp]
      theorem MonoidAlgebra.coeff_mapDomainLinearMap {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [Semiring S] [Module R S] (f : MN) (x : MonoidAlgebra S M) :
      @[simp]
      theorem AddMonoidAlgebra.coeff_mapDomainLinearMap {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [Semiring S] [Module R S] (f : MN) (x : AddMonoidAlgebra S M) :
      @[simp]
      theorem MonoidAlgebra.mapDomainLinearMap_single {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [Semiring S] [Module R S] (f : MN) (s : S) (m : M) :
      (mapDomainLinearMap R S f) (single m s) = single (f m) s
      @[simp]
      theorem AddMonoidAlgebra.mapDomainLinearMap_single {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [Semiring S] [Module R S] (f : MN) (s : S) (m : M) :
      (mapDomainLinearMap R S f) (single m s) = single (f m) s
      @[simp]
      theorem MonoidAlgebra.mapDomainLinearMap_comp {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} {O : Type u_5} [Semiring R] [Semiring S] [Module R S] (f : MN) (g : NO) :
      @[simp]
      theorem AddMonoidAlgebra.mapDomainLinearMap_comp {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} {O : Type u_5} [Semiring R] [Semiring S] [Module R S] (f : MN) (g : NO) :
      @[simp]
      theorem MonoidAlgebra.coeff_mapDomainLinearEquiv {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [Semiring S] [Module R S] (e : M N) (x : MonoidAlgebra S M) :
      @[simp]
      theorem AddMonoidAlgebra.coeff_mapDomainLinearEquiv {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [Semiring S] [Module R S] (e : M N) (x : AddMonoidAlgebra S M) :
      @[simp]
      theorem MonoidAlgebra.mapDomainLinearEquiv_single {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [Semiring S] [Module R S] (e : M N) (s : S) (m : M) :
      (mapDomainLinearEquiv R S e) (single m s) = single (e m) s
      @[simp]
      theorem AddMonoidAlgebra.mapDomainLinearEquiv_single {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [Semiring S] [Module R S] (e : M N) (s : S) (m : M) :
      (mapDomainLinearEquiv R S e) (single m s) = single (e m) s
      @[simp]
      theorem MonoidAlgebra.symm_mapDomainLinearEquiv {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [Semiring S] [Module R S] (e : M N) :
      @[simp]
      theorem AddMonoidAlgebra.symm_mapDomainLinearEquiv {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [Semiring S] [Module R S] (e : M N) :
      @[simp]
      theorem MonoidAlgebra.mapDomainLinearEquiv_trans {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} {O : Type u_5} [Semiring R] [Semiring S] [Module R S] (e₁ : M N) (e₂ : N O) :
      @[simp]
      theorem AddMonoidAlgebra.mapDomainLinearEquiv_trans {R : Type u_1} {S : Type u_2} {M : Type u_3} {N : Type u_4} {O : Type u_5} [Semiring R] [Semiring S] [Module R S] (e₁ : M N) (e₂ : N O) :
      noncomputable def MonoidAlgebra.uniqueLinearEquiv (R : Type u_1) {S : Type u_2} (M : Type u_3) [Semiring R] [Semiring S] [Module R S] [One M] [Subsingleton M] :

      The trivial monoid algebra is the base ring.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        noncomputable def AddMonoidAlgebra.uniqueLinearEquiv (R : Type u_1) {S : Type u_2} (M : Type u_3) [Semiring R] [Semiring S] [Module R S] [Zero M] [Subsingleton M] :

        The trivial monoid algebra is the base ring.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem MonoidAlgebra.uniqueLinearEquiv_apply (R : Type u_1) {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] [One M] [Subsingleton M] (x : MonoidAlgebra S M) :
          @[simp]
          theorem AddMonoidAlgebra.uniqueLinearEquiv_apply (R : Type u_1) {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] [Zero M] [Subsingleton M] (x : AddMonoidAlgebra S M) :
          @[simp]
          theorem MonoidAlgebra.uniqueLinearEquiv_symm_apply (R : Type u_1) {S : Type u_2} (M : Type u_3) [Semiring R] [Semiring S] [Module R S] [One M] [Subsingleton M] (s : S) :
          @[simp]
          theorem AddMonoidAlgebra.uniqueLinearEquiv_symm_apply (R : Type u_1) {S : Type u_2} (M : Type u_3) [Semiring R] [Semiring S] [Module R S] [Zero M] [Subsingleton M] (s : S) :
          noncomputable def MonoidAlgebra.supported (R : Type u_1) (S : Type u_2) {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (s : Set M) :

          The R-submodule of all elements of S[M] supported on a subset s of M.

          Equations
          Instances For
            noncomputable def AddMonoidAlgebra.supported (R : Type u_1) (S : Type u_2) {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (s : Set M) :

            The R-submodule of all elements of S[M] supported on a subset s of M.

            Equations
            Instances For
              theorem MonoidAlgebra.mem_supported {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] {s : Set M} {x : MonoidAlgebra S M} :
              x supported R S s x.coeff.supports
              theorem AddMonoidAlgebra.mem_supported {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] {s : Set M} {x : AddMonoidAlgebra S M} :
              x supported R S s x.coeff.supports
              theorem MonoidAlgebra.mem_supported' {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] {s : Set M} {x : MonoidAlgebra S M} :
              x supported R S s ms, x.coeff m = 0
              theorem AddMonoidAlgebra.mem_supported' {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] {s : Set M} {x : AddMonoidAlgebra S M} :
              x supported R S s ms, x.coeff m = 0
              theorem MonoidAlgebra.supported_eq_map (R : Type u_1) (S : Type u_2) {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (s : Set M) :
              theorem AddMonoidAlgebra.supported_eq_map (R : Type u_1) (S : Type u_2) {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (s : Set M) :
              theorem MonoidAlgebra.supported_eq_span_single (R : Type u_1) {M : Type u_3} [Semiring R] (s : Set M) :
              supported R R s = Submodule.span R ((fun (m : M) => single m 1) '' s)
              theorem AddMonoidAlgebra.supported_eq_span_single (R : Type u_1) {M : Type u_3} [Semiring R] (s : Set M) :
              supported R R s = Submodule.span R ((fun (m : M) => single m 1) '' s)
              theorem MonoidAlgebra.supported_mono {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] {s t : Set M} (hst : st) :
              supported R S s supported R S t
              theorem AddMonoidAlgebra.supported_mono {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] {s t : Set M} (hst : st) :
              supported R S s supported R S t
              noncomputable def MonoidAlgebra.supportedEquivFinsupp {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (s : Set M) :
              (supported R S s) ≃ₗ[R] s →₀ S

              Interpret Finsupp.restrictSupportEquiv as a linear equivalence between supported M R s and s →₀ M.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                noncomputable def AddMonoidAlgebra.supportedEquivFinsupp {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (s : Set M) :
                (supported R S s) ≃ₗ[R] s →₀ S

                Interpret Finsupp.restrictSupportEquiv as a linear equivalence between supported M R s and s →₀ M.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem MonoidAlgebra.supportedEquivFinsupp_apply_support_val {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (s : Set M) (x : (supported R S s)) :
                  ((supportedEquivFinsupp s) x).support.val = Multiset.map (fun (x_1 : ({x(↑x).coeff.support | x s})) => x_1, ) (Multiset.filter (fun (x : M) => x s) (↑x).coeff.support.val).attach
                  @[simp]
                  theorem AddMonoidAlgebra.supportedEquivFinsupp_apply_apply {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (s : Set M) (x : (supported R S s)) (a✝ : { x : M // x s }) :
                  ((supportedEquivFinsupp s) x) a✝ = (↑x).coeff a✝
                  @[simp]
                  theorem MonoidAlgebra.supportedEquivFinsupp_apply_apply {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (s : Set M) (x : (supported R S s)) (a✝ : { x : M // x s }) :
                  ((supportedEquivFinsupp s) x) a✝ = (↑x).coeff a✝
                  @[simp]
                  theorem MonoidAlgebra.coeff_supportedEquivFinsupp_symm_apply_coe_apply {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (s : Set M) (a✝ : s →₀ S) (a : M) :
                  (↑((supportedEquivFinsupp s).symm a✝)).coeff a = if h : a s then a✝ a, h else 0
                  @[simp]
                  theorem AddMonoidAlgebra.coeff_supportedEquivFinsupp_symm_apply_coe_apply {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (s : Set M) (a✝ : s →₀ S) (a : M) :
                  (↑((supportedEquivFinsupp s).symm a✝)).coeff a = if h : a s then a✝ a, h else 0
                  @[simp]
                  theorem AddMonoidAlgebra.supportedEquivFinsupp_apply_support_val {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] (s : Set M) (x : (supported R S s)) :
                  ((supportedEquivFinsupp s) x).support.val = Multiset.map (fun (x_1 : ({x(↑x).coeff.support | x s})) => x_1, ) (Multiset.filter (fun (x : M) => x s) (↑x).coeff.support.val).attach
                  instance MonoidAlgebra.faithfulSMul {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring S] [SMulZeroClass R S] [FaithfulSMul R S] [Nonempty M] :
                  noncomputable def MonoidAlgebra.basis (R : Type u_7) (k : Type u_8) [Semiring k] :

                  The standard basis for a monoid algebra.

                  Equations
                  Instances For
                    noncomputable def AddMonoidAlgebra.basis (R : Type u_7) (k : Type u_8) [Semiring k] :

                    The standard basis for an additive monoid algebra.

                    Equations
                    Instances For
                      @[simp]
                      theorem MonoidAlgebra.basis_apply {R : Type u_1} (k : Type u_7) [Semiring k] (r : R) :
                      (basis R k) r = single r 1
                      @[simp]
                      theorem AddMonoidAlgebra.basis_apply {R : Type u_1} (k : Type u_7) [Semiring k] (r : R) :
                      (basis R k) r = single r 1
                      @[implicit_reducible]
                      noncomputable def MonoidAlgebra.comapDistribMulActionSelf {S : Type u_2} {G : Type u_6} [Group G] [Semiring S] :

                      This is not an instance as it conflicts with MonoidAlgebra.distribMulAction when M = kˣ.

                      TODO: Change the type to DistribMulAction Gᵈᵐᵃ S[M] and then it can be an instance. TODO: Generalise to a group acting on another, instead of just the left multiplication action.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        theorem MonoidAlgebra.single_mem_span_single {R : Type u_1} {M : Type u_3} [Semiring R] [Nontrivial R] {m : M} {s : Set M} :
                        single m 1 Submodule.span R ((fun (x : M) => single x 1) '' s) m s
                        theorem AddMonoidAlgebra.single_mem_span_single {R : Type u_1} {M : Type u_3} [Semiring R] [Nontrivial R] {m : M} {s : Set M} :
                        single m 1 Submodule.span R ((fun (x : M) => single x 1) '' s) m s

                        Copies of ext lemmas and bundled singles from Finsupp #

                        noncomputable def MonoidAlgebra.singleDistribMulActionHom {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring S] [Monoid R] [DistribMulAction R S] (a : M) :

                        MonoidAlgebra.single as a DistribMulActionHom.

                        Equations
                        Instances For
                          noncomputable def AddMonoidAlgebra.singleDistribMulActionHom {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring S] [Monoid R] [DistribMulAction R S] (a : M) :

                          AddMonoidAlgebra.single as a DistribMulActionHom.

                          Equations
                          Instances For
                            theorem MonoidAlgebra.distribMulActionHom_ext'_iff {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring S] {N : Type u_7} [Monoid R] [AddMonoid N] [DistribMulAction R N] [DistribMulAction R S] {f g : MonoidAlgebra S M →+[R] N} :
                            noncomputable def MonoidAlgebra.lsingle {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring S] [Semiring R] [Module R S] (a : M) :

                            A copy of Finsupp.lsingle for MonoidAlgebra.

                            Equations
                            Instances For
                              noncomputable def AddMonoidAlgebra.lsingle {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring S] [Semiring R] [Module R S] (a : M) :

                              A copy of Finsupp.lsingle for AddMonoidAlgebra.

                              Equations
                              Instances For
                                @[simp]
                                theorem MonoidAlgebra.lsingle_apply {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring S] [Semiring R] [Module R S] (a : M) (b : S) :
                                (lsingle a) b = single a b
                                @[simp]
                                theorem AddMonoidAlgebra.lsingle_apply {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring S] [Semiring R] [Module R S] (a : M) (b : S) :
                                (lsingle a) b = single a b
                                theorem MonoidAlgebra.lhom_ext' {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring S] {N : Type u_7} [Semiring R] [AddCommMonoid N] [Module R N] [Module R S] f g : MonoidAlgebra S M →ₗ[R] N (H : ∀ (x : M), f ∘ₗ lsingle x = g ∘ₗ lsingle x) :
                                f = g

                                A copy of Finsupp.lhom_ext' for MonoidAlgebra.

                                theorem AddMonoidAlgebra.lhom_ext' {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring S] {N : Type u_7} [Semiring R] [AddCommMonoid N] [Module R N] [Module R S] f g : AddMonoidAlgebra S M →ₗ[R] N (H : ∀ (x : M), f ∘ₗ lsingle x = g ∘ₗ lsingle x) :
                                f = g
                                theorem AddMonoidAlgebra.lhom_ext'_iff {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring S] {N : Type u_7} [Semiring R] [AddCommMonoid N] [Module R N] [Module R S] {f g : AddMonoidAlgebra S M →ₗ[R] N} :
                                f = g ∀ (x : M), f ∘ₗ lsingle x = g ∘ₗ lsingle x
                                theorem MonoidAlgebra.lhom_ext'_iff {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring S] {N : Type u_7} [Semiring R] [AddCommMonoid N] [Module R N] [Module R S] {f g : MonoidAlgebra S M →ₗ[R] N} :
                                f = g ∀ (x : M), f ∘ₗ lsingle x = g ∘ₗ lsingle x
                                theorem MonoidAlgebra.smul_of {R : Type u_1} {M : Type u_3} [Semiring R] [MulOneClass M] (m : M) (r : R) :
                                r (of R M) m = single m r
                                theorem MonoidAlgebra.of_mem_span_of_iff {R : Type u_1} {M : Type u_3} [Semiring R] [MulOneClass M] {s : Set M} {m : M} [Nontrivial R] :
                                (of R M) m Submodule.span R ((of R M) '' s) m s

                                The image of an element m : M in R[M] belongs to the submodule generated by s : Set M if and only if m ∈ s.

                                theorem MonoidAlgebra.mem_closure_of_mem_span_closure {R : Type u_1} {M : Type u_3} [Semiring R] [MulOneClass M] {s : Set M} {m : M} [Nontrivial R] (h : (of R M) m Submodule.span R (Submonoid.closure ((of R M) '' s))) :

                                If the image of an element m : M in R[M] belongs to the submodule generated by the closure of some s : Set M then m ∈ closure s.

                                theorem MonoidAlgebra.liftNC_smul {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [MulOneClass M] (f : S →+* R) (g : M →* R) (c : S) (φ : MonoidAlgebra S M) :
                                (liftNC f g) (c φ) = f c * (liftNC f g) φ

                                Non-unital, non-associative algebra structure #

                                instance MonoidAlgebra.isScalarTower_self {R : Type u_1} (S : Type u_2) {M : Type u_3} [Semiring S] [DistribSMul R S] [Mul M] [IsScalarTower R S S] :
                                instance MonoidAlgebra.smulCommClass_self {R : Type u_1} (S : Type u_2) {M : Type u_3} [Semiring S] [DistribSMul R S] [Mul M] [SMulCommClass R S S] :

                                Note that if S is a CommSemiring then we have SMulCommClass S S S and so we can take R = S in the below. In other words, if the coefficients are commutative amongst themselves, they also commute with the algebra multiplication.

                                instance MonoidAlgebra.smulCommClass_symm_self {R : Type u_1} (S : Type u_2) {M : Type u_3} [Semiring S] [DistribSMul R S] [Mul M] [SMulCommClass S R S] :
                                def MonoidAlgebra.submoduleOfSMulMem {S : Type u_2} {M : Type u_3} [CommSemiring S] [Monoid M] {V : Type u_7} [AddCommMonoid V] [Module S V] [Module (MonoidAlgebra S M) V] [IsScalarTower S (MonoidAlgebra S M) V] (W : Submodule S V) (h : ∀ (g : M), vW, (of S M) g v W) :

                                A submodule over S which is stable under scalar multiplication by elements of M is a submodule over S[M]

                                Equations
                                Instances For

                                  Additive monoids #

                                  theorem AddMonoidAlgebra.of'_mem_span {R : Type u_1} {M : Type u_3} [Semiring R] [Nontrivial R] {m : M} {s : Set M} :
                                  of' R M m Submodule.span R (of' R M '' s) m s

                                  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 AddMonoidAlgebra.mem_closure_of_mem_span_closure {R : Type u_1} {M : Type u_3} [Semiring R] [AddMonoid M] [Nontrivial R] {m : M} {s : Set M} (h : of' R M m Submodule.span R (Submonoid.closure (of' R M '' s))) :

                                  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 AddMonoidAlgebra.liftNC_smul {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [AddZeroClass M] (f : S →+* R) (g : Multiplicative M →* R) (c : S) (φ : AddMonoidAlgebra S M) :
                                  (liftNC f g) (c φ) = f c * (liftNC f g) φ