Specification of abstract data types