-
Notifications
You must be signed in to change notification settings - Fork 28
Prepare move of ring/field and micromega computational part to Corelib #207
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
base: master
Are you sure you want to change the base?
Conversation
8859424 to
b686456
Compare
8fdbfd6 to
6702112
Compare
In preparation of move to Corelib.
In preparation of move to Corelib.
In preparation of move to Corelib.
6702112 to
f870fe2
Compare
Was purely redundant with eKind
f870fe2 to
c245560
Compare
|
What other libraries do you have in mind? Is this for mathcomp? I don't object to this change in particular, but it sure seems like a great demonstration why having stdlib separate from the main repository is a bad idea. If polynomials, boolean algebra, and cutting planes belong in corelib, what doesn't? Developing theories split across repositories like this is harder than when they are together. For example, consider the workflow and release schedule for removing EnumProof. EDIT: Added to Rocq-Call-2025-09-16 |
c245560 to
aeb2334
Compare
Virtually any library, maybe HoTT, Unimath or whatnnot. I already tested it successfully in MathComp.
The important part in the PR title is "computational part". In particular, I don't want to move any of the following, that are library specific: reificator (still in the OCaml plugin for now), theories or glue tactic. More precisely you can look at rocq-prover/rocq#21080 to see what I'd like to retrieve in Corelib: this is only generic code, independent from any library theory, and doesn't contain any proof. |
|
The alternative I proposed on the call today is to move the definitions and soundness proof of the lia proof procedure into corelib:
This would mean that tightly-coupled active development remains within corelib, with lra being a part of reals (not moved) and instantiating the proof machinery using this interface. |
|
Beyond the fact that it's a very large chunk of stdlib, we won't move to Corelib every theory out there that would want to use micromega. |
|
Yeah, we disagree here -- moving all of stdlib back would be even better. |
|
If "very large chunk" is primarily about build time, we should seriously consider composed build approaches such as BRiCk/dune or fiat-crypto/Makefile.composed. This way, projects that only need lia don't need to build e.g. reals. |
|
Anyway, we could consider merging the current PR whatever we eventually decide to do about rocq-prover/rocq#21080 since it's bringing general cleanup: removal of duplications, added documentation,... |

So that this can be used in other libraries.
This also factors some common code between ring/field and micromega (maybe proofs could also be factored further)
Overlay (to be merged before the current PR)
Overlays (ot be merged in sync with the current PR)