aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/indtypes.ml
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2006-01-10 23:59:09 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2006-01-10 23:59:09 +0000
commited2af181cf0f381e61a82b354449abb549b8b47b (patch)
tree3e06ace55fad6aa2a15e3855d7c99a78ba5c4098 /kernel/indtypes.ml
parent6413a380bcc13541f5a8ede06782dc6af241c4e4 (diff)
Ajout de la longueur de l'arité des constructeurs dans one_inductive_body et dans case_info pour permettre l'indépendance de detyping (entre autres) envers l'environnement
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@7833 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/indtypes.ml')
-rw-r--r--kernel/indtypes.ml3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/indtypes.ml b/kernel/indtypes.ml
index 5237b93db..83928b6cc 100644
--- a/kernel/indtypes.ml
+++ b/kernel/indtypes.ml
@@ -534,6 +534,8 @@ let build_inductive env env_ar params record finite inds nmr recargs cst =
let nf_lc =
array_map2 (fun (d,b) c -> it_mkProd_or_LetIn b d) splayed_lc lc in
let nf_lc = if nf_lc = lc then lc else nf_lc in
+ let consnrealargs =
+ Array.map (fun (d,b) -> List.length d - nparamargs) splayed_lc in
(* Elimination sorts *)
let isunit = isunit && ntypes = 1 && (not (is_recursive recargs.(0))) in
let kelim = allowed_sorts env issmall isunit ar_sort in
@@ -558,6 +560,7 @@ let build_inductive env env_ar params record finite inds nmr recargs cst =
mind_sort = ar_sort;
mind_kelim = kelim;
mind_consnames = Array.of_list cnames;
+ mind_consnrealargs = consnrealargs;
mind_user_lc = lc;
mind_nf_lc = nf_lc;
mind_recargs = recarg;