word problem for semigroups