diff options
| author | herbelin | 2006-09-12 10:35:13 +0000 |
|---|---|---|
| committer | herbelin | 2006-09-12 10:35:13 +0000 |
| commit | 87722d2a5d9592f08fafa2b4d56c9ba7aadd1033 (patch) | |
| tree | 606a9ba7edb2332748fa1f1463a945c2cb669104 | |
| parent | 56b8bf5bdada4a09ace234c96304b4898def9664 (diff) | |
Correction conflit Meta/Evar dans commit précédent et extension au
passage de l'unification pattern au cas tant des Meta que des Evar.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@9132 85f007b7-540e-0410-9357-904b9bb8a0f7
| -rw-r--r-- | pretyping/unification.ml | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/pretyping/unification.ml b/pretyping/unification.ml index dab4b4f12f..abdf8c863f 100644 --- a/pretyping/unification.ml +++ b/pretyping/unification.ml @@ -49,7 +49,13 @@ let abstract_list_all env sigma typ c l = (**) -let solve_pattern_eqn_array env l c = solve_pattern_eqn env (Array.to_list l) c +let solve_pattern_eqn_array env f l c (metasubst,evarsubst) = + match kind_of_term f with + | Meta k -> + (k,solve_pattern_eqn env (Array.to_list l) c)::metasubst,evarsubst + | Evar ev -> + metasubst,(f,solve_pattern_eqn env (Array.to_list l) c)::evarsubst + | _ -> assert false (*******************************) @@ -100,12 +106,10 @@ let unify_0 env sigma cv_pb mod_delta m n = | App (f1,l1), App (f2,l2) -> if is_unification_pattern f1 l1 & not (dependent f1 cN) then - (destMeta f1,solve_pattern_eqn_array env l1 cN)::metasubst, - evarsubst + solve_pattern_eqn_array env f1 l1 cN substn else if is_unification_pattern f2 l2 & not (dependent f2 cM) then - (destMeta f2,solve_pattern_eqn_array env l2 cM)::metasubst, - evarsubst + solve_pattern_eqn_array env f2 l2 cM substn else let len1 = Array.length l1 and len2 = Array.length l2 in |
