English

PolySAT: Word-level Bit-vector Reasoning in Z3

Logic in Computer Science 2024-06-10 v1

Abstract

PolySAT is a word-level decision procedure supporting bit-precise SMT reasoning over polynomial arithmetic with large bit-vector operations. The PolySAT calculus extends conflict-driven clause learning modulo theories with two key components: (i) a bit-vector plugin to the equality graph, and (ii) a theory solver for bit-vector arithmetic with non-linear polynomials. PolySAT implements dedicated procedures to extract bit-vector intervals from polynomial inequalities. For the purpose of conflict analysis and resolution, PolySAT comes with on-demand lemma generation over non-linear bit-vector arithmetic. PolySAT is integrated into the SMT solver Z3 and has potential applications in model checking and smart contract verification where bit-blasting techniques on multipliers/divisions do not scale.

Keywords

Cite

@article{arxiv.2406.04696,
  title  = {PolySAT: Word-level Bit-vector Reasoning in Z3},
  author = {Jakob Rath and Clemens Eisenhofer and Daniela Kaufmann and Nikolaj Bjørner and Laura Kovács},
  journal= {arXiv preprint arXiv:2406.04696},
  year   = {2024}
}

Comments

Submitted to FMCAD 2024, https://fmcad.org/FMCAD24/

R2 v1 2026-06-28T16:56:55.536Z