Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] R�f. : Re: [Coq-Club] prod list

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] R�f. : Re: [Coq-Club] prod list


chronological Thread 
  • From: Venanzio Capretta <venanzio AT site.uottawa.ca>
  • To: vincent.chatel AT transport.alstom.com
  • Cc: coq-club AT pauillac.inria.fr
  • Subject: Re: [Coq-Club] Réf. : Re: [Coq-Club] prod list
  • Date: Fri, 07 Oct 2005 11:37:51 -0400
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>

On Fri, 2005-07-10 at 09:38 +0200, 
vincent.chatel AT transport.alstom.com
wrote:
> Thanks, but in this case I cannot construct a poly_list of poly_list.
> 
> And when I assume that X : Type, I have a Universe Inconsistency
> 

You need impredicativity for both these things. If you launch coq with
the -impredicative-set option (for example "coqide -impredicative-set"),
then you can do this:

--------------------------------------------------------------------
Inductive poly_list: Set :=
  poly_nil: poly_list
| poly_cons: forall X:Set, X -> poly_list -> poly_list.

Implicit Arguments poly_cons [X].

Definition pl:=(poly_cons true (poly_cons 3 poly_nil)).

Check (poly_cons pl pl).
---------------------------------------------------------------------

Cheers,
  Venanzio








Archive powered by MhonArc 2.6.16.

Top of Page