Skip to Content.
Sympa Menu

coq-club - [Coq-Club] Impredicative Set and Records

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] Impredicative Set and Records


chronological Thread 
  • 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.




Archive powered by MhonArc 2.6.16.

Top of Page