Struct algae_rs::magma::Quasigroup
source · pub struct Quasigroup<'a, T> { /* private fields */ }Expand description
A set equipped with a cancellative binary operation.
Quasigroup is a representation of the abstract algebraic quasigroup.
Cancellativity (ie. the Latin Square property) is required of its binary
operation. Its construction involves a set (specifically an AlgaeSet)
and a BinaryOperation with the aforementioned properties.
Examples
use algae_rs::algaeset::AlgaeSet;
use algae_rs::mapping::{BinaryOperation, CancellativeOperation};
use algae_rs::magma::{Magmoid, Quasigroup};
let mut add = CancellativeOperation::new(&|a, b| a + b);
let mut quasigroup = Quasigroup::new(
AlgaeSet::<i32>::all(),
&mut add
);
let sum = quasigroup.with(1, 2);
assert!(sum.is_ok());
assert!(sum.unwrap() == 3);