Hello again,
I'm meeting a problem while unquoting something that I've just quoted that may be a bug.
I'm using coq.8.11.0 on Vscoq.
Definition mkImpl (A B : term) : term := (* comes from demo.v in the repo*)
tProd nAnon A B.
Quote Definition reif_forallP_P_implies_P := Eval compute in (forall (P:Prop), P ->P ).
Make Definition uq_reif_forallP_implies_P := reif_forallP_P_implies_P.
The Make Definition outputs the following error:
The term "forall P : Prop, P -> P" has type "Type" while it is expected to have type "Prop".
Likewise, when I try to build the reification of forall (P : Prop), P -> P.
:
Quote Definition reif_Prop := Eval compute in Prop.
Definition reif_forallP_P_implies_P' := tProd nAnon reif_Type_Term (mkImpl (tRel 0) (tRel 0)).
Make Definition uq_reif_forallP_implies_P' := trad_works_Prop.
This time, the Make Definition raises the following (different) error:
Anomaly "Not a sort." Please report at http://coq.inria.fr/bugs/.
Not in proof mode.
When I print reif_Prop, I obtain,
reif_Prop = tSort (Universe.make'' (Level.lProp, false) [])
: term
So, what is wrong and how should I unquote (the reification of) forall (P : Prop), P -> P.
?
In reif_forallP_P_implies_P'
shouldn't you use tProd nAnon reif_Prop
instead of tProd nAnon reif_Type_Term
?
Huh, yes, sorry, here is the right code:
Definition reif_forallP_P_implies_P' := tProd nAnon reif_Prop (mkImpl (tRel 0) (tRel 0)).
Make Definition uq_reif_forallP_implies_P' := reif_forallP_P_implies_P'.
but I still get the same error message
@Matthieu Sozeau can you confirm this is a bug?
Wait can you try with just
From MetaCoq Require Import All.
Quote Definition reif_forallP_P_implies_P := Eval compute in (forall (P:Prop), P ->P ).
Make Definition uq_reif_forallP_implies_P := reif_forallP_P_implies_P.
For me it works with no errors.
I just did. I still get:
The term "forall P : Prop, P -> P" has type "Type" while it is expected to have type "Prop".
Not in proof mode.
but perhaps it is related to opam installation then?
That's pretty weird…
Maybe try in a new file? There may be something weird in the context?
I did it at the very beginning of a new file, but the error was the same :/
Théo Winterhalter said:
Matthieu Sozeau can you confirm this is a bug?
It looks like one
Maybe we're not talking about the same version of MetaCoq though, if it works for Théo. @Pierre Vial what does your opam list
say?
It gives me this:
base-bigarray base
base-threads base
base-unix base
camlp5 7.11 Preprocessor-pretty-printer of OCaml
conf-findutils 1 Virtual package relying on findutils
conf-m4 1 Virtual package relying on m4
coq 8.9.1 Formal proof management system
coq-equations 1.2.1+8.9 A function definition package for Coq
coq-metacoq 1.0~alpha+8.9 A meta-programming framework for Coq
coq-metacoq-checker 1.0~alpha+8.9 Specification of Coq's type theory and re
coq-metacoq-erasure 1.0~alpha+8.9 Implementation and verification of an era
coq-metacoq-pcuic 1.0~alpha+8.9 A type system equivalent to Coq's and its
coq-metacoq-safechecker 1.0~alpha+8.9 Implementation and verification of safe c
coq-metacoq-template 1.0~alpha+8.9 A quoting and unquoting library for Coq i
coq-metacoq-translations 1.0~alpha+8.9 Implementation and verification of an era
num 1.3 The legacy Num library for arbitrary-prec
ocaml 4.09.0 The OCaml compiler (virtual package)
ocaml-base-compiler 4.09.0 Official release 4.09.0
ocaml-config 1 OCaml Switch Configuration
ocamlfind 1.8.1 A library manager for OCaml
I'm a bit surprised, because opam switch tells me that I'm using my coq.8.11.0 switch
Hmm, yep it looks like you coq.8.11.0 switch has coq 8.9. So you might be seeing a bug in an old version of metacoq
Ok thanks ! I'll try to install it again
Last updated: May 31 2023 at 04:01 UTC