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))
);

Implementors§