aboutsummaryrefslogtreecommitdiff
path: root/library
diff options
context:
space:
mode:
authorbarras2001-05-03 09:54:17 +0000
committerbarras2001-05-03 09:54:17 +0000
commitbf352b0b29a8e3d55eaa986c4f493af48f8ddf52 (patch)
treeb0633f3a1ee73bd685327c2c988426d65de7a58a /library
parentc4a517927f148e0162d22cb7077fa0676d799926 (diff)
Changement de la structure des points fixes
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1731 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'library')
-rw-r--r--library/indrec.ml13
1 files changed, 8 insertions, 5 deletions
diff --git a/library/indrec.ml b/library/indrec.ml
index c02cb35e27..36c9f884f3 100644
--- a/library/indrec.ml
+++ b/library/indrec.ml
@@ -342,8 +342,8 @@ let mis_make_indrec env sigma listdepkind mispec =
let fixn = Array.of_list (List.rev ln) in
let fixtyi = Array.of_list (List.rev ltyp) in
let fixdef = Array.of_list (List.rev ldef) in
- let names = list_tabulate (fun _ -> Name(id_of_string "F")) nrec in
- mkFix ((fixn,p),(fixtyi,names,fixdef))
+ let names = Array.create nrec (Name(id_of_string "F")) in
+ mkFix ((fixn,p),(names,fixtyi,fixdef))
in
mrec 0 [] [] []
in
@@ -469,11 +469,12 @@ let build_indrec env sigma mispec =
(***********************************)
(* To interpret the Match operator *)
+(* TODO: check that we can drop universe constraints ? *)
let type_mutind_rec env sigma (IndType (indf,realargs) as ind) pt p c =
let (mispec,params) = dest_ind_family indf in
let tyi = mis_index mispec in
if mis_is_recursive_subset [tyi] mispec then
- let dep = find_case_dep_nparams env sigma (c,p) indf pt in
+ let (dep,_) = find_case_dep_nparams env sigma (c,p) indf pt in
let init_depPvec i = if i = tyi then Some(dep,p) else None in
let depPvec = Array.init (mis_ntypes mispec) init_depPvec in
let vargs = Array.of_list params in
@@ -485,11 +486,13 @@ let type_mutind_rec env sigma (IndType (indf,realargs) as ind) pt p c =
if dep then applist(p,realargs@[c])
else applist(p,realargs) )
else
- type_case_branches env sigma ind pt p c
+ let (p,ra,_) = type_case_branches env sigma ind pt p c in
+ (p,ra)
let type_rec_branches recursive env sigma ind pt p c =
if recursive then
type_mutind_rec env sigma ind pt p c
else
- type_case_branches env sigma ind pt p c
+ let (p,ra,_) = type_case_branches env sigma ind pt p c in
+ (p,ra)