Results 1 
1 of
1
Highlevel Proofs of Mathematical Programs Using Automatic Differentiation, Simplification, and some Common Sense
"... One problem in applying elementary methods to prove correctness of interesting scientific programs is the large discrepancy in level of discourse between lowlevel proof methods and the logic of scientific calculation, especially that used in a complex numerical program. The justification of an algo ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
One problem in applying elementary methods to prove correctness of interesting scientific programs is the large discrepancy in level of discourse between lowlevel proof methods and the logic of scientific calculation, especially that used in a complex numerical program. The justification of an algorithm typically relies on algebra or analysis, but the correctness of the program requires that the arithmetic expressions are written correctly and that iterations converge to correct values in spite of truncation of infinite processes or series and the commission of numerical roundoff errors. We hope to help bridge this gap by showing how we can, in some cases, state a highlevel requirement and by using a computer algebra system (CAS) demonstrate that a program satisfies that requirement. A CAS can contribute program manipulation, partial evaluation, simplification or other algorithmic methods. A novelty here is that we add to the usual list of techniques algorithm differentiation, a method already widely used in different contexts (usually optimization), to those used already for program proofs. We sketch a proof of a numerical program to compute sine, and display a related approach to a version of a Bessel function algorithm for J0(x) based on a recurrence.