Abstract
Program result checking is concerned with designing programs to check their work. For example, after solving an equation for x, a result-checking program would substitute x back into the equation to make sure that the answer obtained is correct. There are many ways to check results, but there has been no theory to say what constitutes a good check. It is not a good check, for example, to redo a computation without change a second time. Such recomputation may uncover an intermittent hardware fault, but it will not uncover a software fault, and the discovery and elimination of software faults is the principal goal of this work. This talk discusses the concept of result checking, gives several examples, and outlines the basic theory.
This work was supported in part by NSF grant CCR92-01092, in part by IBM Research Division, T.J. Watson Research Center, and in part by ICSI, the International Computer Science Institute, Berkeley, CA.
A preliminary version of this paper appeared in Blum and Raghavan [BR].
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
S. Ar, M. Blum, B. Codenotti, and P. Gemmell, “Checking Approximate Computations Over the Reals.” to appear in STOC 93, 10 pp.
L. Babai, “E-mail and the power of interaction,” Proc 5th Structures in Complexity Theory Conference, (1990).
R. Beigel, personal communication.
M. Blum, “Designing Program to Check their Work,” ICSI Tech. Report TR-88-009.
M. Blum and S. Kannan, “Designing Programs that Check Their Work,” Proc. 21st ACM STOC (1989).
D. Beaver and J. Feigenbaum, “Hiding Instances in Multioracle Queries,” Proc. 7th STACS90, Springer-Verlag vol. 415, 37–48 (1990).
L. Babai, L. Fortnow, and C. Lund, “Nondeterministic Exponential Time has Two-Prover Interactive Protocols,” Computational Complexity, vol. 1, 3–40 (1991).
M. Blum, M. Luby and R. Rubinfeld, “Self-Testing/Correcting with Applications to Numerical Problems,” to appear in special issue of JCSS (1993).
M. Blum and P. Raghavan, “Program Correctness: Can One Test for It?,” IBM T.J. Watson Research Center Technical Report RC 14038 (#62902) (Sept. 1988), 12 pp.
J. Feigenbaum and L. Fortnow, “On the Random Self-Reducibility of Complete Sets,” Proc. IEEE Structure in Complexity Theory, 124–132 (1991); to appear in SIAM J. Comp., vol. 22, No. 5 (1993).
L. Fortnow, H. Karloff, K. Lund, and N. Nisan, “The Polynomial Hierarchy has Interactive Proofs,” Proc 31st IEEE FOCS, (1990).
P. Gemmell, “Checking for Approximate Programs and Unconditionally Secure Authentication,” Ph.D. Dissertation, Department of Computer Science, U. C. Berkeley (1993).
O. Goldreich, S. Micali and A. Wigderson, “Proofs that Yield Nothing but their Validity and a Methodologyof Cryptographic Design,” Proc. 27th IEEE Symposium on Foundations of Computer Science, 174–187 (1986).
S. Kannan, “Program Checkers for Algebraic Problems.” Ph.D. thesis to be submitted to the Computer Science Division of the University of California at Berkeley.
R. Kannan, personal communication through S. Rudich.
R. Lipton, “New Directions in Testing,” DIMACS Series on Discrete Mathematics and Theoretical Computer Science, vol. 2, pp. 191–202, (1991).
N. Nisan, “Co-SAT Has Multi-Prover Interactive Proofs,” e-mail announcement, (Nov 1989).
R. Rubinfeld, “A Mathematical Theory of Self-Checking, Self-Testing, and Self-Correcting Programs, Ph.D. thesis, Computer Science Departement, U.C. Berkeley, 1990.
A. Shamir, “IP=PSPACE,” Proc 31st IEEE FOCS (1990).
G.F. Sullivan and G.M. Masson, “Using Certification Trails to Achieve Software Fault Tolerance,” Digest of the 1990 Fault Tolerant Computing Symposium, pp. 423–431, IEEE Computer Society Press, 1990.
G.F. Sullivan and G.M. Masson, “Certification Trails for Data Structures,” Digest of the 1991 Fault Tolerant Computing Symposium, pp. 240–247, IEEE Computer Society Press, 1991.
F. Vainstein “Error Detection and Correction in Numerical Computations by Algebraic Methods,” Lecture Notes in Computer Science 539, Springer-Verlag, 1991, pp 456–464.
F. Vainstein “Algebraic Methods In Hardware/Software Testing,” Ph.D. Dissertation, Boston University, 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Blum, M. (1993). Program result checking: A new approach to making programs more reliable. In: Lingas, A., Karlsson, R., Carlsson, S. (eds) Automata, Languages and Programming. ICALP 1993. Lecture Notes in Computer Science, vol 700. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56939-1_57
Download citation
DOI: https://doi.org/10.1007/3-540-56939-1_57
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-56939-8
Online ISBN: 978-3-540-47826-3
eBook Packages: Springer Book Archive