diff options
| author | xclerc | 2013-12-02 13:09:42 +0100 |
|---|---|---|
| committer | xclerc | 2013-12-02 13:09:42 +0100 |
| commit | 76d4622212e7c5596eb03fd17ff0177b6c44a990 (patch) | |
| tree | 480237faebb6b2dae88f0c157c4307109105aec7 /proofs | |
| parent | c101a710c96e03e228e4b1aacee8edebd3c8dabf (diff) | |
| parent | cb290d81c46ec370e303e1414e203c40c8fa1174 (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.ml | 7 | ||||
| -rw-r--r-- | proofs/goal.mli | 4 | ||||
| -rw-r--r-- | proofs/redexpr.ml | 6 |
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 = |
