aboutsummaryrefslogtreecommitdiffhomepage
path: root/toplevel
diff options
context:
space:
mode:
Diffstat (limited to 'toplevel')
-rw-r--r--toplevel/command.ml2
-rw-r--r--toplevel/discharge.ml6
-rw-r--r--toplevel/record.ml2
3 files changed, 7 insertions, 3 deletions
diff --git a/toplevel/command.ml b/toplevel/command.ml
index 0e4d6e330..a675fe028 100644
--- a/toplevel/command.ml
+++ b/toplevel/command.ml
@@ -525,7 +525,7 @@ let interp_mutual_inductive (paramsl,indl) notations poly prv finite =
in
(* Build the mutual inductive entry *)
{ mind_entry_params = List.map prepare_param ctx_params;
- mind_entry_record = false;
+ mind_entry_record = None;
mind_entry_finite = finite;
mind_entry_inds = entries;
mind_entry_polymorphic = poly;
diff --git a/toplevel/discharge.ml b/toplevel/discharge.ml
index 3015eab25..bd5218eff 100644
--- a/toplevel/discharge.ml
+++ b/toplevel/discharge.ml
@@ -91,7 +91,11 @@ let process_inductive (sechyps,abs_ctx) modlist mib =
let sechyps' = map_named_context (expmod_constr modlist) sechyps in
let (params',inds') = abstract_inductive sechyps' nparams inds in
let univs = Univ.UContext.union abs_ctx mib.mind_universes in
- { mind_entry_record = mib.mind_record <> None;
+ let record = match mib.mind_record with
+ | None -> None
+ | Some (_, a) -> Some (Array.length a > 0)
+ in
+ { mind_entry_record = record;
mind_entry_finite = mib.mind_finite;
mind_entry_params = params';
mind_entry_inds = inds';
diff --git a/toplevel/record.ml b/toplevel/record.ml
index d2aa48db9..896cc41c7 100644
--- a/toplevel/record.ml
+++ b/toplevel/record.ml
@@ -330,7 +330,7 @@ let declare_structure finite infer poly ctx id idbuild paramimpls params arity f
end;
let mie =
{ mind_entry_params = List.map degenerate_decl params;
- mind_entry_record = true;
+ mind_entry_record = Some !primitive_flag;
mind_entry_finite = finite != CoFinite;
mind_entry_inds = [mie_ind];
mind_entry_polymorphic = poly;