-
Notifications
You must be signed in to change notification settings - Fork 49
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
(expt 2 8)
induction?
#448
Comments
@joe-hauns - when you get a minute, should the current theory machinery handle this "evaluation" use case somehow in your view? Otherwise I'll close as I don't think we can do much better here at present. |
What kind of induction are you hoping to do here (I haven't looked closely at the actual problem)? You have integers but you've picked the structural induction schedule, which is over datatypes and recursive functions (which you also have). I think just picking the |
Thanks for the hints! All I can say right now about this is that the
that might suggest that It's just that I'm not sure whether I can or should be poring over papers, logs and source code to see what every option does (and how small changes in the problem affect the proving process). Still, I might come back to this when I have the chance. |
Well i don't really know anything about how we handle |
@joe-hauns I think handling @kazarmy ... I feel your pain. The current schedules are generated based on sample problems and it sounds like your use case doesn't fall nicely into any of those sets. The issue you're facing is that some combinations of options probably weren't explored when generating those schedules so we don't see them. If I had your problem I'd define an experiment that searched the option space to find a nice set of complementary options for a representative set of problems but that's a lot of compute and requires extra knowledge in which strategies you should be trying. Over the last 10 years we keep discussing whether this is a service we could provide to users but it's a big effort that nobody's working on. |
Sadly I think this is something we're not expecting to work well (yet). I looked vaguely at proof search and I'd expect this to rewrite "backwards" from the goal, but it doesn't because the symbol precedence forbids it, I think.Perhaps future work with arithmetic or recursive functions will improve matters. @mezpusz I think you're the expert here, if you've got anything to add please do! |
Sorry for the late reply! As far as I see, induction won't help here since we cannot generalize |
I have the following:
(yes it's a partial reimplementation of ACL2's
expt
)Vampire 4.7 (807e37dd9) proves the above (with some difficulty) using:
but when I change the assert to:
Vampire doesn't find the proof within the time limit anymore. Now I know that CVC5 1.0.5 proves the above assertion instantly, so are there are any other options that I need to set to encourage Vampire to go down the constant term instantiation path? -- I hope I'm using terms correctly here.
The text was updated successfully, but these errors were encountered: