There is a vast amount of literature on the algebraic specification of abstract data types. You may consult, for example, [Dahl92].
draft version 0.1 (15/7/2001)