aboutsummaryrefslogtreecommitdiff
path: root/kernel/typeops.ml
diff options
context:
space:
mode:
authorherbelin2000-03-21 00:03:56 +0000
committerherbelin2000-03-21 00:03:56 +0000
commit70102c9c7b059b6a058e14c4cfda9cdd29ee3010 (patch)
tree9ca5918b3c3366cba5d237a74ca92725d2bd34f5 /kernel/typeops.ml
parent73e027a781c1025914749975d341dbab21e2bc45 (diff)
Prise en compte nouveau case_info dans type_case
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@335 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/typeops.ml')
-rw-r--r--kernel/typeops.ml13
1 files changed, 6 insertions, 7 deletions
diff --git a/kernel/typeops.ml b/kernel/typeops.ml
index 242641feff..c7496554c9 100644
--- a/kernel/typeops.ml
+++ b/kernel/typeops.ml
@@ -170,11 +170,11 @@ let type_of_existential env sigma c =
(* Case. *)
-let rec sort_of_arity env sigma c =
+let rec mysort_of_arity env sigma c =
match whd_betadeltaiota env sigma c with
| DOP0(Sort( _)) as c' -> c'
- | DOP2(Prod,_,DLAM(_,c2)) -> sort_of_arity env sigma c2
- | _ -> invalid_arg "sort_of_arity"
+ | DOP2(Prod,_,DLAM(_,c2)) -> mysort_of_arity env sigma c2
+ | _ -> invalid_arg "mysort_of_arity"
let make_arity_dep env sigma k =
let rec mrec c m = match whd_betadeltaiota env sigma c with
@@ -315,14 +315,13 @@ let check_branches_message env sigma (c,ct) (explft,lft) =
(nf_betaiota env sigma explft.(i))
done
-let type_of_case env sigma pj cj lfj =
+let type_of_case env sigma ci pj cj lfj =
let lft = Array.map (fun j -> j.uj_type) lfj in
let (mind,bty,rslty) =
type_case_branches env sigma cj.uj_type pj.uj_type pj.uj_val cj.uj_val in
- let kind = sort_of_arity env sigma pj.uj_type in
+ let kind = mysort_of_arity env sigma pj.uj_type in
check_branches_message env sigma (cj.uj_val,cj.uj_type) (bty,lft);
- { uj_val =
- mkMutCaseA (ci_of_mind mind) (j_val pj) (j_val cj) (Array.map j_val lfj);
+ { uj_val = mkMutCaseA ci (j_val pj) (j_val cj) (Array.map j_val lfj);
uj_type = rslty;
uj_kind = kind }