Skip to content
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

Consolidation of generally useful Coq code into Coq Platform projects #143

Open
1 of 13 tasks
palmskog opened this issue Dec 10, 2022 · 8 comments
Open
1 of 13 tasks
Labels
meta To ask questions / discuss about the organization / process of coq-community.

Comments

@palmskog
Copy link
Member

palmskog commented Dec 10, 2022

Generally useful Coq code is often fragmented into many projects working at different levels of abstraction. For example, Coq code with results about primes may be part of a program verification project, which can make reuse difficult in other projects. A solution to this problem is continuous consolidation of general results into Coq libraries that are part of the Coq Platform, such as CoqPrime or Coq's Standard library itself.

This issue is an attempt at driving consolidation of Coq projects (focusing primarily on Coq-community projects) by facilitating discussion and tracking consolidation issues.

@palmskog palmskog added the meta To ask questions / discuss about the organization / process of coq-community. label Dec 10, 2022
@Zimmi48
Copy link
Member

Zimmi48 commented Dec 10, 2022

Related to this project, it would be really useful to produce a mapping of the content of the packages in the Coq ecosystem (similar to how the Lean community does it for mathlib) so that we have an overview of the available results and how the package boundaries are a good match or not with the results these packages contain.

@andres-erbsen
Copy link

andres-erbsen commented Dec 10, 2022

Additional candidates for consolidation are the utility libraries of Fiat Cryptography and Bedrock2. There is an issue about consolidating them with each other here. Both projects are on Coq CI and actively maintained. Fiat Cryptography already uses Coqprime so consolidation between them would have immediate benefits.

@palmskog palmskog changed the title Consolidation of Coq code from Coq-community into Coq Platform projects Consolidation of generally useful Coq code into Coq Platform projects Dec 10, 2022
@SnarkBoojum
Copy link

Some projects have additions for stdlib ; stdpp is a whole project of it, corn has a stdlib_omissions directory... that's just from the top of my head.

@spitters
Copy link

@andres-erbsen What is the status of https://github.com/mit-plv/coqutil/ ? It does not seem to come with opam files.
Would it be worth including it in platform? Or should it be refactored? It looks like part of it could be included into coq-prime, or at least should have a common home.

@palmskog
Copy link
Member Author

@spitters coq-coqutil.0.0.2 was the in latest Coq Platform extended level.

However, I don't think it was included by itself, but rather as a dependency for Fiat Crypto (which had some really valuable release engineering to be included in the Platform).

@andres-erbsen
Copy link

@spitters I am not sure which parts of coqutil would be a good fit for coqprime, but I am looking to contribute substantially overlapping functionality to the standard library. The two PRs linked right above your message are of this nature. Is there a specific part of coqutil that you would be interested in?

As for opam, coqutil and related repositories do not include opam files because their maintainers do not use opam. @JasonGross did make some opam files at the request of Coq Bench & Coq Platform developers, but I am not sure of the status of these files.

@spitters
Copy link

@andres-erbsen I think it's a great start to move such lemmas to the stdlib. Since you mention using modulo arithmetic for machine integers, it might be worth having a peek at the other machine integer projects mentioned here:
https://github.com/coq/coq/pull/17043/files#diff-b656e8beafc96bdf5e12ce145cf875e6b72f2d48810d53642deadc0a373bc889

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
meta To ask questions / discuss about the organization / process of coq-community.
Projects
None yet
Development

No branches or pull requests

5 participants