aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Maxime Dénès <mail@maximedenes.fr>2016-03-17 17:53:25 +0100
committerGravatar Maxime Dénès <mail@maximedenes.fr>2016-03-17 18:05:59 +0100
commit82b371aceb1ef6b1e15bdace2cf142e65724a3c6 (patch)
tree9ee71f0380702f159f68b2b2651526eb5c60c559
parent4849c8eb1b7a386d2abcbc80c40de34b0a69b8ea (diff)
Fix #4623: set tactic too weak with universes (regression)
The regression was introduced by efa1c32a4d178, which replaced unification by conversion when looking for more occurrences of a subterm. The conversion function called was not the right one, as it was not inferring constraints.
-rw-r--r--pretyping/unification.ml5
1 files changed, 3 insertions, 2 deletions
diff --git a/pretyping/unification.ml b/pretyping/unification.ml
index 9b6e856b8..cd0bbfa30 100644
--- a/pretyping/unification.ml
+++ b/pretyping/unification.ml
@@ -1532,8 +1532,9 @@ let make_pattern_test from_prefix_of_ind is_correct_type env sigma (pending,c) =
| e when Errors.noncritical e -> raise (NotUnifiable None) in
let merge_fun c1 c2 =
match c1, c2 with
- | Some (evd,c1,_) as x, Some (_,c2,_) ->
- if is_conv env sigma c1 c2 then x else raise (NotUnifiable None)
+ | Some (evd,c1,x), Some (_,c2,_) ->
+ let (evd,b) = infer_conv ~pb:CONV env evd c1 c2 in
+ if b then Some (evd, c1, x) else raise (NotUnifiable None)
| Some _, None -> c1
| None, Some _ -> c2
| None, None -> None in