@Blaisorblade After quite a few unsuccessful tries, I must have picked the right keywords to find https://bedrocksystems.com/white-papers/lightweight-interfaces-coq/ as one proposal for recompilation avoidance in ITPs. May I ask whether there is any progress on it? Would you be interested in contributing to https://proofassistants.stackexchange.com/questions/335/what-is-the-state-of-recompilation-avoidance-in-proof-assistants [proofassistants.stackexchange.com] from a Coq perspective?
@kha IIRC, very roughly: people didn't love the ML modules (which I guess Lean avoids?), and preferred a command to attach bodies to axioms, but we never finalized a design. I can find discussions later...
Independently, I've linked your Q on our Zulip — I'll try to take a closer look later!
@Blaisorblade Thanks! Attaching the bodies separately is an interesting idea. For Lean indeed I would like to go in a different direction, generating the interface file from the full file but with more flexibility than .vos (and only one pass).
@kha Oh, since Lean avoids typical ambiguity,
single-pass vos in Lean becomes easy, isn't it?
Is the extra flexibility about hiding bodies, and does that interact with https://arxiv.org/abs/2210.05420 ?
@Blaisorblade Yes, there is no need for a global step. We do have some leaks from proof bodies but people seem to agree that these should be fixed anyway.
Controlling unfolding across files will be a big part of it, yes, controlling it inside a file would be a nice but somewhat orthogonal extension I think (and needs to interact with caches :/).
I wrote down some musings on the future of Lean's module system in https://leanprover.github.io/papers/thesis-sebastian.pdf#section.3.3
@kha I've added https://github.com/coq/ceps/pull/62#issuecomment-1686318919 my high-level questions about `Link A_body with A_parameter.`
@Blaisorblade @kha I think I have seen Gaetan Gilbert grumble that the module system is a mess.
@kha Also, thanks for the interest and curious about the "unsuccessful tries" — is there sth we could/should improve?
@Blaisorblade The terminology around this topic is certainly confusing, I must have picked the wrong combinations for googling. Always hard to search for something you don't know whether it exists!
@Blaisorblade The PA.SE post was my try at having others do that work for me :>