Simulation of specification statements in Hoare logic [chapter]

Kai Engelhardt, Willem-Paul Roever
1996 Lecture Notes in Computer Science  
Data refinement is a powerful technique to derive implementations in terms of low-level data structures like bytes from specification in terms of highlevel 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
more » ... mulation techniques allow for proving data refinement by local arguments. A major challenge for simulation consists of expressing the weakest lower level specification simulating a given higher level specification w.r.t. a given relation between these two levels of abstraction. We present solutions to this challenge for upward and downward simulation in both partial and total correctness frameworks, thus reducing the task of proving data refinement to proving validity of certain Hoare-triples.
doi:10.1007/3-540-61550-4_159 fatcat:m2xyjorxnvhgxjqjvvblms5buy