diff options
author | 2006-01-10 23:59:09 +0000 | |
---|---|---|
committer | 2006-01-10 23:59:09 +0000 | |
commit | ed2af181cf0f381e61a82b354449abb549b8b47b (patch) | |
tree | 3e06ace55fad6aa2a15e3855d7c99a78ba5c4098 /kernel/indtypes.ml | |
parent | 6413a380bcc13541f5a8ede06782dc6af241c4e4 (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.ml | 3 |
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; |