Completeness of many-sorted equational logic