-
Notifications
You must be signed in to change notification settings - Fork 406
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: decide!
#5631
base: master
Are you sure you want to change the base?
feat: decide!
#5631
Conversation
Mathlib CI status (docs):
|
Interesting. We just run into this issue in https://github.com/opencompl/lean-mlir/pull/673/files. In particular, we use |
The same issue crops up at #5574, where checking the proof to throw an error message when In an ideal world, there would be some sort of API that can request the kernel to check a proof from Meta code, and returns either a "checked proof handle", or an error, which can then be handled at meta-time. It seems complex to implement such a feature, though, as the kernel would then need to maintain such "checked proof handles", which is bad for TCB. |
This function already mostly exists, it's called a theorem! IIRC, a tactic can add new theorems to the environment, so we can have |
That's clever! This would allow us to half the processing time of Maybe this can hook into the ”abstract proofs” machinery used elsewhere. |
We could think of some threshold heuristic, I can imagine that for small statements like
I'm not sure I know what you're referring to here, what is this abstract proofs machinery? |
That's a possibility, if we can make it robust (run with a low number of heartbeats). But the incidental complexity and unpredictabiliy of such a design is a bit worrysome.
I'll have to look for it myself, but I've seen
|
Ah, but it's not the abstracted proofs where I saw lean use previously defined helpers from unrelated definitions, but the match compiler: lean4/src/Lean/Meta/Match/Match.lean Line 769 in f1ff9ce
|
Co-authored-by: Violeta Hernández <[email protected]>
This pull request introduces a new variant of the
decide
tactic calleddecide!
to speed up the processing of large proofs by skipping proposition checks at the time of elaboration.This is particularly useful for auto-generated lean proofs.
Fixes #5629