Decision Procedures for Sequence Theories
- 1. University of Wroclaw
- 2. RPTU and Max-Planck Institute for Software Systems
- 3. RPTU
- 4. University of Regensburg
Description
This archive is provided as artifact material for the article "Decision Procedures for Sequence Theories" Accepted for publication at CAV2023.
Sequence theories are an extension of theories of strings with an infinite alphabet of letters, together with a corresponding alphabet theory (e.g. linear integer arithmetic). Sequences are natural abstractions of standard data types including Python list, Java ArrayList, and JavaScript arrays, which are extendable arrays that permit a wealth of operations including append, map, split, concatenation, etc. In spite of the growing amount of tool support for theories of sequences by leading SMT-solvers, little is known about the decidability of sequence theories, which is in stark contrast to the state of the theories of strings. This paper performs the first systematic investigation of the decidability and computational complexity of sequence theories. We show that the decidable theory of strings with concatenation and regular constraints can be extended to the world of sequences over an alphabet theory that forms a boolean algebra, while preserving decidability. In particular, decidability holds when regular constraints are interpreted as parametric automata (which extend both symbolic automata and variable automata), but fails when interpreted as register automata (even over the alphabet theory of equality). Decidability ranges between PSPACE and EXPSPACE, depending on the theory. When length constraints are added, the problem is Turing-equivalent to word equations with length (and regular) constraints. Similar investigations are conducted in the presence of symbolic transducers, which naturally model sequence functions like map, split, filter, etc. We have developed a new sequence solver SeCo and show its efficacy on two classes of benchmarks: (i) invariant checking on array-manipulating programs and parameterized systems, and (ii) benchmarks on symbolic register automata.
Instructions to run the .ova file:
The password of the VM is "cav23".
1. Download and install VirtualBox if you don’t have it already.
2. Open VirtualBox
3. Select File and Import Appliance
4. Select your OVA file in the import box and verify the settings in the center window
5. Make any changes if you need to in that center window (Recommended: 2 cores and 4GB RAM)
6. Click Import at the bottom.
7. Allow VirtualBox to import the file and configure it for use
The root directory of the VM contains the directory "seq-solver" which contains the source code, required scripts and a README.
Files
Artifact.zip
Files
(7.3 GB)
Name | Size | Download all |
---|---|---|
md5:70d1df1339da143442412854b97a72b2
|
7.3 GB | Preview Download |