Closed leventeBajczi closed 3 months ago
Unfortunately, horn solvers tend not to support custom datatypes and sorts, so I replaced every enumType with an int.
Issues
26 New issues
0 Accepted issues
Measures
0 Security Hotspots
63.9% Coverage on New Code
0.0% Duplication on New Code
Benchexec test report for a selection of SV-Benchmarks (correct / incorrect / all):
task set | BOUNDED | CEGAR | HORN |
---|---|---|---|
ConcurrencySafety-Main | :question: (0 / 0 / 50) HTML/CSV | :white_check_mark: (19 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV |
ConcurrencySafety-MemSafety | :question: (0 / 0 / 50) HTML/CSV | :white_check_mark: (43 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV |
ConcurrencySafety-NoOverflows | :question: (0 / 0 / 50) HTML/CSV | :white_check_mark: (39 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV |
NoDataRace-Main | :question: (0 / 0 / 50) HTML/CSV | :white_check_mark: (24 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV |
ReachSafety-Arrays | :question: (0 / 0 / 50) HTML/CSV | :white_check_mark: (1 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV |
ReachSafety-BitVectors | :white_check_mark: (14 / 0 / 46) HTML/CSV | :white_check_mark: (14 / 0 / 46) HTML/CSV | :white_check_mark: (12 / 0 / 46) HTML/CSV |
ReachSafety-Combinations | :question: (0 / 0 / 50) HTML/CSV | :white_check_mark: (3 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV |
ReachSafety-ControlFlow | :white_check_mark: (3 / 0 / 50) HTML/CSV | :white_check_mark: (2 / 0 / 50) HTML/CSV | :white_check_mark: (17 / 0 / 50) HTML/CSV |
ReachSafety-ECA | :question: (0 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV |
ReachSafety-Floats | :exclamation: (7 / 1 / 50) HTML/CSV | :white_check_mark: (15 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV |
ReachSafety-Hardware | :white_check_mark: (2 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV |
ReachSafety-Heap | :white_check_mark: (2 / 0 / 11) HTML/CSV | :white_check_mark: (10 / 0 / 11) HTML/CSV | :exclamation: (2 / 1 / 11) HTML/CSV |
ReachSafety-Loops | :white_check_mark: (16 / 0 / 50) HTML/CSV | :white_check_mark: (11 / 0 / 50) HTML/CSV | :white_check_mark: (12 / 0 / 50) HTML/CSV |
ReachSafety-Recursive | :question: (0 / 0 / 50) HTML/CSV | :white_check_mark: (13 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV |
ReachSafety-Sequentialized | :question: (0 / 0 / 50) HTML/CSV | :white_check_mark: (1 / 0 / 50) HTML/CSV | :white_check_mark: (2 / 0 / 50) HTML/CSV |
ReachSafety-XCSP | :question: (0 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV | :question: (0 / 0 / 50) HTML/CSV |
This PR adds support for the Horn solving backend for Xstss.
Right now we don't support proof/CeX transformation, but that should be trivial, if it turns out this feature is useful.
I've added some tests, and it seems like there are no mistakes on the simple examples, but a more thorough testing would definitely be necessary.
Also, if it turns out this is useful, we could also think about useful ways of representing correctness proofs, because the horn solvers give us invariants for both the "env" and "trans" steps.