Journal of the ACM Bibliography

Manuel Blum and Sampath Kannan. Designing programs that check their work. Journal of the ACM, 42(1):269-291, January 1995. [BibTeX entry]
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. Copyright: Copyright 1995 by ACM, Inc. CR91: D.2.4 [correctness proofs \and reliability]; F.2.0; F.3.1; G.3 [probabilistic algorithms (including Monte Carlo)] Terms: Algorithms, Design, Reliability, Theory, Verification Keywords: Interactive proofs, probabilistic algorithms, program checking, program verification, testing

The abstract is also available as a LaTeX file, a DVI file, or a PostScript file.

Categories and Subject Descriptors: D.2.4 [Software Engineering]: Program Verification -- correctness proofs; reliability; F.2.0 [Analysis of Algorithms and Problem Complexity]; F.3.1 [Logics and Meanings of Programs]: Specifying and Verifying and Reasoning about Programs; G.3 [Probability and Statistics] -- probabilistic algorithms (including Monte Carlo)

General Terms: Algorithms, Design, Reliability, Theory, Verification

Additional Key Words and Phrases: Interactive proofs, probabilistic algorithms, program checking, program verification, testing

Selected papers that cite this one

Selected references


Shortcuts:

  • Journal of the ACM homepage
  • Bibliography top level
  • Journal of the ACM Author Index
  • Search the HBP database