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
.
Miscellaneous morphisms #
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
@[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
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