aboutsummaryrefslogtreecommitdiff
path: root/kernel/environ.ml
diff options
context:
space:
mode:
authorherbelin2000-10-11 20:04:04 +0000
committerherbelin2000-10-11 20:04:04 +0000
commitd6bcb300547267487db417e57c2f745f4fb31cbb (patch)
tree19c85e6310568578ade8ce82e8a8b8b4818294d8 /kernel/environ.ml
parent6617dfae5110021b28e565fb3ea5b0d58fb9c14a (diff)
Ajout push_rec_types
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@695 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/environ.ml')
-rw-r--r--kernel/environ.ml6
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/environ.ml b/kernel/environ.ml
index 41be8a6796..bce436ade1 100644
--- a/kernel/environ.ml
+++ b/kernel/environ.ml
@@ -116,6 +116,12 @@ let push_rels_to_vars env =
env.env_context.env_rel_context ([],ids_of_var_context sign0,sign0)
in subst, (var_context_app (fun _ -> sign) env)
+let push_rec_types (typarray,names,_) env =
+ let vect_lift_type = Array.mapi (fun i t -> outcast_type (lift i t)) in
+ let nlara =
+ List.combine (List.rev names) (Array.to_list (vect_lift_type typarray)) in
+ List.fold_left (fun env nvar -> push_rel_decl nvar env) env nlara
+
let reset_rel_context env =
{ env with
env_context = { env_var_context = env.env_context.env_var_context;