集合 \(M\) が集合 \(X\) 上の作用であるとは, 各元 \(m \in M\) が写像 \(X \to X\) として機能すること.
作用を \(\ast\) で表すことにする. \(m \in M, x \in X\) に対して,
作用を定義するときに右から作用させるか左から作用させるかを決める.
以下の実装ではこの写像を act(&Self, X) -> X で定義する.
/// Algebra - Act
pub trait Act<X> {
fn act(&self, x: X) -> X;
}
\(M\) が \(X\) 上の作用であり, かつ モノイド であるときこれを モノイド作用 と呼ぶ. すなわち \(M\) に関する演算 ( \(\times\) ) と作用 ( \(\ast\) ) が次を満たす.
ここで右作用として書いたが, 左作用でも全く同様. 合成の適用順が変わるのだけ注意.
\(M\) が \(X\) 上のモノイド作用であり, かつ \(X\) 自体もモノイド \((X, \cdot, e)\) であるとき, \(X\) を指して モノイド作用付きのモノイド と呼ぶ.
ただし次の準同型を要請する.