2012 · 241 citations · 32 references
ComputingComputer EngineeringComputer ScienceCompilersFormal MethodsSoftware EngineeringAssertion-based VerificationAutomated ReasoningControl-flow AnalysisData-flow AnalysisDeductive VerificationVerificationAssertionsFormal Verification For SynthesisInvariantsIterative Design ProcessLoop InvariantsProgram SynthesisProgram VerificationSoftware Verification
Automatically generated tools can significantly improve programmer productivity. For example, parsers and dataflow analyzers can be automatically generated from declarative specifications in the form of grammars, which tremendously simplifies the task of implementing a compiler. In this paper, we present a method for the automatic synthesis of software verification tools. Our synthesis procedure takes as input a description of the employed proof rule, e.g., program safety checking via inductive invariants, and produces a tool that automatically discovers the auxiliary assertions required by the proof rule, e.g., inductive loop invariants and procedure summaries. We rely on a (standard) representation of proof rules using recursive equations over the auxiliary assertions. The discovery of auxiliary assertions, i.e., solving the equations, is based on an iterative process that extrapolates solutions obtained for finitary unrollings of equations. We show how our method synthesizes automatic safety and liveness verifiers for programs with procedures, multi-threaded programs, and functional programs. Our experimental comparison of the resulting verifiers with existing state-of-the-art verification tools confirms the practicality of the approach.
32
Numerical recipes in C: the art of scientific computing
Choice Reviews Online · 1993 · 18.1K citations · Full text
Numerical recipes in Pascal: the art of scientific computing
Choice Reviews Online · 1990 · 11.9K citations
Precise interprocedural dataflow analysis via graph reachability
Thomas Reps, Susan Horwitz, Mooly Sagiv · 1995 · 1.2K citations
Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar et al. · 2002 · 1.2K citations
An axiomatic proof technique for parallel programs I
Susan Owicki, David Gries · Acta Informatica · 1976 · 1K citations