-
Notifications
You must be signed in to change notification settings - Fork 63
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
"Apply evidence mismatch: non-function or dependent function" #1584
Comments
The problem seems to be that |
Indeed, we cannot handle applying universal quantifiers at the moment. In the worst case, this can't be done without requiring the user to provide the instantiation for the quantifier. I think this can already be done now in a very clunky way by a combination of In many cases, however, an instantiation can be discovered via unification. This gets quite a bit more complicated to implement, but should handle lots of the easier cases. I don't know if we have the necessary flavor of unification already implemented. |
Looking at the code history a bit, I think I underestimated what I think we need to capture the computed instantiations in that step so the evidence checking pass knows how to specialize the given theorem. |
The |
I was thinking about updating the |
That is roughly what I was considering as well. This would let us pretty easily implement an explicit specialization step also. We'll have to think pretty carefully about making sure de Brujin variable bindings end up handled correctly, but is should otherwise be OK. |
Fixed via #1587 |
I'm trying to speed up a SAW proof by using a tactic to do explicit case analysis on a boolean variable
b
. Runningz3
separately on two goals withb
instantiated toTrue
andFalse
turns out to be much faster than runningz3
on a single goal whereb
is a symbolic boolean variable.To do the case splitting, I defined a case splitting rule with
core_axiom
like this:and then I used
goal_apply Bool_cases
in the later proof. The tactic seemed to work, I was able to print each of the resulting subgoals withprint_goal
, they looked like I expected them to, andz3
was able to discharge each of the new goals. But then when the proof script finished, I got this error message at the end:What's up with this? This example should work.
The text was updated successfully, but these errors were encountered: