Algebraic Specifications, Higher-Order Types, and Set-Theoretic Models
Abstract
In most algebraic specification frameworks, the type system is restricted to sorts, subsorts, and first-order function types. This is in marked contrast to the so-called model-oriented frameworks, which provide higher-order types, interpreted set-theoretically as Cartesian products, function spaces, and power-sets. As the authors have shown in an earlier paper (with C.~Hintermeier), it is possible to enrich algebraic specifications with higher-order types, while keeping to the tractable logic of Horn clauses. However, the models considered there were set-theoretically somewhat non-standard, with sets including extra elements generated by choice-functions. The type system also required the widespread use of a non-standard type constructor. This paper presents a simple framework for algebraic specifications with higher-order types and set-theoretic models, completely eliminating the need for choice functions and for the extra type constructor. It may be regarded as the basis for a Horn-clause approximation to the Z framework, and has the advantage of being amenable to prototyping and automated reasoning. Standard set-theoretic models are considered, and conditions are given for the existence of initial reducts of such models. Algebraic specifications for various set-theoretic concepts are considered.