Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Qed opacity and Coq standard library

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Qed opacity and Coq standard library


Chronological Thread 
  • From: Jerome Hugues <jhugues AT andrew.cmu.edu>
  • To: "coq-club AT inria.fr" <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] Qed opacity and Coq standard library
  • Date: Wed, 21 Apr 2021 16:21:21 +0000
  • Accept-language: en-US
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jhugues AT andrew.cmu.edu; spf=Pass smtp.mailfrom=jhugues AT andrew.cmu.edu; spf=None smtp.helo=postmaster AT relay-exchange.andrew.cmu.edu
  • Ironport-hdrordr: A9a23:9RCdq69wCTN+i0BFp4Ruk+G9db1zdoIgy1knxilNYDReeMCAioSKlPMUyRf7hF8qKRYdsPqHP7SNRm6Z0JZz75UYM7vKZniBhEKDKoZ+4Yz+hwDxAiGWzJ8m6Y5Me7VzYeeAbmRSot395GCDf+oI4N7Cy6ywgPeb8nEFd3APV4hFzyNUTjmWCVd3Qg4uP+tFKLO56tBcrzStPVQ7B/7LZEUtZOTIq93VmJ+OW3dvbHRL1CC0gTyl87L8GRSDty1uNg9n+6so8mTOjmXCiJmLjvChxhfQk0/V4phG8eGA9vJ/BdeBgsVQFzP0igzAXuVccoCF1QpbnMifrHIR1PjFuVMJItl64XK5RBDNnTLdny3blAsIx1Cn41mCmnfnqdH+X1sBerJ8rLMcSBHQ7E0tsZVWwMtwrh6knosSCwjBkiT778XJUB8vllPcmwtYrdIu
  • Ironport-phdr: A9a23:aMn5UR0OF1KpY6JvsmDOvgMyDhhPgJ3EezUN459isYplN5qZl7zcNUDSrc9gkEXOFd2Cra4d2qyM6/CrBjZIyK3CmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+KPjrFY7OlcS30P2594HObwlSizexfLd/IA+ooQnNtcQajolvJrgswRbVv3VEfPhby3l1LlyJhRb84cmw/J9n8ytOvv8q6tBNX6bncakmVLJUFDspPXw7683trhnDUBCA5mAAXWUMkxpHGBbK4RfnVZrsqCT6t+592C6HPc3qSL0/RDqv47t3RBLulSwIMCM38HzMisxokq1UvA6hqRJ4w47Reo6VNfx+db7Zcd4VQWdNW8BcXDFDDIyhdYsCF+oPM/hFoYnhqVUArhW+CgutBOzzxTBFnWX50bE/0+k7DQ3KwA4tEtQTu3rUttX1M6ISXPixwqbW1zXDaPZW1ing44bKbxAhruyMUqxrccHMzkQvFQPFjkifqYz4ITyVzf8AvHKd7+V9T+KglWAmpxttrTiq28cgkJfGiZ8Iyl3d8yhy3Yk6K8GiRkFhfd6kDIVftzucN4ZuTM0vXWNltDsnxrMItpC1cjYHxIo7yhPDa/KKcpSE7BL/WOuTLjp2inFodK6/iRqs8Uaty/PwWMa23VtEsCZIkt/BvW0D2RzU78iIUPp9/kG51DaO0QDT8OBELloumarVMZ4t2rEwlpsPsUTDAy/5g1/6jK6Rdkk8/+io6vjnbq/4qZCBKo95jBz1PKc2msGnHOg0LAsDU3KF9eimybHu/U/0TK9UgvA5iqXVrY7WKMcBqqKnGQNY3Zgv5wywAju+zdgUg3oKIEhbdB6dkoTkO1PDLOr7APq9hVmnjS1lyOrcPrL7B5XANnjDn6nlfbZ680Nc0hQ8zdRF6JNUE70OPv3yVVPxtNPCCB85PBK7z/z9B9V7y4weQ3yAA6GDPKzOtF+I+/gjLPeRa48IoDr9Kv4l6ODyjXIhhFMRY6qk0YEJZHyiA/hrI0eUbWDyjtoOCWsKuxAxTO3uiF2MSz5TYHOyUro+5jE7FYKmAprDSZ62gLGaxii7GIBZZnpYBVGCC3vna4CEW+oWZC2MP8BhjyQIVaK9RI85yRGuqAj6xqJ7IerT4y0UrI7s1Nxo5+LIjhwy7jx1D8GF026XVW10n2UIRyU33K9lu0B9xE2DguBEhKkSHttKovhNTw0SNJjGzuU8Bcq4ElbKec7MQ1K7SP2nByswR5Q/2YldTVx6HoCAgwrE2ifiI6IairGQTMg28r/TwnXqD897x2zLy+8qikRgT8dSYz71zpVj/hTeUtaa236SkLynIPhNtAb9sVybxG/Lh3l2FQt5UKHLR3caDmPfq9jj61yERLqzT7krL1kYoeayb5BSY9istm1oAe/5Mbz2amS9gWqvQx2N2/WBYJe4Iw017GDmEEEB1jsr0zOGOAw5bg+7rmbXHXljBVnvakXj/K93rn+hQ1ByxASXKUBtyujtkiM=

