posted on 1977-01-01, 00:00authored byHal Wasserman, Manuel Blum
We review the field of result-checking, discussing simple checkers and self-correctors. We
argue that such checkers could profitably be incorporated in software as an aid to efficient debugging
and enhanced reliability. We consider how to modify traditional checking methodologies to
make them more appropriate for use in real-time, real-number computer systems. In particular,
we suggest that checkers should be allowed to use stored randomness: i.e., that they should
be allowed to generate, preprocess, and store random bits prior to run-time, and then to use
this information repeatedly in a series of run-time checks. In a case study of checking a general
real-number linear transformation (for example, a Fourier Transform), we present a simple
checker which uses stored randomness, and a self-corrector which is particularly efficient if stored
randomness is employed.