Decision Procedures for Path Feasibility of String-Manipulating Programs with Complex Operations
Not on the map. Why?
Abstract (arXiv)
The design and implementation of decision procedures for checking path feasibility in string-manipulating programs is an important problem, whose applications include symbolic execution and automated detection of cross-site scripting (XSS) vulnerabilities. A (symbolic) path is a finite sequence of assignments and assertions (i.e. without loops), and checking its feasibility amounts to determining the existence of inputs that yield a successful execution. We give two general semantic conditions which together ensure the decidability of path feasibility: (1) each assertion admits regular monadic decomposition, and (2) each assignment uses a (possibly nondeterministic) function whose inverse relation preserves regularity. We show these conditions are expressive since they are satisfied by a multitude of string operations. They also strictly subsume existing decidable string theories, and most existing benchmarks (e.g. most of Kaluza's, and all of SLOG's, Stranger's, and SLOTH's). We give a simple decision procedure and an extensible architecture of a string solver in that a user may easily incorporate his/her own string functions. We show the general fragment has a tight, but high complexity. To address this, we propose to allow only partial string functions (i.e., prohibit nondeterminism) in condition (2). When nondeterministic functions are needed, we also provide a syntactic fragment that provides a support of nondeterministic functions but can be reduced to an existing solver SLOTH. We provide an efficient implementation of our decision procedure for deterministic partial string functions in a new string solver OSTRICH. It provides built-in support for concatenation, reverse, functional transducers, and replaceall and provides a framework for extensibility to support further string functions. We demonstrate the efficacy of our new solver against other competitive solvers.
Key facts. Cited by 4 papers in the map (data through 7 Oct 2026). First posted on arXiv 7 Nov 2018.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 1; 2022: 0; 2023: 0; 2024: 1; 2025: 1; 2026: 1.
4 papers.
- 2021Identification of Dynamical Systems using Symbolic Regressioncited by 1
- 2024Guiding Word Equation Solving using Graph Neural Networks (Extended Technical Report)cited by 1
- 2025When GNNs Met a Word Equations Solver: Learning to Rank Equations (Extended Technical Report)cited by 0
- 2026Learning Splitting Heuristics for Parallel String Solverscited by 0
- 2026Learning Splitting Heuristics for Parallel String Solvers9 Jun 2026
- 2025When GNNs Met a Word Equations Solver: Learning to Rank Equations (Extended Technical Report)30 Jun 2025
- 2024Guiding Word Equation Solving using Graph Neural Networks (Extended Technical Report)19 Nov 2024
- 2021Identification of Dynamical Systems using Symbolic Regression6 Jul 2021