ACM Home Page
Please provide us with feedback. Feedback
Designing programs that check their work
Full text PdfPdf (1.72 MB)
Source Journal of the ACM (JACM) archive
Volume 42 ,  Issue 1  (January 1995) table of contents
Pages: 269 - 291  
Year of Publication: 1995
ISSN:0004-5411
Authors
Manuel Blum  University of California at Berkeley, Berkeley, California
Sampath Kannan  University of California at Berkeley, Berkeley, California
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 98,   Citation Count: 44
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/200836.200880
What is a DOI?

ABSTRACT

A program correctness checker is an algorithm for checking the output of a computation. That is, given a program and an instance on which the program is run, the checker certifies whether the output of the program on that instance is correct. This paper defines the concept of a program checker. It designs program checkers for a few specific and carefully chosen problems in the class FP of functions computable in polynomial time. Problems in FP for which checkers are presented in this paper include Sorting, Matrix Rank and GCD. It also applies methods of modern cryptography, especially the idea of a probabilistic interactive proof, to the design of program checkers for group theoretic computations.Two structural theorems are proven here. One is a characterization of problems that can be checked. The other theorem establishes equivalence classes of problems such that whenever one problem in a class is checkable, all problems in the class are checkable.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
 
3
~BARW~SE, J. 1989. Mathematical proofs of computer system correctness. Notices AMS 36, 7.
 
4
 
5
 
6
7
8
 
9
 
10
~BUDD, T. m., AND ANGLUIN, D. 1982. Two notions of correctness and their relation to testing. ~Acta Inf. 18, 31-45.
 
11
12
 
13
 
14
~FEIGENBAUM, J. 1993. Locally random reductions in interactive complexity theory. In Ad- ~vances in Computational Complexity, DIMACS Series ill Discrete Mathemattcs and Theoretical ~Computer Science, vol. 13. AMS, Providence, R.I., pp. 73-98.
 
15
 
16
~FREIVALDS, R. 1979. Fast probabilistic algorithms. In Mathemaucal Formulations of CS. Lec- ~ture Notes in Computer Science, vol. 74. Springer-Verlag, New York, pp. 57-69.
 
17
~FURST, M., HOPCROFT, J. E., AND LUKS, E. 1980. Polynomial-time algorithms for permutation ~groups. In Proceedings of the 21st IEEE Symposium on Foundations of Computer Science. IEEE ~Computer Society, Los Alamitos, Calif., pp. 36-41.
18
 
19
 
20
~GOLDWASSER, S., AND SIPSER, M. 1989. Public coins vs. private coins in interactive proof ~systems. In Advances m Computing Research--Vol. 5.' Randomness and Computation. JAI Press, ~Greenwich, Conn., pp. 73-90.
 
21
~GORENSTEIN, D. 1982. Finite Simple Groups--An Introduction to Their Classification. Plenum ~Press, New York.
 
22
~HOFFMANN, C.M. 1982. Group-Theorettc Algorithms and Graph Isomorphism. In Lecture Notes ~in Computer Science. G. Goos and J. Hartmanis, eds. vol. 136. Springer-Verlag, Berlin, ~Germany.
 
23
 
24
 
25
 
26
 
27
LEON, J.S. 1984. Computing automorphism groups of combinatorial objects. In Computational ~Group Theory M. D. Atkinson, Ed. Academic Press, London, England, pp. 321-335.
 
28
~LIPTON, R. 1991. New directions in testing. In Distributed Computing and Cryptography, DI- ~MACS series in Discrete Mathematics and Theoretical Computer Science, vol. 2. AMS, Providence, ~R.I., pp. 191-202.
29
 
30
~MATHON, R.A. 1979. A note on the graph isomorphism counting problem. Inf. Proc. Lett. 8, ~131-t32.
 
31
 
32
~RABIN, M.O. 1976. Probabilistic algorithms. In Algorithms and Complexity, Recent Results and ~New Directions, J. F. Traub, ed. Academic Press, Orlando, Fla., pp. 21-40.
 
33
~RUBINFELD, R. 1990. Designing checkers for programs that run in parallel. Tech. Rep. TR-090- ~040. International Computer Science Institute, Berkeley, Calif., August.
 
34
~SCHONING, U. 1985. Robust algorithms: A different approach to oracles. Theoret. Comput. Sci. ~40, 57-66.
35
 
36
~TOMPA, M., AND WOL{, H. 1987. Random self-reducibility and zero knowledge interactive ~proofs of possession of information. In Proceedings of the 28th IEEE Symposium on Foundations ~of Computer Science. IEEE Computer Society, Los Alamitos, Calif., pp. 472-482.
37
 
38
~WEGMAN, M. N. AND CARTER, J.L. 1981. New hash functions and their use in authentication ~and set equality. J. Comput. Syst. Sci. 22 3, 265-279.

CITED BY  44

Collaborative Colleagues:
Manuel Blum: colleagues
Sampath Kannan: colleagues