-
Notifications
You must be signed in to change notification settings - Fork 75
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
Fix incremental warnings with reluctant destabilization #709
Conversation
…structures as well (issue #708)
The now-failing incremental test added by @vesalvojdani actually leads to a bigger problem. There it appears that a warning is removed when it should not be, because the new version of the function also has the same problem. But we won't really be able to take the old warnings at the old nodes and somehow move them to new nodes, since we aren't aware of any correspondence (and there might even not be any). So the real issue is that warnings from the new version of the function do not appear if reluctant destabilization detects that the return state doesn't change and avoids destabilizing it. I believe we would also have a problem if the old function had no warning, but the new version does, while the return state remains unchanged. This is due to the unusual structure of reluctant destabilization solving: we solve some intermediate part of the constraint system and the destabilization doesn't lead all the way to the queried return node of the main function. Hence the latter remains superstable and interactive postsolving never does any work: the reluctantly solved function isn't re-evaluated for postsolving at all, so no warnings, no accesses and no verification of it. |
I added a third test also for this direction.
To fix this I added a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Works on the race-synthetic examples.
Closes #708.
I tried the fix on the one test I added to confirm it works, but didn't experiment on more incremental tests with reluctant destabilization enabled.
Changes