<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://lambda-the-ultimate.org">
<channel>
 <title>Lambda the Ultimate - Category Theory</title>
 <link>http://lambda-the-ultimate.org/taxonomy/term/22/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>Lightweight Monadic Programming in ML</title>
 <link>http://lambda-the-ultimate.org/node/4321</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.cs.umd.edu/~mwh/papers/swamy11monad.html&quot;&gt;Lightweight Monadic Programming in ML&lt;/a&gt;&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Many useful programming constructions can be expressed as monads. Examples include probabilistic modeling, functional reactive programming, parsing, and information flow tracking, not to mention effectful functionality like state and I/O. In this paper, we present a type-based rewriting algorithm to make programming with arbitrary monads as easy as using ML&#039;s built-in support for state and I/O. Developers write programs using monadic values of type &lt;i &gt;M t&lt;/i&gt; as if they were of type &lt;i &gt;t&lt;/i&gt;, and our algorithm inserts the necessary binds, units, and monad-to-monad morphisms so that the program type checks. Our algorithm, based on Jones&#039; qualified types, produces principal types. But principal types are sometimes problematic: the program&#039;s semantics could depend on the choice of instantiation when more than one instantiation is valid. In such situations we are able to simplify the types to remove any ambiguity but without adversely affecting typability; thus we can accept strictly more programs. Moreover, we have proved that this simplification is &lt;i &gt;efficient&lt;/i&gt; (linear in the number of constraints) and &lt;i &gt;coherent&lt;/i&gt;: while our algorithm induces a particular rewriting, all related rewritings will have the same semantics. We have implemented our approach for a core functional language and applied it successfully to simple examples from the domains listed above, which are used as illustrations throughout the paper.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;This is an intriguing paper, with an implementation in about 2,000 lines of OCaml. I&#039;m especially interested in its application to probabilistic computing, yielding a result related to Kiselyov and Shan&#039;s Hansei effort, but without requiring delimited continuations (not that there&#039;s anything wrong with delimited continuations). On a theoretical level, it&#039;s nice to see such a compelling example of what can be done once types are freed from the shackle of &quot;describing how bits are laid out in memory&quot; (another such compelling example, IMHO, is type-directed partial evaluation, but that&#039;s literally another story).&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/8">Implementation</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/29">Semantics</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Thu, 28 Jul 2011 14:11:27 -0400</pubDate>
</item>
<item>
 <title>Kleisli Arrows of Outrageous Fortune</title>
 <link>http://lambda-the-ultimate.org/node/4273</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://personal.cis.strath.ac.uk/~conor/Kleisli.pdf&quot;&gt;Kleisli Arrows of Outrageous Fortune&lt;/a&gt;&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
When we program to interact with a turbulent world, we are to some extent at its mercy. To achieve safety, we must ensure that programs act in accordance with what is known about the state of the world, as determined dynamically. Is there any hope to enforce safety policies for dynamic interaction by static typing? This paper answers with a cautious ‘yes’.&lt;/p&gt;
&lt;p &gt;Monads provide a type discipline for effectful programming, mapping value types to computation types. If we index our types by data approximating the ‘state of the world’, we refine our values to witnesses for some condition of the world. Ordinary monads for indexed types give a discipline for effectful programming contingent on state, modelling the whims of fortune in way that Atkey’s indexed monads for ordinary types do not (Atkey, 2009). Arrows in the corresponding Kleisli category represent computations which a reach a given postcondition from a given precondition: their types are just specifications in a Hoare logic!&lt;/p&gt;
&lt;p &gt;By way of an elementary introduction to this approach, I present the example of a monad for interacting with a file handle which is either ‘open’ or ‘closed’, constructed from a command interface specfied Hoare-style. An attempt to open a file results in a state which is statically unpredictable but dynamically detectable. Well typed programs behave accordingly in either case. Haskell’s dependent type system, as exposed by the Strathclyde Haskell Enhancement preprocessor, provides a suitable basis for this simple experiment.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;I discovered this Googling around in an attempt to find some decent introductory material to Kleisli arrows. This isn&#039;t introductory, but it&#039;s a good resource. :-) The good introductory material I found was &lt;a href=&quot;http://blog.downstairspeople.org/2010/06/14/a-brutal-introduction-to-arrows/&quot;&gt;this&lt;/a&gt;.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Sat, 14 May 2011 11:19:08 -0400</pubDate>
</item>
<item>
 <title>A Lambda Calculus for Real Analysis</title>
 <link>http://lambda-the-ultimate.org/node/3831</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://paultaylor.eu/ASD/lamcra/&quot;&gt;A Lambda Calculus for Real Analysis&lt;/a&gt;&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Abstract Stone Duality is a revolutionary paradigm for general topology that describes computable continuous functions directly, without using set theory, infinitary lattice theory or a prior theory of discrete computation. Every expression in the calculus denotes both a continuous function and a program, and the reasoning looks remarkably like a sanitised form of that in classical topology. This is an introduction to ASD for the general mathematician, with application to elementary real analysis.&lt;/p&gt;
