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: Adam Chlipala <adamc AT csail.mit.edu>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] proving a lemma in a proof
  • Date: Thu, 24 Jan 2019 07:34:20 -0500
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=adamc AT csail.mit.edu; spf=Pass smtp.mailfrom=adamc AT csail.mit.edu; spf=None smtp.helo=postmaster AT outgoing-stata.csail.mit.edu
  • Ironport-phdr: 9a23:22N57hIysOhrVo0j19mcpTZWNBhigK39O0sv0rFitYgRKf3xwZ3uMQTl6Ol3ixeRBMOHs6IC07KempujcFRI2YyGvnEGfc4EfD4+ouJSoTYdBtWYA1bwNv/gYn9yNs1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgppPOT1HZPZg9iq2+yo9JDffwZFiCChbb9uMR67sRjfus4KjIV4N60/0AHJonxGe+RXwWNnO1eelAvi68mz4ZBu7T1et+ou+MBcX6r6eb84TaFDAzQ9L281/szrugLdQgaJ+3ART38ZkhtMAwjC8RH6QpL8uTb0u+ZhxCWXO9D9QLYpUjqg8qhrUgflhjoZOT438G/ZicJ+g6xUrx2juxNxzJXZYJ2WOfdkYq/RYd0XSGhHU81MVyJBGIS8b44XAucdIOlXtYz9rEYQoBu+AQmsBfvvxSVMhnDswKY31P4uHhzc0wwlA90Dq2jbrM7vO6cTVeC51qzIzTTfb/9Mxzjy9ZXIfwknrPqRXrxwadLcxVQxGw7GlFmdp5DpMymL2ugXrWSX8vZsWfqthmI6sQ19vDaiy8k2hoXUho8YyErI+TtkzIs7I9CzVVR1bsS+EJRKsiGXL4t2Td0mQ2FvoCs6zaAGuYK0fCgNyZQnwRHfZ+Wcc4iU+B3jSPyeLS1ki3J+Yr2/hhKy/VKlyu39Ssm4ykhFoTdYktXUt3AN0QLc6tSfR/dg4Eus2iyD2g7P5u1eP0w4j7TXJ4M9zrIok5ocq0XDHiv4mEXsi6+Wc10p9fK15Ov9Z7XpuoSROJNvig7kM6QuntazAeE5MggSRWSU5/mz1KD78U3jXLpKluE2krXesJ3COcsbobe5DxZJ3YYn9hawFCyr0M8YnHkCNFJKYgiLj4nvO1HUIfD3F+2zg1q2kGQj+/eTNbr4R57JM3LrkbH7fL875VQP5hA0yIV265tRQpoBJPPrU0v4/IjRAhY8OCS/2O/mDJN4159YVG6SVPzKeJjOuEOFs7p8a9KHY5UY7W6keqoVosX2hHp8omczOKyg3J8Zcne9R6k0KF6QYH6qh9YdV2oGo1hnFbC4uBi5STdWIk2Kceck/DhiVdCtFo7CQsaogaDH0SumTMUPOzJ2T2uUGHKtTL2qHvcBbCXJep1mjyALUrmnRMo6yRiyvUnx0LNmKqzR+zFeuJ7+hoB4

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