coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Adam Chlipala <adamc AT hcoop.net>
- To: Edsko de Vries <edskodevries AT gmail.com>
- Cc: coq-club <coq-club AT pauillac.inria.fr>
- Subject: Re: [Coq-Club] Productivity and well-definedness
- Date: Tue, 18 Aug 2009 10:36:21 -0400
- List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>
Edsko de Vries wrote:
Example: suppose we define coinductive trees as
CoInductive cotree : Set :=
| coleaf : cotree
| cobranch : cotree -> cotree -> cotree.
Consider a function to count the number of leaves in a tree
leaves : cotree -> conat
(the domain is conat because there might be infinitely many leaves). This function is "obviously not productive": there are infinitely large trees that don't have any leaves but simply keep on branching forever.
Since you haven't defined [conat], it's not clear to me that you can't write this function. A reasonable definition of [conat], tuned to this application, could include an "add zero" constructor.
- [Coq-Club] Productivity and well-definedness, Edsko de Vries
- Re: [Coq-Club] Productivity and well-definedness, Adam Chlipala
- Re: [Coq-Club] Productivity and well-definedness, Edsko de Vries
- Re: [Coq-Club] Productivity and well-definedness, Yves Bertot
- Re: [Coq-Club] Productivity and well-definedness, Thorsten Altenkirch
- Re: [Coq-Club] Productivity and well-definedness,
Arnaud Spiwack
- Re: [Coq-Club] Productivity and well-definedness, Edsko de Vries
- Re: [Coq-Club] Productivity and well-definedness, Adam Chlipala
Archive powered by MhonArc 2.6.16.