&lt;p &gt;This language is applied to the Intermediate Value Theorem: the solution of equations for continuous functions on the real line. As is well known from both numerical and constructive considerations, the equation cannot be solved if the function &quot;hovers&quot; near 0, whilst tangential solutions will never be found.&lt;/p&gt;
&lt;p &gt;In ASD, both of these failures and the general method of finding solutions of the equation when they exist are explained by the new concept of overtness. The zeroes are captured, not as a set, but by higher-type modal operators. Unlike the Brouwer degree, these are defined and (Scott) continuous across singularities of a parametric equation.&lt;/p&gt;
&lt;p &gt;Expressing topology in terms of continuous functions rather than sets of points leads to treatments of open and closed concepts that are very closely lattice- (or de Morgan-) dual, without the double negations that are found in intuitionistic approaches. In this, the dual of compactness is overtness. Whereas meets and joins in locale theory are asymmetrically finite and infinite, they have overt and compact indices in ASD.&lt;/p&gt;
&lt;p &gt;Overtness replaces metrical properties such as total boundedness, and cardinality conditions such as having a countable dense subset. It is also related to locatedness in constructive analysis and recursive enumerability in recursion theory.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Paul Taylor is deadly serious about the intersection of logic, mathematics, and computation. I came across this after beating my head against &lt;a href=&quot;http://www.amazon.com/Probability-Theory-Logic-Science-Vol/dp/0521592712/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1266357272&amp;amp;sr=8-1&quot;&gt;Probability Theory: The Logic of Science&lt;/a&gt; and &lt;a href=&quot;http://axiomaticeconomics.com/&quot;&gt;Axiomatic Theory of Economics&lt;/a&gt; over the weekend, realizing that my math just wasn&#039;t up to the tasks, and doing a Google search for &quot;constructive real analysis.&quot; &quot;Real analysis&quot; because it was obvious that that was what both of the aforementioned texts were relying on; &quot;constructive&quot; because I&#039;d really like to develop proofs in Coq/extract working code from them. This paper was on the second page of results. Paul&#039;s name was familiar (and not just because I share it with him); he translated Jean-Yves Girard&#039;s regrettably out-of-print &lt;a href=&quot;http://paultaylor.eu/stable/Proofs+Types&quot;&gt;Proofs and Types&lt;/a&gt; to English and maintains a very popular set of tools for typesetting &lt;a href=&quot;http://paultaylor.eu/diagrams/&quot;&gt;commutative diagrams&lt;/a&gt; using LaTeX.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/20">Lambda Calculus</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/13">Logic/Declarative</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/15">Meta-Programming</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/29">Semantics</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Tue, 16 Feb 2010 17:00:42 -0500</pubDate>
</item>
<item>
 <title>Simplicial Databases</title>
 <link>http://lambda-the-ultimate.org/node/3761</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://arxiv.org/abs/0904.2012&quot;&gt;Simplicial Databases&lt;/a&gt;, David I. Spivak. &lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;In this paper, we define a category DB, called the category of simplicial databases, whose objects are databases and whose morphisms are data-preserving maps. Along the way we give a precise formulation of the category of relational databases, and prove that it is a full subcategory of DB. We also prove that limits and colimits always exist in DB and that they correspond to queries such as select, join, union, etc. One feature of our construction is that the schema of a simplicial database has a natural geometric structure: an underlying simplicial set. The geometry of a schema is a way of keeping track of relationships between distinct tables, and can be thought of as a system of foreign keys. The shape of a schema is generally intuitive (e.g. the schema for round-trip flights is a circle consisting of an edge from $A$ to $B$ and an edge from $B$ to $A$), and as such, may be useful for analyzing data. We give several applications of our approach, as well as possible advantages it has over the relational model. We also indicate some directions for further research.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;This is what happens when you try to take the existence of ORDER BY and COUNT in SQL seriously. :-)  &lt;/p&gt;
