aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/environ.ml2
-rw-r--r--kernel/environ.mli1
-rw-r--r--kernel/inductive.ml2
-rw-r--r--kernel/univ.mli1
4 files changed, 6 insertions, 0 deletions
diff --git a/kernel/environ.ml b/kernel/environ.ml
index 621a9931de..c3fd8962e6 100644
--- a/kernel/environ.ml
+++ b/kernel/environ.ml
@@ -101,6 +101,8 @@ let fold_rel_context f env ~init =
let named_context_of_val c = c.env_named_ctx
+let ids_of_named_context_val c = Id.Map.domain c.env_named_map
+
(* [map_named_val f ctxt] apply [f] to the body and the type of
each declarations.
*** /!\ *** [f t] should be convertible with t *)
diff --git a/kernel/environ.mli b/kernel/environ.mli
index 377c61de2c..2667ad7ca9 100644
--- a/kernel/environ.mli
+++ b/kernel/environ.mli
@@ -80,6 +80,7 @@ val fold_rel_context :
val named_context_of_val : named_context_val -> Context.Named.t
val val_of_named_context : Context.Named.t -> named_context_val
val empty_named_context_val : named_context_val
+val ids_of_named_context_val : named_context_val -> Id.Set.t
(** [map_named_val f ctxt] apply [f] to the body and the type of
diff --git a/kernel/inductive.ml b/kernel/inductive.ml
index 1eaba49aa9..a393073689 100644
--- a/kernel/inductive.ml
+++ b/kernel/inductive.ml
@@ -860,6 +860,8 @@ let filter_stack_domain env ci p stack =
match stack, kind_of_term t with
| elt :: stack', Prod (n,a,c0) ->
let d = LocalAssum (n,a) in
+ let ctx, a = dest_prod_assum env a in
+ let env = push_rel_context ctx env in
let ty, args = decompose_app (whd_all env a) in
let elt = match kind_of_term ty with
| Ind ind ->
diff --git a/kernel/univ.mli b/kernel/univ.mli
index a4f2e26b63..94116e4737 100644
--- a/kernel/univ.mli
+++ b/kernel/univ.mli
@@ -411,6 +411,7 @@ sig
val add_instance : Instance.t -> t -> t
(** Arbitrary choice of linear order of the variables *)
+ val sort_levels : Level.t array -> Level.t array
val to_context : t -> universe_context
val of_context : universe_context -> t