coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Hugo Herbelin <herbelin AT pauillac.inria.fr>
- To: gareuselesinge AT virgilio.it (Enrico Tassi)
- Cc: coq-club AT pauillac.inria.fr
- Subject: Re: [Coq-Club] Inductive Types allowed eliminations
- Date: Fri, 9 Sep 2005 16:25:04 +0200 (MET DST)
- List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>
Hi,
> Me and Claudio Sacerdoti Coen were investigating some bugs concerning
> the generation of elimination principles in a proof assistant we are
> developing at the university of Bologna (based on CiC).
> Since we found no clear explanations in the literature, we made some
> tests with coq-8 (with and without the -impredicative-set flag).
> Our result follow. We would be really happy to know if we are right or
> not (and if we decorated the "no" answers with the right cause).
>
> Table of allowed eliminations:
>
> +--------------------+---------------------------+
> | Inductive Type | Elimination to |
> +--------------------+---------------------------+
> | Sort | "Smallness" | Prop | SetI | SetP | Type |
> +--------------------+---------------------------+
> | Prop unit | yes yes yes yes |
> | Prop small | yes [yes] no2 no12 |
> | Prop | yes no2 no2 no12 |
> | SetI small | yes yes -- no1 |
> | SetI | yes yes -- no1 |
> | SetP small | yes -- yes yes |
> | SetP (* inductive type is rejected *) |
> | Type | yes yes yes yes |
> +--------------------+---------------------------+
The [yes] should be a no2, as implemented in Coq. Actually, since
non-unit Prop behaves the same, the second and third line can be
merged (the only difference is that the no12 is simply a no2 in the
small Prop case).
The no1 from small SetI to Type is probably a typo, it should be a yes.
> Legenda:
>
> 1 : due to paradoxes a la Hurkens
> 2 : due to code extraction
>
> [yes] : Current version of Coq rejects this, but a comment in the source
> code seems to allow this elimination. (See indtypes.ml line 479)
>
> SetP : Predicative Set
> SetI : Impredicative Set
>
> very-small : Constructor arguments are in Prop only
> small : Constructor arguments are not in Type
> unit : Non (mutually) recursive /\ only one constructor /\ very-small
Hugo Herbelin
- [Coq-Club] Inductive Types allowed eliminations, Enrico Tassi
- Re: [Coq-Club] Inductive Types allowed eliminations, Christine Paulin
- Re: [Coq-Club] Inductive Types allowed eliminations, Hugo Herbelin
Archive powered by MhonArc 2.6.16.