&lt;p &gt;If you&#039;re puzzled by how a geometric idea like simplexes could show up here, remember that the algebraic view of simplicial sets is as &lt;a href=&quot;http://en.wikipedia.org/wiki/Presheaf_%28category_theory%29&quot;&gt;presheaves&lt;/a&gt; on the category of finite total orders and order-preserving maps. Every finite sequence gives rise to a total order on its set of positions, and tables have rows and columns as sequences!&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/19">Theory</category>
 <pubDate>Fri, 08 Jan 2010 06:44:03 -0500</pubDate>
</item>
<item>
 <title>An Innocent Model of Linear Logic</title>
 <link>http://lambda-the-ultimate.org/node/3727</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.pps.jussieu.fr/~mellies/papers/ag3-ctcs.pdf&quot;&gt;An Innocent Model of Linear Logic&lt;/a&gt; by Paul-Andr&amp;eacute; Melli&amp;egrave;s was &lt;a href=&quot;/node/3716#comment-53086&quot;&gt;referenced by Noam&lt;/a&gt; in a &lt;a href=&quot;/node/3716#comment-53069&quot;&gt;serendipitious subthread&lt;/a&gt; of the &quot;Claiming Infinities&quot; thread.&lt;/p&gt;
&lt;p &gt;Here&#039;s the abstract:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Since its early days, deterministic sequential game semantics has been limited to linear or polarized fragments of linear logic. Every attempt to extend the semantics to full propositional linear logic has bumped against the so-called Blass problem, which indicates (misleadingly) that a category of sequential games cannot be self-dual and cartesian at the same time. We circumvent this problem by considering (1) that sequential games are inherently positional; (2) that they admit internal positions as well as external positions. We construct in this way a sequential game model of propositional linear logic, which incorporates two variants of the innocent arena game model: the well-bracketed and the non well-bracketed ones.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;The introduction goes on to refer to to Andr&amp;eacute; Joyal&#039;s &quot;&lt;i &gt;Category Y with Conway games as objects, and winning strategies as morphisms, composed by sequential interaction&lt;/i&gt;,&quot; and points out that &quot;&lt;i &gt;it is a precursor of game semantics for proof theory and programming languages&lt;/i&gt;,&quot; and is &quot;&lt;i &gt;a self-dual category of sequential games&lt;/i&gt;.&quot; The foreword mentions that the paper goes on to give &quot;&lt;i &gt;a crash course on asynchronous games&lt;/i&gt;&quot; and then &quot;&lt;i &gt;constructs a linear continuation monad equivalent to the identity functor, by allowing internal positions in our games, [which] circumvents the Blass problem and defines a model of linear logic&lt;/i&gt;.&quot;&lt;/p&gt;
&lt;p &gt;Jacques Carette called this paper mind-blowing.  My mind-blow warning light already exploded.  I&#039;m posting this paper because I know a number of LtUers are interested in these topics, and this way I can buttonhole one of them the next time I see them and ask them to explain it to me. ;)&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <pubDate>Thu, 17 Dec 2009 22:23:36 -0500</pubDate>
</item>
<item>
 <title>Lawvere Theories and Monads</title>
 <link>http://lambda-the-ultimate.org/node/3235</link>
 <description>&lt;p &gt;Martin Hyland and John Power (2007).  &lt;a href=&quot;http://www.dpmms.cam.ac.uk/~martin/Research/Publications/2007/hp07.pdf&quot;&gt;The Category Theoretic Understanding of Universal Algebra: Lawvere Theories and Monads&lt;/a&gt;.  ENTCS 172:437-458.&lt;/p&gt;
