-
Notifications
You must be signed in to change notification settings - Fork 62
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
Potential for dangling variables #1316
Comments
Note, it's pretty easy to trigger this bug when reasoning about quantified goals. Also the Consider the following script.
It will produce the following output, where you can see the dangling variables in the output (
|
The fix for this is to either unbind a single Pi binder at a time, making sure to instantiate in the body on every step (which will rewrite in the type of further Pi binders as necessary) or to be a bit more clever to avoid re-traversing the term multiple times and only rewrite in the type of each Pi binder as necessary. |
saw-script/src/SAWScript/Proof.hs
Line 191 in 7ee6c7d
Note this pattern, where we open a term by generating fresh variables for it's Pi-bound arguments and substitute them into the body. If there are dependencies among the types of the arguments, this will result in dangling variables and probably result in some very weird effects later.
The text was updated successfully, but these errors were encountered: