Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Communications of the ACM
Automatic program verification I: a logical basis and its implementation.
Automatic program verification I: a logical basis and its implementation.
Logic for Computable Functions: description of a machine implementation.
Logic for Computable Functions: description of a machine implementation.
A program verifier
A New Incompleteness Result for Hoare's System
Journal of the ACM (JACM)
A Practical Decision Procedure for Arithmetic with Function Symbols
Journal of the ACM (JACM)
Verification Decidability of Presburger Array Programs
Journal of the ACM (JACM)
Deciding Linear Inequalities by Computing Loop Residues
Journal of the ACM (JACM)
An Introduction to Proving the Correctness of Programs
ACM Computing Surveys (CSUR)
Verification of Array, Record, and Pointer Operations in Pascal
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proving the correctness of heuristically optimized code
Communications of the ACM
On proving inductive properties of abstract data types
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A new incompleteness result for Hoare's system
STOC '76 Proceedings of the eighth annual ACM symposium on Theory of computing
Compiler testing via symbolic interpretation
ACM '76 Proceedings of the 1976 annual conference
A normal form for compiler testing
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
An interactive program verification system
Proceedings of the international conference on Reliable software
A view of program verification
Proceedings of the international conference on Reliable software
A brief account: Implementation and applications of a Pascal program verifier (Position Statement)
ACM '78 Proceedings of the 1978 annual conference - Volume 2
An automatic theorem prover generating a proof in natural language
IJCAI'79 Proceedings of the 6th international joint conference on Artificial intelligence - Volume 2
A prover for general inequalities
IJCAI'79 Proceedings of the 6th international joint conference on Artificial intelligence - Volume 1
Hi-index | 0.02 |
Methods for verifying programs written in a higher level programming language are devised and implemented. The system can verify programs written in a subset of PASCAL, which may have data structures such as ARRAY, POINTER, and RECORD and control structures such as WHILE, REPEAT, FOR, PROCEDURE, FUNCTION and COROUTINE. The process of creation of verification conditions is an extension of the work done by lgarashi, London and Luckham (1972) which is based on the deductive theory by Hoare (1969). Verification conditions are proved using specialized simplification and proof techniques, which consist of an arithmetic simplifier, equality replacement rules, fast algorithm for simplifying formulas using propositional truth value evaluation, and a depth first proof search process. The basis of deduction mechanism used in this prover is Gentzen-type formal system. Several sorting programs including Floyd's TREESORT3 and Hoare's FIND are verified. It is shown that the resulting array is not only ordered but also a permutation of the input array This research was supported in part by the Advanced Research Projects Agency of the Office of the Secretary of Defence under contract DAHC 15-73-C-0435.