pub trait Distributive<A: Magma> { }
Expand description

分配法則を満たす。

乗法 :M×MM\ast: M \times M \to M は、加法 :M×MM\circ: M \times M \to M について 分配法則を満たすことを示す。 x,y,zR    x(yz)=(xy)(xz),x,y,zR    (yz)x=(yx)(zx). \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§