aboutsummaryrefslogtreecommitdiffhomepage
path: root/proofs/evar_refiner.ml
diff options
context:
space:
mode:
authorGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2014-08-12 14:03:32 +0200
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2014-09-12 10:39:32 +0200
commit012fe1a96ba81ab0a7fa210610e3f25187baaf1d (patch)
tree32282ac2f1198738c8c545b19215ff0a0d9ef6ce /proofs/evar_refiner.ml
parentb720cd3cbefa46da784b68a8e016a853f577800c (diff)
Referring to evars by names. Added a parser for evars (but parsing of
instances still to do). Using heuristics to name after the quantifier name it comes. Also added a "sigma" to almost all printing functions.
Diffstat (limited to 'proofs/evar_refiner.ml')
-rw-r--r--proofs/evar_refiner.ml6
1 files changed, 4 insertions, 2 deletions
diff --git a/proofs/evar_refiner.ml b/proofs/evar_refiner.ml
index 98a97a91c..5f97e72fa 100644
--- a/proofs/evar_refiner.ml
+++ b/proofs/evar_refiner.ml
@@ -23,7 +23,9 @@ let depends_on_evar evk _ (pbty,_,t1,t2) =
try Evar.equal (head_evar t2) evk
with NoHeadEvar -> false
-let define_and_solve_constraints evk c evd =
+let define_and_solve_constraints evk c env evd =
+ if Termops.occur_evar evk c then
+ Pretype_errors.error_occur_check env evd evk c;
let evd = define evk c evd in
let (evd,pbs) = extract_changed_conv_pbs evd (depends_on_evar evk) in
match
@@ -55,7 +57,7 @@ let w_refine (evk,evi) (ltac_var,rawc) sigma =
(loc,"",Pp.str ("Instance is not well-typed in the environment of " ^
string_of_existential evk))
in
- define_and_solve_constraints evk typed_c (evars_reset_evd sigma' sigma)
+ define_and_solve_constraints evk typed_c env (evars_reset_evd sigma' sigma)
(* vernac command Existential *)