with functions over those sets. This level of abstraction is commensurate with the view that the correctness of the input/output behaviour of a program takes precedence over all its other properties. Another common element is that specifications of programs consist mainly of logical axioms, usually in a logical system in which equality has a prominent role, describing the properties that the functions are required to satisfy. This property-oriented approach is in contrast to so-called model-oriented specifications which consist of a simple realization of the required behaviour. A wide variety of different approaches to algebraic specification take these two principles as their starting point. Research on algebraic specification has been devoted mainly to the search for an adequate account of the fundamental concepts and basic processes involved in the Permission to make digital/hard copy of part or all of this work for personal or classroom use is granted without fee provided that the ...