
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Proof Irrelevance, Extensional Equality, and the Excluded Middle</title>
	<atom:link href="http://www.iis.sinica.edu.tw/~scm/2009/proof-irrelevance-extensional-equality-and-the-excluded-middle/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.iis.sinica.edu.tw/~scm/2009/proof-irrelevance-extensional-equality-and-the-excluded-middle/</link>
	<description>Research Blog of 穆信成 Shin-Cheng Mu</description>
	<lastBuildDate>Tue, 22 Nov 2011 02:09:41 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>By: Liang-Ting Chen</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2009/proof-irrelevance-extensional-equality-and-the-excluded-middle/comment-page-1/#comment-6657</link>
		<dc:creator>Liang-Ting Chen</dc:creator>
		<pubDate>Thu, 04 Jun 2009 19:11:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=133#comment-6657</guid>
		<description>&gt;I think there are two kinds of ‘extensional equality’ one being eta-conversion and the other being the ext postulate you used

Eta-conversion is sometimes called &quot;weak extensionality&quot; while &quot;ext&quot; is called &quot;strong extensionality&quot;. To my knowledge, Zhaohui Luo uses this terminology in his thesis of ECC.

&gt;Proof irrelevence doesn’t appear necessary, AC and extensional equality seem to suffice.

If I don&#039;t overlook the axiom ExtAC you defined, this is equivalent to the one introduced in the article &quot;100 years of Zermelo&#039;s axiom of choice: what was the problem with it?&quot; by Martin-Löf. According to this, the variant of AC which is used here can be proved without any postulate, but the ExtAC cannot. Furthermore, the excluded middle is implied by ExtAC according to Diaconescu&#039;s theorem and the constructive type theory with ExtAC (W-operation, and an universe) could interprete all of ZFC.