&lt;p &gt;Both monads and Lawvere theories provide characterisations of algebraic structure, with monads providing the more general characterisation.  The authors provide an introduction to Lawvere theories, discusses their relationship to sets, and why monads became the more popular treatment.&lt;/p&gt;
&lt;p &gt;Then they tackle the application of the theory to the semantics of side effects, where they argue that the generality of monads allow them to characterise computational phenomena that are not to do with side effects such as partiality and continuations, and argue that Lawvere theories more cleanly characterise what side effects are.&lt;/p&gt;
&lt;p &gt;This paper is a good introduction to an important line of recent research done by Hyland&amp;Power; cf. also the LtU story &lt;a href=&quot;http://lambda-the-ultimate.org/node/1024&quot;&gt;Combining computational effects&lt;/a&gt;.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <pubDate>Fri, 13 Mar 2009 08:50:44 -0400</pubDate>
</item>
<item>
 <title>Parameterized Notions of Computation</title>
 <link>http://lambda-the-ultimate.org/node/3210</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://homepages.inf.ed.ac.uk/ratkey/paramnotions-jfp.pdf&quot;&gt;Parameterized Notions of Computation&lt;/a&gt;, Robert Atkey, JFP 2008. &lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Moggi&#039;s Computational Monads and Power et al&#039;s equivalent notion of Freyd category have captured a large range of computational effects present in programming languages. Examples include non-termination, non-determinism, exceptions, continuations, side-effects and input/output. We present generalisations of both computational monads and Freyd categories, which we call parameterised monads and parameterised Freyd categories, that also capture computational effects with parameters. &lt;/p&gt;
&lt;p &gt;Examples of such are composable continuations, side-effects where the type of the state varies and input/output where the range of inputs and outputs varies. By also considering structured parameterisation, we extend the range of effects to cover separated side-effects and multiple independent streams of I/O. We also present two typed λ-calculi that soundly and completely model our categorical definitions — with and without symmetric monoidal parameterisation — and act as prototypical languages with parameterised effects.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Once you&#039;ve programmed with monads for a while, it&#039;s pretty common to start defining parameterized families of monads -- e.g., we might define a family of type constructors for IO, in which the program type additionally tracks which files the computation reads and writes from. This is a very convenient programming pattern, but the theory of it is honestly a little sketchy: on what basis do we conclude that the indices we define &lt;em &gt;actually&lt;/em&gt; track what we intend them to? And furthermore, why can we believe that (say) the monadic equational laws still apply? That&#039;s the question Atkey lays out a nice solution to. He gives a nice categorical semantics for indexed, effectful computations, and then cooks up lambda calculi whose equational theory corresponds to the equations his semantics justifies. &lt;/p&gt;
&lt;p &gt;The application to delimited continuations is quite nice, and the type theories can also give a little insight into the basics of how stuff like Hoare Type Theory works (which uses parameterized monads, with a very sophisticated language of parameters). &lt;/p&gt;
&lt;p &gt;On a slightly tangential note, this also raises in my mind a methodological point. Over the last &lt;em &gt;n&lt;/em&gt; years, we&#039;ve seen many people identify certain type constructors, whose usage is pervasive, and greatly simplified with some syntactic extensions  -- monads, comonads, applicative functors, arrows, and so on. It&#039;s incredible to suggest that we have exhausted the list of interesting types, and so together they constitute a good argument for some kind of language extension mechanism, such as macros. However, all these examples also &lt;em &gt;raise the bar&lt;/em&gt; for when a macro is a good idea, because what makes them compelling is precisely that the right syntax yields an interesting and pretty equational theory in the extended language. &lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/20">Lambda Calculus</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/29">Semantics</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Wed, 11 Feb 2009 16:40:24 -0500</pubDate>
</item>
<item>
 <title>Computation and the Periodic Table</title>
 <link>http://lambda-the-ultimate.org/node/2861</link>
 <description>&lt;blockquote &gt;By now there is an extensive network of interlocking analogies between physics, topology, logic and computer science, which can be seen most easily by comparing the roles that symmetric monoidal closed categories play in each subject. However, symmetric monoidal categories are just the n = 1, k = 3 entry of a hypothesized 
“periodic table” of k-tuply monoidal n-categories. This raises the question of how these analogies extend. We present some thoughts on this question, focusing on how monoidal closed 2-categories might let us understand the lambda calculus more deeply.&lt;/blockquote&gt;
&lt;p &gt;&lt;a href=&#039;http://math.ucr.edu/home/baez/atmcs2008/&#039;&gt;Link to the talk&lt;/a&gt;&lt;/p&gt;
&lt;p &gt;via &lt;a href=&#039;http://golem.ph.utexas.edu/category/2008/06/computation_and_the_periodic_t.html&#039;&gt;The n-Category Caf&amp;eacute;&lt;/a&gt;&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <pubDate>Fri, 20 Jun 2008 09:36:35 -0400</pubDate>
</item>
<item>
 <title>Arrows generalise monads and idioms</title>
 <link>http://lambda-the-ultimate.org/node/2799</link>
 <description>Two fresh papers from the Edinburgh theory stable:
