Conversation
076107b to
47e1c7e
Compare
Why are these issues not breaking master's CI? |
Because the test-suite of paramcoq was too weak and the issue only appeared in CoqEAL (which isn't in Coq's CI) (c.f. #19228 ) |
|
The mtac2 failure is unrelated, so CI green here. |
|
I'm not actually convinced it's a good idea to let paramcoq rot. Even though there are corner cases, it's still useful to check that the code compiles, especially because the template mess is a transitory state. Hopefully with the algebraic universes around the corner it'll make things much smoother. |
|
Well, it's now redundant with elpi derive, so we'd better maintain a single plugin rather than two. |
|
But we could consider adding CoqEAL to the CI if we want to exercise those things more. |
|
Please consider keeping paramcoq in CI until its use cases can be accommodated by Trocq (and CoqEAL ported to Trocq), see for example rocq-community/trocq#40 |
|
Which use cases are you thinking about precisely? |
|
The obvious use case is: (1) generating parametricity theorems and (2) using those parametricity theorems in refinement proofs (and also type equality/isomorphism transfers). Does Elpi derive really provide this? I wouldn't consider it a "port" unless the proofs are done the same way. |
|
It provides essentially the same thing as paramcoq. |
|
I think the following is completely incomprehensible to anyone who doesn't know Elpi: Elpi derive.param2 expQnat'.
Definition expQnat_R := expQnat'_R.
Elpi Accumulate derive Db derive.param2.db.
Elpi Accumulate derive.param2.db "
:before ""param:fail""
param {{ @leq }} {{ @leq }} {{ @leq_R }}.
".
Elpi derive.param2 cast_ZQ.
Elpi derive.param2 cast_PQ.And the port has lots of these. I still think the best is to keep Paramcoq's interface, rather than forcing Elpi on its users, with an eye towards a transition to Trocq. |
|
That's just a syntactic detail that needs to be improved, I agree. But that should be trivial to do. |
|
Closing this according to last Coq call discussion: https://github.com/coq/coq/wiki/Coq-Call-2025-01-28 (@ppedrot will keep maintaining paramcoq as a Coq API testcase, there will no longer be any release following 9.0 and we will warn potential users not to use it). |
The paramcoq plugin suffers universe issues on master that I'm not able to solve. This finally motivated me to port most of its few known users (that is, mostly CoqEAL) to elpi's derive.param2, which I hope will be easier to maintain. I'll do a last (buggy) release of the plugin for Rocq 9.0 before archiving it, so we no longer need to maintain it in the CI of the master branch here.