Astral is a solver for separation logic based on translation to SMT. Astral supports clasical separation logic as well as strong-separation logic (SSL), in particular, it supports several features that are not supported by other solvers such as limited support for magic wands and arbitrary mixing and nesting of boolean and spatial connectives (see supported fragment).
The solver is currently able to use two SMT backends – Z3 and cvc5.
Let
Atomic formula | Input syntax | Semantics |
---|---|---|
(= x y) |
|
|
(distinct x y) |
|
|
(pto x y) | ||
emp | ||
|
(ls x y) |
|
Let
Connective | Input syntax | Semantics |
---|---|---|
(and |
||
(or |
||
(and |
||
(sep |
||
|
(septraction |
A formula
(declare-sort Loc 0) ;; Declaration of location sort. Currently fixed to this form by Astral.
(declare-heap (Loc Loc)) ;; Declaration of heap sort. Currently fixed to this form by Astral.
;; Declaration of location variables
(declare-const x Loc)
(declare-const y Loc)
;; Input formula
(assert
(septraction
(pto x y)
(ls x y)
)
)
(check-sat)
After cloning the repository, run opam install .
to install Astral. Then the solver can be run by the command astral formula.smt2
.
-
Tomáš Dacík, Adam Rogalewicz, Tomáš Vojnar, and Florian Zuleger. Deciding Boolean Separation Logic via Small Models. In TACAS 2024. Technical report. Artifact.
-
Dacík, Tomáš. A Decision Procedure for Strong-Separation Logic. Brno, 2022. Master's Thesis. Brno University of Technology, Faculty of Information Technology. 2022-08-25. Supervised by Vojnar Tomáš.
If you have any questions, do not hesitate to contact the tool/method authors:
- Tomáš Dacík <[email protected]>
- Adam Rogalewicz <[email protected]>
- Tomáš Vojnar <[email protected]>
- Florian Zuleger<[email protected]>
The tool is available under MIT license.
The development was supported by projects SNAPPY and AIDE of the Czech Science Foundation. The main author of the tool was supported by Brno Ph.D. Talent Scholarship funded by the Brno City Municipality.