aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-02-13 10:37:11 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-02-13 10:37:11 +0000
commitcc12224f791a011a9e495cb3dbd35956abb7ed0d (patch)
tree97ed84679a662452e3faf9b6407cd0947b29326c /pretyping
parenta252a5d44a7793ae8ed9accf582a27dcdbd1721d (diff)
Correction de ce qui semble être un petit bug dans la gestion de la
marge de manoeuvre vis a vis de eta dans l'unification : la convention est qu'on donne la forme eta-reduite avec l'indication du nombre d'expansions autorisées mais ce nombre était incorrect pour l'unification pattern de w_unify. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10556 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping')
-rw-r--r--pretyping/unification.ml6
1 files changed, 4 insertions, 2 deletions
diff --git a/pretyping/unification.ml b/pretyping/unification.ml
index cac80301f..74024779a 100644
--- a/pretyping/unification.ml
+++ b/pretyping/unification.ml
@@ -87,8 +87,10 @@ let rec subst_meta_instances bl c =
let solve_pattern_eqn_array env f l c (metasubst,evarsubst) =
match kind_of_term f with
| Meta k ->
- let pb = (ConvUpToEta (Array.length l),TypeNotProcessed) in
- (k,solve_pattern_eqn env (Array.to_list l) c,pb)::metasubst,evarsubst
+ let c = solve_pattern_eqn env (Array.to_list l) c in
+ let n = Array.length l - List.length (fst (decompose_lam c)) in
+ let pb = (ConvUpToEta n,TypeNotProcessed) in
+ (k,c,pb)::metasubst,evarsubst
| Evar ev ->
(* Currently unused: incompatible with eauto/eassumption backtracking *)
metasubst,(ev,solve_pattern_eqn env (Array.to_list l) c)::evarsubst