Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] proving a lemma in a proof

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] proving a lemma in a proof


Chronological Thread 
  • From: Beta Ziliani <beta AT mpi-sws.org>
  • To: Coq Club <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] proving a lemma in a proof
  • Date: Thu, 24 Jan 2019 09:44:50 -0300
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=beta AT mpi-sws.org; spf=Pass smtp.mailfrom=beta AT mpi-sws.org; spf=None smtp.helo=postmaster AT juno.mpi-klsb.mpg.de
  • Ironport-phdr: 9a23:ZFirNhxNpDfyFQbXCy+O+j09IxM/srCxBDY+r6Qd1O4TIJqq85mqBkHD//Il1AaPAd2Lraocw8Pt8InYEVQa5piAtH1QOLdtbDQizfssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB1JuPoEYLOksi7ze+/94HQbglSmDaxfa55IQmrownWqsQYm5ZpJLwryhvOrHtIeuBWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3o05MLwqxbOSxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDtU7s6RSqt4LtqSB/wiScIKTg58H3MisdtiK5XuQ+tqwBjz4LRZoyeKfhwcb7Hfd4CSmVBUMReWSxPDI2/coUBEfYOMP1CoIXhvVYDtweyCRWuCe7p1zRGhmX23ao/0+k5DAzJwhAgEMgTu3vXrdX1MKYSXvqzzKnJ0D7OaOhZ1inh6IfSaR0hpOmMXbNpfcrKx0gvDBnJjlKKqYzqJj6Y0PkGvWuD7+d4SO6ihWoqpxtsrjWr3MshiYjEipgax1zY7Sl13po5KNmiREN4YdOoCoZcuiCbOodsX88vQWNltSAnwbMco5G7ZjIFyJE/yh7fdfOHd4+I7wrhVOaMJzd4g2hpeLenhxaz6ESgyen8VtKv31pQqypFitbMumoQ2BPN8sSHS/198Vm92TuXygze5OVJLVopmaffMZIswb89moAcvEjfBiP2nV/5jK6SdkUq4Oio7OHnb639qZCCK497kBrzMqE2msy+GOg4KQYPX3OB9eS7zr3j8lX1QK9Wgf0ujqnZrJfaKNwHqa6+Gg9Zy5os6xKiDzi9y9kYhnkGLFddeB2dlYTpOlfOIOr5DfilmVisni1rlLj6OejKBYyFBXzemv+1drFkrkVY1QAbzNZF5psSBKtXc9zpXUqkntHEB1cLMgi1yuDmQIF3258XcWeXA+qCL7iUtkWHsLF8a9KQbZMY7W6uY8Mu4OTj2DpgwQdELPuZmKAPYXX9JcxIZkCQYH7imNAESDxYuxI/Cff1kxuFSzEBPi/uDZJ53SkyDcedNamGXpqk2efT2T+6W4ZJfSZBEF/eSS61JbXBYO8FbWepGuEkkjEAUuL7GY080xbosRf7jrljNeCS/zUX857uhoB4

I don't think we need to pick a side here (although most of you know where I stand!). I doubt there will be one hammer to nail all nails. And that's precisely one of the greatest thing Coq has: its support for a wide spectrum of proof processes. Remember that, at the moment, the Ssreflect plugin was developed to have finer control of the proof, with ideas that spread over vallina Coq. Similarly, there can be plugins to have better support for automation.

On Thu, Jan 24, 2019 at 9:34 AM Adam Chlipala <adamc AT csail.mit.edu> wrote:
Thanks for clarifying.  Probably the difference is in the level of
automation, which, amped up sufficiently, tends to make proof scripts
significantly slower but also more general.  My understanding is that
Iris and CompCert choose the "faster but less general proof scripts"
side of the trade-off.  It remains to be seen which style will work best
for routine use by engineering teams in industry, and indeed it could
turn out empirically that less automation (and thus less motivation for
nested lemmas) wins!

On 1/24/19 2:48 AM, Ralf Jung wrote:
> Hi,
>
> just to give some more data, not *all* large-scale developments need nested
> lemmas.  Iris (including RustBelt and our other applications) doesn't, and from
> what I was told, CompCert doesn't, either.
>
> This is not to diminish their importance for some landmark developments, but
> some of the discussion here made it sound like program verification was not
> possible in Coq without nested lemmas.  That is not the case.
>
> Kind regards,
> Ralf
>
> On 23.01.19 22:02, Adam Chlipala wrote:
>> Sorry for any offense given, Theo.  My only intention was to clarify that nested
>> lemmas are an essential feature for production-scale use of Coq ATM as far as I
>> can tell, so their implied deprecation by the Coq team, without a named
>> replacement with the same strengths, is scary.  (Earlier messages in this thread
>> may or may not deserve to be interpreted in that way.  I'm devoting limited
>> attention to watching coq-club, and I could easily misinterpret statements after
>> quick reading.) However, I'm interested which replacements the Coq team is
>> working on!  I only ask that the feature remain until the replacement(s) are
>> ready.  Coq really would be unusable without some feature of this kind, to work
>> on a lemma during proof of another, without forcing replaying of parts of the
>> original lemma's proof script each time a new lemma is added.
>>
>> On 1/23/19 3:38 PM, Maxime Dénès wrote:
>>> Adam, I understand your remark, but let's not forget that the "cool new
>>> stuff" we have in mind is often closely related to performance (which I
>>> know is dear to your heart).
>> Absolutely.  Amping up the baseline performance would help remove the need to
>> economize on rerunning proof scripts.  I'm just skeptical that the baseline
>> performance can be pushed high enough any time soon that it stops mattering that
>> scripts need to be rerun.  (You're probably also not claiming that holy grail is
>> attainable any time soon.)
>>
>>> For example, optimizations, delegation
>>> heuristics, caching and invalidation are easier to implement in a
>>> language where the structure of the document, the dependencies between
>>> objects and their scoping are simple. Nested lemmas are making such
>>> analyses more difficult. Which does not mean we should remove them, but
>>> we have to deal with complex trade-offs.
>> A caching mechanism for in-progress proofs could do the same job more elegantly,
>> with the right IDE support!  That is, if I can edit a lemma before the current
>> proof, but somehow the state of the current proof is saved well enough that I
>> can jump right back in later, then, AFAIK, that would satisfy everyone.  It
>> would look nicer in the work-in-progress .v file, too, and save time on
>> prettifying finished scripts.





Archive powered by MHonArc 2.6.18.

Top of Page