Definitions of group actions #
This file defines a hierarchy of group action type-classes on top of the previously defined
notation classes SMul
and its additive version VAdd
:
MulAction M α
and its additive versionAddAction G P
are typeclasses used for actions of multiplicative and additive monoids and groups; they extend notation classesSMul
andVAdd
that are defined inAlgebra.Group.Defs
;DistribMulAction M A
is a typeclass for an action of a multiplicative monoid on an additive monoid such thata • (b + c) = a • b + a • c
anda • 0 = 0
.
The hierarchy is extended further by Module
, defined elsewhere.
Also provided are typeclasses for faithful and transitive actions, and typeclasses regarding the interaction of different group actions,
SMulCommClass M N α
and its additive versionVAddCommClass M N α
;IsScalarTower M N α
and its additive versionVAddAssocClass M N α
;IsCentralScalar M α
and its additive versionIsCentralVAdd M N α
.
Notation #
Implementation details #
This file should avoid depending on other parts of GroupTheory
, to avoid import cycles.
More sophisticated lemmas belong in GroupTheory.GroupAction
.
Tags #
group action
Each element of the group defines an additive monoid isomorphism.
This is a stronger version of MulAction.toPerm
.
Equations
- DistribMulAction.toAddEquiv A x = { toFun := (↑(DistribMulAction.toAddMonoidHom A x)).toFun, invFun := ((MulAction.toPermHom G A) x).invFun, left_inv := ⋯, right_inv := ⋯, map_add' := ⋯ }
Instances For
Each element of the group defines an additive monoid isomorphism.
This is a stronger version of MulAction.toPermHom
.
Equations
- DistribMulAction.toAddAut G A = { toFun := DistribMulAction.toAddEquiv A, map_one' := ⋯, map_mul' := ⋯ }
Instances For
Scalar multiplication as a monoid homomorphism with zero.
Equations
- smulMonoidWithZeroHom = { toFun := (↑smulMonoidHom).toFun, map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯ }
Instances For
Each element of the group defines a multiplicative monoid isomorphism.
This is a stronger version of MulAction.toPerm
.
Equations
- MulDistribMulAction.toMulEquiv M x = { toFun := (↑(MulDistribMulAction.toMonoidHom M x)).toFun, invFun := ((MulAction.toPermHom G M) x).invFun, left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯ }
Instances For
Each element of the group defines a multiplicative monoid isomorphism.
This is a stronger version of MulAction.toPermHom
.
Equations
- MulDistribMulAction.toMulAut G M = { toFun := MulDistribMulAction.toMulEquiv M, map_one' := ⋯, map_mul' := ⋯ }
Instances For
The tautological action by MulAut M
on M
.
This generalizes Function.End.applyMulAction
.
Equations
- MulAut.applyMulDistribMulAction = MulDistribMulAction.mk ⋯ ⋯
The tautological action by AddAut A
on A
.
This generalizes Function.End.applyMulAction
.
Equations
- AddAut.applyDistribMulAction = DistribMulAction.mk ⋯ ⋯
When M
is a monoid, ArrowAction
is additionally a MulDistribMulAction
.
Equations
- arrowMulDistribMulAction = MulDistribMulAction.mk ⋯ ⋯