aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorherbelin1999-12-13 00:05:40 +0000
committerherbelin1999-12-13 00:05:40 +0000
commit6f9511d66cbca602302d7854b5699e02eb1b026a (patch)
treef8696ccc546e50ea22b943b50cf5baab0ba8f437 /kernel
parentca7877a577b01e65bee0c94dc2a847ec18eb38e9 (diff)
Poursuite intégration du Cases
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@242 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel')
-rw-r--r--kernel/environ.ml14
-rw-r--r--kernel/environ.mli1
2 files changed, 15 insertions, 0 deletions
diff --git a/kernel/environ.ml b/kernel/environ.ml
index 5ac91dc00d..eaa87b5be2 100644
--- a/kernel/environ.ml
+++ b/kernel/environ.ml
@@ -55,6 +55,20 @@ let change_hyps f env =
let (ENVIRON(g,r)) = env.env_context in
{ env with env_context = ENVIRON (f g, r) }
+(* == functions to deal with names in contexts (previously in cases.ml) == *)
+
+(* If cur=(Rel j) then
+ * if env = ENVIRON(sign,[na_h:Th]...[na_j:Tj]...[na_1:T1])
+ * then it yields ENVIRON(sign,[na_h:Th]...[Name id:Tj]...[na_1:T1])
+ *)
+let change_name_rel env j id =
+ let ENVIRON(sign,db) = context env in
+ (match list_chop (j-1) db with
+ db1,((_,ty)::db2) ->
+ {env with env_context = ENVIRON(sign,db1@(Name id,ty)::db2)}
+ | _ -> assert false)
+(****)
+
let push_rel idrel env =
{ env with env_context = add_rel idrel env.env_context }
diff --git a/kernel/environ.mli b/kernel/environ.mli
index cfcdf2d36c..ffb5861e1b 100644
--- a/kernel/environ.mli
+++ b/kernel/environ.mli
@@ -27,6 +27,7 @@ val var_context : env -> var_context
val push_var : identifier * typed_type -> env -> env
val change_hyps :
(typed_type signature -> typed_type signature) -> env -> env
+val change_name_rel : env -> int -> identifier -> env
val push_rel : name * typed_type -> env -> env