semigroup theory and applications