aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping
diff options
context:
space:
mode:
authorGravatar barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-01-18 17:20:28 +0000
committerGravatar barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-01-18 17:20:28 +0000
commitf57b2e6cf26316ec7df340ab95399039dae5143e (patch)
tree3a432e1eba11ac8fcc595f33a67c6343ae8b66cd /pretyping
parent72dccfa0f5edb59b1ba2668e91828742ab91bb1d (diff)
bug in accessing n-th abstraction
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10451 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping')
-rw-r--r--pretyping/detyping.ml4
-rw-r--r--pretyping/matching.ml3
2 files changed, 4 insertions, 3 deletions
diff --git a/pretyping/detyping.ml b/pretyping/detyping.ml
index c9e68d1e3..f0203fa2c 100644
--- a/pretyping/detyping.ml
+++ b/pretyping/detyping.ml
@@ -260,8 +260,8 @@ and contract_branch isgoal e (cn,mkpat,b) =
let is_nondep_branch c n =
try
- let _,ccl = decompose_lam_n_assum n c in
- noccur_between 1 n ccl
+ let sign,ccl = decompose_lam_n_assum n c in
+ noccur_between 1 (rel_context_length sign) ccl
with _ -> (* Not eta-expanded or not reduced *)
false
diff --git a/pretyping/matching.ml b/pretyping/matching.ml
index 9ce8e703f..ada3b912b 100644
--- a/pretyping/matching.ml
+++ b/pretyping/matching.ml
@@ -161,7 +161,8 @@ let matches_core convert allow_partial_app pat c =
| PIf (a1,b1,b1'), Case (ci,_,a2,[|b2;b2'|]) ->
let ctx,b2 = decompose_lam_n_assum ci.ci_cstr_nargs.(0) b2 in
let ctx',b2' = decompose_lam_n_assum ci.ci_cstr_nargs.(1) b2' in
- let n = List.length ctx and n' = List.length ctx' in
+ let n = rel_context_length ctx in
+ let n' = rel_context_length ctx' in
if noccur_between 1 n b2 & noccur_between 1 n' b2' then
let s = List.fold_left (fun l (na,_,t) -> (na,t)::l) stk ctx in
let s' = List.fold_left (fun l (na,_,t) -> (na,t)::l) stk ctx' in