Trait nekolib::traits::binop::Distributive
source · pub trait Distributive<A: Magma> { }
Expand description
分配法則を満たす。
乗法 $\ast: M \times M \to M$ は、加法 $\circ: M \times M \to M$ について
分配法則を満たすことを示す。
$$ \begin{aligned}
x, y, z \in R &\implies x \ast (y \circ z) = (x \ast y) \circ (x \ast z), \\
x, y, z \in R &\implies (y \circ z) \ast x = (y \ast x) \circ (z \ast x).
\end{aligned} $$
加法は型引数 A
として指定される。
Examples
use nekolib::traits::{Commutative, Magma};
use nekolib::utils::{OpAdd, OpMul};
let op_add = OpAdd::default();
let op_mul = OpMul::default();
let (x, y, z) = (3, 4, 5);
assert_eq!(
op_mul.op(x, op_add.op(y, z)),
op_add.op(op_mul.op(x, y), op_mul.op(x, z))
);