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

Simplify relational witness invariants #1630

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

sim642
Copy link
Member

@sim642 sim642 commented Nov 21, 2024

Simplifications

  1. Use unary minus instead of subtraction from 0: 0 - x >= 0-x >= 0.
  2. Move constant to other side instead of always comparing with 0: -10 + x >= 0x >= 10.
  3. Don't add variables with coefficient 0. Apparently they are also iterated over.

TODO

  • Avoid negation on both sides: -x >= -55 >= x.
  • Avoid initial unary minus if possible: -x + y >= 0y - x >= 0.
  • Convert dual octagon inequalities into one equality: x >= 0 && -x >= 0x == 0.
    • Use for one var filtering.

@sim642 sim642 added feature usability sv-comp SV-COMP (analyses, results), witnesses labels Nov 21, 2024
@sim642 sim642 self-assigned this Nov 21, 2024
@sim642 sim642 marked this pull request as ready for review December 9, 2024 13:15
@sim642 sim642 added this to the SV-COMP 2026 milestone Dec 9, 2024
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 usability
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant