-
Notifications
You must be signed in to change notification settings - Fork 470
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
feat: WF.GuessLex: If there is only one plausible measure, use it #2954
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
these are compagnions to `MatcherApp.addArg` and `CasesOnApp.addArg` when one only has a type to transform, but not a concrete values. Prerequisite for guessing lexicographic order (#2874)
it avoids some unnecessary work, and gives better error message (squiggly lines under the failing recursive calls).
|
leanprover-community-mathlib4-bot
added a commit
to leanprover-community/mathlib4
that referenced
this pull request
Nov 24, 2023
nomeata
commented
Nov 24, 2023
leanprover-community-mathlib4-bot
added a commit
to leanprover-community/mathlib4
that referenced
this pull request
Nov 27, 2023
This seems straightforward and reasonable, and fixes some of the performance regressions of introducing GuessLex (#2960). Will merge right after that (but separately for bisecting and more helpful history). |
leanprover-community-mathlib4-bot
added a commit
to leanprover-community/mathlib4
that referenced
this pull request
Nov 27, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
builds-mathlib
CI has verified that Mathlib builds against this PR
toolchain-available
A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If here is only one plausible measure, there is no point having the
GuessLex
code see if itis terminating, running all the tactics, only for the
MkFix
code then run the tactics again.So if there is only one plausible measure (non-mutual recursion with only one varying
parameter), just use that measure.
Side benefit: If the function isn’t terminating, more detailed error messages are shown
(failing proof goals), located at the recursive calls.