• Corpus ID: 46614389

Program Proving as Hand Simulation with a Little Induction

  title={Program Proving as Hand Simulation with a Little Induction},
  author={Rod M. Burstall},
  booktitle={IFIP Congress},
  • R. Burstall
  • Published in IFIP Congress 1974
  • Computer Science

Modular, Correct Compilation with Automatic Soundness Proofs

This work proposes a framework for automatically proving the correctness of compilation rules based on simultaneous symbolic execution for the source and target language, based on a reduction of correctness assertions to formulas in a program logic capable of symbolic execution of abstract programs.

Tests and Proofs

This work illustrates the whole model-based mutation testing process by means of an industrial case study and compares the fault detection capabilities of the three test suites on a set of faulty systems, which were created by intentionally injecting faults into the implementation.

Tableaux for constructive concurrent dynamic logic

Sometime = always + recursion ≡ always on the equivalence of the intermittent and invariant assertions methods for proving inevitability properties of programs

Two induction principles called “always” and “sometime” for proving inevitability properties of programs are proposed and compared and shown to be strongly equivalent in the sense that a proof by one induction principle can be rewritten into aProof by the other one.

The correctness of the Schorr-Waite list marking algorithm

  • R. Topor
  • Computer Science
    Acta Informatica
  • 2004
A relatively simple proof of a nontrivial algorithm for marking all the nodes of a list structure and is a significant application of the method of “intermittent assertions”.

Object code verification

This thesis develops an abstract language which is expressive enough to describe any sequential object code program and which allows object code programs to be specified and verified in a system of logic while the use of abstraction to simplify programs makes verification practical.

Is “sometime” sometimes better than “always”?: Intermittent assertions in proving program correctness

The intermittent-assertion method, introduced by Knuth and further developed by Burstall, promises to provide a valuable complement to the more conventional methods for proving the correctness and termination of programs simultaneously.

Dijkstra’s Legacy on Program Verification

The decade from 1967 to 1977 was one of the most creative in the field of pro­ gram verification, with the advent of proof assertions, program logics, weakest preconditions, logic programming,

Integrating Symbolic Execution, Debugging and Verification

A platform for tools based on symbolic execution and related to verification is presented, which offers a seamless integration into an IDE and furthers a usage in combination, and statistical evidence that the SED increases effectiveness of code reviews is gained from a controlled experiment.

An abstract interpretation framework for termination

The Floyd/Turing termination proof method is derived and a generalization of the syntactic notion of struc- tural induction into a semantic structural induction based on the new semantic concept of inductive trace cover covering execution traces by segments is introduced.