&lt;ul &gt;
&lt;li &gt;Lindley, Wadler &amp;amp; Yallop, 2008.  &lt;a href=&quot;http://homepages.inf.ed.ac.uk/wadler/papers/arrows/arrows.pdf&quot;&gt;The Arrow Calculus, (Functional Pearl)&lt;/a&gt; (submitted to ICFP).
&lt;li &gt;Lindley, Wadler &amp;amp; Yallop, 2008.  &lt;a href=&quot;http://homepages.inf.ed.ac.uk/wadler/papers/arrows-and-idioms/arrows-and-idioms.pdf&quot;&gt;Idioms are oblivious, arrows are meticulous, monads are promiscuous&lt;/a&gt; (submitted to MSFP)
&lt;blockquote &gt;
We revisit the connection between three notions of computation: Moggi’s monads, Hughes’s arrows and 
McBride and Paterson’s idioms (also called applicative functors ). We show that idioms are equivalent to 
arrows that satisfy the type isomorphism A &amp;sim;&amp;gt; B &amp;cong; 1 &amp;sim;&amp;gt; (A -&amp;gt; B) and that monads are equivalent to arrows 
that satisfy the type isomorphism A &amp;sim;&amp;gt; B &amp;cong;A → (1 &amp;sim;&amp;gt; B). Further, idioms embed into arrows and arrows embed into monads. 
&lt;/blockquote&gt;
&lt;/ul&gt;
The first paper introduce a reformulation of the Power/Thielecke/Paterson/McBride axiomatisation of arrows, which the authors argue is more natural, and shows that arrows generalise both monads and idioms.  The second paper studies the relationships between the three formalisations in more formal depth; in particular the results about applicative functors struck me as significant.</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <pubDate>Mon, 05 May 2008 08:41:33 -0400</pubDate>
</item>
<item>
 <title> Species: making analytic functors practical for functional programming</title>
 <link>http://lambda-the-ultimate.org/node/2785</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.cas.mcmaster.ca/~carette/species/&quot;&gt;Species: making analytic functors practical for functional programming&lt;/a&gt;, Jacques Carette and Gordon Uszkay. Submitted to MSFP 2008.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Inspired by Joyal&#039;s theory of species, we show how to add new type constructors and constructor combinators to the tool set of functional languages. We show that all the important properties of inductive types lift to this new setting. Species are analytic functors, representing a broader range of structures than regular functors. This includes structures such as bags, cycles and graphs. The theory is greatly inspired by combinatorics rather than type theory: this adds interesting new tools to bear, but also requires more work on our part to show that species form a good foundations for a theory of type constructors. The combinatorial tools provide a calculus for these structures which has strong links with classical analysis, via a functorial interpretation of generating series. Furthermore, we show how generic programming idioms also generalise to this richer setting. Once the theory is understood, various methods of implementation are relatively straightforward.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Learning more about the theory of species and working out its implications for programming has been on my to-do list for several years now. It really seems like the natural way to more tightly integrate combinatoric ideas into the functional programming style. (For an example of how fruitful this connection can be, consider how datatype differentiation explains zippers/functional pointers.) &lt;/p&gt;
&lt;p &gt;However, there&#039;s been this whole &quot;graduation&quot; and &quot;primary research focus&quot; stuff that&#039;s kept getting in the way, so I&#039;m happy to see that Carette and Uszkay are figuring it out so I can just crib from them. :)&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <pubDate>Wed, 23 Apr 2008 14:37:49 -0400</pubDate>
</item>
<item>
 <title>Help John Baez and Mike Stay!</title>
 <link>http://lambda-the-ultimate.org/node/2705</link>
 <description>&lt;p &gt;John Baez and Mike Stay are working on a book chapter titled &quot;Categories in Physics, Topology, Logic and Computation: a Rosetta Stone.&quot; They previously asked for some help with the logic section, and now they&#039;re &lt;a href=&quot;http://golem.ph.utexas.edu/category/2008/03/computer_scientists_needed_now.html&quot;&gt;looking for help&lt;/a&gt; with the computation section:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;But now I really need comments from anyone who likes categories and theoretical computer science!&lt;/p&gt;
