Skip to content

Commit 0062a0e

Browse files
Kirill GolubevKirill Golubev
authored andcommitted
on separation logic support in smt solvers as of the 2022's end
1 parent 3c4e8bc commit 0062a0e

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

liquidjava-umbrella/liquidjava-verifier/regarding_cvc5.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,23 @@
1-
# Notes on integraing cvc5 to Liquid Java:
1+
# Notes on state of Separating logic support in SMT-solvers
2+
3+
## TL;DR
4+
5+
Sadly, as of the end of 2022 the the best one can get is `CVC5`, but even there it is only a small subset. There is no way to do `exists v. x -> v`. It requires to use `ALL` in `set-logic` command and gives `unknown` even for simpliest examples.
6+
7+
## Sources of information
8+
9+
Best on is the [sl-comp](https://sl-comp.github.io/), the should be more links to relevant sources there, but as usual, it is best one can get. There will be some usefull information about separation logic subsets supported and what one should expect from differenet tools. The only SMT-sovler participated there is CVC4 and it handles only `propositional separation logic`. No quantifiers and no recursive functions. Other pariticipants are standalone tools with no uniform API. Also, majority of them are only available as binaries and have no documenation.
10+
11+
The best source of information is however the [repository of sl-comp18](https://github.com/sl-comp/SL-COMP18/), there are pieces of code and text which can be comprehended by common human being and they give said human an understanding of what is acutally possible to do with each tool.
12+
13+
There are couple useful papers:
14+
- [SMT-lib doc](https://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.6-r2021-05-12.pdf)
15+
- [SMT-lib tutorial](http://smtlib.github.io/jSMTLIB/SMTLIBTutorial.pdf)
16+
- [SL-COMP syntax expanstion for smt-lib](https://hal.archives-ouvertes.fr/hal-02388022/document)
17+
18+
I CAN NOT STRESS THIS ENOUGH: SL-COMP uses custom expansion for smt-lib and custom separation logic subset naming, so there are no other sources except their repository.
19+
20+
# Notes on integrating cvc5 to Liquid Java
221

322
## Overview
423

0 commit comments

Comments
 (0)