From dd96b1e5e8d0eb9f93cff423b6f9cf900aee49d7 Mon Sep 17 00:00:00 2001 From: Matthieu Sozeau Date: Fri, 30 May 2014 20:55:48 +0200 Subject: - Fix hashing of levels to get the "right" order in universe contexts etc... - Add a tentative syntax for specifying universes: Type{"i"} and foo@{Type{"i"},Type{"j"}}. These are always rigid. - Use level-to-level substitutions where the more general level-to-universe substitutions were previously used. --- kernel/typeops.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'kernel/typeops.ml') diff --git a/kernel/typeops.ml b/kernel/typeops.ml index 49f883628..98c0dfc20 100644 --- a/kernel/typeops.ml +++ b/kernel/typeops.ml @@ -176,7 +176,7 @@ let type_of_projection env (cst,u) = if cb.const_polymorphic then let mib,_ = lookup_mind_specif env (pb.proj_ind,0) in let subst = make_inductive_subst mib u in - Vars.subst_univs_constr subst pb.proj_type + Vars.subst_univs_level_constr subst pb.proj_type else pb.proj_type | None -> raise (Invalid_argument "type_of_projection: not a projection") @@ -374,7 +374,7 @@ let judge_of_projection env p cj = in assert(eq_mind pb.proj_ind (fst ind)); let usubst = make_inductive_subst (fst (lookup_mind_specif env ind)) u in - let ty = Vars.subst_univs_constr usubst pb.Declarations.proj_type in + let ty = Vars.subst_univs_level_constr usubst pb.Declarations.proj_type in let ty = substl (cj.uj_val :: List.rev args) ty in (* TODO: Universe polymorphism for projections *) {uj_val = mkProj (p,cj.uj_val); -- cgit v1.2.3