aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/declareops.ml
diff options
context:
space:
mode:
authorGravatar Maxime Dénès <mail@maximedenes.fr>2015-01-16 22:17:03 +0100
committerGravatar Maxime Dénès <mail@maximedenes.fr>2015-01-17 08:02:45 +0100
commit9f5586d88880cbb98c92edfe9c33c76564f1a19c (patch)
tree6de2a171eff5706b0e4ce9268554b84a922f12b3 /kernel/declareops.ml
parent4985f0ff99278beb3b934f86edf1398659c611a8 (diff)
Make native compiler handle universe polymorphic definitions.
One remaining issue: aliased constants raise an anomaly when some unsubstituted universe variables remain. VM may suffer from the same problem.
Diffstat (limited to 'kernel/declareops.ml')
-rw-r--r--kernel/declareops.ml10
1 files changed, 10 insertions, 0 deletions
diff --git a/kernel/declareops.ml b/kernel/declareops.ml
index d5df24a1a..48a6098ee 100644
--- a/kernel/declareops.ml
+++ b/kernel/declareops.ml
@@ -260,6 +260,16 @@ let subst_mind_body sub mib =
mind_universes = mib.mind_universes;
mind_private = mib.mind_private }
+let inductive_instance mib =
+ if mib.mind_polymorphic then
+ Univ.UContext.instance mib.mind_universes
+ else Univ.Instance.empty
+
+let inductive_context mib =
+ if mib.mind_polymorphic then
+ Univ.instantiate_univ_context mib.mind_universes
+ else Univ.UContext.empty
+
(** {6 Hash-consing of inductive declarations } *)
let hcons_regular_ind_arity a =