An Incremental Simplex Algorithm with Unsatisfiable Core Generation

Filip Marić 📧, Mirko Spasić 📧 and René Thiemann 🌐

August 24, 2018

This is a development version of this entry. It might change over time and is not stable. Please refer to release versions for citations.


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. It supports extraction of satisfying assignments, extraction of minimal unsatisfiable cores, incremental assertion of constraints and backtracking. The formalization relies on stepwise program refinement, starting from a simple specification, going through a number of refinement steps, and ending up in a fully executable functional implementation. Symmetries present in the algorithm are handled with special care.


BSD License


Session Simplex