The Z notation: a reference manual
The Z notation: a reference manual
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
Predicate transformer semantics of a higher-order imperative language with record subtyping
Science of Computer Programming
Introduction to Mathematical Theory of Computation
Introduction to Mathematical Theory of Computation
A refinement calculus for logic programs
Theory and Practice of Logic Programming
Hi-index | 0.00 |
A refinement calculus provides a method for transforming specifications to executable code, maintaining the correctness of the code with respect to its specification. In this paper we extend the refinement calculus for logic programs to include higher-order programming capabilities in specifications and programs, such as procedures as terms and lambda abstraction. We use a higher-order type and term system to describe programs, and provide a semantics for the higher-order language and refinement. The calculus is illustrated by refinement examples.