[Agda] Agda with excluded middle is inconsistent
Martin Escardo
m.escardo at cs.bham.ac.uk
Sat Jan 9 00:07:27 CET 2010
Nils Anders Danielsson wrote:
> On 2010-01-08 12:05, Noam Zeilberger wrote:
>> In intuitionistic second-order logic you can prove ∀ P.~~(P \/ ~P),
>> but not ~~(∀ P. P \/ ~P).
>
> If you allow bar recursion you can prove some double-negation shift
> lemma. I suspect that this means that a sufficiently strong variant of
> bar recursion is not compatible with injective type constructors.
The double negation shift (DNS) obtained by bar recursion is
(∀ n : N. ~~ A n) -> ~~ ∀ n: A n.
Only quantifications over N (natural numbers) can be shifted. Bar
recursion (in its many manifestations) crucially exploits the structure
of N (and in some/most forms of bar recursion, also continuity is
crucially invoked). Essentially, bar recursion is recursion on
well-founded trees, where functions (n : N)-> A n are paths in such
trees. The catch is that such trees are not given as W-types (data
definitions in agda), but as continuous functions from sequences to a
discrete type. In summary, bar recursion cannot possibly handle DNS for
quantifications over propositions (as above). I would guess that the
instance of DNS you want (certainly not realizable by anything that
could be sensibly called bar recursion), is "very classical" (question:
is it classical, in the sense that it implies excluded middle? I haven't
thought about that.)
Martin
More information about the Agda
mailing list