FoundationsofAlgebraicSpecificationandFormalSoftwareDevelopme