An axiomatic basis for computer programming
Communications of the ACM
Proceedings of the international conference on Reliable software
A view of program verification
Proceedings of the international conference on Reliable software
A program verifier
Mathematical Theory of Computation
Mathematical Theory of Computation
Generalizing specifications for uniformly implemented loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Comparative Analysis of Functional Correctness
ACM Computing Surveys (CSUR)
Verification of Finite Iterations over Tuples of Data Structures
Programming and Computing Software
Verifying Definite Iteration Over Data Structures
IEEE Transactions on Software Engineering
A method for automatically analyzing programs
IJCAI'79 Proceedings of the 6th international joint conference on Artificial intelligence - Volume 2
A formal representation for plans in the programmer's apprentice
IJCAI'81 Proceedings of the 7th international joint conference on Artificial intelligence - Volume 2
Hi-index | 0.00 |
Three different classes of programs are identified for which the proof of correctness is shown to be “natural”, in that the functional input-output specifications of the programs lead, in a straightforward manner, to the verification conditions that should be proven. Furthermore, these verification conditions are shown to be necessary and sufficient so that a proof/refutation follows by proving/disproving the corresponding verification conditions. It is not necessary to follow the exact control flow of the programs to generate these conditions; certain simple checks are enough to show whether a particular program belongs to one of the classes. These apparently different programs have the common feature that they operate “uniformly” on the data domain; changing the input to the program changes the dynamic behavior of the program in a predictable, easily definable fashion. Implications of this feature in program construction are discussed.