Skip to content

Conversation

@proux01
Copy link
Contributor

@proux01 proux01 commented Sep 11, 2025

This way it can be used by other libraries than just Stdlib.
Maybe more importantly, having the datastructures closer from the OCaml plugin will ease further developments of micromega.
See rocq-prover/stdlib#207 for the adaptation in Stdlib

Scheduled for discussion on rocq call 2025-09-23

  • Added / updated test-suite.
  • Added changelog.
  • Added / updated documentation.
    • Documented any new / changed user messages.
    • Updated documented syntax by running make doc_gram_rsts.

@proux01 proux01 added this to the 9.2+rc1 milestone Sep 11, 2025
@proux01 proux01 added kind: enhancement Enhancement to an existing user-facing feature, tactic, etc. part: micromega The lia, nia, lra, nra and psatz tactics. Also the legacy omega tactic. part: core library Corelib in theories/ labels Sep 11, 2025
@coqbot-app coqbot-app bot added the needs: full CI The latest GitLab pipeline that ran was a light CI. Say "@coqbot run full ci" to get a full CI. label Sep 11, 2025
@proux01 proux01 changed the title [Corelib] Retrieve micromega computational part from Stdlib [Corelib] Retrieve ring/field/micromega computational part from Stdlib Sep 11, 2025
@proux01 proux01 marked this pull request as ready for review September 11, 2025 10:49
@proux01 proux01 requested review from a team as code owners September 11, 2025 10:49
@proux01
Copy link
Contributor Author

proux01 commented Sep 11, 2025

Cc @fajb

@SkySkimmer
Copy link
Contributor

What prompted this?

@proux01
Copy link
Contributor Author

proux01 commented Sep 22, 2025

For the context: when giving Stdlib it's own repository, we applied a simple rule: keep .ml files in the rocq repository and .v files in the new stdlib repository. We already knew that this was leaving room for improvement, with the micromega plugin referencing constants in another repository. This is such an improvement.
It is not a definitive solution however, the reifier of micromega for Stdlib terms remains implemented in the ocaml plugin whereas it should probably ideally be implemented in some extension language (like Ltac2) in the stdlib repository.

@proux01
Copy link
Contributor Author

proux01 commented Sep 24, 2025

Thinking a bit more about it, maybe a good solution would be to have a dedicated repo for micromega, hosting the plugin and definitions in the current PR, this way:

  • each version of micromega could support a few consecutive versions of Rocq
  • each user library could peek a single version of micromega they support, and could then adapt to micromega evolutions at its own pace, without needing any conditional compilation

This would both allow easy evolutions of micromega with all exeutable code in the same repo (and overlays to test the theories on top of it) and easy adaptation of the user libraries, that would just have to peek the version they are using, while remaining compatible with multiple versions of Rocq.

@proux01
Copy link
Contributor Author

proux01 commented Sep 29, 2025

Let's discuss that next week https://github.com/rocq-prover/rocq/wiki/Rocq-Call-2025-10-07

@andres-erbsen
Copy link
Contributor

Having the definitions separate from the proofs does not seem acceptable to me, for all the reasons discussed during last call. Having micromega in its own repo could be discussed, but that repo would have to include or depend on the relevant stdlib proofs.

@proux01
Copy link
Contributor Author

proux01 commented Oct 2, 2025

As written above, a micromega repo can't depend on Stdlib, it's the other way around: Stdlib depends on the micromega repo (so that Stdlib can choose its version of micromega).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind: enhancement Enhancement to an existing user-facing feature, tactic, etc. needs: full CI The latest GitLab pipeline that ran was a light CI. Say "@coqbot run full ci" to get a full CI. part: core library Corelib in theories/ part: micromega The lia, nia, lra, nra and psatz tactics. Also the legacy omega tactic.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants