-
Notifications
You must be signed in to change notification settings - Fork 297
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
[Merged by Bors] - fix(tactic/induction): fix multiple cases'/induction' bugs #7717
Conversation
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.
Thanks! My only complaint is that it was hard to figure out which changes correspond to which fix. However, the tests make me confident enough that they work, even ignoring my confidence in your coding skills :)
bors d+
✌️ JLimperg can now approve this pull request. To approve and merge a pull request, simply reply with |
Thanks! Sorry for being too lazy to disentangle the various changes. bors r+ |
I wonder why Bors didn't notice your comment, maybe the Fastly outage? bors r+ |
bors r- |
✌️ JLimperg can now approve this pull request. To approve and merge a pull request, simply reply with |
Canceled. |
* Fix generalisation in the presence of frozen local instances. Any time we revert a potentially frozen hypothesis, we now unfreeze local hypotheses during the operation. This makes sure that generalisation works uniformly whether or not any local instances are frozen. * Treat local defs as fixed during auto-generalisation induction' gets confused if we generalise over local definitions since they turn into lets when reverted. Ideally, we would handle local defs transparently, but that would require a lot of new code. So instead, we at least stop auto-generalisation from generalising them (and their dependencies). * Handle infinitely branching types induction' and cases' previously did not acknowledge the existence of infinitely branching types at all, leading to various internal errors. New test cases for all these bugs, due to Patrick Massot, were added to the test suite.
Thanks Anne for prodding Bors, and Sebastien for prodding me. bors r+ |
* Fix generalisation in the presence of frozen local instances. Any time we revert a potentially frozen hypothesis, we now unfreeze local hypotheses during the operation. This makes sure that generalisation works uniformly whether or not any local instances are frozen. * Treat local defs as fixed during auto-generalisation induction' gets confused if we generalise over local definitions since they turn into lets when reverted. Ideally, we would handle local defs transparently, but that would require a lot of new code. So instead, we at least stop auto-generalisation from generalising them (and their dependencies). * Handle infinitely branching types induction' and cases' previously did not acknowledge the existence of infinitely branching types at all, leading to various internal errors. New test cases for all these bugs, due to Patrick Massot, were added to the test suite.
Pull request successfully merged into master. Build succeeded: |
Fix generalisation in the presence of frozen local instances.
Any time we revert a potentially frozen hypothesis, we now unfreeze local
hypotheses during the operation. This makes sure that generalisation works
uniformly whether or not any local instances are frozen.
Treat local defs as fixed during auto-generalisation
induction' gets confused if we generalise over local definitions since they
turn into lets when reverted. Ideally, we would handle local defs
transparently, but that would require a lot of new code. So instead, we at
least stop auto-generalisation from generalising them (and their
dependencies).
Handle infinitely branching types
induction' and cases' previously did not acknowledge the existence of
infinitely branching types at all, leading to various internal errors.
New test cases for all these bugs, due to Patrick Massot, were added to the test
suite.