Module docstring
{"# 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:
SMulZeroClassis a typeclass for an action that preserves zeroDistribSMul M Ais a typeclass for an action on an additive monoid (AddZeroClass) that preserves addition and zeroDistribMulAction M Ais a typeclass for an action of a multiplicative monoid on an additive monoid such thata • (b + c) = a • b + a • canda • 0 = 0.
The hierarchy is extended further by Module, defined elsewhere.
Notation
a • bis used as notation forSMul.smul a b.
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
","Since Lean 3 does not have definitional eta for structures, we have to make sure
that the definition of DistribMulAction.toDistribSMul was done correctly,
and the two paths from DistribMulAction to SMul are indeed definitionally equal. "}