<?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"
	>
<channel>
	<title>Comments for for the few of us.</title>
	<atom:link href="http://www.iis.sinica.edu.tw/~scm/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.iis.sinica.edu.tw/~scm</link>
	<description>Research Blog of 穆信成 Shin-Cheng Mu</description>
	<pubDate>Sun, 07 Sep 2008 07:59:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>Comment on Tail-Recursive, Linear-Time Fibonacci by Shin</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2008/tail-recursive-linear-time-fibonacci/#comment-2155</link>
		<dc:creator>Shin</dc:creator>
		<pubDate>Sat, 12 Jul 2008 22:55:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=55#comment-2155</guid>
		<description>Thanks! I will correct them now.</description>
		<content:encoded><![CDATA[<p>Thanks! I will correct them now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Tail-Recursive, Linear-Time Fibonacci by Daniel</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2008/tail-recursive-linear-time-fibonacci/#comment-2154</link>
		<dc:creator>Daniel</dc:creator>
		<pubDate>Sat, 12 Jul 2008 20:01:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=55#comment-2154</guid>
		<description>I think I've spotted two typos: In the definition of the fusioned fib2 there's a fold instead of a foldN. Later there's gfib instead of a gib.

But nice read, indeed, for I've been thinkering around with such small multi-recursive problems lately.</description>
		<content:encoded><![CDATA[<p>I think I&#8217;ve spotted two typos: In the definition of the fusioned fib2 there&#8217;s a fold instead of a foldN. Later there&#8217;s gfib instead of a gib.</p>
<p>But nice read, indeed, for I&#8217;ve been thinkering around with such small multi-recursive problems lately.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Agda Exercise: Proving that Mergesort Returns Ordered Lists by Shin</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2007/agda-exercise-proving-that-mergesort-returns-ordered-list/#comment-1872</link>
		<dc:creator>Shin</dc:creator>
		<pubDate>Tue, 27 May 2008 10:03:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=37#comment-1872</guid>
		<description>newsh (sorry for the late response),

I think OList is a sorted list. Consider xs : OList 0. If xs is Nil, it is sorted. If xs equals, say, Cons 3 0≤3 ys, the tail ys must have type OList 3. Thus ys is lower-bounded by 3, not 0.</description>
		<content:encoded><![CDATA[<p>newsh (sorry for the late response),</p>
<p>I think OList is a sorted list. Consider xs : OList 0. If xs is Nil, it is sorted. If xs equals, say, Cons 3 0≤3 ys, the tail ys must have type OList 3. Thus ys is lower-bounded by 3, not 0.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Agda Exercise: Proving that Mergesort Returns Ordered Lists by newsh</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2007/agda-exercise-proving-that-mergesort-returns-ordered-list/#comment-1801</link>
		<dc:creator>newsh</dc:creator>
		<pubDate>Thu, 15 May 2008 04:30:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=37#comment-1801</guid>
		<description>I think this only proves that the resulting list has a lower bound.  You can construct arbitrary (unordered) lists of type (OList 0).  The only restriction is that all elements are &#62;= 0 (which is true by the definition of &#62;=).</description>
		<content:encoded><![CDATA[<p>I think this only proves that the resulting list has a lower bound.  You can construct arbitrary (unordered) lists of type (OList 0).  The only restriction is that all elements are &gt;= 0 (which is true by the definition of &gt;=).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Deriving a Virtual Machine by Dave</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2007/deriving-a-virtual-machine/#comment-1571</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Sun, 30 Mar 2008 20:53:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=42#comment-1571</guid>
		<description>After a quick skim of the Igarashi paper, I think the difference is they produce linear Compt terms -- and it's this linearization of the initial tree-structured term that prevents eval from trivializing to the identity.</description>
		<content:encoded><![CDATA[<p>After a quick skim of the Igarashi paper, I think the difference is they produce linear Compt terms &#8212; and it&#8217;s this linearization of the initial tree-structured term that prevents eval from trivializing to the identity.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Constructing List Homomorphism from Left and Right Folds by Tiempo finito y logarítmico &#187; Tercer teorema de homomorfismo</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2008/constructing-list-homomorphism/#comment-1047</link>
		<dc:creator>Tiempo finito y logarítmico &#187; Tercer teorema de homomorfismo</dc:creator>
		<pubDate>Sun, 10 Feb 2008 02:59:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/2008/constructing-list-homomorphism-from-left-and-right-folds/#comment-1047</guid>
		<description>[...] Constructing List Homomorphism from Left and Right Folds (Shin-Cheng Mu, Institute of Information Science, Taiwan) explora el problema de encontrar op a partir de () y e. [...]</description>
		<content:encoded><![CDATA[<p>[...] Constructing List Homomorphism from Left and Right Folds (Shin-Cheng Mu, Institute of Information Science, Taiwan) explora el problema de encontrar op a partir de () y e. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Deriving a Virtual Machine by MigMit</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2007/deriving-a-virtual-machine/#comment-507</link>
		<dc:creator>MigMit</dc:creator>
		<pubDate>Tue, 25 Dec 2007 11:12:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=42#comment-507</guid>
		<description>Correction: "that's all it does"</description>
		<content:encoded><![CDATA[<p>Correction: &#8220;that&#8217;s all it does&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Deriving a Virtual Machine by MigMit</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2007/deriving-a-virtual-machine/#comment-505</link>
		<dc:creator>MigMit</dc:creator>
		<pubDate>Tue, 25 Dec 2007 09:52:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/?p=42#comment-505</guid>
		<description>Sorry, but... I don't see the point. Let's look at our data types:

data Exp = Val Int &#124; Var Int &#124; Plus Exp Exp &#124; Lam Exp &#124; App Exp Exp
data Compt = Lit Int &#124; Access Int &#124; Push1 Compt Compt &#124; Close Compt &#124; Push2 Compt Compt

Isn't that exactly the same thing (up to renaming of constructors)? Moreover, if we identify this two types, then eval seems to be an identity - OK, it forces almost everything, but that's all id does. I don't see, why you call id a "compiler".</description>
		<content:encoded><![CDATA[<p>Sorry, but&#8230; I don&#8217;t see the point. Let&#8217;s look at our data types:</p>
<p>data Exp = Val Int | Var Int | Plus Exp Exp | Lam Exp | App Exp Exp<br />
data Compt = Lit Int | Access Int | Push1 Compt Compt | Close Compt | Push2 Compt Compt</p>
<p>Isn&#8217;t that exactly the same thing (up to renaming of constructors)? Moreover, if we identify this two types, then eval seems to be an identity - OK, it forces almost everything, but that&#8217;s all id does. I don&#8217;t see, why you call id a &#8220;compiler&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on S Combinator is Injective, with Proofs by Charles Stewart</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2007/s-combinator-is-injective-with-proofs/#comment-366</link>
		<dc:creator>Charles Stewart</dc:creator>
		<pubDate>Tue, 11 Dec 2007 12:17:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/2007/s-combinator-is-injective-with-proofs/#comment-366</guid>
		<description>I've posted this observation as &lt;a href="http://lambda-the-ultimate.org/node/2570#comment-38741" rel="nofollow"&gt;a story on LtU&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve posted this observation as <a href="http://lambda-the-ultimate.org/node/2570#comment-38741" rel="nofollow">a story on LtU</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on S Combinator is Injective, with Proofs by Shin</title>
		<link>http://www.iis.sinica.edu.tw/~scm/2007/s-combinator-is-injective-with-proofs/#comment-339</link>
		<dc:creator>Shin</dc:creator>
		<pubDate>Thu, 06 Dec 2007 01:50:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.iis.sinica.edu.tw/~scm/2007/s-combinator-is-injective-with-proofs/#comment-339</guid>
		<description>lf,

Yes, I know about Djinn! In fact when I thought I found a general way to invert functions, I was merely constructing a term having the right type. After my talk, one of the audience fired up Djinn and showed me how it can be done. It must be one of my worst talks..


Frank Atanassow,

Oh, I've probably omitted too many steps. The reasoning goes like this:
&lt;pre&gt;&lt;code&gt;
   (∀ y ∈ A -&gt; B : P)
≡  (∀ y : y ∈ A -&gt; B ⇒ P)
⇒   { since (∃ b : y = K b) ⇒ (y ∈ A -&gt; B) }
   (∀ y : (∃ b : y = K b) ⇒ P)
≡    { since (∃ b : Q) ⇒ P ≡ (∀ b : Q ⇒ P) }
   (∀ y : (∀ b : y = K b ⇒ P))
≡  (∀ b : P[(K b)/y])
&lt;/code&gt;&lt;/pre&gt;


Chris Rathman,

Thanks! I will have a read. The team I used to work with was also working on bidirectionality and I have to read that paper anyway...</description>
		<content:encoded><![CDATA[<p>lf,</p>
<p>Yes, I know about Djinn! In fact when I thought I found a general way to invert functions, I was merely constructing a term having the right type. After my talk, one of the audience fired up Djinn and showed me how it can be done. It must be one of my worst talks..</p>
<p>Frank Atanassow,</p>
<p>Oh, I&#8217;ve probably omitted too many steps. The reasoning goes like this:</p>
<pre><code>
   (∀ y ∈ A -> B : P)
≡  (∀ y : y ∈ A -> B ⇒ P)
⇒   { since (∃ b : y = K b) ⇒ (y ∈ A -> B) }
   (∀ y : (∃ b : y = K b) ⇒ P)
≡    { since (∃ b : Q) ⇒ P ≡ (∀ b : Q ⇒ P) }
   (∀ y : (∀ b : y = K b ⇒ P))
≡  (∀ b : P[(K b)/y])
</code></pre>
<p>Chris Rathman,</p>
<p>Thanks! I will have a read. The team I used to work with was also working on bidirectionality and I have to read that paper anyway&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
