A DPLL(T) Theory Solver for a Theory of Strings and Regular Expressions

by Tianyi Liang, Andrew Reynolds, Cesare Tinelli, Clark Barrett, Morgan Deters
Abstract:
An increasing number of applications in verification and security rely on or could benefit from automatic solvers that can check the satisfiability of constraints over a rich set of data types that includes character strings. Unfortunately, most string solvers today are standalone tools that can reason only about (some fragment) of the theory of strings and regular expressions, sometimes with strong restrictions on the expressiveness of their input language. These solvers are based on reductions to satisfiability problems over other data types, such as bit vectors, or to automata decision problems. We present a set of algebraic techniques for solving constraints over the theory of unbounded strings natively, without reduction to other problems. These techniques can be used to integrate string reasoning into general, multi-theory SMT solvers based on the DPLL(T) architecture. We have implemented them in our SMT solver CVC4 to expand its already large set of built-in theories to a theory of strings with concatenation, length, and membership in regular languages. Our initial experimental results show that, in addition, over pure string problems, CVC4 is highly competitive with specialized string solvers with a comparable input language.
Reference:
A DPLL(T) Theory Solver for a Theory of Strings and Regular Expressions (Tianyi Liang, Andrew Reynolds, Cesare Tinelli, Clark Barrett, Morgan Deters), In Proceedings of the 26th International Conference on Computer Aided Verification (CAV ’14) (Armin Biere, Roderick Bloem, eds.), Springer, volume 8559, 2014. (Vienna, Austria)
Bibtex Entry:
@inproceedings{LRT+14,
  url       = "http://www.cs.stanford.edu/~barrett/pubs/LRT+14.pdf",
  author    = "Tianyi Liang and Andrew Reynolds and Cesare Tinelli and Clark Barrett and Morgan Deters",
  title     = "A {DPLL(T)} Theory Solver for a Theory of Strings and Regular Expressions",
  booktitle = "Proceedings of the 26th International Conference on Computer Aided Verification (CAV '14)",
  series    = "Lecture Notes in Computer Science",
  volume    = 8559,
  publisher = "Springer",
  editor    = "Armin Biere and Roderick Bloem",
  pages     = "646--662",
  month     = jul,
  year      = 2014,
  note      = "Vienna, Austria",
  category  = "Conference Publications",
  abstract  = "An increasing number of applications in verification and security rely
on or could benefit from automatic solvers that can check the satisfiability of constraints
over a rich set of data types that includes character strings. Unfortunately,
most string solvers today are standalone tools that can reason only about (some
fragment) of the theory of strings and regular expressions, sometimes with strong
restrictions on the expressiveness of their input language. These solvers are based
on reductions to satisfiability problems over other data types, such as bit vectors,
or to automata decision problems. We present a set of algebraic techniques for
solving constraints over the theory of unbounded strings natively, without reduction
to other problems. These techniques can be used to integrate string reasoning
into general, multi-theory SMT solvers based on the DPLL(T) architecture. We
have implemented them in our SMT solver CVC4 to expand its already large set
of built-in theories to a theory of strings with concatenation, length, and membership
in regular languages. Our initial experimental results show that, in addition,
over pure string problems, CVC4 is highly competitive with specialized string
solvers with a comparable input language."
}

Fork me on GitHub