What is Decidable about Strings?
Author(s)
Ganesh, Vijay; Minnes, Mia; Solar-Lezama, Armando; Rinard, Martin
DownloadMIT-CSAIL-TR-2011-006.pdf (209.5Kb)
Other Contributors
Computer Architecture
Advisor
Martin Rinard
Metadata
Show full item recordAbstract
We prove several decidability and undecidability results for the satisfiability/validity problem of formulas over a language of finite-length strings and integers (interpreted as lengths of strings). The atomic formulas over this language are equality over string terms (word equations), linear inequality over length function (length constraints), and membership predicate over regularexpressions (r.e.). These decidability questions are important in logic, program analysis and formal verification. Logicians have been attempting to resolve some of these questions for many decades, while practical satisfiability procedures for these formulas are increasingly important in the analysis of string-manipulating programs such as web applications and scripts. We prove three main theorems. First, we consider Boolean combination of quantifier-free formulas constructed out of word equations and length constraints. We show that if word equations can be converted to a solved form, a form relevant in practice, then the satisfiability problem for Boolean combination of word equations and length constraints is decidable. Second, we show that the satisfiability problem for word equations in solved form that areregular, length constraints and r.e. membership predicate is also decidable. Third, we show that the validity problem for the set of sentences written as a forall-exists quantifier alternation applied to positive word equations is undecidable. A corollary of this undecidability result is that this set is undecidable even with sentences with at most two occurrences of a string variable.
Date issued
2011-02-01Series/Report no.
MIT-CSAIL-TR-2011-006
Keywords
Theories of strings, decidability, undecidability, word equations, regular expressions, JavaScript, Formal methods, Program Analysis