diff options
author | Matthieu Sozeau <matthieu.sozeau@inria.fr> | 2014-08-30 18:48:11 +0200 |
---|---|---|
committer | Matthieu Sozeau <matthieu.sozeau@inria.fr> | 2014-08-30 18:53:32 +0200 |
commit | 437b91a3ffd7327975a129b95b24d3f66ad7f3e4 (patch) | |
tree | 3e5b4098318c4bbad4024d072c5008825e78c1c9 /kernel/univ.ml | |
parent | dac4d8952c5fc234f5b6245e39a73c2ca07555ee (diff) |
Simplify even further the declaration of primitive projections,
now done entirely using declare_mind, which declares the associated
constants for primitive records. This avoids a hack related to
elimination schemes and ensures that the forward references to constants
in the mutual inductive entry are properly declared just after the
inductive. This also clarifies (and simplifies) the code of term_typing
for constants which does not have to deal with building
or checking projections anymore.
Also fix printing of universes showing the de Bruijn encoding in a few places.
Diffstat (limited to 'kernel/univ.ml')
-rw-r--r-- | kernel/univ.ml | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/univ.ml b/kernel/univ.ml index fbdb5bb0d..b2f251283 100644 --- a/kernel/univ.ml +++ b/kernel/univ.ml @@ -1937,6 +1937,11 @@ let subst_univs_level_universe subst u = let u' = Universe.smartmap f u in if u == u' then u else Universe.sort u' + +let subst_univs_level_instance subst i = + let i' = Instance.subst_fn (subst_univs_level_level subst) i in + if i == i' then i + else i' let subst_univs_level_constraint subst (u,d,v) = let u' = subst_univs_level_level subst u |