Wombit: a portfolio bit-vector solver using word-level propagation

Wenxi Wang, Harald Søndergaard, Peter J. Stuckey

Research output: Contribution to journalArticleResearchpeer-review

2 Citations (Scopus)

Abstract

We develop an idea originally proposed by Michel and Van Hentenryck of how to perform bit-vector constraint propagation on the word level. Most operations are propagated in constant time, assuming the bit-vector fits in a machine word. In contrast, bit-vector SMT solvers usually solve bit-vector problems by (ultimately) bit-blasting, that is, mapping the resulting operations to conjunctive normal form clauses, and using SAT technology to solve them. Bit-blasting generates intermediate variables which can be an advantage, as these can be searched on and learnt about. As each approach has advantages, it makes sense to try to combine them. In this paper, we describe an approach to bit-vector solving using word-level propagation with learning. We have designed alternative word-level propagators to Michel and Van Hentenryck’s, and evaluated different variants of the approach. We have also experimented with different approaches to learning and back-jumping in the solver. Based on the insights gained, we have built a portfolio solver, Wombit, which essentially extends the STP bit-vector solver. Using machine learning techniques, the solver makes a judicious up-front decision about whether to use word-level propagation or fall back on bit-blasting.

Original languageEnglish
Pages (from-to)723-762
Number of pages40
JournalJournal of Automated Reasoning
Volume63
Issue number3
DOIs
Publication statusPublished - Oct 2019

Keywords

  • Bit-blasting
  • Bit-vector solver
  • Constraint propagation
  • Machine learning
  • Portfolio solvers
  • Word-level reasoning

Cite this