A semimodule's left action as a functor out of the opposite of the delooping of its scalars' product: \((s t) m = s (t m)\), so s then t along the walk acts as \(t s\), the opposite product, and \(1 m = m\) keeps the identity. Those laws are the semimodule's, which is_linear_action declares, so the functor laws are derived. A left action of a monoid is a right action of its opposite: the right actions are ActionFunctor.
More...
template<std::semiregular M, std::semiregular S, std::semiregular AddM = std::plus<M>, std::semiregular AddS = std::plus<S>, std::semiregular MultS = std::multiplies<S>, std::semiregular Act = std::multiplies<>>
requires IsSemimodule<M, S, AddM, AddS, MultS, Act> && IsMonoid<S,
Opposite<MultS>> && std::invocable<const Act&, S, M>
struct dedekind::category::LeftActionFunctor< M, S, AddM, AddS, MultS, Act >
A semimodule's left action as a functor out of the opposite of the delooping of its scalars' product: \((s t) m = s (t m)\), so s then t along the walk acts as \(t s\), the opposite product, and \(1 m = m\) keeps the identity. Those laws are the semimodule's, which is_linear_action declares, so the functor laws are derived. A left action of a monoid is a right action of its opposite: the right actions are ActionFunctor.
- Template Parameters
-
| M | the module. |
| S | the scalars. |
| AddM | |
| AddS | |
| MultS | the operations. |
| Act | the action. |