aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorArnaud Spiwack2015-06-22 13:42:13 +0200
committerArnaud Spiwack2015-06-24 17:55:47 +0200
commit8589b9b487c1e9b996975bd5dc58f548d0d9280c (patch)
treef3a8ed36341e62d02f2c526df53e214ef6e23fee /kernel
parent9420069e4d0bf3bf377c950bbc41ea762fbcfce8 (diff)
Add a field in `mutual_inductive_body` to represent mutual inductive whose positivity is assumed.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/declarations.mli1
-rw-r--r--kernel/declareops.ml4
-rw-r--r--kernel/indtypes.ml1
3 files changed, 5 insertions, 1 deletions
diff --git a/kernel/declarations.mli b/kernel/declarations.mli
index 27c1c3f3f0..ef3e1bb6ae 100644
--- a/kernel/declarations.mli
+++ b/kernel/declarations.mli
@@ -184,6 +184,7 @@ type mutual_inductive_body = {
mind_private : bool option; (** allow pattern-matching: Some true ok, Some false blocked *)
+ mind_checked_positive : bool; (** [false] when the mutual-inductive was assumed to be well-founded, bypassing the positivity checker. *)
}
(** {6 Module declarations } *)
diff --git a/kernel/declareops.ml b/kernel/declareops.ml
index a7051d5c13..870aef1d28 100644
--- a/kernel/declareops.ml
+++ b/kernel/declareops.ml
@@ -258,7 +258,9 @@ let subst_mind_body sub mib =
mind_packets = Array.smartmap (subst_mind_packet sub) mib.mind_packets ;
mind_polymorphic = mib.mind_polymorphic;
mind_universes = mib.mind_universes;
- mind_private = mib.mind_private }
+ mind_private = mib.mind_private;
+ mind_checked_positive = mib.mind_checked_positive;
+ }
let inductive_instance mib =
if mib.mind_polymorphic then
diff --git a/kernel/indtypes.ml b/kernel/indtypes.ml
index 92e121402a..72b615cc89 100644
--- a/kernel/indtypes.ml
+++ b/kernel/indtypes.ml
@@ -857,6 +857,7 @@ let build_inductive env p prv ctx env_ar params kn isrecord isfinite inds nmr re
mind_polymorphic = p;
mind_universes = ctx;
mind_private = prv;
+ mind_checked_positive = true;
}
(************************************************************************)