diff options
author | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2009-08-22 14:45:18 +0000 |
---|---|---|
committer | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2009-08-22 14:45:18 +0000 |
commit | 437ebce4198f3237df1f67d3037e9fa7b06789aa (patch) | |
tree | b1f01277adb40c47cdb2cc04b7c0b44628936569 /checker/indtypes.ml | |
parent | 85046457054d78ee657fc4366ca014e453b6908b (diff) |
Transfers to checker ("let"s in inductive arities + Coq root read-only).
- Support for let's in the signature of the arity of an inductive type was
in the kernel part of commit 12273,
- Support for binding Coq root read-only in -R option was in commit 12220.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12288 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'checker/indtypes.ml')
-rw-r--r-- | checker/indtypes.ml | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/checker/indtypes.ml b/checker/indtypes.ml index 4c9b3d61d..9ff21bc3f 100644 --- a/checker/indtypes.ml +++ b/checker/indtypes.ml @@ -136,6 +136,7 @@ let small_unit constrsinfos = (* check information related to inductive arity *) let typecheck_arity env params inds = let nparamargs = rel_context_nhyps params in + let nparamdecls = rel_context_length params in let check_arity arctxt = function Monomorphic mar -> let ar = mar.mind_user_arity in @@ -154,8 +155,12 @@ let typecheck_arity env params inds = (* Arities (with params) are typed-checked here *) let arity = check_arity ar_ctxt ind.mind_arity in (* mind_nrealargs *) - if ind.mind_nrealargs <> rel_context_nhyps ar_ctxt - nparamargs then + let nrealargs = rel_context_nhyps ar_ctxt - nparamargs in + if ind.mind_nrealargs <> nrealargs then failwith "bad number of real inductive arguments"; + let nrealargs_ctxt = rel_context_length ar_ctxt - nparamdecls in + if ind.mind_nrealargs_ctxt <> nrealargs_ctxt then + failwith "bad length of real inductive arguments signature"; (* We do not need to generate the universe of full_arity; if later, after the validation of the inductive definition, full_arity is used as argument or subject to cast, an |