aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMatthieu Sozeau2014-05-30 21:55:24 +0200
committerMatthieu Sozeau2014-06-04 15:48:31 +0200
commit86c6649382bb9e42281ffe956c627c6d3987559b (patch)
tree7d42f94d33c2ac2e4241ce92014abc0785aed6ca /kernel
parentdd96b1e5e8d0eb9f93cff423b6f9cf900aee49d7 (diff)
- Force every universe level to be >= Prop, so one cannot "go under" it anymore.
- Finish the change to level-to-level substitutions, in the checker.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/univ.ml6
-rw-r--r--kernel/univ.mli2
2 files changed, 8 insertions, 0 deletions
diff --git a/kernel/univ.ml b/kernel/univ.ml
index 147efe86bc..6c60950211 100644
--- a/kernel/univ.ml
+++ b/kernel/univ.ml
@@ -1466,6 +1466,12 @@ let initial_universes = enforce_univ_lt Level.prop Level.set LMap.empty
let is_initial_universes g = LMap.equal (==) g initial_universes
+let add_universe vlev g =
+ let v = terminal vlev in
+ let proparc = prop_arc g in
+ enter_arc {proparc with le=vlev::proparc.le}
+ (enter_arc v g)
+
(* Constraints and sets of constraints. *)
type univ_constraint = Level.t * constraint_type * Level.t
diff --git a/kernel/univ.mli b/kernel/univ.mli
index bf04c62e21..9398e23ba9 100644
--- a/kernel/univ.mli
+++ b/kernel/univ.mli
@@ -183,6 +183,8 @@ val initial_universes : universes
val is_initial_universes : universes -> bool
+val add_universe : universe_level -> universes -> universes
+
(** {6 Substitution} *)
type universe_subst_fn = universe_level -> universe