The algebraic eigenvalue problem
The algebraic eigenvalue problem
Toward a man-machine system for proving program correctness
Toward a man-machine system for proving program correctness
A program verifier
Software for Roundoff Analysis
ACM Transactions on Mathematical Software (TOMS)
The production of better mathematical software
Communications of the ACM
Toward mechanical verification of properties of roundoff error propagation
STOC '73 Proceedings of the fifth annual ACM symposium on Theory of computing
The current state of proving programs correct
ACM '72 Proceedings of the ACM annual conference - Volume 1
SIGCSE '73 Proceedings of the third SIGCSE technical symposium on Computer science education
A view of program verification
Proceedings of the international conference on Reliable software
On homomorphisms, correctness, termination, unfoldments, equivalence of flow diagram programs
Journal of Computer and System Sciences
Hi-index | 0.02 |
Structured programming and the use of assertions are two basic techniques needed in organizing proofs of the correctness of algorithms. These techniques can be combined with theorems in numerical analysis to produce proofs of the correctness of numerical algorithms. A simple algorithm for finding the sum of n numbers is first used to show how assertions can be modified to take account of the effect of roundoff. A so-called backward error analysis then leads to a proof that the algorithm is correct in the sense that it produces exact results for slightly perturbed problems. Alternative points of view are possible, and one of the distinguishing features of numerical algorithms is that there usually are a number of different senses in which one might want to prove them correct. Two other more substantial algorithms, one for solving linear algebraic equations and one for solving differential equations, are then used to show how structured programming and the use of assertions can be combined with error analyses of fairly complicated numerical processes to provide proofs of correctness. One of these algorithms involves roundoff error while the other is affected primarily by truncation error.