diff options
author | barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2008-01-18 17:20:28 +0000 |
---|---|---|
committer | barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2008-01-18 17:20:28 +0000 |
commit | f57b2e6cf26316ec7df340ab95399039dae5143e (patch) | |
tree | 3a432e1eba11ac8fcc595f33a67c6343ae8b66cd /pretyping | |
parent | 72dccfa0f5edb59b1ba2668e91828742ab91bb1d (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.ml | 4 | ||||
-rw-r--r-- | pretyping/matching.ml | 3 |
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 |