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

A DPLL(T) Theory Solver for a Theory of Strings and Regular Expressions” by Tianyi Liang, Andrew Reynolds, Cesare Tinelli, Clark Barrett, and Morgan Deters. In Proceedings of the 26^th International Conference on Computer Aided Verification (CAV '14), (Armin Biere and Roderick Bloem, eds.), July 2014, pp. 646-662. Vienna, Austria.

## 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.

BibTeX entry:

@inproceedings{LRT+14,
author = {Tianyi Liang and Andrew Reynolds and Cesare Tinelli and Clark
Barrett and Morgan Deters},
editor = {Armin Biere and Roderick Bloem},
title = {A {DPLL(T)} Theory Solver for a Theory of Strings and Regular
Expressions},
booktitle = {Proceedings of the {\it 26^{th}} International Conference
on Computer Aided Verification (CAV '14)},
series = {Lecture Notes in Computer Science},
volume = {8559},
pages = {646--662},
publisher = {Springer},
month = jul,
year = {2014},
note = {Vienna, Austria},
url = {http://www.cs.nyu.edu/~barrett/pubs/LRT+14.pdf}
}


(This webpage was created with bibtex2web.)