coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Pierre Casteran <pierre.casteran AT labri.fr>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] Forbiding Qed to compute
- Date: Tue, 25 Apr 2017 15:24:32 +0200
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=pierre.casteran AT labri.fr; spf=None smtp.mailfrom=pierre.casteran AT labri.fr; spf=None smtp.helo=postmaster AT v-zimmta03.u-bordeaux.fr
- Ironport-phdr: 9a23:/LdZsR2IM5A7f/d+smDT+DRfVm0co7zxezQtwd8Zse0TIvad9pjvdHbS+e9qxAeQG96Kt7Qc06L/iOPJYSQ4+5GPsXQPItRndiQuroEopTEmG9OPEkbhLfTnPGQQFcVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZvJuTyB4Xek9m72/q89pDXbAhEniaxba9vJxiqsAvdsdUbj5F/Iagr0BvJpXVIe+VSxWx2IF+Yggjx6MSt8pN96ipco/0u+dJOXqX8ZKQ4UKdXDC86PGAv5c3krgfMQA2S7XYBSGoWkx5IAw/Y7BHmW5r6ryX3uvZh1CScIMb7S60/Vza/4KdxUBLmlTkJNzA5/m/UhMJ/gq1UrxC9qBJw2IPUfIKYOeBicq/Bc94XR2xMVdtRWSxbBYO8apMCAfAAPelGtYn9vUUBpgagCAa2H+Pv1iFHhmXs0q08zu8sFhnG3A0+ENIUqnTbss/5O7sIXuCu0KnH0y/DYOlQ2Trm7IjHaAsuoeuNXb5qf8rR01AiGgXYhVuTsYzoJy6Z2+sPvmSB8eZsSP6jh3Q5pw1sojWj3MQhh4fRio4IxV3J9z91zJgoKdGkUkJ2YsSoHZRTuiycKoB4WNktQ3tytyY/0rAGuYC0fCwNyJk/2R7Tcv2Gc4mN4hLmSOaeOyt0iXx/dLKinhq96k+gyvfhWcaqyllKsyVEnsPCtnAXzxDT686HReVh/kq5xDqC2ALe5vtaLUwpiabXMYAtzqMwm5YJsknOEDf6mEDsg6+XckUk9PKo6+PiYrj+vp+cNpF7ihvkMqswgMCwHf43MhMSX2eF4+Szzrvj8Fb9QLpQlfI2iKjZvIrUJcQBvqK5GRNa0p4/6xajCDeryMgXnX4eLF5cZB2Hi5XpNErVLfDjDfa/hkysny1xy/DHOL3hGJTNIWLZnLfvZ7Yuo3JbnQE01JVU449eIrAHOvP6HEHr5/LCCRpsCw252fzqQP50zZ8TQ2uJSvuBMa7Iq1LO7es0P+SWbYk9vD/3Mflj6eS43ixxokMUYaT8hchfU3u/BPkze0g=
Thank you, Guillaume and Laurent,
I have now several proofs of the same fact, some of them are saved almost instantly.
The first one takes more than 2 minutes at Qed.
I'll try to write some tactics for doing the correct abstractions.
Best regards,
Pierre
Le 25/04/2017 à 14:52, Guillaume Melquiond a écrit :
On 25/04/2017 08:55, Pierre Casteran wrote:
Hi,As Laurent said, the kernel should not compute if computing is not
I wrote a small proof on fast growing functions (Wainer's hierarchy).
The statement is F_3 (2) > F_omega (2). The proof term is not so big,
but it contains several occurrences of (f_2 23), which is known as
greater than 2^23.
The problem may come from the fact that all these subterms are
computed after Qed, thus I had to interrupt after some time. Is there an
option for preventing Coq to expand function calls ?
needed. The hard part is to convince the kernel that it is indeed not
needed. Usually, generalizing or abstracting tend to give enough
information to the kernel to avoid useless computations.
Here is a small example. Suppose you want to prove (fact 100 = 100 *
fact 99). There is a trivial proof term, which is (eq_refl 100 : fact
100 = fact 100). Unfortunately, when comparing the right-hand sides, the
kernel decides to reduce (fact 99) instead of (fact 100), which causes
the verification to run forever. To avoid this issue, just generalize
away 99. This gives a needlessly complicated proof term but at least the
kernel now checks it instantly.
Goal fact 100 = 100 * fact 99.
Proof.
assert (exists i, i = 99) as [i <-] by now eexists.
reflexivity.
Qed.
Best regards,
Guillaume
- [Coq-Club] Forbiding Qed to compute, Pierre Casteran, 04/25/2017
- Re: [Coq-Club] Forbiding Qed to compute, Laurent Thery, 04/25/2017
- Re: [Coq-Club] Forbiding Qed to compute, Guillaume Melquiond, 04/25/2017
- Re: [Coq-Club] Forbiding Qed to compute, Pierre Casteran, 04/25/2017
Archive powered by MHonArc 2.6.18.