<?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: Peano induction for binary numbers (bis)</title>
	<atom:link href="http://sneezy.cs.nott.ac.uk/fplunch/weblog/?feed=rss2&#038;p=70" rel="self" type="application/rss+xml" />
	<link>http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=70</link>
	<description>abstracting the pain away</description>
	<lastBuildDate>Tue, 17 May 2011 07:05:56 +0100</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
	<item>
		<title>By: Conor</title>
		<link>http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=70#comment-15659</link>
		<dc:creator>Conor</dc:creator>
		<pubDate>Mon, 14 Apr 2008 09:28:30 +0000</pubDate>
		<guid isPermaLink="false">http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=70#comment-15659</guid>
		<description>I tried to reply to this a few days ago and something went wrong. Here goes again.

By size, I mean the universe inhabited by the motive of the induction. binPeano quantifies over the motive inside the induction, so elimination over Set(n+1) is required to justify elimination over Set(n). Meanwhile, the Peano family is just an ordinary Set, and it does for all.

I guess I&#039;d also observe that binPeano is a higher-order function full of continuation-passing voodoo, whilst peano and its little friend are first order. Some people love that higher-order stuff, and finality in general, because you can do anything, but I love initiality, because it enables me to see everything.</description>
		<content:encoded><![CDATA[<p>I tried to reply to this a few days ago and something went wrong. Here goes again.</p>
<p>By size, I mean the universe inhabited by the motive of the induction. binPeano quantifies over the motive inside the induction, so elimination over Set(n+1) is required to justify elimination over Set(n). Meanwhile, the Peano family is just an ordinary Set, and it does for all.</p>
<p>I guess I&#8217;d also observe that binPeano is a higher-order function full of continuation-passing voodoo, whilst peano and its little friend are first order. Some people love that higher-order stuff, and finality in general, because you can do anything, but I love initiality, because it enables me to see everything.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Russell O'Connor</title>
		<link>http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=70#comment-14650</link>
		<dc:creator>Russell O'Connor</dc:creator>
		<pubDate>Sat, 15 Mar 2008 23:47:45 +0000</pubDate>
		<guid isPermaLink="false">http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=70#comment-14650</guid>
		<description>&gt; worst of all, quite expensive in the size of the inductions involved.

Can you elaborate on this?  What is expensive, and how are you measuring the size of inductions?

I find it a little unfair that peano got a helper function, but binPeano has to do all the work itself.  More fair would be to say 

binPeano (b;1) P p1 ps := ps (binPeano (b;0) P p1 ps)

Of course the body of binPeano (b;0) would have to be given it&#039;s own name (binDouble) to make this properly structurally recursive.</description>
		<content:encoded><![CDATA[<p>&gt; worst of all, quite expensive in the size of the inductions involved.</p>
<p>Can you elaborate on this?  What is expensive, and how are you measuring the size of inductions?</p>
<p>I find it a little unfair that peano got a helper function, but binPeano has to do all the work itself.  More fair would be to say </p>
<p>binPeano (b;1) P p1 ps := ps (binPeano (b;0) P p1 ps)</p>
<p>Of course the body of binPeano (b;0) would have to be given it&#8217;s own name (binDouble) to make this properly structurally recursive.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Conor</title>
		<link>http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=70#comment-8690</link>
		<dc:creator>Conor</dc:creator>
		<pubDate>Sat, 22 Sep 2007 09:42:17 +0000</pubDate>
		<guid isPermaLink="false">http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=70#comment-8690</guid>
		<description>I don&#039;t know why the rss feed only just kicked in. Sorry for the appallingly slow response.

jag, you&#039;re absolutely right; I&#039;ve fixed it.

Russell, Epigram 2&#039;s core theory has the restricted kind of inductive families you get in Agda 1, where constructors must target the full range of indices. You&#039;re right, with that alone you can&#039;t define Peano. However, unlike Agda 1, we also have a propositional equality, and that allows us to simulate full inductive families in a uniform way by adding &quot;Ford equations&quot;. So, in this example, we won&#039;t say &quot;p1 returns Peano 1&quot;, but we will say &quot;p1 returns Peano b for any b you like as long as it&#039;s equal to 1&quot;. In the source language, we&#039;ll sugar away the explicit equation mangling (much as we currently do), so it looks pretty much the way it does now.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know why the rss feed only just kicked in. Sorry for the appallingly slow response.</p>
<p>jag, you&#8217;re absolutely right; I&#8217;ve fixed it.</p>
<p>Russell, Epigram 2&#8242;s core theory has the restricted kind of inductive families you get in Agda 1, where constructors must target the full range of indices. You&#8217;re right, with that alone you can&#8217;t define Peano. However, unlike Agda 1, we also have a propositional equality, and that allows us to simulate full inductive families in a uniform way by adding &#8220;Ford equations&#8221;. So, in this example, we won&#8217;t say &#8220;p1 returns Peano 1&#8243;, but we will say &#8220;p1 returns Peano b for any b you like as long as it&#8217;s equal to 1&#8243;. In the source language, we&#8217;ll sugar away the explicit equation mangling (much as we currently do), so it looks pretty much the way it does now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jag</title>
		<link>http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=70#comment-8205</link>
		<dc:creator>jag</dc:creator>
		<pubDate>Wed, 08 Aug 2007 13:18:12 +0000</pubDate>
		<guid isPermaLink="false">http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=70#comment-8205</guid>
		<description>Shouldn&#039;t it be

bsuc (b; 1) = bsuc b; 0

?</description>
		<content:encoded><![CDATA[<p>Shouldn&#8217;t it be</p>
<p>bsuc (b; 1) = bsuc b; 0</p>
<p>?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Russell O'Connor</title>
		<link>http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=70#comment-8201</link>
		<dc:creator>Russell O'Connor</dc:creator>
		<pubDate>Tue, 07 Aug 2007 18:36:00 +0000</pubDate>
		<guid isPermaLink="false">http://sneezy.cs.nott.ac.uk/fplunch/weblog/?p=70#comment-8201</guid>
		<description>Epigram 2 won&#039;t have inductively defined families, so the family Peano cannot be defined as such.  How will this work in Epigram 2?</description>
		<content:encoded><![CDATA[<p>Epigram 2 won&#8217;t have inductively defined families, so the family Peano cannot be defined as such.  How will this work in Epigram 2?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
