Prod instances for additive and multiplicative actions #
This file defines instances for binary product of additive and multiplicative actions and provides
scalar multiplication as a homomorphism from α × β
to β
.
Main declarations #
smulMulHom
/smulMonoidHom
: Scalar multiplication bundled as a multiplicative/monoid homomorphism.
See also #
Mathlib.GroupTheory.GroupAction.Option
Mathlib.GroupTheory.GroupAction.Pi
Mathlib.GroupTheory.GroupAction.Sigma
Mathlib.GroupTheory.GroupAction.Sum
Porting notes #
The to_additive
attribute can be used to generate both the smul
and vadd
lemmas
from the corresponding pow
lemmas, as explained on zulip here:
https://leanprover.zulipchat.com/#narrow/near/316087838
This was not done as part of the port in order to stay as close as possible to the mathlib3 code.
instance
Prod.smulZeroClass
{R : Type u_7}
{M : Type u_8}
{N : Type u_9}
[Zero M]
[Zero N]
[SMulZeroClass R M]
[SMulZeroClass R N]
:
SMulZeroClass R (M × N)
Equations
- Prod.smulZeroClass = SMulZeroClass.mk ⋯
instance
Prod.distribSMul
{R : Type u_7}
{M : Type u_8}
{N : Type u_9}
[AddZeroClass M]
[AddZeroClass N]
[DistribSMul R M]
[DistribSMul R N]
:
DistribSMul R (M × N)
Equations
- Prod.distribSMul = DistribSMul.mk ⋯
instance
Prod.distribMulAction
{M : Type u_1}
{N : Type u_2}
{R : Type u_7}
[Monoid R]
[AddMonoid M]
[AddMonoid N]
[DistribMulAction R M]
[DistribMulAction R N]
:
DistribMulAction R (M × N)
Equations
- Prod.distribMulAction = let __src := Prod.mulAction; let __src_1 := Prod.distribSMul; DistribMulAction.mk ⋯ ⋯
instance
Prod.mulDistribMulAction
{M : Type u_1}
{N : Type u_2}
{R : Type u_7}
[Monoid R]
[Monoid M]
[Monoid N]
[MulDistribMulAction R M]
[MulDistribMulAction R N]
:
MulDistribMulAction R (M × N)
Equations
- Prod.mulDistribMulAction = MulDistribMulAction.mk ⋯ ⋯
Scalar multiplication as a homomorphism #
@[reducible, inline]
abbrev
DistribMulAction.prodOfSMulCommClass
(M : Type u_1)
(N : Type u_2)
(α : Type u_5)
[Monoid M]
[Monoid N]
[AddMonoid α]
[DistribMulAction M α]
[DistribMulAction N α]
[SMulCommClass M N α]
:
DistribMulAction (M × N) α
Construct a DistribMulAction
by a product monoid from DistribMulAction
s by the factors.
Equations
- DistribMulAction.prodOfSMulCommClass M N α = let __spread.0 := MulAction.prodOfSMulCommClass M N α; DistribMulAction.mk ⋯ ⋯
Instances For
def
DistribMulAction.prodEquiv
(M : Type u_1)
(N : Type u_2)
(α : Type u_5)
[Monoid M]
[Monoid N]
[AddMonoid α]
:
DistribMulAction (M × N) α ≃ (x : DistribMulAction M α) ×' (x_1 : DistribMulAction N α) ×' SMulCommClass M N α
A DistribMulAction
by a product monoid is equivalent to
commuting DistribMulAction
s by the factors.
Equations
- One or more equations did not get rendered due to their size.