Skip to content

Conversation

@michael-schwarz
Copy link
Member

Helper analysis to be path-sensitive in the set(!) of taken branches. This is a lightweight version of #1791 that has some hope of terminating.

As @sim642 remarked somewhere else, this is an instance of trace partitioning (or of ego-lane derived digests 😉) and many other abstractions are also conceivable.

@michael-schwarz michael-schwarz added feature sv-comp SV-COMP (analyses, results), witnesses precision labels Jul 29, 2025
@michael-schwarz
Copy link
Member Author

Until we have a forward propagating solver, this will still die a quadratic death, but maybe for some SV-COMP tasks this will be enough.

@sim642 sim642 added this to the SV-COMP 2026 milestone Jul 30, 2025
@michael-schwarz michael-schwarz requested a review from sim642 July 30, 2025 08:30
@michael-schwarz
Copy link
Member Author

Failing CI is erratique.ch being erratic again.

Copy link
Collaborator

@DrMichaelPetter DrMichaelPetter left a comment

Choose a reason for hiding this comment

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

LGTM

@michael-schwarz michael-schwarz merged commit cbfa1fa into master Jul 30, 2025
21 of 22 checks passed
@michael-schwarz michael-schwarz deleted the branch_set branch July 30, 2025 09:13
@DrMichaelPetter
Copy link
Collaborator

Adding branchSet to svcomp25.json unlocks 117 additional true verdicts that were previously unknown in a 300 sec run.

sim642 added a commit to sim642/opam-repository that referenced this pull request Sep 5, 2025
CHANGES:

* Add division by zero analysis (goblint/analyzer#1764).
* Add bitfield domain (goblint/analyzer#1623).
* Add weakly-relational C-2PO pointer analysis (goblint/analyzer#1485).
* Add widening delay (goblint/analyzer#1358, goblint/analyzer#1442, goblint/analyzer#1483).
* Add narrowing of globals to top-down solver (goblint/analyzer#1636).
* Add weak dependencies to top-down solver (goblint/analyzer#1746, goblint/analyzer#1747).
* Add YAML ghost witness generation (goblint/analyzer#1394).
* Remove GraphML witness generation (goblint/analyzer#1732, goblint/analyzer#1733, goblint/analyzer#1738).
* Use C standard option for preprocessing (goblint/analyzer#1807).
* Add bash completion for array options (goblint/analyzer#1670, goblint/analyzer#1705, goblint/analyzer#1750).
* Make `malloc(0)` semantics configurable (goblint/analyzer#1418, goblint/analyzer#1777).
* Update path-sensitive analyses (goblint/analyzer#1785, goblint/analyzer#1791, goblint/analyzer#1792).
* Fix evaluation of library function arguments (goblint/analyzer#1758, goblint/analyzer#1761).
* Optimize affine equalities analysis using sparse matrices (goblint/analyzer#1459, goblint/analyzer#1625).
* Prepare for parallelism (goblint/analyzer#1708, goblint/analyzer#1744, goblint/analyzer#1748, goblint/analyzer#1781, goblint/analyzer#1790).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature precision sv-comp SV-COMP (analyses, results), witnesses

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants