Documentation

Mathlib.Algebra.MonoidAlgebra.Basic

Algebra structure on monoid algebras #

Multiplicative monoids #

Non-unital, non-associative algebra structure #

theorem MonoidAlgebra.nonUnitalAlgHom_ext (R : Type u_1) {A : Type u_4} {M : Type u_7} [Semiring R] [Mul M] [NonUnitalNonAssocSemiring A] [DistribMulAction R A] {φ₁ φ₂ : MonoidAlgebra R M →ₙₐ[R] A} (h : ∀ (x : M), φ₁ (single x 1) = φ₂ (single x 1)) :
φ₁ = φ₂

A non-unital R-algebra homomorphism from R[M] is uniquely defined by its values on the monomials single a 1.

theorem AddMonoidAlgebra.nonUnitalAlgHom_ext (R : Type u_1) {A : Type u_4} {M : Type u_7} [Semiring R] [Add M] [NonUnitalNonAssocSemiring A] [DistribMulAction R A] {φ₁ φ₂ : AddMonoidAlgebra R M →ₙₐ[R] A} (h : ∀ (x : M), φ₁ (single x 1) = φ₂ (single x 1)) :
φ₁ = φ₂

A non-unital R-algebra homomorphism from R[M] is uniquely defined by its values on the monomials single a 1.

theorem MonoidAlgebra.nonUnitalAlgHom_ext' (R : Type u_1) {A : Type u_4} {M : Type u_7} [Semiring R] [Mul M] [NonUnitalNonAssocSemiring A] [DistribMulAction R A] {φ₁ φ₂ : MonoidAlgebra R M →ₙₐ[R] A} (h : φ₁.toMulHom.comp (ofMagma R M) = φ₂.toMulHom.comp (ofMagma R M)) :
φ₁ = φ₂

See note [partially-applied ext lemmas].

theorem MonoidAlgebra.nonUnitalAlgHom_ext'_iff {R : Type u_1} {A : Type u_4} {M : Type u_7} [Semiring R] [Mul M] [NonUnitalNonAssocSemiring A] [DistribMulAction R A] {φ₁ φ₂ : MonoidAlgebra R M →ₙₐ[R] A} :
φ₁ = φ₂ φ₁.toMulHom.comp (ofMagma R M) = φ₂.toMulHom.comp (ofMagma R M)
def MonoidAlgebra.liftMagma (R : Type u_1) {A : Type u_4} {M : Type u_7} [Semiring R] [Mul M] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] :