&lt;p &gt;In fact, the final &#039;computation&#039; section of the paper is still very rough.  It introduces combinators but doesn’t really explain them well yet... and perhaps worse, it doesn’t say anything about the lambda calculus!  &lt;/p&gt;
&lt;p &gt;I plan to fix some of these deficiencies in the next week.  But, I figure it’s best to get comments and criticism now, while there’s still time to take it into account.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;This is already a great introductory paper, but the computation section is indeed quite rough. Obviously comments are welcome, but even if you don&#039;t have anything to add, the first sections are sure to be enjoyable for many LtU readers. The paper does not assume any background in category theory, logic or physics and manages to be an excellent introduction to the surprising connections between these fields. If you have some background, it&#039;s a very quick and fun read, and if you can offer feedback, so much the better!&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <pubDate>Sat, 01 Mar 2008 13:44:24 -0500</pubDate>
</item>
<item>
 <title>Parametric datatype-genericity</title>
 <link>http://lambda-the-ultimate.org/node/2555</link>
 <description>&lt;a href=&quot;http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/parametric.pdf&quot;&gt;Parametric datatype-genericity&lt;/a&gt;. Jeremy Gibbons and Ross Paterson. Submitted for publication.&lt;p &gt;
&lt;blockquote &gt;
Datatype-generic programs are programs that are parametrized by a datatype or type functor. There are two main styles of datatype-generic programming: the Algebra of Programming approach, characterized by structured recursion operators parametrized by a shape functor, and the Generic Haskell approach, characterized by case analysis over the structure of a datatype. We show that the former enjoys a kind of parametricity, relating the behaviours of generic functions at different types; in contrast, the latter is more ad hoc, with no coherence required or provided between the various clauses of a definition.
&lt;/blockquote&gt;&lt;p &gt;
How could we have not mentioned this before?&lt;p &gt;
The main result of this paper is that fold is a higher-order natural transformation. This means, the authors explain,  that fold is a rather special kind of datatype-generic operator, both enjoying and requiring coherence between its datatype-specific instances.&lt;p &gt;
We had several long discussions about the uniqueness of fold, which may serve as an introduction for those new to this sort of discussion. The tutorial on the universality of fold is, of course, on the papers page.&lt;p &gt;
For some reason I feel a craving for bananas...</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <pubDate>Tue, 04 Dec 2007 02:24:06 -0500</pubDate>
</item>
<item>
 <title>A Logic for Parametric Polymorphism</title>
 <link>http://lambda-the-ultimate.org/node/2195</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://citeseer.ist.psu.edu/11685.html&quot;&gt;A Logic for Parametric Polymorphism&lt;/a&gt;,  Gordon Plotkin and Martín Abadi.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
In this paper we introduce a logic for parametric polymorphism. Just as LCF is a logic for the simply-typed lambda-calculus with recursion and arithmetic, our logic is a logic for System F. The logic permits the formal presentation and use of relational parametricity. Parametricity yields --- for example --- encodings of initial algebras, final co-algebras and abstract datatypes, with corresponding proof principles of induction, co-induction and simulation.
&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/20">Lambda Calculus</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/29">Semantics</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/19">Theory</category>
 <pubDate>Fri, 13 Apr 2007 18:27:59 -0400</pubDate>
</item>
<item>
 <title>A Topos Foundation for Theories of Physics</title>
 <link>http://lambda-the-ultimate.org/node/2143</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://arxiv.org/abs/quant-ph/0703060&quot;&gt;A Topos Foundation for Theories of Physics: I. Formal Languages for Physics&lt;/a&gt;. Andreas D&amp;ouml;ring and Chris Isham.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;This paper is the first in a series whose goal is to develop a fundamentally new way of constructing theories of physics. The motivation comes from a desire to address certain deep issues that arise when contemplating quantum theories of space and time. Our basic contention is that constructing a theory of physics is equivalent to finding a representation in a topos of a certain formal language that is attached to the system. Classical physics arises when the topos is the category of sets. Other types of theory employ a different topos. In this paper we discuss two different types of language that can be attached to a system, S. The first is a propositional language, PL(S); the second is a higher-order, typed language L(S). Both languages provide deductive systems with an intuitionistic logic. The reason for introducing PL(S) is that, as shown in paper II of the series, it is the easiest way of understanding, and expanding on, the earlier work on topos theory and quantum physics. However, the main thrust of our programme utilises the more powerful language L(S) and its representation in an appropriate topos.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;This is a little outside of our usual areas, but I think it will appeal to at least  some readers. Personally, I find the approach aesthetically very, very appealing for several reasons, and I would be thrilled if an answer to quantum cosmology came from this direction, but I&#039;m the first to admit that my grasp of the phsyics is barely enough to follow along. I was able to make it through this paper fairly easily, but things aren&#039;t too interesting in the classical case, and I sadly suspect that the application to quantum physics in parts II and III will leave me behind. &lt;/p&gt;
