equiv.semigroup source