categories - Category Theory list
 help / color / mirror / Atom feed
From: selinger@mathstat.dal.ca (Peter Selinger)
To: david.leduc6@googlemail.com
Cc: categories@mta.ca (categories)
Subject: Re: The boringness of the dual of exponential
Date: Wed, 9 Nov 2011 22:17:45 -0400 (AST)	[thread overview]
Message-ID: <E1ROacd-0006id-RG@mlist.mta.ca> (raw)
In-Reply-To: <E1RNo1R-00088Q-MC@mlist.mta.ca>

David Leduc wrote:
>
> On Mon, Nov 7, 2011 at 07:59, Ross Street <ross.street@mq.edu.au> wrote:
>> The conjecture is false.
>> Take any category E where exponentiable is interesting.
>> Then the dual of exponentiable is not boring in E^op.
>
> Indeed! And this is clearly true of the example given by Thomas,
> namely Set^op.
>
> However, I am not yet satisfied. Let me precise my thoughts. In the
> textbooks and lecture notes on category category that I have read,
> there are always product and coproduct, pullback and pushout,
> equalizer and coequalizer, monomorphism and epimorphism, and so on.
> However exponential is always left alone. That is why I assumed it is
> boring. If it is not boring, why is it never mentioned in textbooks
> and lecture notes on category theory?

For what it's worth, I have seen such co-exponentials natually occur
in programming language semantics. They seem to occur in certain
extensions of lambda calculus. More specifically, in call-by-value
functional programming languages with call/cc style control
operators. When I say they occur "naturally", I mean that they exist
in such languages, not that they are typically used in any meaningful
way by programmers.

Very roughly speaking, in such languages, if A is a type, then (not A)
is the type of environments that can consume an element of type A and
then proceed with some task (called a "continuation" for A in
programming language lingo). A continuation for a function f : A -> B
is a pair of type A * (not B). In other words, an environment hoping
to interact with some function has to supply (1) an input to the
function, which is of type A, and (2) some task to complete after
receiving the output, i.e., something of type (not B).  It so happens
that in a call-by-value language with sufficient support for
continuations, there will be a one-to-one correspondence between
programs of type (A * not B) -> C and programs of type A -> B + C.

This is spelled out in long and very technical detail in my paper
"Control categories and duality" [1], sections 4.2 (definition of
co-control categories) and 7.3 (the call-by-value lambda-mu-calculus
is an internal language for co-control categories). The idea itself is
10 years older and is due to Andrzej Filinski [2], where
co-exponentials appear explicitly on p.33, second paragraph.

[1] http://www.mathstat.dal.ca/~selinger/papers.html#control
[2] http://www.diku.dk/hjemmesider/ansatte/andrzej/papers/DCaCD.ps.gz

-- Peter


[For admin and other information see: http://www.mta.ca/~cat-dist/ ]


  parent reply	other threads:[~2011-11-10  2:17 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-05 12:52 David Leduc
2011-11-06 20:22 ` FEJ Linton
2011-11-06 21:55 ` Thomas Streicher
2011-11-07 16:32   ` F. William Lawvere
2011-11-06 22:59 ` Ross Street
     [not found] ` <F284B070-BBE5-4187-BA3C-E1A3EA560E6A@mq.edu.au>
2011-11-07 12:52   ` David Leduc
2011-11-08 16:20     ` Paul Taylor
2011-11-09 20:57       ` Uwe.Wolter
2011-11-10  9:29       ` Prof. Peter Johnstone
2011-11-11  7:47         ` Vaughan Pratt
2011-11-11 21:08           ` Robert Seely
2011-11-09 11:28     ` Andrej Bauer
2011-11-10  0:45       ` Jocelyn Ireson-Paine
2011-11-13  7:57         ` Vaughan Pratt
2011-11-14 13:36           ` Patrik Eklund
2011-11-15 13:03             ` Robert Dawson
     [not found]               ` <07D33522-CA8F-4133-A8E8-4B3BF6DFCCB4@cs.ox.ac.uk>
2011-11-16 18:06                 ` Robert Dawson
2011-11-10  2:17     ` Peter Selinger [this message]
2011-11-07 21:23 ` Michael Shulman
2011-11-10  1:11 ` Andrej Bauer
2011-11-09  9:19 Reinhard Boerger
2011-11-09 18:58 RJ Wood

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1ROacd-0006id-RG@mlist.mta.ca \
    --to=selinger@mathstat.dal.ca \
    --cc=categories@mta.ca \
    --cc=david.leduc6@googlemail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).