-
Notifications
You must be signed in to change notification settings - Fork 713
perf: de-fuel some recursive definitions in Core #11416
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
Conversation
This PR lets recursive functions defined by well-founded recursion use a different `fix` function when the termination measure is of type `Nat`. This fix-point operator use structural recursion on “fuel”, initialized by the given measure, and is thus reasonable to reduce, e.g. in `by decide` proofs.
…lean4 into joachim/nat-fix
…lean4 into joachim/nat-fix
…lean4 into joachim/nat-fix
|
!radar |
|
Benchmark results for e09c73e against a4f9a79 are in! @nomeata Major changes (2)
Minor changes (2)
|
|
!radar |
|
Benchmark results for 5ee79ed against a4f9a79 are in! @nomeata Major changes (4)
Minor changes (1)
|
|
Reference manual CI status:
|
|
Mathlib CI status (docs):
|
8580d0e to
5e5421d
Compare
|
!radar |
|
Benchmark results for 5e5421d against a4f9a79 are in! @nomeata Runs (2)
|
(but only those that do not have a `Nat.rec`-based compagnon)
|
!radar |
|
Benchmark results for c49d679 against a4f9a79 are in! @nomeata Major changes (3)
|
|
!radar |
|
Benchmark results for 74c7bab against 455fd0b are in! @nomeata Minor changes (1)
|
|
!radar |
|
Benchmark results for 22e91fa against 455fd0b are in! @nomeata Minor changes (1)
|
|
This PR follows up on #7965 and avoids manual fuel constructions in some recursive definitions.
This PR follows up on #7965 and avoids manual fuel constructions in some recursive definitions.