1. Invariant diagrams with data refinement
- Author
-
Viorel Preoteasa and Ralph-Johan Back
- Subjects
Theoretical computer science ,Programming language ,Computer science ,HOL ,Abstract data type ,computer.software_genre ,Data structure ,Theoretical Computer Science ,Control flow ,Refinement calculus ,Invariant-based programming ,Graph (abstract data type) ,Invariant (mathematics) ,computer ,Software - Abstract
Invariant based programming is an approach where we start to construct a program by first identifying the basic situations (pre- and post-conditions as well as invariants) that could arise during the execution of the algorithm. These situations are identified before any code is written. After that, we identify the transitions between the situations, which will give us the flow of control in the program. Data refinement is a technique of building correct programs working on concrete data structures as refinements of more abstract programs working on abstract data types. We study in this paper data refinement for invariant based programs and we apply it to the construction of the classical Deutsch–Schorr–Waite graph marking algorithm. Our results are formalized and mechanically proved in the Isabelle/HOL theorem prover.
- Published
- 2012