Download PDFOpen PDF in browser

Incremental Solving with Vampire

12 pagesPublished: June 29, 2018


Both SMT and SAT solvers can be used incrementally. This can be useful in lots of applications. Indeed, internally, Vampire uses both Minisat and Z3 incrementally. In this paper, we explore how VAMPIRE could be used incrementally. There are two forms of incremental solving. The first is where a solver is provided with formulas from a problem one by one with consistency being checked at certain points. The second more general form is where stack operations are used to create different solving contexts. We explore both ideas and show how they can be achieved within VAMPIRE. We argue that the second approach may be more suited to VAMPIRE as it allows for the incremental solving of unsatisfiable problems (whereas the first assumes a series of satisfiable problems) and the use of different solving contexts allows VAMPIRE to make use of incomplete proof search strategies. For the first approach, it will be necessary to restrict preprocessing steps to ensure completeness when additional formulas are added. For the second approach, we can make use of clauses labelled with assertions and take advantage of AVATAR to keep track of the stack information.

Keyphrases: SMT solving, theorem proving, Vampire

In: Laura Kovács and Andrei Voronkov (editors). Vampire 2017. Proceedings of the 4th Vampire Workshop, vol 53, pages 52--63

BibTeX entry
  author    = {Giles Reger and Martin Suda},
  title     = {Incremental Solving with Vampire},
  booktitle = {Vampire 2017. Proceedings of the 4th Vampire Workshop},
  editor    = {Laura Kov\textbackslash{}'acs and Andrei Voronkov},
  series    = {EPiC Series in Computing},
  volume    = {53},
  pages     = {52--63},
  year      = {2018},
  publisher = {EasyChair},
  bibsource = {EasyChair,},
  issn      = {2398-7340},
  url       = {},
  doi       = {10.29007/6sjl}}
Download PDFOpen PDF in browser