<?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 for Epilogue</title>
	<atom:link href="http://www.e-pig.org/epilogue/?feed=comments-rss2" rel="self" type="application/rss+xml" />
	<link>http://www.e-pig.org/epilogue</link>
	<description>for Epigram</description>
	<lastBuildDate>Fri, 20 Aug 2010 14:50:21 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on No Representation without Taxation by Adam</title>
		<link>http://www.e-pig.org/epilogue/?p=657&#038;cpage=1#comment-72577</link>
		<dc:creator>Adam</dc:creator>
		<pubDate>Fri, 20 Aug 2010 14:50:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=657#comment-72577</guid>
		<description>Thanks for pointing this out. I&#039;ve fixed the typo.</description>
		<content:encoded><![CDATA[<p>Thanks for pointing this out. I&#8217;ve fixed the typo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on No Representation without Taxation by Glenn Willen</title>
		<link>http://www.e-pig.org/epilogue/?p=657&#038;cpage=1#comment-71206</link>
		<dc:creator>Glenn Willen</dc:creator>
		<pubDate>Wed, 23 Jun 2010 17:15:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=657#comment-71206</guid>
		<description>&quot;We get from values to types by quotation.&quot;

This should presumably read &quot;from values to terms&quot;. I suspect your target audience won&#039;t be confused by this, but it took me a minute or two to figure it out.</description>
		<content:encoded><![CDATA[<p>&#8220;We get from values to types by quotation.&#8221;</p>
<p>This should presumably read &#8220;from values to terms&#8221;. I suspect your target audience won&#8217;t be confused by this, but it took me a minute or two to figure it out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on W-types: good news and bad news by Adam</title>
		<link>http://www.e-pig.org/epilogue/?p=324&#038;cpage=1#comment-71096</link>
		<dc:creator>Adam</dc:creator>
		<pubDate>Tue, 15 Jun 2010 07:48:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=324#comment-71096</guid>
		<description>Of course all _propositional_ equalities hold under an absurd hypothesis, but I think Conor&#039;s point is rather that the _definitional_ (judgmental) equality also collapses if it identifies the different W-type implementations of zero. Definitional equality needs to make sense even on open terms, as otherwise computation on them can &quot;go wrong&quot; without a false hypothesis to blame.</description>
		<content:encoded><![CDATA[<p>Of course all _propositional_ equalities hold under an absurd hypothesis, but I think Conor&#8217;s point is rather that the _definitional_ (judgmental) equality also collapses if it identifies the different W-type implementations of zero. Definitional equality needs to make sense even on open terms, as otherwise computation on them can &#8220;go wrong&#8221; without a false hypothesis to blame.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on W-types: good news and bad news by Brandon</title>
		<link>http://www.e-pig.org/epilogue/?p=324&#038;cpage=1#comment-71078</link>
		<dc:creator>Brandon</dc:creator>
		<pubDate>Sat, 12 Jun 2010 21:51:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=324#comment-71078</guid>
		<description>I don&#039;t see how the last example is any worse than the issues that have already been dealt with in OTT. In a context with a hypothesis in 0 you will already be able to prove absurdities, but as long as these equalities over terms in the W-type are propositional you would still need to explicitly coerce by them, and if you are going to that trouble you can get up to worse mischief simply by induction on the hypothesis from 0.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t see how the last example is any worse than the issues that have already been dealt with in OTT. In a context with a hypothesis in 0 you will already be able to prove absurdities, but as long as these equalities over terms in the W-type are propositional you would still need to explicitly coerce by them, and if you are going to that trouble you can get up to worse mischief simply by induction on the hypothesis from 0.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on No Representation without Taxation by Conor</title>
		<link>http://www.e-pig.org/epilogue/?p=657&#038;cpage=1#comment-71004</link>
		<dc:creator>Conor</dc:creator>
		<pubDate>Mon, 31 May 2010 14:21:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=657#comment-71004</guid>
		<description>As a footnote, some info on what we care about when.

To typecheck a term, it must be beta-normal. Environment-body pairs cannot be typechecked without substituting them out (hereditarily).
To match on a term, it must be beta-delta-normal and of positive type. (Positive types are Set, Prop, enumerations, datatypes. Not Pi, Sig, proofs, codatatypes.)
To update a term, we care only that it is represented in a first-order way.
To construct a term, e.g. when implementing an operator, we like some sort of lambda (Haskell or de Bruijn), not environment-body pairs.
To go from functional binding or environment-body pairs to a first-order lambda requires a name supply.
To typecheck requires a name supply and bidirectional type information.
To eta-expand requires a name supply and bidirectional type information.
To beta-normalize or beta-delta-normalize requires only a name supply.
Whatever &#8216;values&#8217; operators consume must be easily embedded anywhere in whatever they produce, without a name supply.

These constraints admit a variety of solutions. Are there more constraints?</description>
		<content:encoded><![CDATA[<p>As a footnote, some info on what we care about when.</p>
<p>To typecheck a term, it must be beta-normal. Environment-body pairs cannot be typechecked without substituting them out (hereditarily).<br />
To match on a term, it must be beta-delta-normal and of positive type. (Positive types are Set, Prop, enumerations, datatypes. Not Pi, Sig, proofs, codatatypes.)<br />
To update a term, we care only that it is represented in a first-order way.<br />
To construct a term, e.g. when implementing an operator, we like some sort of lambda (Haskell or de Bruijn), not environment-body pairs.<br />
To go from functional binding or environment-body pairs to a first-order lambda requires a name supply.<br />
To typecheck requires a name supply and bidirectional type information.<br />
To eta-expand requires a name supply and bidirectional type information.<br />
To beta-normalize or beta-delta-normalize requires only a name supply.<br />
Whatever &lsquo;values&rsquo; operators consume must be easily embedded anywhere in whatever they produce, without a name supply.</p>
<p>These constraints admit a variety of solutions. Are there more constraints?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on EPIG, a journey in Quotation by Dan Doel</title>
		<link>http://www.e-pig.org/epilogue/?p=504&#038;cpage=1#comment-71001</link>
		<dc:creator>Dan Doel</dc:creator>
		<pubDate>Tue, 18 May 2010 11:06:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=504#comment-71001</guid>
		<description>It occurred to me somewhat later that one can write two different identities with the usual eliminator for naturals:

elim_Nat Z (\n r -&gt; S n)
elim_Nat Z (\n r -&gt; S r)

So doing either expansion is going to leave something out, and can&#039;t work, I suppose. Perhaps there is hope for reduction, though. As I recall, the issue with eta reduction is that it breaks confluence and uniqueness of normal forms. However, if you&#039;re already at beta-normal forms before doing any quotation, it presumably doesn&#039;t matter whether some non-normal term has both beta and eta redices that lead to irreconcilable terms; only beta can happen at that point.

That of course says nothing about whether detecting identity eliminations is feasible.</description>
		<content:encoded><![CDATA[<p>It occurred to me somewhat later that one can write two different identities with the usual eliminator for naturals:</p>
<p>elim_Nat Z (\n r -&gt; S n)<br />
elim_Nat Z (\n r -&gt; S r)</p>
<p>So doing either expansion is going to leave something out, and can&#8217;t work, I suppose. Perhaps there is hope for reduction, though. As I recall, the issue with eta reduction is that it breaks confluence and uniqueness of normal forms. However, if you&#8217;re already at beta-normal forms before doing any quotation, it presumably doesn&#8217;t matter whether some non-normal term has both beta and eta redices that lead to irreconcilable terms; only beta can happen at that point.</p>
<p>That of course says nothing about whether detecting identity eliminations is feasible.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on EPIG, a journey in Quotation by Conor</title>
		<link>http://www.e-pig.org/epilogue/?p=504&#038;cpage=1#comment-71000</link>
		<dc:creator>Conor</dc:creator>
		<pubDate>Tue, 18 May 2010 09:38:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=504#comment-71000</guid>
		<description>We do eta-expansion only for Pi and Sigma, and (the as yet underexposed) proof-squashing. We currently make no attempt to rearrange stuck inductive eliminators: commuting conversions are a tricky business even for sums, let alone recursive types. I&#039;m too scared to get in with those alligators.

So, yes, (inevitably, of course), some identity functions are more equal than others. The quotation rules for map (and one or two other things) exploit structure which is present by construction. We aren&#039;t really used to this technology yet: it certainly has many more possibilities, but we haven&#039;t yet got a feel for what we can/should do. Interesting times. (There&#039;s a free indexed monad just around the corner.)</description>
		<content:encoded><![CDATA[<p>We do eta-expansion only for Pi and Sigma, and (the as yet underexposed) proof-squashing. We currently make no attempt to rearrange stuck inductive eliminators: commuting conversions are a tricky business even for sums, let alone recursive types. I&#8217;m too scared to get in with those alligators.</p>
<p>So, yes, (inevitably, of course), some identity functions are more equal than others. The quotation rules for map (and one or two other things) exploit structure which is present by construction. We aren&#8217;t really used to this technology yet: it certainly has many more possibilities, but we haven&#8217;t yet got a feel for what we can/should do. Interesting times. (There&#8217;s a free indexed monad just around the corner.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on EPIG, a journey in Quotation by Dan Doel</title>
		<link>http://www.e-pig.org/epilogue/?p=504&#038;cpage=1#comment-70997</link>
		<dc:creator>Dan Doel</dc:creator>
		<pubDate>Mon, 17 May 2010 02:31:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=504#comment-70997</guid>
		<description>What kind of simplification is possible with regard to eliminators? For instance, if you don&#039;t do any, then despite having:

f == \x -&gt; x ==&gt; map f x == x

Some identities are more equal than others. For instance, what if:

f = \n -&gt; elim_Nat Z (\_ -&gt; S) n

I guess this is more eta, so does \x -&gt; x get expanded into the version with the eliminator (sums are part of why eta expansion is preferred, as I recall). Or does one try to recognize eliminators that just rebuild the thing they&#039;re eliminating?</description>
		<content:encoded><![CDATA[<p>What kind of simplification is possible with regard to eliminators? For instance, if you don&#8217;t do any, then despite having:</p>
<p>f == \x -&gt; x ==&gt; map f x == x</p>
<p>Some identities are more equal than others. For instance, what if:</p>
<p>f = \n -&gt; elim_Nat Z (\_ -&gt; S) n</p>
<p>I guess this is more eta, so does \x -&gt; x get expanded into the version with the eliminator (sums are part of why eta expansion is preferred, as I recall). Or does one try to recognize eliminators that just rebuild the thing they&#8217;re eliminating?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on EPIG, a journey in Quotation by Andrea Vezzosi</title>
		<link>http://www.e-pig.org/epilogue/?p=504&#038;cpage=1#comment-70988</link>
		<dc:creator>Andrea Vezzosi</dc:creator>
		<pubDate>Wed, 12 May 2010 14:08:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=504#comment-70988</guid>
		<description>Thanks, it&#039;s clear now, the implicitness of the precondition tripped me up.</description>
		<content:encoded><![CDATA[<p>Thanks, it&#8217;s clear now, the implicitness of the precondition tripped me up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on EPIG, a journey in Quotation by Conor</title>
		<link>http://www.e-pig.org/epilogue/?p=504&#038;cpage=1#comment-70985</link>
		<dc:creator>Conor</dc:creator>
		<pubDate>Tue, 11 May 2010 20:30:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.e-pig.org/epilogue/?p=504#comment-70985</guid>
		<description>I see Pierre-Évariste has beaten me to it. Let me fill in a bit of the background.

We try to write presentations of rules which give rise directly to the appropriate algorithms. Each judgment form has input positions and output positions, preconditions explaining our requirements of inputs, and postconditions giving guarantees about outputs.

In the case of &#915; &#124;- T &#8715; u == v, all four positions are inputs. The preconditions are &#915; &#124;- T &#8715; t and &#915; &#124;- T &#8715; v. That is, to ask if two values are equal at type T, you must first know that they both have that type.

How do we use rules? We work from conclusions to premises. We may presume that the conclusion preconditions hold (or we would not be interested in the problem); we may reduce the conclusion to a collection of premises only if we can establish their preconditions, left-to-right.

Hence, indeed, we have to check that X is Y before we may ask if f is id.</description>
		<content:encoded><![CDATA[<p>I see Pierre-Évariste has beaten me to it. Let me fill in a bit of the background.</p>
<p>We try to write presentations of rules which give rise directly to the appropriate algorithms. Each judgment form has input positions and output positions, preconditions explaining our requirements of inputs, and postconditions giving guarantees about outputs.</p>
<p>In the case of &Gamma; |- T &ni; u == v, all four positions are inputs. The preconditions are &Gamma; |- T &ni; t and &Gamma; |- T &ni; v. That is, to ask if two values are equal at type T, you must first know that they both have that type.</p>
<p>How do we use rules? We work from conclusions to premises. We may presume that the conclusion preconditions hold (or we would not be interested in the problem); we may reduce the conclusion to a collection of premises only if we can establish their preconditions, left-to-right.</p>
<p>Hence, indeed, we have to check that X is Y before we may ask if f is id.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
