cyclic semigroup