A Mechanized Program Verifier

  • Authors:
  • J. Strother Moore

  • Affiliations:
  • Department of Computer Sciences, University of Texas at Austin, Austin, USA 78712

  • Venue:
  • Verified Software: Theories, Tools, Experiments
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

In my view, the "verification problem" is the theorem proving problem, restricted to a computational logic. My approach is: adopt a functional programming language, build a general purpose formal reasoning engine around it, integrate it into a program and proof development environment, and apply it to model and verify a wide variety of computing artifacts, usually modeled operationally within the functional programming language. Everything done in this approach is software verification since the models are runnable programs in a subset of an ANSI standard programming language (Common Lisp). But this approach is of interest to proponents of other approaches (e.g., verification of procedural programs or synthesis) because of the nature of the mathematics of computing. I summarize the progress so far using this approach, sketch the key research challenges ahead and describe my vision of the role and shape of a useful verification system.