Harnessing Disruptive Innovation in Formal Verification

Technological innovations are sweeping through the field of formal verification. These changes are disruptive to tools based on interactive theorem proving, which needs new ways to integrate the capabilities of novel technologies. I describe two approaches. One is development and use of SMT solvers: these use techniques from theorem proving but apply them in ways that enable model checking, while also supporting highly automated theorem proving. The other is a proposal for an evidential tool bus: a loosely coupled architecture that allows many different verification components to collaborate to solve problems beyond the capability of any single component

[1]  Natarajan Shankar,et al.  The ICS Decision Procedures for Embedded Deduction , 2004, IJCAR.

[2]  John Harrison,et al.  HOL Light: A Tutorial Introduction , 1996, FMCAD.

[3]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[4]  Bruno Dutertre,et al.  Modeling and Verification of a Fault-Tolerant Real-Time Startup Protocol Using Calendar Automata , 2004, FORMATS/FTRTFT.

[5]  Armin Biere,et al.  Symbolic Model Checking without BDDs , 1999, TACAS.

[6]  James C. King,et al.  A Program Verifier , 1971, IFIP Congress.

[7]  Adam Cheyer,et al.  The Open Agent Architecture , 1997, Autonomous Agents and Multi-Agent Systems.

[8]  Nicholas Carriero,et al.  Coordination languages and their significance , 1992, CACM.

[9]  David L. Dill,et al.  The Murphi Verification System , 1996, CAV.

[10]  C. A. R. Hoare The Verifying Compiler, a Grand Challenge for Computing Research , 2005, VMCAI.

[11]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[12]  Wang Yi,et al.  Uppaal in a nutshell , 1997, International Journal on Software Tools for Technology Transfer.

[13]  Edmund M. Clarke,et al.  Counterexample-Guided Abstraction Refinement , 2000, CAV.

[14]  Donald Irvin Good,et al.  Toward a man-machine system for proving program correctness , 1970 .

[15]  Tobias Nipkow,et al.  A Proof Assistant for Higher-Order Logic , 2002 .

[16]  Richard J. Boulton,et al.  The PROSPER Toolkit , 2000, TACAS.

[17]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[18]  John M. Rushby Verification Diagrams Revisited: Disjunctive Invariants for Easy Verification , 2000, CAV.

[19]  Reinhard Wilhelm,et al.  Parametric shape analysis via 3-valued logic , 1999, POPL '99.

[20]  Natarajan Shankar,et al.  Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS , 1995, IEEE Trans. Software Eng..

[21]  Clayton M. Christensen The Innovator's Dilemma , 1997 .

[22]  Ashish Tiwari,et al.  Abstractions for hybrid systems , 2008, Formal Methods Syst. Des..

[23]  Alessandro Armando,et al.  Towards Interoperable Mechanized Reasoning Systems: the Logic Broker Architecture , 2000, WOA.

[24]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[25]  Pierre Castéran,et al.  Interactive Theorem Proving and Program Development , 2004, Texts in Theoretical Computer Science An EATCS Series.

[26]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[27]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[28]  Thomas A. Henzinger,et al.  Software Verification with BLAST , 2003, SPIN.

[29]  Lee Pike,et al.  Easy Parameterized Verification of Biphase Mark and 8N1 Protocols , 2006, TACAS.

[30]  Albert Oliveras,et al.  SMT Techniques for Fast Predicate Abstraction , 2006, CAV.

[31]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[32]  Peter W. O'Hearn,et al.  Verified Software: A Grand Challenge , 2006, Computer.

[33]  Rajeev Alur Doron A. Peled Computer Aided Verification , 2004, Lecture Notes in Computer Science.

[34]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[35]  J. Strother Moore,et al.  An Industrial Strength Theorem Prover for a Logic Based on Common Lisp , 1997, IEEE Trans. Software Eng..

[36]  Harald Ruess,et al.  An Experimental Evaluation of Ground Decision Procedures , 2004, CAV.

[37]  Harald Ruess,et al.  Bounded Model Checking and Induction: From Refutation to Verification (Extended Abstract, Category A) , 2003, CAV.

[38]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[39]  Dale Skeen,et al.  The Information Bus: an architecture for extensible distributed systems , 1994, SOSP '93.

[40]  Aaron Stump,et al.  SMT-COMP: Satisfiability Modulo Theories Competition , 2005, CAV.

[41]  Vlad Rusu,et al.  On Proving Safety Properties by Integrating Static Analysis, Theorem Proving and Abstraction , 1999, TACAS.

[42]  Michael Kohlhase,et al.  System Description: MathWeb, an Agent-Based Communication Layer for Distributed Automated Theorem Proving , 1999, CADE.

[43]  Natarajan Shankar,et al.  Integrating Verification Components : The Interface is the Message ? , 2004 .

[44]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[45]  Harald Ruess,et al.  Lazy Theorem Proving for Bounded Model Checking over Infinite Domains , 2002, CADE.

[46]  Peter W. O'Hearn,et al.  Symbolic Execution with Separation Logic , 2005, APLAS.

[47]  E. Allen Emerson,et al.  Computer Aided Verification , 2000, Lecture Notes in Computer Science.

[48]  Robert P. Kurshan,et al.  An Analysis of SAT-Based Model Checking Techniques in an Industrial Environment , 2005, CHARME.

[49]  Mary Sheeran,et al.  Checking Safety Properties Using Induction and a SAT-Solver , 2000, FMCAD.