aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pretyping/unification.ml7
1 files changed, 5 insertions, 2 deletions
diff --git a/pretyping/unification.ml b/pretyping/unification.ml
index abdf8c863f..30ae394124 100644
--- a/pretyping/unification.ml
+++ b/pretyping/unification.ml
@@ -54,6 +54,7 @@ let solve_pattern_eqn_array env f l c (metasubst,evarsubst) =
| Meta k ->
(k,solve_pattern_eqn env (Array.to_list l) c)::metasubst,evarsubst
| Evar ev ->
+ (* Currently unused: incompatible with eauto/eassumption backtracking *)
metasubst,(f,solve_pattern_eqn env (Array.to_list l) c)::evarsubst
| _ -> assert false
@@ -104,10 +105,12 @@ let unify_0 env sigma cv_pb mod_delta m n =
| _, LetIn (_,b,_,c) -> unirec_rec env pb substn cM (subst1 b c)
| App (f1,l1), App (f2,l2) ->
- if is_unification_pattern f1 l1 & not (dependent f1 cN)
+ if
+ isMeta f1 & is_unification_pattern f1 l1 & not (dependent f1 cN)
then
solve_pattern_eqn_array env f1 l1 cN substn
- else if is_unification_pattern f2 l2 & not (dependent f2 cM)
+ else if
+ isMeta f2 & is_unification_pattern f2 l2 & not (dependent f2 cM)
then
solve_pattern_eqn_array env f2 l2 cM substn
else