Hi Jean-Christophe

Thanks for the pointers. I had read them already. Unfortunately this does not provide a definite solution (or I did not quite grasp the full idea behind those posts, which is also likely). I still end up with terms like

 

= False /\

       ([] = [] /\

        (Feature (Ident "a_feature") inF eventPort

           (Component (Ident "") null (Ident "") [] [] [] []) [] =

         Feature (Ident "a_feature") inF eventPort

           (Component (Ident "") null (Ident "") [] [] [] []) [] \/ False) \/

        False)

     : Prop

 

And I believe an evaluation strategy would reduce those basic terms to either True or False without intervention. But I fail to establish one. It works in some cases, but not on other and I am trying to understand the pattern behind those.

 

Generally speaking, all my definitions are based on equality of some inductive types based on nat or lists of other inductive types. So the use case is rather narrow.

 

Thanks,

 

From: <coq-club-request AT inria.fr> on behalf of Jean-Christophe Léchenet <jean-christophe.lechenet AT inria.fr>
Reply-To: "coq-club AT inria.fr" <coq-club AT inria.fr>
Date: Wednesday, April 21, 2021 at 4:26 AM
To: "coq-club AT inria.fr" <coq-club AT inria.fr>
Subject: Re: [Coq-Club] Qed opacity and Coq standard library

 

Hi Jerome,

Two blog posts that are relevant to this topic :
- http://gallium.inria.fr/blog/coq-eval/
- https://gmalecha.github.io/reflections/2017/qed-considered-harmful

Not sure if that will help in your case, though.

Best,

Jean-Christophe

 

Le 20/04/2021 à 15:48, Jerome Hugues a écrit :

Hi,

 

At some point in my project, I use Defined rather than Qed to have transparent proofs and use the Compute mechanisms to evaluate some statements. This works nicely for my own theorems, but I am stuck when this involves theorems provided by the Coq standard library, NoDup_dec in my case, but ultimately this might extend to more situations.

 

One quick and dirty work-around is to copy/paste the code, change Qed into Defined and voila! But this is not satisfactory.

 

I could find some blog posts like this one https://plv.csail.mit.edu/blog/computing-with-opaque-proofs.html by Clément Pit-Claudel on this topic, but again it seems this imposes some rework.

 

I understand Qed and Defined are different for a reason, I am just curious whether there is a systematic way to change Qed into Defined on a case by case basis, or if we are forced to this type of modifications.

 

Is there some suggested readings on this topic?

 

Thanks




Archive powered by MHonArc 2.6.19+.

Top of Page