diff options
| author | herbelin | 2000-12-14 22:18:47 +0000 |
|---|---|---|
| committer | herbelin | 2000-12-14 22:18:47 +0000 |
| commit | ed20a4e9c320ae4bb2f724d181fbb351079d00b2 (patch) | |
| tree | f2c40c77ed55f6da9dff40c8b54e83a5afeaaf24 /kernel/closure.ml | |
| parent | 910650274c33e28ba71ee8f1194ab9a6db69dfd7 (diff) | |
Les params d'inductif deviennent en même temps propre à chaque inductif d'un bloc et en même temps factorisés dans l'arité et les constructeurs (ceci est valable pour mutual_inductive_packet mais pas pour mutual_inductive_body); accessoirement cela permet de factoriser le calcul des univers des paramètres dans safe_typing
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1113 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/closure.ml')
| -rw-r--r-- | kernel/closure.ml | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/closure.ml b/kernel/closure.ml index b64f6fe593..08b0cd0654 100644 --- a/kernel/closure.ml +++ b/kernel/closure.ml @@ -491,8 +491,9 @@ let cofixp_reducible redfun flgs _ stk = else false -let mindsp_nparams env sp = - let mib = lookup_mind sp env in mib.Declarations.mind_nparams +let mindsp_nparams env (sp,i) = + let mib = lookup_mind sp env in + (Declarations.mind_nth_type_packet mib i).Declarations.mind_nparams (* The main recursive functions * @@ -615,7 +616,7 @@ and cbv_stack_term info stack env t = (* constructor in a Case -> IOTA (use red_under because we know there is a Case) *) - | (CONSTR(n,(sp,_),_,_), APP(args,CASE(_,br,_,env,stk))) + | (CONSTR(n,sp,_,_), APP(args,CASE(_,br,_,env,stk))) when red_under info.i_flags IOTA -> let nparams = mindsp_nparams info.i_env sp in let real_args = snd (list_chop nparams args) in @@ -1046,7 +1047,7 @@ type case_status = let constr_or_cofix env v = let (lft_hd, head, appl) = strip_freeze v in match head.term with - | FConstruct (((indsp,_),i),_) -> + | FConstruct ((indsp,i),_) -> let args = snd (array_chop (mindsp_nparams env indsp) appl) in CONSTRUCTOR (i, args) | FCoFix (bnum, def, bds, env) -> COFIX (lft_hd,bnum,def,appl, bds, env) |
