title: Does Your Result Checker Really Check?
abstract: A result checker is a program that checks the output of the computation of the observed program for correctness. Introduced originally by Blum, the result checking paradigm has provided a powerful platform assuring the reliability of software. However, constructing result checkers for most problems requires not only significant domain knowledge but also ingenuity and can be error prone. In this paper we present our experience in validating result checkers using formal methods. We have conducted several case studies in validating result checkers from the commercial LEDA system for combinatorial and geometric computing. In one of our case studies, we detected a logical error in a result checker for a program computing max flow of a graph.
authors.affiliation: Lane Department of CSEE, West Virginia University, Morgantown, WV 26506-6109, USA.
authors.forename: Lan
authors.initials: L
authors.lastname: Guo
authors.affiliation: Lane Department of CSEE, West Virginia University, Morgantown, WV 26506-6109, USA.
authors.forename: Supratik
authors.initials: S
authors.lastname: Mukhopadhyay
authors.affiliation: Lane Department of CSEE, West Virginia University, Morgantown, WV 26506-6109, USA.
authors.forename: Bojan
authors.initials: B
authors.lastname: Cukic