They are two different variants of axiom of choice, so are their strengths. Thus, that might be the reason that constructive AC and extensional equality are not strong enough to prove the law of excluded middle ?</description>
		<content:encoded><![CDATA[<p>&gt;I think there are two kinds of ‘extensional equality’ one being eta-conversion and the other being the ext postulate you used</p>
<p>Eta-conversion is sometimes called &#8220;weak extensionality&#8221; while &#8220;ext&#8221; is called &#8220;strong extensionality&#8221;. To my knowledge, Zhaohui Luo uses this terminology in his thesis of ECC.</p>
<p>&gt;Proof irrelevence doesn’t appear necessary, AC and extensional equality seem to suffice.</p>
<p>If I don&#8217;t overlook the axiom ExtAC you defined, this is equivalent to the one introduced in the article &#8220;100 years of Zermelo&#8217;s axiom of choice: what was the problem with it?&#8221; by Martin-Löf. According to this, the variant of AC which is used here can be proved without any postulate, but the ExtAC cannot. Furthermore, the excluded middle is implied by ExtAC according to Diaconescu&#8217;s theorem and the constructive type theory with ExtAC (W-operation, and an universe) could interprete all of ZFC.</p>
<p>They are two different variants of axiom of choice, so are their strengths. Thus, that might be the reason that constructive AC and extensional equality are not strong enough to prove the law of excluded middle ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shin</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2009/proof-irrelevance-extensional-equality-and-the-excluded-middle/comment-page-1/#comment-6644</link>
		<dc:creator>Shin</dc:creator>
		<pubDate>Fri, 22 May 2009 08:07:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=133#comment-6644</guid>
		<description>Thanks for the info, Danko. That looks very interesting. Should I be looking at the PDF document (Zermelo&#039;s well-ordering theorem in type theory)?</description>
		<content:encoded><![CDATA[<p>Thanks for the info, Danko. That looks very interesting. Should I be looking at the PDF document (Zermelo&#8217;s well-ordering theorem in type theory)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: speleologic</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2009/proof-irrelevance-extensional-equality-and-the-excluded-middle/comment-page-1/#comment-6641</link>
		<dc:creator>speleologic</dc:creator>
		<pubDate>Thu, 21 May 2009 07:08:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=133#comment-6641</guid>
		<description>A late comment...

Proof irrelevence doesn&#039;t appear necessary, AC and extensional equality seem to suffice. Some Agda code which might be relevant: www.mdstud.chalmers.se/~danko/</description>
		<content:encoded><![CDATA[<p>A late comment&#8230;</p>
<p>Proof irrelevence doesn&#8217;t appear necessary, AC and extensional equality seem to suffice. Some Agda code which might be relevant: <a href="http://www.mdstud.chalmers.se/~danko/" rel="nofollow">http://www.mdstud.chalmers.se/~danko/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Liang-Ting Chen</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2009/proof-irrelevance-extensional-equality-and-the-excluded-middle/comment-page-1/#comment-6624</link>
		<dc:creator>Liang-Ting Chen</dc:creator>
		<pubDate>Mon, 11 May 2009 18:24:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=133#comment-6624</guid>
		<description>&gt;I guess Agda has Prop as well now, but I didn’t know how to use it…

Yes, it has a type called Prop and a proof-irrelevant option, but they don&#039;t work by now as far as I know. Maybe things are changed ?</description>
		<content:encoded><![CDATA[<p>&gt;I guess Agda has Prop as well now, but I didn’t know how to use it…</p>
<p>Yes, it has a type called Prop and a proof-irrelevant option, but they don&#8217;t work by now as far as I know. Maybe things are changed ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Maud</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2009/proof-irrelevance-extensional-equality-and-the-excluded-middle/comment-page-1/#comment-6622</link>
		<dc:creator>Maud</dc:creator>
		<pubDate>Mon, 11 May 2009 14:30:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=133#comment-6622</guid>
		<description>&gt; The construction given by SEP and Werner, which I showed in the post, was perhaps interesting in that they showed even if we are not allowed to inspect proofs, there is still a way to get around that and extract some evil information.
I see! I was suspecting that but I wanted to double check.

&gt; By the way, since you appear to be a Coq user… :) “Proof irrelevance” seems to mean something different in Coq. My impression is that it just means that the computational portion of a program cannot inspect the inside of a Prop. Is it so?
Coq implements every aspect of proof irrelevence except the one I really want. I mean it is prepared for it but it doesn&#039;t allow values of sort Prop to be convertible (only beta conversion and so on).
The main thing about it is that you can&#039;t pattern match (eliminate) on Prop to produce an object in Set (unless that object in Set has zero or one constructors). It&#039;s exactly what I used to prove _&#124;_, but I think your proof did not make any uses of that. I guess Agda has Prop as well now, but I didn&#039;t know how to use it...

Thanks for the reply!</description>
		<content:encoded><![CDATA[<p>&gt; The construction given by SEP and Werner, which I showed in the post, was perhaps interesting in that they showed even if we are not allowed to inspect proofs, there is still a way to get around that and extract some evil information.<br />
I see! I was suspecting that but I wanted to double check.</p>
<p>&gt; By the way, since you appear to be a Coq user… :) “Proof irrelevance” seems to mean something different in Coq. My impression is that it just means that the computational portion of a program cannot inspect the inside of a Prop. Is it so?<br />
Coq implements every aspect of proof irrelevence except the one I really want. I mean it is prepared for it but it doesn&#8217;t allow values of sort Prop to be convertible (only beta conversion and so on).<br />
The main thing about it is that you can&#8217;t pattern match (eliminate) on Prop to produce an object in Set (unless that object in Set has zero or one constructors). It&#8217;s exactly what I used to prove _|_, but I think your proof did not make any uses of that. I guess Agda has Prop as well now, but I didn&#8217;t know how to use it&#8230;</p>
<p>Thanks for the reply!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shin</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2009/proof-irrelevance-extensional-equality-and-the-excluded-middle/comment-page-1/#comment-6619</link>
		<dc:creator>Shin</dc:creator>
		<pubDate>Mon, 11 May 2009 10:50:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=133#comment-6619</guid>
		<description>Hi Maud,

Thanks for the comment. You illustrated a tricky bit using a shorter example. There are two proofs for &lt;code&gt;TT ∨ TT&lt;/code&gt;: &lt;code&gt;inj₁ tt&lt;/code&gt; and &lt;code&gt;inj₂ tt&lt;/code&gt;. The &lt;code&gt;irr&lt;/code&gt; postulate claims that we can see them as if they are equal (indeed, &lt;code&gt;test-3 : inj₁ tt ≅ inj₂ tt&lt;/code&gt;). However, in Agda nothing stops you from inspecting and discriminating them (like in &lt;code&gt;which&lt;/code&gt;), which allows you to prove &lt;code&gt;X ≅ Y&lt;/code&gt;.

As far as I know, in OTT it is a rule that one cannot inspect proofs (things having type &lt;code&gt;† A&lt;/code&gt;) like &lt;code&gt;which&lt;/code&gt; did (I cannot recall how it is enforced). Therefore they may have &lt;code&gt;irr&lt;/code&gt; (in fact &lt;code&gt;irr&lt;/code&gt; is provable). The construction given by SEP and Werner, which I showed in the post, was perhaps interesting in that they showed even if we are not allowed to inspect proofs, there is still a way to get around that and extract some evil information. To prevent that, OTT does not have disjunction either.

Also, if I remember right, extensional equality for functions in OTT refers to something like the &lt;code&gt;ext&lt;/code&gt; rule: functions are considered equal if they map equal inputs to equal results. Inconsistency is avoided by the mechanism I mentioned above. But I may not be the best person to answer that... :)

By the way, since you appear to be a Coq user... :) &quot;Proof irrelevance&quot; seems to mean something different in Coq. My impression is that it just means that the computational portion of a program cannot inspect the inside of a Prop. Is it so?</description>
		<content:encoded><![CDATA[<p>Hi Maud,</p>
<p>Thanks for the comment. You illustrated a tricky bit using a shorter example. There are two proofs for <code>TT ∨ TT</code>: <code>inj₁ tt</code> and <code>inj₂ tt</code>. The <code>irr</code> postulate claims that we can see them as if they are equal (indeed, <code>test-3 : inj₁ tt ≅ inj₂ tt</code>). However, in Agda nothing stops you from inspecting and discriminating them (like in <code>which</code>), which allows you to prove <code>X ≅ Y</code>.</p>
<p>As far as I know, in OTT it is a rule that one cannot inspect proofs (things having type <code>† A</code>) like <code>which</code> did (I cannot recall how it is enforced). Therefore they may have <code>irr</code> (in fact <code>irr</code> is provable). The construction given by SEP and Werner, which I showed in the post, was perhaps interesting in that they showed even if we are not allowed to inspect proofs, there is still a way to get around that and extract some evil information. To prevent that, OTT does not have disjunction either.</p>
<p>Also, if I remember right, extensional equality for functions in OTT refers to something like the <code>ext</code> rule: functions are considered equal if they map equal inputs to equal results. Inconsistency is avoided by the mechanism I mentioned above. But I may not be the best person to answer that&#8230; :)</p>
<p>By the way, since you appear to be a Coq user&#8230; :) &#8220;Proof irrelevance&#8221; seems to mean something different in Coq. My impression is that it just means that the computational portion of a program cannot inspect the inside of a Prop. Is it so?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Maud</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2009/proof-irrelevance-extensional-equality-and-the-excluded-middle/comment-page-1/#comment-6617</link>
		<dc:creator>Maud</dc:creator>
		<pubDate>Sun, 10 May 2009 04:41:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=133#comment-6617</guid>
		<description>Hello Shin-Cheng Mu, Thanks for another very thought provoking and interesting post!

I think that this &lt;code&gt;irr&lt;/code&gt; postulate is inconsistent:

&lt;pre&gt;&lt;code&gt;postulate irr : ∀ {A} (P Q : † A) → (p : ⌈ P ⌉)(q : ⌈ Q ⌉) → (P ≡ Q) → p ≅ q

test-1 : ∀ {A} (P Q : † A) -&gt; _
test-1 P Q = irr ((P ∧ Q) ⇒ (P ∨ Q)) ((P ∧ Q) ⇒ (P ∨ Q)) 
                     (\pq -&gt; inj₁ (proj₁ pq)) (\pq -&gt; inj₂ (proj₂ pq)) refl

test-2 : (\(pq : ⊤ × ⊤) -&gt; inj₁ (proj₁ pq)) ≅ (\pq -&gt; inj₂ (proj₂ pq))
test-2 = test-1 {⊤} TT TT

use : ∀ {A B : Set} {f g : A -&gt; B} -&gt; f ≅ g -&gt; ∀ x -&gt; f x ≅ g x
use refl = \_ -&gt; refl

use&#039; : ∀ {A B : Set} {x y : A} -&gt; x ≅ y -&gt; ∀ (f : A -&gt; B) -&gt; f x ≅ f y
use&#039; refl = \_ -&gt; refl

test-3 = use test-2 ( tt , tt )

data XY : Set where
 X : XY
 Y : XY

discr : X ≅ Y -&gt; ⊥
discr ()

which :  ∀ {A B} -&gt; (A ⊎ B) -&gt; XY
which (inj₁ _) = X
which (inj₂ _) = Y

test-4 = use&#039; test-3 which

inconsist : ⊥
inconsist = discr test-4&lt;/code&gt;&lt;/pre&gt;

I am not 100% sure if this was intended or not though?
Also I have a question about OTT, I think there are two kinds of &#039;extensional equality&#039; one being eta-conversion and the other being the ext postulate you used. Maybe this distinction is why OTT is still consistent?</description>
		<content:encoded><![CDATA[<p>Hello Shin-Cheng Mu, Thanks for another very thought provoking and interesting post!</p>
<p>I think that this <code>irr</code> postulate is inconsistent:</p>
<pre><code>postulate irr : ∀ {A} (P Q : † A) → (p : ⌈ P ⌉)(q : ⌈ Q ⌉) → (P ≡ Q) → p ≅ q

test-1 : ∀ {A} (P Q : † A) -&gt; _
test-1 P Q = irr ((P ∧ Q) ⇒ (P ∨ Q)) ((P ∧ Q) ⇒ (P ∨ Q))
                     (\pq -&gt; inj₁ (proj₁ pq)) (\pq -&gt; inj₂ (proj₂ pq)) refl

test-2 : (\(pq : ⊤ × ⊤) -&gt; inj₁ (proj₁ pq)) ≅ (\pq -&gt; inj₂ (proj₂ pq))
test-2 = test-1 {⊤} TT TT

use : ∀ {A B : Set} {f g : A -&gt; B} -&gt; f ≅ g -&gt; ∀ x -&gt; f x ≅ g x
use refl = \_ -&gt; refl

use' : ∀ {A B : Set} {x y : A} -&gt; x ≅ y -&gt; ∀ (f : A -&gt; B) -&gt; f x ≅ f y
use' refl = \_ -&gt; refl

test-3 = use test-2 ( tt , tt )

data XY : Set where
 X : XY
 Y : XY

discr : X ≅ Y -&gt; ⊥
discr ()

which :  ∀ {A B} -&gt; (A ⊎ B) -&gt; XY
which (inj₁ _) = X
which (inj₂ _) = Y

test-4 = use' test-3 which

inconsist : ⊥
inconsist = discr test-4</code></pre>
<p>I am not 100% sure if this was intended or not though?<br />
Also I have a question about OTT, I think there are two kinds of &#8216;extensional equality&#8217; one being eta-conversion and the other being the ext postulate you used. Maybe this distinction is why OTT is still consistent?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

