aboutsummaryrefslogtreecommitdiff
path: root/proofs
diff options
context:
space:
mode:
authorxclerc2013-12-02 13:09:42 +0100
committerxclerc2013-12-02 13:09:42 +0100
commit76d4622212e7c5596eb03fd17ff0177b6c44a990 (patch)
tree480237faebb6b2dae88f0c157c4307109105aec7 /proofs
parentc101a710c96e03e228e4b1aacee8edebd3c8dabf (diff)
parentcb290d81c46ec370e303e1414e203c40c8fa1174 (diff)
Merge branch 'trunk' of git+ssh://scm.gforge.inria.fr//gitroot/coq/coq into trunk
Diffstat (limited to 'proofs')
-rw-r--r--proofs/goal.ml7
-rw-r--r--proofs/goal.mli4
-rw-r--r--proofs/redexpr.ml6
3 files changed, 10 insertions, 7 deletions
diff --git a/proofs/goal.ml b/proofs/goal.ml
index ae42acf186..43d7b3579e 100644
--- a/proofs/goal.ml
+++ b/proofs/goal.ml
@@ -242,7 +242,7 @@ module Refinable = struct
(* spiwack: it is not entirely satisfactory to have this function here. Plus it is
a bit hackish. However it does not seem possible to move it out until
pretyping is defined as some proof procedure. *)
- let constr_of_raw handle check_type resolve_classes rawc = (); fun env rdefs gl info ->
+ let constr_of_raw handle check_type resolve_classes lvar rawc = (); fun env rdefs gl info ->
(* We need to keep trace of what [rdefs] was originally*)
let init_defs = !rdefs in
(* if [check_type] is true, then creates a type constraint for the
@@ -253,9 +253,10 @@ module Refinable = struct
let flags =
if resolve_classes then Pretyping.all_no_fail_flags
else Pretyping.no_classes_no_fail_inference_flags in
- let open_constr =
- Pretyping.understand_tcc_evars ~flags rdefs env ~expected_type:tycon rawc
+ let (sigma, open_constr) =
+ Pretyping.understand_ltac flags !rdefs env lvar tycon rawc
in
+ let () = rdefs := sigma in
let () = update_handle handle init_defs !rdefs in
open_constr
diff --git a/proofs/goal.mli b/proofs/goal.mli
index 1f04ce8c12..013b3199a3 100644
--- a/proofs/goal.mli
+++ b/proofs/goal.mli
@@ -93,8 +93,8 @@ module Refinable : sig
The principal argument is a [glob_constr] which is then pretyped in the
context of a term, the remaining evars are registered to the handle.
It is the main component of the toplevel refine tactic.*)
- val constr_of_raw :
- handle -> bool -> bool -> Glob_term.glob_constr -> Term.constr sensitive
+ val constr_of_raw : handle -> bool -> bool -> Pretyping.ltac_var_map ->
+ Glob_term.glob_constr -> Term.constr sensitive
(* [constr_of_open_constr h check_type] transforms an open constr into a
goal-sensitive constr, adding the undefined variables to the set of subgoals.
diff --git a/proofs/redexpr.ml b/proofs/redexpr.ml
index 69ff1dc515..f71ec440e1 100644
--- a/proofs/redexpr.ml
+++ b/proofs/redexpr.ml
@@ -23,8 +23,10 @@ open Libobject
open Misctypes
(* call by value normalisation function using the virtual machine *)
-let cbv_vm env _ c =
- let ctyp = (fst (Typeops.infer env c)).Environ.uj_type in
+let cbv_vm env sigma c =
+ let ctyp = Retyping.get_type_of env sigma c in
+ if Termops.occur_meta_or_existential c then
+ error "vm_compute does not support existential variables.";
Vnorm.cbv_vm env c ctyp
let cbv_native env _ c =