The functor M ↦ R[M], from the category of magmas to the category of non-unital, non-associative algebras over R is adjoint to the forgetful functor in the other direction.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem MonoidAlgebra.liftMagma_apply_apply (R : Type u_1) {A : Type u_4} {M : Type u_7} [Semiring R] [Mul M] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] (f : M →ₙ* A) (a : MonoidAlgebra R M) :
    ((liftMagma R) f) a = Finsupp.sum a fun (m : M) (t : R) => t f m
    @[simp]
    theorem MonoidAlgebra.liftMagma_symm_apply (R : Type u_1) {A : Type u_4} {M : Type u_7} [Semiring R] [Mul M] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] (F : MonoidAlgebra R M →ₙₐ[R] A) :

    Algebra structure #

    instance MonoidAlgebra.algebra {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] :

    The instance Algebra R A[M] whenever we have Algebra R A.

    In particular this provides the instance Algebra R R[M].

    Equations
    instance AddMonoidAlgebra.algebra {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] :

    The instance Algebra R R[M] whenever we have Algebra R R.

    In particular this provides the instance Algebra R R[M].

    Equations
    def MonoidAlgebra.singleOneAlgHom {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] :

    MonoidAlgebra.single 1 as an AlgHom

    Equations
    Instances For
      @[simp]
      theorem MonoidAlgebra.singleOneAlgHom_apply {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] (a✝ : A) :
      @[simp]
      theorem AddMonoidAlgebra.singleZeroAlgHom_apply {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] (a✝ : A) :
      @[simp]
      theorem MonoidAlgebra.coe_algebraMap {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] :
      (algebraMap R (MonoidAlgebra A M)) = single 1 (algebraMap R A)
      @[simp]
      theorem AddMonoidAlgebra.coe_algebraMap {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] :
      theorem MonoidAlgebra.single_eq_algebraMap_mul_of {R : Type u_1} {M : Type u_7} [CommSemiring R] [Monoid M] (m : M) (r : R) :
      single m r = (algebraMap R (MonoidAlgebra R M)) r * (of R M) m
      theorem MonoidAlgebra.single_algebraMap_eq_algebraMap_mul_of {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] (m : M) (r : R) :
      single m ((algebraMap R A) r) = (algebraMap R (MonoidAlgebra A M)) r * (of A M) m
      def MonoidAlgebra.liftNCAlgHom {R : Type u_1} {A : Type u_4} {B : Type u_5} {M : Type u_7} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [Monoid M] (f : A →ₐ[R] B) (g : M →* B) (h_comm : ∀ (x : A) (y : M), Commute (f x) (g y)) :

      liftNCRingHom as an AlgHom, for when f is an AlgHom

      Equations
      Instances For
        @[simp]
        theorem MonoidAlgebra.coe_liftNCAlgHom {R : Type u_1} {A : Type u_4} {B : Type u_5} {M : Type u_7} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [Monoid M] (f : A →ₐ[R] B) (g : M →* B) (h_comm : ∀ (x : A) (y : M), Commute (f x) (g y)) :
        (liftNCAlgHom f g h_comm) = (liftNC f g)
        theorem MonoidAlgebra.algHom_ext {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] φ₁ φ₂ : MonoidAlgebra R M →ₐ[R] A (h : ∀ (x : M), φ₁ (single x 1) = φ₂ (single x 1)) :
        φ₁ = φ₂

        A R-algebra homomorphism from R[M] is uniquely defined by its values on the functions single a 1.

        theorem AddMonoidAlgebra.algHom_ext {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] φ₁ φ₂ : AddMonoidAlgebra R M →ₐ[R] A (h : ∀ (x : M), φ₁ (single x 1) = φ₂ (single x 1)) :
        φ₁ = φ₂

        A R-algebra homomorphism from R[M] is uniquely defined by its values on the functions single a 1.

        theorem MonoidAlgebra.algHom_ext' {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] φ₁ φ₂ : MonoidAlgebra R M →ₐ[R] A (h : (↑φ₁).comp (of R M) = (↑φ₂).comp (of R M)) :
        φ₁ = φ₂

        See note [partially-applied ext lemmas].

        theorem MonoidAlgebra.algHom_ext'_iff {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] {φ₁ φ₂ : MonoidAlgebra R M →ₐ[R] A} :
        φ₁ = φ₂ (↑φ₁).comp (of R M) = (↑φ₂).comp (of R M)
        def MonoidAlgebra.lift (R : Type u_1) (A : Type u_4) (M : Type u_7) [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] :

        Any monoid homomorphism M →* A can be lifted to an algebra homomorphism R[M] →ₐ[R] A.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem MonoidAlgebra.lift_apply' {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] (F : M →* A) (f : MonoidAlgebra R M) :
          ((lift R A M) F) f = Finsupp.sum f fun (a : M) (b : R) => (algebraMap R A) b * F a
          theorem MonoidAlgebra.lift_apply {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] (F : M →* A) (f : MonoidAlgebra R M) :
          ((lift R A M) F) f = Finsupp.sum f fun (a : M) (b : R) => b F a
          theorem MonoidAlgebra.lift_def {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] (F : M →* A) :
          ((lift R A M) F) = (liftNC (algebraMap R A) F)
          @[simp]
          theorem MonoidAlgebra.lift_symm_apply {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] (F : MonoidAlgebra R M →ₐ[R] A) (m : M) :
          ((lift R A M).symm F) m = F (single m 1)
          @[simp]
          theorem MonoidAlgebra.lift_single {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] (F : M →* A) (a : M) (b : R) :
          ((lift R A M) F) (single a b) = b F a
          theorem MonoidAlgebra.lift_of {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] (F : M →* A) (m : M) :
          ((lift R A M) F) ((of R M) m) = F m
          theorem MonoidAlgebra.lift_unique' {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] (F : MonoidAlgebra R M →ₐ[R] A) :
          F = (lift R A M) ((↑F).comp (of R M))
          theorem MonoidAlgebra.lift_unique {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] (F : MonoidAlgebra R M →ₐ[R] A) (f : MonoidAlgebra R M) :
          F f = Finsupp.sum f fun (a : M) (b : R) => b F (single a 1)

          Decomposition of a R-algebra homomorphism from R[M] by its values on F (single a 1).

          def MonoidAlgebra.mapDomainNonUnitalAlgHom {M : Type u_7} {N : Type u_8} (R : Type u_10) (A : Type u_11) [CommSemiring R] [Semiring A] [Algebra R A] [Mul M] [Mul N] (f : M →ₙ* N) :

          If f : M → N is a homomorphism between two magmas, then MonoidAlgebra.mapDomain f is a non-unital algebra homomorphism between their magma algebras.

          Equations
          Instances For
            def AddMonoidAlgebra.mapDomainNonUnitalAlgHom {M : Type u_7} {N : Type u_8} (R : Type u_10) (A : Type u_11) [CommSemiring R] [Semiring A] [Algebra R A] [Add M] [Add N] (f : M →ₙ+ N) :

            If f : M → N is a homomorphism between two additive magmas, then AddMonoidAlgebra.mapDomain f is a non-unital algebra homomorphism between their additive magma algebras.

            Equations
            Instances For
              @[simp]
              theorem AddMonoidAlgebra.mapDomainNonUnitalAlgHom_apply {M : Type u_7} {N : Type u_8} (R : Type u_10) (A : Type u_11) [CommSemiring R] [Semiring A] [Algebra R A] [Add M] [Add N] (f : M →ₙ+ N) (a✝ : AddMonoidAlgebra A M) :
              @[simp]
              theorem MonoidAlgebra.mapDomainNonUnitalAlgHom_apply {M : Type u_7} {N : Type u_8} (R : Type u_10) (A : Type u_11) [CommSemiring R] [Semiring A] [Algebra R A] [Mul M] [Mul N] (f : M →ₙ* N) (a✝ : MonoidAlgebra A M) :
              theorem MonoidAlgebra.mapDomain_algebraMap {R : Type u_1} (A : Type u_4) {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] [Monoid N] {F : Type u_10} [FunLike F M N] [MonoidHomClass F M N] (f : F) (r : R) :
              mapDomain (⇑f) ((algebraMap R (MonoidAlgebra A M)) r) = (algebraMap R (MonoidAlgebra A N)) r
              theorem AddMonoidAlgebra.mapDomain_algebraMap {R : Type u_1} (A : Type u_4) {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] [AddMonoid N] {F : Type u_10} [FunLike F M N] [AddMonoidHomClass F M N] (f : F) (r : R) :
              def MonoidAlgebra.mapDomainAlgHom (R : Type u_1) (A : Type u_4) {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] [Monoid N] (f : M →* N) :

              If f : M → N is a monoid homomorphism, then MonoidAlgebra.mapDomain f is an algebra homomorphism between their monoid algebras.

              Equations
              Instances For
                def AddMonoidAlgebra.mapDomainAlgHom (R : Type u_1) (A : Type u_4) {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] [AddMonoid N] (f : M →+ N) :

                If f : M → N is an additive monoid homomorphism, then MonoidAlgebra.mapDomain f is an algebra homomorphism between their additive monoid algebras.

                Equations
                Instances For
                  @[simp]
                  theorem MonoidAlgebra.mapDomainAlgHom_apply (R : Type u_1) (A : Type u_4) {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] [Monoid N] (f : M →* N) (x : MonoidAlgebra A M) :
                  (mapDomainAlgHom R A f) x = mapDomain (⇑f) x
                  @[simp]
                  theorem AddMonoidAlgebra.mapDomainAlgHom_apply (R : Type u_1) (A : Type u_4) {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] [AddMonoid N] (f : M →+ N) (x : AddMonoidAlgebra A M) :
                  (mapDomainAlgHom R A f) x = mapDomain (⇑f) x
                  @[simp]
                  theorem MonoidAlgebra.mapDomainAlgHom_id {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] :
                  @[simp]
                  theorem MonoidAlgebra.mapDomainAlgHom_comp {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} {O : Type u_9} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] [Monoid N] [Monoid O] (f : M →* N) (g : N →* O) :
                  @[simp]
                  theorem AddMonoidAlgebra.mapDomainAlgHom_comp {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} {O : Type u_9} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] [AddMonoid N] [AddMonoid O] (f : M →+ N) (g : N →+ O) :
                  def MonoidAlgebra.domCongr (R : Type u_1) (A : Type u_4) {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] [Monoid N] (e : M ≃* N) :

                  If e : M ≃* N is a multiplicative equivalence between two monoids, then MonoidAlgebra.domCongr e is an algebra equivalence between their monoid algebras.

                  Equations
                  Instances For
                    def AddMonoidAlgebra.domCongr (R : Type u_1) (A : Type u_4) {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] [AddMonoid N] (e : M ≃+ N) :

                    If e : M ≃+ N is an additive equivalence between two additive monoids, then AddMonoidAlgebra.domCongr e is an algebra equivalence between their additive monoid algebras.

                    Equations
                    Instances For
                      @[simp]
                      theorem MonoidAlgebra.domCongr_apply {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] [Monoid N] (e : M ≃* N) (x : MonoidAlgebra A M) (n : N) :
                      ((domCongr R A e) x) n = x (e.symm n)
                      @[simp]
                      theorem AddMonoidAlgebra.domCongr_apply {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] [AddMonoid N] (e : M ≃+ N) (x : AddMonoidAlgebra A M) (n : N) :
                      ((domCongr R A e) x) n = x (e.symm n)
                      theorem MonoidAlgebra.domCongr_toAlgHom {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] [Monoid N] (e : M ≃* N) :
                      (domCongr R A e) = mapDomainAlgHom R A e
                      theorem AddMonoidAlgebra.domCongr_toAlgHom {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] [AddMonoid N] (e : M ≃+ N) :
                      (domCongr R A e) = mapDomainAlgHom R A e
                      @[simp]
                      theorem MonoidAlgebra.domCongr_support {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] [Monoid N] (e : M ≃* N) (f : MonoidAlgebra A M) :
                      @[simp]
                      theorem AddMonoidAlgebra.domCongr_support {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] [AddMonoid N] (e : M ≃+ N) (f : AddMonoidAlgebra A M) :
                      @[simp]
                      theorem MonoidAlgebra.domCongr_single {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] [Monoid N] (e : M ≃* N) (m : M) (a : A) :
                      (domCongr R A e) (single m a) = single (e m) a
                      @[simp]
                      theorem AddMonoidAlgebra.domCongr_single {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] [AddMonoid N] (e : M ≃+ N) (m : M) (a : A) :
                      (domCongr R A e) (single m a) = single (e m) a
                      @[simp]
                      theorem MonoidAlgebra.domCongr_comp_lsingle {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] [Monoid N] (e : M ≃* N) (m : M) :
                      @[simp]
                      theorem AddMonoidAlgebra.domCongr_comp_lsingle {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] [AddMonoid N] (e : M ≃+ N) (m : M) :
                      @[simp]
                      theorem MonoidAlgebra.domCongr_refl {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] :
                      @[simp]
                      theorem AddMonoidAlgebra.domCongr_refl {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] :
                      @[simp]
                      theorem MonoidAlgebra.domCongr_symm {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] [Monoid N] (e : M ≃* N) :
                      (domCongr R A e).symm = domCongr R A e.symm
                      @[simp]
                      theorem AddMonoidAlgebra.domCongr_symm {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [AddMonoid M] [AddMonoid N] (e : M ≃+ N) :
                      (domCongr R A e).symm = domCongr R A e.symm
                      @[simp]
                      theorem MonoidAlgebra.mapDomainRingHom_comp_algebraMap {R : Type u_1} {A : Type u_4} {M : Type u_7} {N : Type u_8} [CommSemiring R] [Semiring A] [Algebra R A] [Monoid M] [Monoid N] (f : M →* N) :
                      @[simp]
                      @[simp]
                      noncomputable def MonoidAlgebra.mapRangeAlgHom {R : Type u_1} {A : Type u_4} {B : Type u_5} (M : Type u_7) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [Monoid M] (f : A →ₐ[R] B) :

                      The algebra homomorphism of monoid algebras induced by a homomorphism of the base algebras.

                      Equations
                      Instances For
                        noncomputable def AddMonoidAlgebra.mapRangeAlgHom {R : Type u_1} {A : Type u_4} {B : Type u_5} (M : Type u_7) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [AddMonoid M] (f : A →ₐ[R] B) :

                        The algebra homomorphism of additive monoid algebras induced by a homomorphism of the base algebras.

                        Equations
                        Instances For
                          @[simp]
                          theorem MonoidAlgebra.toRingHom_mapRangeAlgHom {R : Type u_1} {A : Type u_4} {B : Type u_5} (M : Type u_7) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [Monoid M] (f : A →ₐ[R] B) :
                          @[simp]
                          theorem AddMonoidAlgebra.toRingHom_mapRangeAlgHom {R : Type u_1} {A : Type u_4} {B : Type u_5} (M : Type u_7) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [AddMonoid M] (f : A →ₐ[R] B) :
                          @[simp]
                          theorem MonoidAlgebra.mapRangeAlgHom_apply {R : Type u_1} {A : Type u_4} {B : Type u_5} {M : Type u_7} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [Monoid M] (f : A →ₐ[R] B) (x : MonoidAlgebra A M) (m : M) :
                          ((mapRangeAlgHom M f) x) m = f (x m)
                          @[simp]
                          theorem AddMonoidAlgebra.mapRangeAlgHom_apply {R : Type u_1} {A : Type u_4} {B : Type u_5} {M : Type u_7} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [AddMonoid M] (f : A →ₐ[R] B) (x : AddMonoidAlgebra A M) (m : M) :
                          ((mapRangeAlgHom M f) x) m = f (x m)
                          @[simp]
                          theorem MonoidAlgebra.mapRangeAlgHom_single {R : Type u_1} {A : Type u_4} {B : Type u_5} {M : Type u_7} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [Monoid M] (f : A →ₐ[R] B) (m : M) (a : A) :
                          (mapRangeAlgHom M f) (single m a) = single m (f a)
                          @[simp]
                          theorem AddMonoidAlgebra.mapRangeAlgHom_single {R : Type u_1} {A : Type u_4} {B : Type u_5} {M : Type u_7} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [AddMonoid M] (f : A →ₐ[R] B) (m : M) (a : A) :
                          (mapRangeAlgHom M f) (single m a) = single m (f a)
                          noncomputable def MonoidAlgebra.mapRangeAlgEquiv (R : Type u_1) {A : Type u_4} {B : Type u_5} (M : Type u_7) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [Monoid M] (e : A ≃ₐ[R] B) :

                          The algebra isomorphism of monoid algebras induced by an isomorphism of the base algebras.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            noncomputable def AddMonoidAlgebra.mapRangeAlgEquiv (R : Type u_1) {A : Type u_4} {B : Type u_5} (M : Type u_7) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [AddMonoid M] (e : A ≃ₐ[R] B) :

                            The algebra isomorphism of additive monoid algebras induced by an isomorphism of the base algebras.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[simp]
                              theorem AddMonoidAlgebra.mapRangeAlgEquiv_apply (R : Type u_1) {A : Type u_4} {B : Type u_5} (M : Type u_7) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [AddMonoid M] (e : A ≃ₐ[R] B) (a✝ : AddMonoidAlgebra A M) :
                              (mapRangeAlgEquiv R M e) a✝ = (↑(mapRangeAlgHom M e).toRingHom).toFun a✝
                              @[simp]
                              theorem MonoidAlgebra.mapRangeAlgEquiv_apply (R : Type u_1) {A : Type u_4} {B : Type u_5} (M : Type u_7) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [Monoid M] (e : A ≃ₐ[R] B) (a✝ : MonoidAlgebra A M) :
                              (mapRangeAlgEquiv R M e) a✝ = (↑(mapRangeAlgHom M e).toRingHom).toFun a✝
                              @[simp]
                              theorem MonoidAlgebra.symm_mapRangeAlgEquiv {R : Type u_1} {A : Type u_4} {B : Type u_5} {M : Type u_7} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [Monoid M] (e : A ≃ₐ[R] B) :
                              @[simp]
                              theorem AddMonoidAlgebra.symm_mapRangeAlgEquiv {R : Type u_1} {A : Type u_4} {B : Type u_5} {M : Type u_7} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [AddMonoid M] (e : A ≃ₐ[R] B) :
                              def MonoidAlgebra.GroupSMul.linearMap (R : Type u_1) {M : Type u_7} [Monoid M] [CommSemiring R] (V : Type u_10) [AddCommMonoid V] [Module R V] [Module (MonoidAlgebra R M) V] [IsScalarTower R (MonoidAlgebra R M) V] (g : M) :

                              When V is a R[M]-module, multiplication by a group element g is a R-linear map.

                              Equations
                              Instances For
                                @[simp]
                                theorem MonoidAlgebra.GroupSMul.linearMap_apply (R : Type u_1) {M : Type u_7} [Monoid M] [CommSemiring R] (V : Type u_10) [AddCommMonoid V] [Module R V] [Module (MonoidAlgebra R M) V] [IsScalarTower R (MonoidAlgebra R M) V] (g : M) (v : V) :
                                (linearMap R V g) v = single g 1 v
                                def MonoidAlgebra.equivariantOfLinearOfComm {R : Type u_1} {M : Type u_7} [Monoid M] [CommSemiring R] {V : Type u_10} {W : Type u_11} [AddCommMonoid V] [Module R V] [Module (MonoidAlgebra R M) V] [IsScalarTower R (MonoidAlgebra R M) V] [AddCommMonoid W] [Module R W] [Module (MonoidAlgebra R M) W] [IsScalarTower R (MonoidAlgebra R M) W] (f : V →ₗ[R] W) (h : ∀ (g : M) (v : V), f (single g 1 v) = single g 1 f v) :

                                Build a R[M]-linear map from a R-linear map and evidence that it is M-equivariant.

                                Equations
                                Instances For
                                  @[simp]
                                  theorem MonoidAlgebra.equivariantOfLinearOfComm_apply {R : Type u_1} {M : Type u_7} [Monoid M] [CommSemiring R] {V : Type u_10} {W : Type u_11} [AddCommMonoid V] [Module R V] [Module (MonoidAlgebra R M) V] [IsScalarTower R (MonoidAlgebra R M) V] [AddCommMonoid W] [Module R W] [Module (MonoidAlgebra R M) W] [IsScalarTower R (MonoidAlgebra R M) W] (f : V →ₗ[R] W) (h : ∀ (g : M) (v : V), f (single g 1 v) = single g 1 f v) (v : V) :
                                  @[reducible, inline]
                                  noncomputable abbrev MonoidAlgebra.algebraMonoidAlgebra {R : Type u_1} {S : Type u_2} {M : Type u_7} [CommMonoid M] [CommSemiring R] [CommSemiring S] [Algebra R S] :

                                  If S is an R-algebra, then S[M] is a R[M] algebra.

                                  Warning: This produces a diamond for Algebra R[M] S[M][M] and another one for Algebra R[M] R[M]. That's why it is not a global instance.

                                  Equations
                                  Instances For
                                    @[reducible, inline]
                                    noncomputable abbrev AddMonoidAlgebra.algebraAddMonoidAlgebra {R : Type u_1} {S : Type u_2} {M : Type u_7} [AddCommMonoid M] [CommSemiring R] [CommSemiring S] [Algebra R S] :

                                    If S is an R-algebra, then S[M] is an R[M]-algebra.

                                    Warning: This produces a diamond for Algebra R[M] S[M][M] and another one for Algebra R[M] R[M]. That's why it is not a global instance.

                                    Equations
                                    Instances For

                                      Non-unital, non-associative algebra structure #

                                      theorem AddMonoidAlgebra.nonUnitalAlgHom_ext' (R : Type u_1) {A : Type u_4} {M : Type u_7} [Semiring R] [Add M] [NonUnitalNonAssocSemiring A] [DistribMulAction R A] {φ₁ φ₂ : AddMonoidAlgebra R M →ₙₐ[R] A} (h : φ₁.toMulHom.comp (ofMagma R M) = φ₂.toMulHom.comp (ofMagma R M)) :
                                      φ₁ = φ₂

                                      See note [partially-applied ext lemmas].

                                      theorem AddMonoidAlgebra.nonUnitalAlgHom_ext'_iff {R : Type u_1} {A : Type u_4} {M : Type u_7} [Semiring R] [Add M] [NonUnitalNonAssocSemiring A] [DistribMulAction R A] {φ₁ φ₂ : AddMonoidAlgebra R M →ₙₐ[R] A} :
                                      φ₁ = φ₂ φ₁.toMulHom.comp (ofMagma R M) = φ₂.toMulHom.comp (ofMagma R M)

                                      The functor M ↦ R[M], from the category of magmas to the category of non-unital, non-associative algebras over R is adjoint to the forgetful functor in the other direction.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        @[simp]
                                        @[simp]
                                        theorem AddMonoidAlgebra.liftMagma_apply_apply (R : Type u_1) {A : Type u_4} {M : Type u_7} [Semiring R] [Add M] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] [SMulCommClass R A A] (f : Multiplicative M →ₙ* A) (a : AddMonoidAlgebra R M) :
                                        ((liftMagma R) f) a = Finsupp.sum a fun (m : M) (t : R) => t f (Multiplicative.ofAdd m)

                                        Algebra structure #

                                        def AddMonoidAlgebra.liftNCAlgHom {R : Type u_1} {A : Type u_4} {B : Type u_5} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (f : A →ₐ[R] B) (g : Multiplicative M →* B) (h_comm : ∀ (x : A) (y : Multiplicative M), Commute (f x) (g y)) :

                                        liftNCRingHom as an AlgHom, for when f is an AlgHom

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem AddMonoidAlgebra.coe_liftNCAlgHom {R : Type u_1} {A : Type u_4} {B : Type u_5} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (f : A →ₐ[R] B) (g : Multiplicative M →* B) (h_comm : ∀ (x : A) (y : Multiplicative M), Commute (f x) (g y)) :
                                          (liftNCAlgHom f g h_comm) = (liftNC f g)
                                          theorem AddMonoidAlgebra.algHom_ext' {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] φ₁ φ₂ : AddMonoidAlgebra R M →ₐ[R] A (h : (↑φ₁).comp (of R M) = (↑φ₂).comp (of R M)) :
                                          φ₁ = φ₂

                                          See note [partially-applied ext lemmas].

                                          theorem AddMonoidAlgebra.algHom_ext'_iff {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] {φ₁ φ₂ : AddMonoidAlgebra R M →ₐ[R] A} :
                                          φ₁ = φ₂ (↑φ₁).comp (of R M) = (↑φ₂).comp (of R M)
                                          def AddMonoidAlgebra.lift (R : Type u_1) (A : Type u_4) (M : Type u_7) [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] :

                                          Any monoid homomorphism M →* A can be lifted to an algebra homomorphism R[M] →ₐ[R] A.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            theorem AddMonoidAlgebra.lift_apply' {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] (F : Multiplicative M →* A) (f : AddMonoidAlgebra R M) :
                                            ((lift R A M) F) f = Finsupp.sum f fun (a : M) (b : R) => (algebraMap R A) b * F (Multiplicative.ofAdd a)
                                            theorem AddMonoidAlgebra.lift_apply {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] (F : Multiplicative M →* A) (f : AddMonoidAlgebra R M) :
                                            ((lift R A M) F) f = Finsupp.sum f fun (a : M) (b : R) => b F (Multiplicative.ofAdd a)
                                            theorem AddMonoidAlgebra.lift_def {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] (F : Multiplicative M →* A) :
                                            ((lift R A M) F) = (liftNC (algebraMap R A) F)
                                            @[simp]
                                            theorem AddMonoidAlgebra.lift_symm_apply {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] (F : AddMonoidAlgebra R M →ₐ[R] A) (x : Multiplicative M) :
                                            ((lift R A M).symm F) x = F (single (Multiplicative.toAdd x) 1)
                                            theorem AddMonoidAlgebra.lift_of {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] (F : Multiplicative M →* A) (x : Multiplicative M) :
                                            ((lift R A M) F) ((of R M) x) = F x
                                            @[simp]
                                            theorem AddMonoidAlgebra.lift_single {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] (F : Multiplicative M →* A) (a : M) (b : R) :
                                            ((lift R A M) F) (single a b) = b F (Multiplicative.ofAdd a)
                                            theorem AddMonoidAlgebra.lift_of' {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] (F : Multiplicative M →* A) (x : M) :
                                            ((lift R A M) F) (of' R M x) = F (Multiplicative.ofAdd x)
                                            theorem AddMonoidAlgebra.lift_unique' {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] (F : AddMonoidAlgebra R M →ₐ[R] A) :
                                            F = (lift R A M) ((↑F).comp (of R M))
                                            theorem AddMonoidAlgebra.lift_unique {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] (F : AddMonoidAlgebra R M →ₐ[R] A) (f : AddMonoidAlgebra R M) :
                                            F f = Finsupp.sum f fun (a : M) (b : R) => b F (single a 1)

                                            Decomposition of a R-algebra homomorphism from R[M] by its values on F (single a 1).

                                            theorem AddMonoidAlgebra.algHom_ext_iff {R : Type u_1} {A : Type u_4} {M : Type u_7} [CommSemiring R] [AddMonoid M] [Semiring A] [Algebra R A] {φ₁ φ₂ : AddMonoidAlgebra R M →ₐ[R] A} :
                                            (∀ (x : M), φ₁ (single x 1) = φ₂ (single x 1)) φ₁ = φ₂

                                            The algebra equivalence between AddMonoidAlgebra and MonoidAlgebra in terms of Multiplicative.

                                            Equations
                                            Instances For

                                              The algebra equivalence between MonoidAlgebra and AddMonoidAlgebra in terms of Additive.

                                              Equations
                                              Instances For