Skip to content

Add primitive verdict-based YAML violation witness rejection#1512

Merged
sim642 merged 10 commits into
masterfrom
yaml-witness-violation-reject
Sep 10, 2024
Merged

Add primitive verdict-based YAML violation witness rejection#1512
sim642 merged 10 commits into
masterfrom
yaml-witness-violation-reject

Conversation

@sim642
Copy link
Copy Markdown
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
Copy Markdown
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
Comment thread tests/util/yamlWitnessStrip.ml
Comment thread conf/svcomp-validate.json
@sim642 sim642 merged commit 52817d6 into master Sep 10, 2024
@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