coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Hugo Carvalho <hugoccomp AT gmail.com>
- To: coq-club <coq-club AT inria.fr>
- Subject: Re: [Coq-Club] help with excluded middle at point vs. all
- Date: Thu, 14 Jul 2016 14:45:59 -0300
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=hugoccomp AT gmail.com; spf=Pass smtp.mailfrom=hugoccomp AT gmail.com; spf=None smtp.helo=postmaster AT mail-it0-f53.google.com
- Ironport-phdr: 9a23:Hfl4XR/vr8Av8P9uRHKM819IXTAuvvDOBiVQ1KB91+kcTK2v8tzYMVDF4r011RmSDN2dt6gP0rOO+4nbGkU4qa6bt34DdJEeHzQksu4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2WVTerzWI4CIIHV2nbEwud7yzRtSZ1p3vn8mJuLTrKz1SgzS8Zb4gZD6Xli728vcsvI15N6wqwQHIqHYbM85fxGdvOE7B102kvpT4r9Zf9HFbvOtk/MpdW+2udKMhCLdcET4OMmYv5cStuwOVHiWV4X5JcngZlVJjChLb5RX6Wd+lsjb1seF23yyCFcLzRLEwHz+l6vE4G1fTlC4bOmthoynsgctqgfcDrQ==
Hi Arnaud! Just checking, is the theorem
really true? I've spent an afternoon on this, to no luck.forall P, (forall a:CN, P n \/ ~P n) -> (forall a:CN, P a) \/ exists a:CN, ~P a
Martin Escardó's Agda developments impose an additional constraint on P: it must be "extensional", that is, if a is extensionally equal to b, then "P a <-> P b". He uses elements from a function type, instead of CN, so i was hoping to avoid the usage of extensionality, but it seems that there's an analogous condition in CN, namely requiring that if a is bisimilar to b, then "P a <-> P b".
2016-07-03 17:16 GMT-03:00 Arnaud Spiwack <aspiwack AT lix.polytechnique.fr>:
This is emphatically not true of the natural numbers.
It is true of the “one-point compacification” of the natural numbers (sometimes called co-natural numbers):
CoInductive CN : Type := | O : CN | S : CN -> CN
In fact, for this one-point compacification of the natural number we get a slightly stronger (and, frankly, more useful):
forall P, (forall a:CN, P n \/ ~P n) -> (forall a:CN, P a) \/ exists a:CN, ~P a
Martin Escardó & Paulo Oliva have spend quite some energy studying this latter property.
This [ http://www.cs.bham.ac.uk/~mhe/papers/exhaustive.pdf ], I believe, may be a good, rather programming-oriented, starting point.
On 3 July 2016 at 21:56, Jonathan Leivent <jonikelee AT gmail.com> wrote:
I hit another constructive goal that is messing with my classical logic encumbered brain - a form of excluded middle at a point vs. overall:
A : Type
P : A -> Prop
emp : forall a : A, P a \/ ~ P a
============================
(forall a : A, P a) \/ ~ (forall a : A, P a)
I would think this is not provable in Coq in general, but it is certainly true for many A and P. What properties of A and/or P make this true? I would think it is true for example on any type A such that one can enumerate the elements somehow - such as nat, or maybe any inductive type. But, I don't even see how to prove it if A is nat for arbitrary P. It's trivial to prove if A is bool for arbitrary P, and probably so for any other finite type.
How does one go about such proofs when A is not finite - what other hypotheses about A and/or P are needed to make headway?
-- Jonathan
- [Coq-Club] help with excluded middle at point vs. all, Jonathan Leivent, 07/03/2016
- Re: [Coq-Club] help with excluded middle at point vs. all, Vilhelm Sjoberg, 07/03/2016
- Re: [Coq-Club] help with excluded middle at point vs. all, Arnaud Spiwack, 07/03/2016
- Re: [Coq-Club] help with excluded middle at point vs. all, Hugo Carvalho, 07/14/2016
- Re: [Coq-Club] help with excluded middle at point vs. all, Arnaud Spiwack, 07/14/2016
- Re: [Coq-Club] help with excluded middle at point vs. all, Hugo Carvalho, 07/15/2016
- Re: [Coq-Club] help with excluded middle at point vs. all, Arnaud Spiwack, 07/14/2016
- Re: [Coq-Club] help with excluded middle at point vs. all, Hugo Carvalho, 07/14/2016
- Re: [Coq-Club] help with excluded middle at point vs. all, Clément Pit--Claudel, 07/03/2016
- Re: [Coq-Club] help with excluded middle at point vs. all, Clément Pit--Claudel, 07/03/2016
- Re: [Coq-Club] help with excluded middle at point vs. all, Abhishek Anand, 07/03/2016
- Re: [Coq-Club] help with excluded middle at point vs. all, Jonathan Leivent, 07/03/2016
Archive powered by MHonArc 2.6.18.