-
Notifications
You must be signed in to change notification settings - Fork 715
feat: "sine qua non" premise selection #11002
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 requirement sounds similar to what loogle needs for efficient local usage. Maybe some general infrastructure for efficiently indexing lean module can emerge - for example we only expect interactive use to use these indices, do we? So maybe a separate lake facet is the right direction? |
|
!bench |
|
Here are the benchmark results for commit 1e86f81. Benchmark Metric Change
=========================================================
- Init size bytes .olean 2.3%
+ stdlib grind canon -4.3% (-27.2 σ)
- stdlib number of imported bytes 1.6%
- stdlib size bytes .olean 1.0% |
|
Benchmark results for d8d3a82 against 1981c62 are in! @kim-em Minor changes (2)
|
|
Reference manual CI status:
|
|
Mathlib CI status (docs):
|
|
The Mathlib build has been benchmarked at https://speed.lean-lang.org/mathlib4/compare/72db3d3f-fbdf-432f-b858-f0c07dad7bd7/to/e7b27246-a3e6-496a-b552-ff4b45c7236e?hash2=ea5bbdd2d4743ff825b820efcd88f133609bbf6a It's fairly favourable: there is increased quite a bit more time spent in olean serialization, but not appreciable change in wall-clock time. 0.5% increase in olean sizes. Those seem acceptable to me, so I'm going to merge this soon. |
This PR implements the "Sine Qua Non" premise selection algorithm, as used by e.g. Vampire. It needs further tuning/tweaking, which I'll get to once the premise selection benchmark is available. Note this uses an environment extension which prepares the necessary index for every file, and I remain concerned that this could be expensive.