[Agda] Agda with the excluded middle is inconsistent ?
Chung Kil Hur
ckh25 at cam.ac.uk
Thu Jan 7 11:01:24 CET 2010
Dear Dan,
Thanks for your answer.
Ok, Agda is a kind of constructive math assuming an anti-classical axiom.
Then, I have a few more questions.
Does the orginal Martin-Lof type theory also assume the injectivity of inductive type constructors ? or Agda added it later?
If the latter is the case, has the consistency of Agda been shown?
Or, is there a set-theoretic model of Agda ?
Thanks,
Chung-Kil Hur
----- Original Message -----
From: "Dan Doel" <dan.doel at gmail.com>
To: <agda at lists.chalmers.se>
Cc: "Chung Kil Hur" <ckh25 at cam.ac.uk>; <coq-club at inria.fr>
Sent: Thursday, January 07, 2010 3:43 AM
Subject: Re: [Agda] Agda with the excluded middle is inconsistent ?
> On Wednesday 06 January 2010 6:59:14 pm Chung Kil Hur wrote:
>> Hi everyone,
>>
>> I proved the absurdity in Agda assuming the excluded middle.
>> Is it a well-known fact ?
>> It seems that Agda's set theory is weird.
>>
>> This comes from the injectivity of inductive type constructors.
>>
>> The proof sketch is as follows.
>>
>> Define a family of inductive type
>>
>> data I : (Set -> Set) -> Set where
>>
>> with no constructors.
>>
>> By injectivity of type constructors, I can show that I : (Set -> Set) ->
>> Set is injective.
>>
>> As you may see, there is a size problem with this injectivity.
>>
>> So, I just used the cantor's diagonalization to derive absurdity in a
>> classical way.
>>
>> Does anyone know whether cantor's diagonalization essentially needs the
>> classical axiom, or can be done intuitionistically ? If the latter is
>> true, then the Agda system is inconsistent.
>>
>> Please have a look at the Agda code below, and let me know if there's any
>> mistakes.
>
> I could certainly be wrong, but I don't think your code can be done without
> assuming the excluded middle. For instance, I know of no way to write J
> without it, because it would involve examining the parameter 'a' to see if it
> is of the form 'I f' for some f, and that is not an operation that Agda
> provides. You use the LEM that way several times, so I'm not particularly
> worried that type constructor injectivity might be inconsistent. :)
>
> More to the point, there are a couple ways to approach
> constructivism/intuitionism. On the one hand, you can eliminate the classical
> axioms, and see what kind of things you can still prove. But, you don't
> necessarily have to stop there; you can also add anti-classical axioms that
> would lead to inconsistency in a classical setting, but don't (and, perhaps,
> are intuitively 'true') in a constructive setting. For instance, I've heard
> some intuitionistic mathematics adds "all functions are continuous" as an
> axiom.* And from that, and another anti-classical axiom or two, you can prove
> that Nat is isomorphic to (Nat -> Bool) -> Bool, which is rather weird.
>
> Injectivity of type constructors seems to be another anti-classical axiom.
> Engaging in some loose meta-reasoning about Agda, we know that Set -> Set is
> really the same size as Set, because every element of both corresponds to a
> finite character string---the Agda program(s) that denotes it. So there isn't
> really a size paradox in saying that there are injective functions into Set
> from Set -> Set. And, intuitively, it's pretty clear that if f is a Set ->
> Set, then I f is a Set such that if it is equal to I g, then f is equal to g,
> because I f and I g aren't subject to any kind of reduction beyond
> normalization of f an g.
>
> But, as you've demonstrated this cuts us off from postulating and reasoning
> about classical things in our language. So I could see why Coq wouldn't want
> it (since they turned off impredicative set by default for the same reason).
> And, of course, I could be wrong, and it may not be intuitionistically valid,
> either.
>
> Cheers,
> -- Dan
>
> * http://math.andrej.com/2009/10/12/constructive-gem-double-exponentials/
More information about the Agda
mailing list