Skip to content
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: have autoparams report parameter/field on failure #5474

Merged
merged 5 commits into from
Sep 27, 2024

Conversation

kmill
Copy link
Collaborator

@kmill kmill commented Sep 25, 2024

Adds a mechanism where when an autoparam tactic fails to synthesize a parameter, the associated parameter name or field name for the autoparam is reported in an error.

Examples:

could not synthesize default value for parameter 'h' using tactics

could not synthesize default value for field 'inv' of 'S' using tactics

Notes:

  • Autoparams now run their tactics without any error recovery or error-to-sorry enabled. This enables catching the error and reporting the contextual information. This is justified on the grounds that autoparams are not interactive.
  • Autoparams for applications now cleanup the autoParam annotation, bringing it in line with autoparams for structure fields.
  • This preserves the old behavior that autoparams leave terminfo, but we will revisit this after some imminent improvements to the unused variable linter.

Closes #2950

Adds mechanism where when a autoparam tactic fails to synthesize a parameter, the associated parameter or field name for the autoparam is reported in an error.

Notes:
* Autoparams now run their tactics without any error recovery or error-to-sorry enabled. This enables catching the error and reporting the contextual information.
* Autoparams for applications now cleanup the autoParam annotation, brining it in line with autoparams for structure fields.

Closes leanprover#2950
@github-actions github-actions bot added the toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN label Sep 25, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/batteries that referenced this pull request Sep 25, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/mathlib4 that referenced this pull request Sep 25, 2024
@leanprover-community-bot leanprover-community-bot added the breaks-mathlib This is not necessarily a blocker for merging: but there needs to be a plan label Sep 25, 2024
@leanprover-community-bot
Copy link
Collaborator

Mathlib CI status (docs):

leanprover-community-mathlib4-bot added a commit to leanprover-community/batteries that referenced this pull request Sep 25, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/mathlib4 that referenced this pull request Sep 25, 2024
@leanprover-community-bot
Copy link
Collaborator

Mathlib CI status (docs):

@leanprover-community-bot leanprover-community-bot added builds-mathlib CI has verified that Mathlib builds against this PR and removed breaks-mathlib This is not necessarily a blocker for merging: but there needs to be a plan labels Sep 26, 2024
@leanprover-community-bot
Copy link
Collaborator

Mathlib CI status (docs):

@kim-em
Copy link
Collaborator

kim-em commented Sep 26, 2024

Really happy to see this!

@kmill kmill enabled auto-merge September 27, 2024 18:51
@kmill kmill added this pull request to the merge queue Sep 27, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/batteries that referenced this pull request Sep 27, 2024
Merged via the queue into leanprover:master with commit 1b65727 Sep 27, 2024
16 checks passed
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Bad error message when tactic for filling default field value fails
4 participants