coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: "Aaron Bohannon" <bohannon AT cis.upenn.edu>
- To: "Dan Doel" <dan.doel AT gmail.com>
- Cc: "Edsko de Vries" <Edsko.de.Vries AT cs.tcd.ie>, "Agda mailing list" <agda AT lists.chalmers.se>, coq-club <coq-club AT pauillac.inria.fr>
- Subject: Re: [Coq-Club] Re: Agda beats Coq (was: Termination proof in partiality monad)
- Date: Sat, 22 Nov 2008 13:23:52 -0500
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references:x-google-sender-auth; b=sLs1F3mWbFyhaFnCrySaCRfYwiphyLj+fJCwRkxKGNlzlk9Ybz/dxlfc6Rv+2b1fCU XPaBBm8cyrFe/5B2POI/FM6dBpOeKMZ/oajLt5TPUh2EOgPF8PENSvHve8RKIKOpyDHe sgd7FudjtguLtsfV28bi1nYuDBoumpWjj5yoU=
- List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>
Hi,
I have been trying to working coinductive data and definitions
recently and have found that Coq been very helpful in developing
intuition about this sort of thing. So I found your remarks below
very interesting. Specifically, you seem to imply that a
CoInductive/codata definition in Coq/Agda permits some operations that
an abstract type with an "observe" function would not permit. Can you
(or anyone else) be more specific about what these would be?
- Aaron
On Thu, Nov 20, 2008 at 6:21 PM, Dan Doel
<dan.doel AT gmail.com>
wrote:
> The scheme that did yield a proof is based on mails from Anton Setzer, who I
> suspect would say that codata as found in Agda and Coq gives you poor
> intuition about how to work with coinductive data. Instead you want to think
> in terms of coalgebras. So, rather than:
>
> codata D (a : Set) : Set where
> now : a -> D a
> later : D a -> D a
>
> Which looks like you have constructors, what you want is something more
> like:
>
> -- For any a:Set, D a is the terminal coalgebra where the observation is
> -- of type B -> a + B
> D : Set -> Set
>
> observe : {a : Set} -> D a -> a + D a
>
> Importantly, a value of type D a is not either (now a) or (later a). The
> only
> operation on it is "observe" (which was the star operation in my code),
> which
> yields either a regular value, or another D a.
- Re: [Coq-Club] Re: [Agda] Termination proof in partiality monad, (continued)
- Re: [Coq-Club] Re: [Agda] Termination proof in partiality monad,
Luke Palmer
- Re: [Coq-Club] Re: [Agda] Termination proof in partiality monad, Vladimir Komendantsky
- Re: [Coq-Club] Re: [Agda] Termination proof in partiality monad, Edsko de Vries
- Message not available
- Message not available
- Message not available
- [Coq-Club] Agda beats Coq (was: Termination proof in partiality monad), Edsko de Vries
- [Coq-Club] Re: Agda beats Coq, Nils Anders Danielsson
- [Coq-Club] Re: [Agda] Re: Agda beats Coq, Matthieu Sozeau
- [Coq-Club] Re: Agda beats Coq (was: Termination proof in partiality monad), Dan Doel
- [Coq-Club] Re: Agda beats Coq, Nils Anders Danielsson
- [Coq-Club] Re: Agda beats Coq, Nils Anders Danielsson
- [Coq-Club] Re: Agda beats Coq, Nils Anders Danielsson
- Message not available
- Message not available
- Re: [Coq-Club] Re: Agda beats Coq (was: Termination proof in partiality monad), Aaron Bohannon
- Re: [Coq-Club] Re: Agda beats Coq (was: Termination proof in partiality monad), Dan Doel
- Re: [Coq-Club] Re: Agda beats Coq (was: Termination proof in partiality monad), Dan Doel
- Re: [Coq-Club] Re: Agda beats Coq (was: Termination proof in partiality monad), Aaron Bohannon
- Re: [Coq-Club] Re: Agda beats Coq, Xavier Leroy
- Re: [Coq-Club] Re: Agda beats Coq, Arnaud Spiwack
- Re: [Coq-Club] Re: Agda beats Coq, Arnaud Spiwack
- Re: [Coq-Club] Re: Agda beats Coq, Aaron Bohannon
- Re: [Coq-Club] Re: Agda beats Coq, Dan Doel
- Re: [Coq-Club] Re: Agda beats Coq, Arnaud Spiwack
- Re: [Coq-Club] Re: [Agda] Termination proof in partiality monad,
Luke Palmer
- Re: [Coq-Club] Re: Agda beats Coq (was: Termination proof in partiality monad), Dan Doel
Archive powered by MhonArc 2.6.16.