Formalization of Incremental Simplex Algorithm by Stepwise Refinement

We present an Isabelle/HOL formalization and total correctness proof for the incremental version of the Simplex algorithm which is used in most state-of-the-art SMT solvers. Formalization relies on stepwise program and data refinement, starting from a simple specification, going through a number of fine refinement steps, and ending up in a fully executable functional implementation. Symmetries present in the algorithm are handled with special care.

[1]  Benjamin Grégoire,et al.  A Modular Integration of SAT/SMT Solvers to Coq through Proof Witnesses , 2011, CPP.

[2]  Niklaus Wirth,et al.  Program Development by Stepwise Refinement (Reprint) , 1983, Software Pioneers.

[3]  Cesare Tinelli,et al.  Satisfiability Modulo Theories , 2021, Handbook of Satisfiability.

[4]  T. Nipkow,et al.  Reflecting Quantifier Elimination for Linear Arithmetic , 2008 .

[5]  Filip Maric,et al.  Formal verification of a modern SAT solver by shallow embedding into Isabelle/HOL , 2010, Theor. Comput. Sci..

[6]  Larry Wos,et al.  What Is Automated Reasoning? , 1987, J. Autom. Reason..

[7]  Brian Campbell,et al.  An Executable Semantics for CompCert C , 2012, CPP.

[8]  Bruno Dutertre,et al.  A Fast Linear-Arithmetic Solver for DPLL(T) , 2006, CAV.

[9]  Tobias Nipkow,et al.  Formal Logical Methods for System Security and Correctness , 2008 .

[10]  John Harrison,et al.  Without Loss of Generality , 2009, TPHOLs.

[11]  Tobias Nipkow,et al.  Proof Synthesis and Reflection for Linear Arithmetic , 2008, Journal of Automated Reasoning.

[12]  Sascha Böhme,et al.  Fast LCF-Style Proof Reconstruction for Z3 , 2010, ITP.

[13]  Niklaus Wirth,et al.  Program development by stepwise refinement , 1971, CACM.

[14]  Bruno Dutertre,et al.  Integrating Simplex with DPLL(T ) , 2006 .

[15]  Tobias Nipkow Linear Quantifier Elimination , 2008, IJCAR.

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

[17]  Tobias Nipkow,et al.  Verified Efficient Enumeration of Plane Graphs Modulo Isomorphism , 2011, ITP.

[18]  Clemens Ballarin,et al.  Interpretation of Locales in Isabelle: Theories and Proof Contexts , 2006, MKM.

[19]  David Aspinall,et al.  Formalising Java's Data Race Free Guarantee , 2007, TPHOLs.

[20]  Tom Schrijvers,et al.  Functional and Logic Programming , 2012, Lecture Notes in Computer Science.

[21]  Toby Walsh,et al.  Handbook of satisfiability , 2009 .

[22]  Edsger W. Dijkstra,et al.  A constructive approach to the problem of program correctness , 1968 .

[23]  Tobias Nipkow,et al.  Code Generation via Higher-Order Rewrite Systems , 2010, FLOPS.

[24]  F. Mari Formal verification of a modern SAT solver by shallow embedding into Isabelle/HOL , 2010 .