Simulation of Specification Statements in Hoare Logic

  title={Simulation of Specification Statements in Hoare Logic},
  author={Kai Engelhardt and Willem P. de Roever},
Data refinement is a powerful technique to derive implementations in terms of low-level data structures like bytes from specification in terms of high-level data structures like queues. The higher level operations need not be coded as ordinary programs; it is more convenient to introduce specification statements to the programming language and use them instead of actual code. Specification statements represent the maximal program satisfying a given Hoare-triple. Sound and (relatively) complete… 
A pure, sound, and complete (in the sense of Cook) Hoare logic for a language with specication statements and recursion
A rather simple sound and relatively complete logic in which the recursion rule does not require a deduction in its antecedent, in contrast to all but one formulation of Scott’s induction rule, namely the one by Jerald Schwarz.
Mechanised Formal Reasoning About Modular Programs
In addition to these rules, there are inference rules expressing monotonicity properties of lattice constructs, which are very useful for recursion introduction on concrete domains that turn out to be complete lattices.
Programming from Galois Connections
A binary relational combinator which mirrors this linguistic structure and exploits its potential for calculating programs by optimization and re-factoring results previously developed by Bird and de Moor for greedy and dynamic programming in a way which makes them less technically involved and therefore easier to understand and play with.
Toward a Mathematical Foundation of Software Engineering Methods
  • M. Broy
  • Computer Science
    IEEE Trans. Software Eng.
  • 2001
It is shown how mathematics can provide a scientific foundation for the modeling aspects, description techniques, and development methods of software engineering, which leads to a deeper understanding of the development process and to a basis for a more powerful tool support.
Programming from Galois connections
A Bibliography of Willem-Paul de Roever


Refinement Calculus, Part I: Sequential Nondeterministic Programs
A lattice theoretic framework for the calculus of program refinement is presented, which permits miraculous, angelic and demonic statements to be used in the description of program behavior.
Prespecification in Data Refinement
Assertional Data Reification Proofs: Survey and Perspective
In this survey we discuss three methods for program development, which incorporate data reification: VDM, Reynolds’ method, and Back’s method and develop a modest predicate transformer based
Algebraic Proofs of Consistency and Completeness
Guarded commands, nondeterminacy and formal derivation of programs
So-called “guarded commands” are introduced as a building block for alternative and repetitive constructs that allow nondeterministic program components for which at least the activity evoked, but
Handbook Of Theoretical Computer Science Volume B Formal Models And Semantics
This topic is covered in the Handbook of Theoretical Computer Science, Volume B: Formal Models and Semantics, edited by J. Dershowitz and J.-P.
Refinement Calculus
Categories The authors can generalize the notion of a concrete category to an (abstract) category, where the sets with structure are the objects and the structure-preserving functions are the morphisms of the abstract category.