reduction (semigroup) docs