Scalar actions on and by Mᵐᵒᵖ
#
This file defines the actions on the opposite type SMul R Mᵐᵒᵖ
, and actions by the opposite
type, SMul Rᵐᵒᵖ M
.
Note that MulOpposite.smul
is provided in an earlier file as it is needed to
provide the AddMonoid.nsmul
and AddCommGroup.zsmul
fields.
Notation #
With open scoped RightActions
, this provides:
r •> m
as an alias forr • m
m <• r
as an alias forMulOpposite.op r • m
v +ᵥ> p
as an alias forv +ᵥ p
p <+ᵥ v
as an alias forAddOpposite.op v +ᵥ p
Actions on the opposite type #
Actions on the opposite type just act on the underlying type.
Equations
- MulOpposite.instMulAction = MulAction.mk ⋯ ⋯
Equations
- AddOpposite.instAddAction = AddAction.mk ⋯ ⋯
Right actions #
In this section we establish SMul αᵐᵒᵖ β
as the canonical spelling of right scalar multiplication
of β
by α
, and provide convenient notations.
Pretty printer defined by notation3
command.
Equations
- One or more equations did not get rendered due to their size.
Instances For
With open scoped RightActions
, an alternative symbol for left actions, r • m
.
In lemma names this is still called smul
.
Equations
- RightActions.«term_•>_» = Lean.ParserDescr.trailingNode `RightActions.«term_•>_» 74 75 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " •> ") (Lean.ParserDescr.cat `term 74))
Instances For
Pretty printer defined by notation3
command.
Equations
- One or more equations did not get rendered due to their size.
Instances For
With open scoped RightActions
, a shorthand for right actions, op r • m
.
In lemma names this is still called op_smul
.
Equations
- RightActions.«term_<•_» = Lean.ParserDescr.trailingNode `RightActions.«term_<•_» 73 73 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " <• ") (Lean.ParserDescr.cat `term 74))
Instances For
With open scoped RightActions
, an alternative symbol for left actions, r • m
.
In lemma names this is still called vadd
.
Equations
- RightActions.«term_+ᵥ>_» = Lean.ParserDescr.trailingNode `RightActions.«term_+ᵥ>_» 74 75 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " +ᵥ> ") (Lean.ParserDescr.cat `term 74))
Instances For
Pretty printer defined by notation3
command.
Equations
- One or more equations did not get rendered due to their size.
Instances For
With open scoped RightActions
, a shorthand for right actions, op r +ᵥ m
.
In lemma names this is still called op_vadd
.
Equations
- RightActions.«term_<+ᵥ_» = Lean.ParserDescr.trailingNode `RightActions.«term_<+ᵥ_» 73 73 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " <+ᵥ ") (Lean.ParserDescr.cat `term 74))
Instances For
Pretty printer defined by notation3
command.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Actions by the opposite type (right actions) #
In Mul.toSMul
in another file, we define the left action a₁ • a₂ = a₁ * a₂
. For the
multiplicative opposite, we define MulOpposite.op a₁ • a₂ = a₂ * a₁
, with the multiplication
reversed.
Like Mul.toSMul
, but multiplies on the right.
See also Monoid.toOppositeMulAction
and MonoidWithZero.toOppositeMulActionWithZero
.
Equations
- Mul.toHasOppositeSMul = { smul := fun (c : αᵐᵒᵖ) (x : α) => x * MulOpposite.unop c }
Like Add.toVAdd
, but adds on the right.
See also AddMonoid.toOppositeAddAction
.
Equations
- Add.toHasOppositeVAdd = { vadd := fun (c : αᵃᵒᵖ) (x : α) => x + AddOpposite.unop c }
The right regular action of a group on itself is transitive.
The right regular action of an additive group on itself is transitive.
Like Monoid.toMulAction
, but multiplies on the right.
Equations
- Monoid.toOppositeMulAction = MulAction.mk ⋯ ⋯
Like AddMonoid.toAddAction
, but adds on the right.
Equations
- AddMonoid.toOppositeAddAction = AddAction.mk ⋯ ⋯
Monoid.toOppositeMulAction
is faithful on cancellative monoids.
AddMonoid.toOppositeAddAction
is faithful on cancellative monoids.