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

Re-start node processing after introducing an equivalence condition during observables check #443

Open
danmatichuk opened this issue Sep 4, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@danmatichuk
Copy link
Collaborator

When the user adds an equivalence condition to handle an observable difference, the introduced condition is not put into the assumption context until the next time that node is processed. The result is that subsequent widening steps will occur in the weakened assumption context (i.e. not assuming the equivalence condition) and the result is a weaker equivalence domain than we would expect.

All of the call sites for observable checks (only 3 or so) need to be modified to handle the case where the node processing is to be immediately stopped and re-started with the additional assumption in scope, to avoid introducing this weakened equivalence condition and propagating it forward.

An alternative approach would be to queue the modification to occur after the node processing is finished (which will then cause that node to be immediately re-queued). This does a little bit of redundant work (i.e. any work done after the observable difference is found needs to be re-done), but probably involves changing less code.

@danmatichuk danmatichuk added the bug Something isn't working label Sep 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant