Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added CHC algorithm to Xsts #289

Merged
merged 4 commits into from
Aug 5, 2024
Merged

Added CHC algorithm to Xsts #289

merged 4 commits into from
Aug 5, 2024

Conversation

leventeBajczi
Copy link
Contributor

@leventeBajczi leventeBajczi commented Jul 31, 2024

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.

@leventeBajczi
Copy link
Contributor Author

Unfortunately, horn solvers tend not to support custom datatypes and sorts, so I replaced every enumType with an int.

@leventeBajczi leventeBajczi added the Ready to test This will run the final sonar check in PRs. label Jul 31, 2024
mondokm
mondokm previously approved these changes Aug 5, 2024
Copy link
Contributor

@mondokm mondokm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Thank you!

@mondokm mondokm merged commit d94385a into master Aug 5, 2024
28 of 37 checks passed
@mondokm mondokm deleted the xsts-chc branch August 5, 2024 08:50
Copy link

sonarcloud bot commented Aug 5, 2024

Copy link

github-actions bot commented Aug 5, 2024

Benchexec test report for a selection of SV-Benchmarks (correct / incorrect / all):

task set BOUNDED CEGAR HORN
ConcurrencySafety-Main ❓ (0 / 0 / 50) HTML/CSV ✅ (19 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV
ConcurrencySafety-MemSafety ❓ (0 / 0 / 50) HTML/CSV ✅ (43 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV
ConcurrencySafety-NoOverflows ❓ (0 / 0 / 50) HTML/CSV ✅ (39 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV
NoDataRace-Main ❓ (0 / 0 / 50) HTML/CSV ✅ (24 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV
ReachSafety-Arrays ❓ (0 / 0 / 50) HTML/CSV ✅ (1 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV
ReachSafety-BitVectors ✅ (14 / 0 / 46) HTML/CSV ✅ (14 / 0 / 46) HTML/CSV ✅ (12 / 0 / 46) HTML/CSV
ReachSafety-Combinations ❓ (0 / 0 / 50) HTML/CSV ✅ (3 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV
ReachSafety-ControlFlow ✅ (3 / 0 / 50) HTML/CSV ✅ (2 / 0 / 50) HTML/CSV ✅ (17 / 0 / 50) HTML/CSV
ReachSafety-ECA ❓ (0 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV
ReachSafety-Floats ❗ (7 / 1 / 50) HTML/CSV ✅ (15 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV
ReachSafety-Hardware ✅ (2 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV
ReachSafety-Heap ✅ (2 / 0 / 11) HTML/CSV ✅ (10 / 0 / 11) HTML/CSV ❗ (2 / 1 / 11) HTML/CSV
ReachSafety-Loops ✅ (16 / 0 / 50) HTML/CSV ✅ (11 / 0 / 50) HTML/CSV ✅ (12 / 0 / 50) HTML/CSV
ReachSafety-Recursive ❓ (0 / 0 / 50) HTML/CSV ✅ (13 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV
ReachSafety-Sequentialized ❓ (0 / 0 / 50) HTML/CSV ✅ (1 / 0 / 50) HTML/CSV ✅ (2 / 0 / 50) HTML/CSV
ReachSafety-XCSP ❓ (0 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV ❓ (0 / 0 / 50) HTML/CSV

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Ready to test This will run the final sonar check in PRs.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants