coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Pierre Courtieu <pierre.courtieu AT gmail.com>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] ProofObject and Definitions
- Date: Sun, 16 Jul 2017 09:07:59 +0000
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=pierre.courtieu AT gmail.com; spf=Pass smtp.mailfrom=pierre.courtieu AT gmail.com; spf=None smtp.helo=postmaster AT mail-wm0-f51.google.com
- Ironport-phdr: 9a23:RzWzmh1+REqA0GYhsmDT+DRfVm0co7zxezQtwd8Zse0QK/ad9pjvdHbS+e9qxAeQG96KtLQc06L/iOPJYSQ4+5GPsXQPItRndiQuroEopTEmG9OPEkbhLfTnPGQQFcVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZvJuTyB4Xek9m72/q89pDXYQhEniaxba9vJxiqsAvdsdUbj5F/Iagr0BvJpXVIe+VSxWx2IF+Yggjx6MSt8pN96ipco/0u+dJOXqX8ZKQ4UKdXDC86PGAv5c3krgfMQA2S7XYBSGoWkx5IAw/Y7BHmW5r6ryX3uvZh1CScIMb7S60/Vza/4KdxUBLnhykHODw5/m/ZicJ+kbxVrw66qhNl34LZepuYOOZicq7fe94RWGpPXtxWVyxEGo6ydYoPAPQbPeZCsYb2ukUDrRyjBQm2GOPvyyFHhmLr1qA9y+QhEB/J3BY6H90QqnjbsNL1NLoIUeCpzanH0yjDYuhZ2Tf48ofIcxQhreuQUrJ3dMrc0E8iHB7LgFWXrIzqJTKV1uIVvmiF7upgWv+vi285pAFruDSvwMMsh4/UjYwW0lDJ7Sd0zYkvKdGlVkJ2YcSoHZhOuy2AN4Z6X8UvSHxytikg0L0Jo5u7cTAKyJs5wx7fbOSKc42S7RLiUOadODl5hHd5dL6miRa/8VWsxvfzVsmz11ZKoS5FncfWun8R0BzT79CLSvp7/ki/xTaCzwLe5+5eLUwpi6bWK4Qtz70umpYJsUnPAzf6mEDsg6+XckUk9PKo6+PiYrj+vp+cNpF7ihvkMqswgMCwHeM4MhUUX2iH+OSzyqDj8Fb2QLVPlPI2k63ZvIrGKsQco661GxVV3Zo76xajEzem18wVkmUALFJcYR6Ik4zpO0zVL/3jFve+g1GskC9xyPzcP73hBI/NLnnZn7v7c7Z98R0U9A1mxtdGoplQF7spIfTpW0a3usaLIAU+NlmMwuv9Etg1/YQDQ36OD7LRZLvTvEWS66QkJPSWeI4YpR7yLvEk47jlinpvygxVRrWgwZZCMCPwJf9hOUjMOXc=
Set Printing Depth 10000.
Dear Coq-club
If we have :
Lemma answer : answer(Q) = 42. Proof. apply Answer_to_the_Ultimate_Question_of_Life_the_Universe_and_Everything. Qed.And then do:
Print answer.We get a proof object that we can use to rebuild the proof and lemma:
Definition answer := fun x => blablabla.My problem is as follow. When I do the Print answer I get a really big ProofObject (nothing wrong with that) but when I want to use that proof object to directly feed it into another definition, I get the following error:
Syntax error: [constr:lconstr] expected after ':' (in [constr:open_binders]).This is due to in the line that some "..." that appeared. A few lines later I also have this chunk of code :
(fun e : ℕ => match ... with | ... False | ... False | ... False | ... False | ... False | ... False | ... False | ... True | ... False end) I 16%nat Ha'7Which I'm pretty sure won't be parsed (this does not look like correct Galina).
How can I make sure that the proof term that I get will be correct (The proof term is 20 000 character long) ?
Or in other word how to print the full Proof Object ?
----------------------------------------------------------------------------------------------------------------------------------------
The motivation of this approach is as follow :
All the 'apply/eapply', 'repeat', 'match' are building the proof term. But finding the right lemma with eauto etc is long and slow.
The time to typecheck a Proof with the QED is decently faster.
Thus what about using the proofobject directly as a definition and skip the whole "building proof via tactial" step
and feed it to the typechecker.
-- Kind regards, Benoît Viguier Software Engineer - PhD Student | Cryptography & Formal Methods Radboud University | Mercator 1, room 03.17, Toernooiveld 212 6525 EC Nijmegen, the Netherlands | www.viguier.nl -------------------------------------------------------------------------- This message (and any attachments) is intended solely for the addressee(s) and may contain confidential information. If you are not the addressee, do not copy this message (and any attachments), forward or share this message with third parties. You are requested to notify the sender immediately and delete this message.
- [Coq-Club] ProofObject and Definitions, Benoît Viguier, 07/16/2017
- Re: [Coq-Club] ProofObject and Definitions, Pierre Courtieu, 07/16/2017
Archive powered by MHonArc 2.6.18.