rocq-prover / rocq-prover/stdlib
How to transparently manage different naming schemes, or different ordering of arguments, etc. in libraries?
Nobody has claimed this yet.
- Dominant language
- Rocq Prover
- Stars
- 42
- Forks
- 38
- Avg merge
- 14h 6m
- Merged PRs (30d)
- 3
Description
This was already discussed here and there, but, motivated by coq/coq#6282, let me open an explicit issue to collect potential discussions.
There are many lemmas here and there in the community, especially about standard structures such as lists, or natural, integer, rational, real arithmetic. The standard library itself mixes different naming schemes, e.g. the
nat-specific styleS_pred- vs a more generic style
lt_succ_pred,
and different conventions in formulating a statement, e.g. the
iffstyle as insucc_lt_mono: forall n m, n < m <-> succ n < succ m- vs an
implstyle as inlt_S_n : forall n m, S n < S m -> n < mandlt_n_S: forall n m, n < m -> S n < S m
or in the order of expressions in equality, the
->-rewriting style oflt_succ_pred : forall n m, m < n -> succ (pred n) = n- vs the "destructable" style of
S_pred : forall n m, m < n -> n = succ (pred n))
etc.
Morally, all this is equivalent. Morally, we should be able to find easily a needed lemma whether it is in the standard library, in math-comp, in TLC, in coq-std++, in a local library, in one of the miscellaneous MoreList files that many users add to their development (e.g. here), etc. (Not talking about the long-term goal of building a "universal" library of (possibly "big") proofs.)
So, how to make progress in the direction of transparently supporting superficially-heterogenous styles, whether is it in searching or using lemmas, etc?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the naming and statement examples in the standard library, then compare the linked math-comp, TLC, coq-std++, and MoreList resources. Identify a concrete approach for finding or applying equivalent lemmas across conventions; done requires a decided scope and an agreed implementation path.
Written by the indexing model from the issue text.
Assessment
- Domain
- search, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100