aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/declareops.ml
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/declareops.ml')
-rw-r--r--kernel/declareops.ml20
1 files changed, 12 insertions, 8 deletions
diff --git a/kernel/declareops.ml b/kernel/declareops.ml
index 8806bba45..4363ec442 100644
--- a/kernel/declareops.ml
+++ b/kernel/declareops.ml
@@ -43,11 +43,20 @@ let body_of_constant cb = match cb.const_body with
| OpaqueDef o -> Some (Opaqueproof.force_proof o)
let constraints_of_constant cb = Univ.Constraint.union
- (Univ.UContext.constraints (Future.force cb.const_universes))
+ (Univ.UContext.constraints cb.const_universes)
(match cb.const_body with
| Undef _ -> Univ.empty_constraint
| Def c -> Univ.empty_constraint
- | OpaqueDef o -> Opaqueproof.force_constraints o)
+ | OpaqueDef o -> Univ.UContext.constraints (Opaqueproof.force_constraints o))
+
+let universes_of_constant cb =
+ match cb.const_body with
+ | Undef _ | Def _ -> cb.const_universes
+ | OpaqueDef o -> Opaqueproof.force_constraints o
+
+let universes_of_polymorphic_constant cb =
+ if cb.const_polymorphic then universes_of_constant cb
+ else Univ.UContext.empty
let constant_has_body cb = match cb.const_body with
| Undef _ -> false
@@ -139,11 +148,7 @@ let hcons_const_body cb =
{ cb with
const_body = hcons_const_def cb.const_body;
const_type = hcons_const_type cb.const_type;
- const_universes =
- if Future.is_val cb.const_universes then
- Future.from_val
- (Univ.hcons_universe_context (Future.force cb.const_universes))
- else (* FIXME: Why not? *) cb.const_universes }
+ const_universes = Univ.hcons_universe_context cb.const_universes }
(** {6 Inductive types } *)
@@ -265,7 +270,6 @@ let hcons_mind mib =
(** {6 Stm machinery } *)
let join_constant_body cb =
- ignore(Future.join cb.const_universes);
match cb.const_body with
| OpaqueDef o -> Opaqueproof.join_opaque o
| _ -> ()