Skip to content

Conversation

michael-schwarz
Copy link
Member

@michael-schwarz michael-schwarz commented Aug 1, 2025

This generates an equivalent forward propagating constraint system:

  • Uses ForwardCFG with all updates happening via sidel
  • Instantiates globals as spec globals plus with auxiliary globals for returns per fundec and context
  • In tf_proc use getg to get end state of procedure
  • In tf_ret side effect to appropriate helper global

It also presents Helmut's new forward solver.

@DrMichaelPetter DrMichaelPetter self-requested a review August 3, 2025 05:48
@michael-schwarz
Copy link
Member Author

michael-schwarz commented Aug 5, 2025

This is now a rudimentary version of the solver that works. Missing for something we can use in Goblint are:

  • Post-solver like iteration over results to produce warnings (using check) (done)
  • Fix detection of uncalled functions (done)
  • Extensive testing
  • Refactoring to increase reuse between constraints.ml and fwdConstraints.ml
  • Refactoring to avoid duplication between control.ml and fwdControl.ml

Plus all further features such as witness generation, SV-COMP verdicts, etc

@michael-schwarz
Copy link
Member Author

Also, we need a new concept of dead code detection, it is no longer the case that we will explicitly compute bot for such nodes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants