diff options
author | Hugo Herbelin <Hugo.Herbelin@inria.fr> | 2014-08-12 14:03:32 +0200 |
---|---|---|
committer | Hugo Herbelin <Hugo.Herbelin@inria.fr> | 2014-09-12 10:39:32 +0200 |
commit | 012fe1a96ba81ab0a7fa210610e3f25187baaf1d (patch) | |
tree | 32282ac2f1198738c8c545b19215ff0a0d9ef6ce /proofs/evar_refiner.ml | |
parent | b720cd3cbefa46da784b68a8e016a853f577800c (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.ml | 6 |
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 *) |