Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::category::IsLeftAction Concept Referenceexport

The shape of a left action (S ⟳ M), \(S \times M \to M\), scalar first, as a module's: its laws are the certificate a concept above it reads (is_linear_action for a semimodule). A left action of a monoid \(M\) is a right action (IsRightAction) of its opposite, Opposite<Op> (:involution), and over a commutative monoid the two coincide. More...

Concept definition

template<typename S, typename M, typename Act std::multiplies<>>
concept dedekind::category::IsLeftAction = requires(S s, M m) {
requires(
requires {
{ s(m) } -> std::same_as<M>;
} ||
requires {
{ Act{}(s, m) } -> std::same_as<M>;
});
}
The shape of a left action (S ⟳ M), , scalar first, as a module's: its laws are the certificate a con...
Definition action.cppm:63

Detailed Description

The shape of a left action (S ⟳ M), \(S \times M \to M\), scalar first, as a module's: its laws are the certificate a concept above it reads (is_linear_action for a semimodule). A left action of a monoid \(M\) is a right action (IsRightAction) of its opposite, Opposite<Op> (:involution), and over a commutative monoid the two coincide.

Template Parameters
SThe scalar/influencer species.
MThe acted-on species.
ActExternal action witness (defaults to std::multiplies<>).

Supports both textbook forms:

  1. callable action object s(m)
  2. binary action witness Act{}(s, m)