aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2020-04-28 16:43:10 +0200
committerPierre-Marie Pédrot2020-04-28 16:43:10 +0200
commit17a5e95cd38206d82a1ff83c1d155a9a26729495 (patch)
tree2b2edeef6c6e5256e445e7945806ae066c7a3dda
parent3ff3c18031317dcd08bf081e55212617b8820647 (diff)
Add comment about decide equality dependence computation.
-rw-r--r--vernac/auto_ind_decl.ml5
1 files changed, 5 insertions, 0 deletions
diff --git a/vernac/auto_ind_decl.ml b/vernac/auto_ind_decl.ml
index f8a2d15661..bfa7a729f7 100644
--- a/vernac/auto_ind_decl.ml
+++ b/vernac/auto_ind_decl.ml
@@ -133,6 +133,11 @@ let build_beq_scheme_deps kn =
let nparrec = mib.mind_nparams_rec in
check_no_indices mib;
let make_one_eq accu i =
+ (* This function is only trying to recursively compute the inductive types
+ appearing as arguments of the constructors. This is done to support
+ equality decision over hereditarily first-order types. It could be
+ perfomed in a much cleaner way, e.g. using the kernel normal form of
+ constructor types and kernel whd_all for the argument types. *)
let rec aux accu c =
let (c,a) = Reductionops.whd_betaiota_stack Evd.empty EConstr.(of_constr c) in
let (c,a) = EConstr.Unsafe.(to_constr c, List.map to_constr a) in