Add SemigroupSolver