HoTT / coq

Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.
http://coq.inria.fr/
GNU Lesser General Public License v2.1
27 stars 5 forks source link

Canonical Structures and Polymorphic records break transparency in unification (polyproj) #87

Closed JasonGross closed 10 years ago

JasonGross commented 10 years ago

Reported at https://coq.inria.fr/bugs/show_bug.cgi?id=3230 by Rob Dockins, trimmed by coq-bug-finder.

Structure type : Type := Pack { ob : Type }.
Polymorphic Record category := { foo : Type }.
Definition FuncComp := Pack category.
Axiom C : category.

Check (C : ob FuncComp). (* OK *)

Canonical Structure FuncComp.

Fail Check (C : ob FuncComp).  (* Fails *)

Removing the Polymorphic from Record makes both Checks go through.

JasonGross commented 10 years ago

This is fixed in trunk-polyproj.