aboutsummaryrefslogtreecommitdiffhomepage
path: root/library
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2017-04-06 17:34:23 +0200
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2017-04-06 17:54:41 +0200
commitd6175b9980808ff91f1299ca26a9a49a117169ca (patch)
treef4bf86dc768b66e37d4519f771222f08c5fad333 /library
parent2794b3c91bbbef115303b40f2e494ad97467dc9e (diff)
Fix a normalization hotspot in computation of constr keys.
Getting a key only needs to observe the root of a term. This hotspot was observed in HoTT.
Diffstat (limited to 'library')
-rw-r--r--library/keys.ml4
-rw-r--r--library/keys.mli2
2 files changed, 3 insertions, 3 deletions
diff --git a/library/keys.ml b/library/keys.ml
index 057dc3b65..c9e325ee5 100644
--- a/library/keys.ml
+++ b/library/keys.ml
@@ -114,11 +114,11 @@ let inKeys : key_obj -> obj =
let declare_equiv_keys ref ref' =
Lib.add_anonymous_leaf (inKeys (ref,ref'))
-let constr_key c =
+let constr_key kind c =
let open Globnames in
try
let rec aux k =
- match kind_of_term k with
+ match kind k with
| Const (c, _) -> KGlob (ConstRef c)
| Ind (i, u) -> KGlob (IndRef i)
| Construct (c,u) -> KGlob (ConstructRef c)
diff --git a/library/keys.mli b/library/keys.mli
index 69668590d..6abac4de4 100644
--- a/library/keys.mli
+++ b/library/keys.mli
@@ -16,7 +16,7 @@ val declare_equiv_keys : key -> key -> unit
val equiv_keys : key -> key -> bool
(** Check equivalence of keys. *)
-val constr_key : Term.constr -> key option
+val constr_key : ('a -> ('a, 't, 'u, 'i) Constr.kind_of_term) -> 'a -> key option
(** Compute the head key of a term. *)
val pr_keys : (global_reference -> Pp.std_ppcmds) -> Pp.std_ppcmds