Bundled Hom instances for module and multiplicative actions #
This file defines instances for Module, MulAction and related structures on bundled Hom types.
These are analogous to the instances in Algebra.Module.Pi, but for bundled instead of unbundled
functions.
We also define bundled versions of (c • ·) and (· • ·) as AddMonoidHom.smulLeft and
AddMonoidHom.smul, respectively.
Instances for AddMonoidHom #
instance
AddMonoidHom.instDistribSMul
{M : Type u_3}
{A : Type u_4}
{B : Type u_5}
[AddZeroClass A]
[AddCommMonoid B]
[DistribSMul M B]
:
DistribSMul M (A →+ B)
Equations
- AddMonoidHom.instDistribSMul = DistribSMul.mk ⋯
instance
AddMonoidHom.instDistribMulAction
{R : Type u_1}
{A : Type u_4}
{B : Type u_5}
[Monoid R]
[AddMonoid A]
[AddCommMonoid B]
[DistribMulAction R B]
:
DistribMulAction R (A →+ B)
Equations
- AddMonoidHom.instDistribMulAction = DistribMulAction.mk ⋯ ⋯
@[simp]
theorem
AddMonoidHom.coe_smul
{R : Type u_1}
{A : Type u_4}
{B : Type u_5}
[Monoid R]
[AddMonoid A]
[AddCommMonoid B]
[DistribMulAction R B]
(r : R)
(f : A →+ B)
:
theorem
AddMonoidHom.smul_apply
{R : Type u_1}
{A : Type u_4}
{B : Type u_5}
[Monoid R]
[AddMonoid A]
[AddCommMonoid B]
[DistribMulAction R B]
(r : R)
(f : A →+ B)
(x : A)
:
instance
AddMonoidHom.smulCommClass
{R : Type u_1}
{S : Type u_2}
{A : Type u_4}
{B : Type u_5}
[Monoid R]
[Monoid S]
[AddMonoid A]
[AddCommMonoid B]
[DistribMulAction R B]
[DistribMulAction S B]
[SMulCommClass R S B]
:
SMulCommClass R S (A →+ B)
Equations
- ⋯ = ⋯
instance
AddMonoidHom.isScalarTower
{R : Type u_1}
{S : Type u_2}
{A : Type u_4}
{B : Type u_5}
[Monoid R]
[Monoid S]
[AddMonoid A]
[AddCommMonoid B]
[DistribMulAction R B]
[DistribMulAction S B]
[SMul R S]
[IsScalarTower R S B]
:
IsScalarTower R S (A →+ B)
Equations
- ⋯ = ⋯
instance
AddMonoidHom.isCentralScalar
{R : Type u_1}
{A : Type u_4}
{B : Type u_5}
[Monoid R]
[AddMonoid A]
[AddCommMonoid B]
[DistribMulAction R B]
[DistribMulAction Rᵐᵒᵖ B]
[IsCentralScalar R B]
:
IsCentralScalar R (A →+ B)
Equations
- ⋯ = ⋯
instance
AddMonoidHom.instDomMulActModule
{S : Type u_6}
{M : Type u_7}
{M₂ : Type u_8}
[Semiring S]
[AddCommMonoid M]
[AddCommMonoid M₂]
[Module S M]
:
Instances for AddMonoid.End #
These are direct copies of the instances above.
instance
AddMonoid.End.instDistribSMul
{M : Type u_3}
{A : Type u_4}
[AddCommMonoid A]
[DistribSMul M A]
:
DistribSMul M (AddMonoid.End A)
Equations
- AddMonoid.End.instDistribSMul = AddMonoidHom.instDistribSMul
instance
AddMonoid.End.instDistribMulAction
{R : Type u_1}
{A : Type u_4}
[Monoid R]
[AddCommMonoid A]
[DistribMulAction R A]
:
Equations
- AddMonoid.End.instDistribMulAction = AddMonoidHom.instDistribMulAction
@[simp]
theorem
AddMonoid.End.coe_smul
{R : Type u_1}
{A : Type u_4}
[Monoid R]
[AddCommMonoid A]
[DistribMulAction R A]
(r : R)
(f : AddMonoid.End A)
:
theorem
AddMonoid.End.smul_apply
{R : Type u_1}
{A : Type u_4}
[Monoid R]
[AddCommMonoid A]
[DistribMulAction R A]
(r : R)
(f : AddMonoid.End A)
(x : A)
:
instance
AddMonoid.End.smulCommClass
{R : Type u_1}
{S : Type u_2}
{A : Type u_4}
[Monoid R]
[Monoid S]
[AddCommMonoid A]
[DistribMulAction R A]
[DistribMulAction S A]
[SMulCommClass R S A]
:
SMulCommClass R S (AddMonoid.End A)
Equations
- ⋯ = ⋯
instance
AddMonoid.End.isScalarTower
{R : Type u_1}
{S : Type u_2}
{A : Type u_4}
[Monoid R]
[Monoid S]
[AddCommMonoid A]
[DistribMulAction R A]
[DistribMulAction S A]
[SMul R S]
[IsScalarTower R S A]
:
IsScalarTower R S (AddMonoid.End A)
Equations
- ⋯ = ⋯
instance
AddMonoid.End.isCentralScalar
{R : Type u_1}
{A : Type u_4}
[Monoid R]
[AddCommMonoid A]
[DistribMulAction R A]
[DistribMulAction Rᵐᵒᵖ A]
[IsCentralScalar R A]
:
IsCentralScalar R (AddMonoid.End A)
Equations
- ⋯ = ⋯
instance
AddMonoid.End.instModule
{R : Type u_1}
{A : Type u_4}
[Semiring R]
[AddCommMonoid A]
[Module R A]
:
Module R (AddMonoid.End A)
Equations
- AddMonoid.End.instModule = AddMonoidHom.instModule
The tautological action by AddMonoid.End α on α.
This generalizes AddMonoid.End.applyDistribMulAction.
Miscelaneous morphisms #
@[simp]
theorem
AddMonoidHom.smulLeft_apply
{M : Type u_3}
{A : Type u_4}
[Monoid M]
[AddMonoid A]
[DistribMulAction M A]
(c : M)
:
⇑(AddMonoidHom.smulLeft c) = fun (x : A) => c • x
def
AddMonoidHom.smulLeft
{M : Type u_3}
{A : Type u_4}
[Monoid M]
[AddMonoid A]
[DistribMulAction M A]
(c : M)
:
A →+ A
Scalar multiplication on the left as an additive monoid homomorphism.
Equations
Instances For
Scalar multiplication as a biadditive monoid homomorphism. We need M to be commutative
to have addition on M →+ M.
Equations
- AddMonoidHom.smul = (Module.toAddMonoidEnd R M).toAddMonoidHom
Instances For
@[simp]
theorem
AddMonoidHom.coe_smul'
{R : Type u_1}
{M : Type u_3}
[Semiring R]
[AddCommMonoid M]
[Module R M]
:
⇑AddMonoidHom.smul = AddMonoidHom.smulLeft