OS — An object oriented algebraic specification language