&lt;p &gt;Via &lt;a href=&quot;http://golem.ph.utexas.edu/category/&quot;&gt;The n-Category Cafe&lt;/a&gt;, where there is also &lt;a href=&quot;http://golem.ph.utexas.edu/category/2007/03/a_topos_foundation_for_theorie.html&quot;&gt;considerable discussion&lt;/a&gt;, much of it around the single word &quot;peristalithic&quot;...&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Wed, 21 Mar 2007 01:13:11 -0400</pubDate>
</item>
<item>
 <title>Propositions as [Types]</title>
 <link>http://lambda-the-ultimate.org/node/2100</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://math.andrej.com/2004/05/04/propositions-as-types/&quot;&gt;Propositions as [Types]&lt;/a&gt;, Steve Awodey and Adrej Bauer. &lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Image factorizations in regular categories are stable under pullbacks, so they model a natural modal operator in dependent type theory. This unary type constructor [A] has turned up previously in a syntactic form as a way of erasing computational content, and formalizing a notion of proof irrelevance. Indeed, semantically, the notion of a support is sometimes used as surrogate proposition asserting inhabitation of an indexed family.&lt;/p&gt;
&lt;p &gt;We give rules for bracket types in dependent type theory and provide complete semantics using regular categories. We show that dependent type theory with the unit type, strong extensional equality types, strong dependent sums, and bracket types is the internal type theory of regular categories, in the same way that the usual dependent type theory with dependent sums and products is the internal type theory of locally cartesian closed categories.&lt;/p&gt;
&lt;p &gt;We also show how to interpret first-order logic in type theory with brackets, and we make use of the translation to compare type theory with logic. Specifically, we show that the propositions-as-types interpretation is complete with respect to a certain fragment of intuitionistic first-order logic. As a consequence, a modified double-negation translation into type theory (without bracket types) is complete for all of classical first-order logic.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;I figure I should say a few words about why proof irrelevance is an interesting idea. In math, you often want to consider elements of a certain type that have certain properties -- for example, you might want the set of satisfiable boolean formulas as part of a proof as a hypothesis of a theorem. &lt;/p&gt;
&lt;p &gt;The way you might represent this in dependent type theory is by giving a pair, consisting of a formula and a satisfying assignment. You might write this as &lt;code &gt;sigma f:Formula. assignment(f)&lt;/code&gt;. The trouble is that the elements of this type really have more information than the subset contains; in addition to having formulas, you also have the assignments. So if you wanted to write a function that took values of this type computed satisfying assignments, then you could do it in constant time by just returning the second component of the pair, the evidence that it was satisfiable. This is not what you want, if your goal was to show that you could &lt;em &gt;compute&lt;/em&gt; the satisfying assignment to a satisfiable formula.&lt;/p&gt;
&lt;p &gt;One way of addressing this problem is to treat the second component of the pair as a proof irrelevant type. The basic idea is that for each type &lt;code &gt;A&lt;/code&gt;, you make up a new type &lt;code &gt;[A]&lt;/code&gt; which has either zero or one inhabitants, depending on whether &lt;code &gt;A&lt;/code&gt; has any inhabitants or not. This means that you cannot make any computational use of data of type &lt;code &gt;[A]&lt;/code&gt;, because it doesn&#039;t have any structure to it. So if your solver receives a value of type &lt;code &gt;sigma f:Formula. [assignment(f)]&lt;/code&gt;, then you know that the formula is satisfiable, but you don&#039;t know what it is, because the second component is a bracket type.  This means that your function will actually have to do the real work you intended. &lt;/p&gt;
&lt;p &gt;I should also add that this is an old idea in type theory; this is the paper that made it clear to me. &lt;/p&gt;
&lt;p &gt;(Thanks to Bob Harper for suggesting clarifications to my comments.)&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/22">Category Theory</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Sat, 03 Mar 2007 14:19:21 -0500</pubDate>
</item>
</channel>
</rss>

