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: abstract tactic #22296

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

feat: abstract tactic #22296

wants to merge 3 commits into from

Conversation

fpvandoorn
Copy link
Member

This can be used to hide long proofs in the statement of a theorem behind an auxiliary lemma.

Co-authored-by: Sven Manthe [email protected]


Open in Gitpod

@fpvandoorn fpvandoorn added the t-meta Tactics, attributes or user commands label Feb 25, 2025
Copy link

github-actions bot commented Feb 25, 2025

PR summary 52e3c47a35

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.Tactic 1
Mathlib.Tactic.Abstract (new file) 21

Declarations diff

+ foo

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.


No changes to technical debt.

You can run this locally as

./scripts/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@JovanGerb
Copy link
Collaborator

It would be nicer if the generated name was more robust. For example you could use mkAuxName ((← getDeclName?).get! ++ `abstract) 1.

Also the get! looks a bit dodgy, but it might be fine.

@JovanGerb
Copy link
Collaborator

Can you add a test showing that when tacs doesn't close the goal, abstract tacs gives the same error message as tacs?

@fpvandoorn
Copy link
Member Author

We want to support multiple abstract calls in the same lemma statement. I guess we could use the smallest number where the lemma doesn't exist yet?

@JovanGerb
Copy link
Collaborator

JovanGerb commented Feb 25, 2025

Yes, mkAuxName keeps incrementing the given number (1) until it gives a name that isn't taken yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
t-meta Tactics, attributes or user commands
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants