The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
An efficient machine-independent procedure for garbage collection in various list structures
Communications of the ACM
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
Data Refinement: Model-Oriented Proof Methods and Their Comparison
Data Refinement: Model-Oriented Proof Methods and Their Comparison
Invariant based programming: basic approach and teaching experiences
Formal Aspects of Computing
Proving pointer programs in higher-order logic
Information and Computation - Special issue: 19th international conference on automated deduction (CADE-19)
Testing and verifying invariant based programs in the SOCOS environment
TAP'07 Proceedings of the 1st international conference on Tests and proofs
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Verifying invariant based programs in the SOCOS environment
TFM'06 Proceedings of the 2006 conference on Teaching Formal Methods: practice and experience
Algebra of monotonic boolean transformers
SBMF'11 Proceedings of the 14th Brazilian conference on Formal Methods: foundations and Applications
Hi-index | 0.00 |
Invariant based programming is an approach where we start to construct a program by first identifying the basic situations (pre- and postconditions 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 the the construction of the classical Deutsch-Schorr-Waite graph marking algorithm. Our results are formalized and mechanically proved in the Isabelle/HOL theorem prover.