You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I was hoping to use unset universe checking to disable universes, and temporarily work in Type:Type bliss. However, occasionally my code still fails on a universe constraint even though I have disabled universe checking. I tried to minimize the problem and came up with the idea to define an identity universe cast function. And indeed it does not work; the error message “Universe constraints are not implied by the ones declared” comes up independent of whether universe checking is set or not:
SetUniverse Checking.
FailDefinition castU@{u v |}(t: Type@{u}): Type@{v} := t.
(* The command has indeed failed with message:Universe constraints are not implied by the ones declared: u <= v *)UnsetUniverse Checking.
FailDefinition castU@{u v |}(t: Type@{u}): Type@{v} := t.
(* The command has indeed failed with message:Universe constraints are not implied by the ones declared: u <= v *)
Furthermore, if I leave all universes to be inferred, and unset universe checking Coq will nevertheless generate universe constraints, e.g., u <= u0:
SetUniverse Checking.
SetUniverse Polymorphism.
Definition castU(t: Type): Type := t.
SetPrintingUniverses.
Print castU.
(* castU@{u u0} = fun t : Type@{u} => t : Type@{u} -> Type@{u0}(* u u0 |= u <= u0 *)*)
Fixcoq#17355
We also refactor the checking of universe declarations in ustate so
that when given non extensible constraints we return them instead of
returning the inferred constraints.
Fixcoq#17355
We also refactor the checking of universe declarations in ustate so
that when given non extensible constraints we return them instead of
returning the inferred constraints.
Description of the problem
I was hoping to use unset universe checking to disable universes, and temporarily work in Type:Type bliss. However, occasionally my code still fails on a universe constraint even though I have disabled universe checking. I tried to minimize the problem and came up with the idea to define an identity universe cast function. And indeed it does not work; the error message “Universe constraints are not implied by the ones declared” comes up independent of whether universe checking is set or not:
Furthermore, if I leave all universes to be inferred, and unset universe checking Coq will nevertheless generate universe constraints, e.g., u <= u0:
I asked this on discourse first https://coq.discourse.group/t/is-it-possible-to-define-a-cbn-able-universe-cast-with-universe-checking-disabled/1899/1 and SkySkimmer encouraged me that this could be considered a bug.
Coq Version
The Coq Proof Assistant, version 8.16.1
compiled with OCaml 4.13.1
The text was updated successfully, but these errors were encountered: