aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2016-11-04 14:13:08 +0100
committerPierre-Marie Pédrot2017-02-14 17:23:00 +0100
commit2db085e62f7797cc999518eb58983ac059763e1f (patch)
tree885b5748612763950bb64085e838f31305004fbd
parent8f6aab1f4d6d60842422abc5217daac806eb0897 (diff)
Vnorm API using EConstr.
-rw-r--r--pretyping/vnorm.ml5
-rw-r--r--pretyping/vnorm.mli4
-rw-r--r--proofs/redexpr.ml7
3 files changed, 9 insertions, 7 deletions
diff --git a/pretyping/vnorm.ml b/pretyping/vnorm.ml
index 8c3de7cfd4..60f99fd3d8 100644
--- a/pretyping/vnorm.ml
+++ b/pretyping/vnorm.ml
@@ -352,6 +352,11 @@ and nf_cofix env sigma cf =
mkCoFix (init,(name,cft,cfb))
let cbv_vm env sigma c t =
+ if Termops.occur_meta_or_existential sigma c then
+ CErrors.error "vm_compute does not support existential variables.";
+ (** This evar-normalizes terms beforehand *)
+ let c = EConstr.to_constr sigma c in
+ let t = EConstr.to_constr sigma t in
let v = Vconv.val_of_constr env c in
nf_val env sigma v t
diff --git a/pretyping/vnorm.mli b/pretyping/vnorm.mli
index bc6eec851f..650f3f2911 100644
--- a/pretyping/vnorm.mli
+++ b/pretyping/vnorm.mli
@@ -6,8 +6,8 @@
(* * GNU Lesser General Public License Version 2.1 *)
(************************************************************************)
-open Term
+open EConstr
open Environ
(** {6 Reduction functions } *)
-val cbv_vm : env -> Evd.evar_map -> constr -> types -> constr
+val cbv_vm : env -> Evd.evar_map -> constr -> types -> Constr.t
diff --git a/proofs/redexpr.ml b/proofs/redexpr.ml
index 40a8077a72..348cd1bcbb 100644
--- a/proofs/redexpr.ml
+++ b/proofs/redexpr.ml
@@ -24,11 +24,8 @@ open Misctypes
(* call by value normalisation function using the virtual machine *)
let cbv_vm env sigma c =
- let c = EConstr.Unsafe.to_constr c in
- let ctyp = Retyping.get_type_of env sigma c in
- if Termops.occur_meta_or_existential sigma (EConstr.of_constr c) then
- error "vm_compute does not support existential variables.";
- Vnorm.cbv_vm env sigma c ctyp
+ let ctyp = Retyping.get_type_of env sigma (EConstr.Unsafe.to_constr c) in
+ Vnorm.cbv_vm env sigma c (EConstr.of_constr ctyp)
let warn_native_compute_disabled =
CWarnings.create ~name:"native-compute-disabled" ~category:"native-compiler"