aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping
diff options
context:
space:
mode:
authorGravatar barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7>2010-03-12 15:30:51 +0000
committerGravatar barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7>2010-03-12 15:30:51 +0000
commit74db2b0098893a5912d7480a259ad91664a86120 (patch)
treebf9c4fdff014b335c46684ffd211ce496a6f947c /pretyping
parentdba2ae9fa1eb01d795d36b209aee6045967ba00a (diff)
fixed confusion between number of cstr arguments and number of pattern variables (which include let-ins in cstr type)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12864 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping')
-rw-r--r--pretyping/detyping.ml4
-rw-r--r--pretyping/inductiveops.ml2
-rw-r--r--pretyping/matching.ml6
-rw-r--r--pretyping/pattern.ml2
4 files changed, 7 insertions, 7 deletions
diff --git a/pretyping/detyping.ml b/pretyping/detyping.ml
index d46fd226e..905bb49e0 100644
--- a/pretyping/detyping.ml
+++ b/pretyping/detyping.ml
@@ -237,7 +237,7 @@ let rec decomp_branch n nal b (avoid,env as e) c =
let rec build_tree na isgoal e ci cl =
let mkpat n rhs pl = PatCstr(dl,(ci.ci_ind,n+1),pl,update_name na rhs) in
- let cnl = ci.ci_cstr_nargs in
+ let cnl = ci.ci_cstr_ndecls in
List.flatten
(list_tabulate (fun i -> contract_branch isgoal e (cnl.(i),mkpat i,cl.(i)))
(Array.length cl))
@@ -409,7 +409,7 @@ let rec detype (isgoal:bool) avoid env t =
(detype_eqns isgoal avoid env ci comp)
is_nondep_branch avoid
(ci.ci_ind,ci.ci_pp_info.style,ci.ci_npar,
- ci.ci_cstr_nargs,ci.ci_pp_info.ind_nargs)
+ ci.ci_cstr_ndecls,ci.ci_pp_info.ind_nargs)
(Some p) c bl
| Fix (nvn,recdef) -> detype_fix isgoal avoid env nvn recdef
| CoFix (n,recdef) -> detype_cofix isgoal avoid env n recdef
diff --git a/pretyping/inductiveops.ml b/pretyping/inductiveops.ml
index 636f86224..3897b18e5 100644
--- a/pretyping/inductiveops.ml
+++ b/pretyping/inductiveops.ml
@@ -145,7 +145,7 @@ let make_case_info env ind style =
let print_info = { ind_nargs = mip.mind_nrealargs_ctxt; style = style } in
{ ci_ind = ind;
ci_npar = mib.mind_nparams;
- ci_cstr_nargs = mip.mind_consnrealdecls;
+ ci_cstr_ndecls = mip.mind_consnrealdecls;
ci_pp_info = print_info }
let make_default_case_info env style ind =
diff --git a/pretyping/matching.ml b/pretyping/matching.ml
index d034bfae0..b94642c09 100644
--- a/pretyping/matching.ml
+++ b/pretyping/matching.ml
@@ -96,7 +96,7 @@ let eq_context ctxt1 ctxt2 = array_for_all2 eq_constr ctxt1 ctxt2
let same_case_structure (_,cs1,ind,_) ci2 br1 br2 =
match ind with
| Some ind -> ind = ci2.ci_ind
- | None -> cs1 = ci2.ci_cstr_nargs
+ | None -> cs1 = ci2.ci_cstr_ndecls
let matches_core convert allow_partial_app pat c =
let conv = match convert with
@@ -181,8 +181,8 @@ let matches_core convert allow_partial_app pat c =
(add_binders na1 na2 (sorec stk subst c1 c2)) d1 d2
| 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 ctx,b2 = decompose_lam_n_assum ci.ci_cstr_ndecls.(0) b2 in
+ let ctx',b2' = decompose_lam_n_assum ci.ci_cstr_ndecls.(1) b2' 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
diff --git a/pretyping/pattern.ml b/pretyping/pattern.ml
index 105672564..f9dec8f35 100644
--- a/pretyping/pattern.ml
+++ b/pretyping/pattern.ml
@@ -130,7 +130,7 @@ let pattern_of_constr sigma t =
| Case (ci,p,a,br) ->
let cip = ci.ci_pp_info in
let no = Some (ci.ci_npar,cip.ind_nargs) in
- PCase ((cip.style,ci.ci_cstr_nargs,Some ci.ci_ind,no),
+ PCase ((cip.style,ci.ci_cstr_ndecls,Some ci.ci_ind,no),
pattern_of_constr p,pattern_of_constr a,
Array.map pattern_of_constr br)
| Fix f -> PFix f