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 #

@[instance_reducible]
noncomputable instance MonoidAlgebra.distribMulAction {R : Type u_1} {S : Type u_2} {M : Type u_3} [Monoid S] [Semiring R] [DistribMulAction S R] :
@[instance_reducible]
noncomputable instance AddMonoidAlgebra.distribMulAction {R : Type u_1} {S : Type u_2} {M : Type u_3} [Monoid S] [Semiring R] [DistribMulAction S R] :
@[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
@[instance_reducible]
noncomputable instance MonoidAlgebra.instModule {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] :
@[instance_reducible]
noncomputable instance AddMonoidAlgebra.instModule {R : Type u_1} {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [Module R S] :
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.

Instances For
    noncomputable def AddMonoidAlgebra.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.

    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.

      Instances For
        noncomputable def AddMonoidAlgebra.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) :

        AddMonoidAlgebra.mapDomain as a linear map.

        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) :
          noncomputable def MonoidAlgebra.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) :

          MonoidAlgebra.mapDomain as a linear equiv.

          Instances For
            noncomputable def AddMonoidAlgebra.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) :

            AddMonoidAlgebra.mapDomain as a linear equiv.

            Instances For
              @[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.

              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.

                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.

                  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.

                    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.

                      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.

                        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.

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

                            The standard basis for an additive monoid algebra.

                            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.

                              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.

                                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.

                                  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.

                                    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.

                                      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]

                                        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) φ