coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Jelle <jelle AT defekt.nl>
- To: coq-club AT inria.fr
- Cc: Andrew Polonsky <andrew.polonsky AT gmail.com>, Maxime.Denes AT inria.fr, Robbert Krebbers <mail AT robbertkrebbers.nl>
- Subject: [Coq-Club] Impredicative Set and Records
- Date: Sun, 04 Dec 2011 20:37:10 +0100
Hello,
When running Coq with "-impredicative-set" I would have expected the
following to work:
Record foo : Set := mkFoo { bar : Set }.
foo is defined
foo_ind is defined
foo_rec is defined
But the projection is not defined:
Warning: bar cannot be defined because it is large and foo is not.
Trying this manually gives:
Definition bar (x : foo) := match x with mkFoo b => b end.
Error: Incorrect elimination of "x" in the inductive type "foo":
the return type has sort "Type" while it should be "Prop" or "Set".
Elimination of an inductive object of sort Set is not allowed on a
predicate in sort Type because strong elimination on non-small
inductive types leads to paradoxes.
What is going on here? -impredicative-set doesn't work with records?
And what exactly is strong elimination?
Thanks for clarifying,
Jelle.
- [Coq-Club] Impredicative Set and Records, Jelle
- Re: [Coq-Club] Impredicative Set and Records,
Adam Chlipala
- Re: [Coq-Club] Impredicative Set and Records, Gert Smolka
- Re: [Coq-Club] Impredicative Set and Records,
Adam Chlipala
Archive powered by MhonArc 2.6.16.