Communications of the ACM
Communications of the ACM
The synthesis of loop predicates
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Algorithm 61: procedures for range arithmetic
Communications of the ACM
Automating proofs of the absence of common runtime errors
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Implementation of an array bound checker
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A more mechanical approach to program verification
Programming Symposium, Proceedings Colloque sur la Programmation
Calculating properties of programs by valuations on specific models
Proceedings of ACM conference on Proving assertions about programs
Finding Invariant assertions for proving programs
Proceedings of the international conference on Reliable software
Proceedings of the 5th international conference on Generative programming and component engineering
Generating all polynomial invariants in simple loops
Journal of Symbolic Computation
Generating customized verifiers for automatically generated code
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Finding positively invariant sets of a class of nonlinear loops via curve fitting
Proceedings of the 2009 conference on Symbolic numeric computation
Verification conditions for source-level imperative programs
Computer Science Review
Using dynamic analysis to discover polynomial and array invariants
Proceedings of the 34th International Conference on Software Engineering
Hi-index | 0.00 |
Methods are presented whereby an Algol-like program, given together with its specifications, can be documented automatically. The program is incrementally annotated with invariant relationships that hold between program variables at intermediate points in the program and explain the actual workings of the program regardless of whether the program is correct. Thus this documentation can be used for proving the correctness of the program or may serve as an aid in the debugging of an incorrect program. The annotation techniques are formulated as Hoare-like inference rules which derive invariants from the assignment statements, from the control structure of the program, or, heuristically, from suggested invariants. The application of these rules is demonstrated by an example, one of a number that have run on an experimental implementation.