HepLean Documentation

Mathlib.Algebra.Module.End

Module structure and endomorphisms #

In this file, we define Module.toAddMonoidEnd, which is (•) as a monoid homomorphism. We use this to prove some results on scalar multiplication by integers.

def Module.toAddMonoidEnd (R : Type u_1) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Module R M] :

(•) as an AddMonoidHom.

This is a stronger version of DistribMulAction.toAddMonoidEnd

Equations
Instances For
    @[simp]
    theorem Module.toAddMonoidEnd_apply_apply (R : Type u_1) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Module R M] (x : R) (x✝ : M) :
    ((Module.toAddMonoidEnd R M) x) x✝ = x x✝
    def smulAddHom (R : Type u_1) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Module R M] :
    R →+ M →+ M

    A convenience alias for Module.toAddMonoidEnd as an AddMonoidHom, usually to allow the use of AddMonoidHom.flip.

    Equations
    Instances For
      @[simp]
      theorem smulAddHom_apply {R : Type u_1} {M : Type u_3} [Semiring R] [AddCommMonoid M] [Module R M] (r : R) (x : M) :
      ((smulAddHom R M) r) x = r x
      theorem Int.cast_smul_eq_zsmul (R : Type u_1) {M : Type u_3} [Ring R] [AddCommGroup M] [Module R M] (n : ) (b : M) :
      n b = n b

      zsmul is equal to any other module structure via a cast.

      @[deprecated Int.cast_smul_eq_zsmul]
      theorem intCast_smul (R : Type u_1) {M : Type u_3} [Ring R] [AddCommGroup M] [Module R M] (n : ) (b : M) :
      n b = n b

      Alias of Int.cast_smul_eq_zsmul.


      zsmul is equal to any other module structure via a cast.

      @[deprecated Int.cast_smul_eq_zsmul]
      theorem zsmul_eq_smul_cast (R : Type u_1) {M : Type u_3} [Ring R] [AddCommGroup M] [Module R M] (n : ) (b : M) :
      n b = n b

      zsmul is equal to any other module structure via a cast.

      theorem int_smul_eq_zsmul {M : Type u_3} [AddCommGroup M] (h : Module M) (n : ) (x : M) :
      SMul.smul n x = n x

      Convert back any exotic -smul to the canonical instance. This should not be needed since in mathlib all AddCommGroups should normally have exactly one -module structure by design.

      All -module structures are equal. Not an instance since in mathlib all AddCommGroup should normally have exactly one -module structure by design.

      Equations
      • AddCommGroup.uniqueIntModule = { default := inferInstance, uniq := }
      Instances For
        theorem map_intCast_smul {M : Type u_3} {M₂ : Type u_4} [AddCommGroup M] [AddCommGroup M₂] {F : Type u_5} [FunLike F M M₂] [AddMonoidHomClass F M M₂] (f : F) (R : Type u_6) (S : Type u_7) [Ring R] [Ring S] [Module R M] [Module S M₂] (x : ) (a : M) :
        f (x a) = x f a
        instance AddCommGroup.intIsScalarTower {R : Type u} {M : Type v} [Ring R] [AddCommGroup M] [Module R M] :
        Equations
        • =