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

Add primitive verdict-based YAML violation witness rejection #1512

Merged
merged 10 commits into from
Sep 10, 2024

Conversation

sim642
Copy link
Member

@sim642 sim642 commented Jun 14, 2024

Closes #1301.

Most of this is just adding YAML witness violation_sequence parsing support and adapting the parsing of locations in YAML witnesses to allow for fields which the updated 2.0 format allows to omit.

The actual rejection part is laughably trivial: do nothing!

  1. If program is correct and we can prove it, we output true, which counts as refutation of violation witness.
  2. If program is correct and we cannot prove it, we output unknown.
  3. If program is incorrect, we output unknown.

Actually using any of the information in the violation sequence is a separate issue. We should be able to kill some paths or refine some values based on that, a la (linear) observer automaton.

TODO

  • Add some tests.

@sim642 sim642 added feature sv-comp SV-COMP (analyses, results), witnesses labels Jun 14, 2024
@sim642 sim642 added this to the SV-COMP 2025 milestone Jun 14, 2024
@sim642 sim642 marked this pull request as ready for review June 18, 2024 10:37
@sim642
Copy link
Member Author

sim642 commented Jun 21, 2024

I tried running this on SV-COMP 2024 YAML violation witnesses (it's extremely difficult to even get them). If I did everything correctly, there are at most 160 (probably even much fewer) tasks with expected true verdict. Among them, only two of CPAchecker's we terminate with unknown. So we cannot reject anything.

Also doing some refinement with violation sequences might allow us to reject witnesses even for tasks with expected verdict false, if the error path cannot lead to the violation. But I'm not very hopeful about that.

@michael-schwarz michael-schwarz self-requested a review September 9, 2024 09:40
tests/util/yamlWitnessStrip.ml Show resolved Hide resolved
conf/svcomp-validate.json Show resolved Hide resolved
@sim642 sim642 merged commit 52817d6 into master Sep 10, 2024
21 checks passed
@sim642 sim642 deleted the yaml-witness-violation-reject branch September 10, 2024 08:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature sv-comp SV-COMP (analyses, results), witnesses
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Reject YAML violation witnesses
2 participants