aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2014-07-06 20:09:10 +0200
committerGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2014-07-07 00:56:23 +0200
commitff81b7f1ffa594ab9f6fd174238b04cbbb1cfb71 (patch)
treec5a19c7516d7707b8b7116545c7175fc021464a9 /pretyping
parentb44b68ec704df75f684e3393980f3518caf1a506 (diff)
Missing check of evar instantiation, resulting in missing constraints (bug from MathClasses).
Diffstat (limited to 'pretyping')
-rw-r--r--pretyping/evarsolve.ml4
1 files changed, 3 insertions, 1 deletions
diff --git a/pretyping/evarsolve.ml b/pretyping/evarsolve.ml
index d15c5d00b..5f19ce30a 100644
--- a/pretyping/evarsolve.ml
+++ b/pretyping/evarsolve.ml
@@ -1119,7 +1119,9 @@ let solve_evar_evar ?(force=false) f g env evd pbty (evk1,args1 as ev1) (evk2,ar
(* If instances are canonical, we solve the problem in linear time *)
let sign = evar_filtered_context (Evd.find evd evk2) in
let id_inst = inst_of_vars sign in
- Evd.define evk2 (mkEvar(evk1,id_inst)) evd
+ let body = mkEvar(evk1,id_inst) in
+ let evd' = Evd.define evk2 body evd in
+ check_evar_instance evd' evk2 body g
else
let evd,ev1,ev2 =
(* If an evar occurs in the instance of the other evar and the