Scalar actions on and by Mᵐᵒᵖ
#
This file defines the actions on the opposite type has_scalar R Mᵐᵒᵖ
, and actions by the opposite
type, has_scalar Rᵐᵒᵖ M
.
Note that mul_opposite.has_scalar
is provided in an earlier file as it is needed to provide the
add_monoid.nsmul
and add_comm_group.gsmul
fields.
Actions on the opposite type #
Actions on the opposite type just act on the underlying type.
Equations
- mul_opposite.mul_action α R = {to_has_scalar := {smul := has_scalar.smul (mul_opposite.has_scalar α R)}, one_smul := _, mul_smul := _}
Equations
- mul_opposite.distrib_mul_action α R = {to_mul_action := {to_has_scalar := mul_action.to_has_scalar (mul_opposite.mul_action α R), one_smul := _, mul_smul := _}, smul_add := _, smul_zero := _}
Equations
- mul_opposite.mul_distrib_mul_action α R = {to_mul_action := {to_has_scalar := mul_action.to_has_scalar (mul_opposite.mul_action α R), one_smul := _, mul_smul := _}, smul_mul := _, smul_one := _}
Actions by the opposite type (right actions) #
In has_mul.to_has_scalar
in another file, we define the left action a₁ • a₂ = a₁ * a₂
. For the
multiplicative opposite, we define mul_opposite.op a₁ • a₂ = a₂ * a₁
, with the multiplication
reversed.
Like has_mul.to_has_scalar
, but multiplies on the right.
See also monoid.to_opposite_mul_action
and monoid_with_zero.to_opposite_mul_action_with_zero
.
Equations
- has_mul.to_has_opposite_scalar α = {smul := λ (c : αᵐᵒᵖ) (x : α), x * mul_opposite.unop c}
The right regular action of a group on itself is transitive.
Like monoid.to_mul_action
, but multiplies on the right.
Equations
- monoid.to_opposite_mul_action α = {to_has_scalar := {smul := has_scalar.smul (has_mul.to_has_opposite_scalar α)}, one_smul := _, mul_smul := _}
monoid.to_opposite_mul_action
is faithful on cancellative monoids.
monoid.to_opposite_mul_action
is faithful on nontrivial cancellative monoids with zero.