Multiplicative actions with zero on and by Mˣ #
This file provides the multiplicative actions with zero of a unit on a type α, SMul Mˣ α, in the
presence of SMulWithZero M α, with the obvious definition stated in Units.smul_def.
Additionally, a MulDistribMulAction G M for some group G satisfying some additional properties
admits a MulDistribMulAction G Mˣ structure, again with the obvious definition stated in
Units.coe_smul. This instance uses a primed name.
Implementation notes #
We previously had
instance mulDistribMulAction' [Group G] [Monoid M] [MulDistribMulAction G M] [SMulCommClass G M M]
[IsScalarTower G M M] : MulDistribMulAction G Mˣ
as a strengthening of Units.mulAction', but in fact this instance (almost) never applies!
MulDistribMulAction G M means ∀ (g : G) (m₁ m₂ : M), g • (m₁ * m₂) = g • m₁ * g • m₂, while
SMulCommClass G M M means ∀ (g : G) (m₁ m₂ : M), g • (m₁ * m₂) = m₁ * g • m₂.
In particular, if M is cancellative, then we obtain
∀ (g : G) (m : M), g • m = m, i.e. the action is trivial!
See also #
Algebra.GroupWithZero.Action.OppositeAlgebra.GroupWithZero.Action.PiAlgebra.GroupWithZero.Action.Prod
Right scalar multiplication as an order isomorphism.
Equations
Instances For
Action of the units of M on a type α #
Equations
- Units.instSMulZeroClass = { toSMul := Units.instSMul, smul_zero := ⋯ }
Equations
- Units.instDistribSMulUnits = { toSMulZeroClass := Units.instSMulZeroClass, smul_add := ⋯ }
Equations
- Units.instDistribMulAction = { toSMul := Units.instDistribSMulUnits.toSMul, mul_smul := ⋯, one_smul := ⋯, smul_zero := ⋯, smul_add := ⋯ }
Equations
- Units.instMulDistribMulAction = { toMulAction := Units.instMulAction, smul_mul := ⋯, smul_one := ⋯ }