-
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
goal_eval messes up variable names #985
Comments
For goals involving free variables (such as proof obligations arising from Looking at the implementation of saw-script/src/SAWScript/Builtins.hs Lines 533 to 544 in 6789b1a
Function What we need to do is use the |
I just made a PR that fixes the problem. It turns out that it was easier to just avoid sending lambdas to the what4 backend in the first place, converting them to free variables first (because |
The
goal_eval
andgoal_eval_unint
commands have the unfortunate effect of renaming the variables used in a goal, so that counterexamples are not easily related to the original formula. For example, without these commands, we get something likewhile if we include one of these commands
Obviously in this example we can guess that each of
y
andz
has been replaced by two variables, and can reconstruct the counterexamples iny
andz
. In larger examples it is not so simple.The simple answer is to avoid using
goal_eval
, but there is no other easy way to expand comprehensions, maps, or folds appearing in a formula.The text was updated successfully, but these errors were encountered: