coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Gabriel Scherer <gabriel.scherer AT gmail.com>
- To: hao chen <chrihop AT gmail.com>
- Cc: coq-club <coq-club AT inria.fr>
- Subject: Re: [Coq-Club] How to Prove "~~A <-> A"
- Date: Sat, 26 Oct 2013 12:44:45 +0200
It is not provable in Coq, whose core logic is an extension of intuitionistic logic (where this is not provable) rather than classic logic. Another way to think of this is that there is no program with type ((A -> False) -> False) -> A.
You can, however, prove intuitionistically that ~~~A -> ~A: you cannot collapse two levels of negation into zero, but you can collapse three into one. Coming up with a program of that type is an interesting exercize.http://coq.inria.fr/stdlib/Coq.Logic.Classical_Prop.html
On Sat, Oct 26, 2013 at 11:54 AM, hao chen <chrihop AT gmail.com> wrote:
Hi,I am learning coq, but encounter a problem. I cannot prove "forall A, ~~A <-> A". 'exfalso', 'destruct' and 'intros' are all used, and I have searched it in google, but still cannot find the solution. Could someone tell me that is it provable? and how to prove it?Thanks,ch
- [Coq-Club] How to Prove "~~A <-> A", hao chen, 10/26/2013
- Re: [Coq-Club] How to Prove "~~A <-> A", Gabriel Scherer, 10/26/2013
Archive powered by MHonArc 2.6.18.