aboutsummaryrefslogtreecommitdiff
path: root/engine/termops.mli
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2016-06-24 21:23:16 +0200
committerPierre-Marie Pédrot2016-06-24 21:24:39 +0200
commita553126c9e0984f38b1a15f2db60458813a177c9 (patch)
tree3a493b094eeb86d741a38836563f40aa0798d4ed /engine/termops.mli
parent922ad0c1cb4a4badf4c9c2cd098285a008495519 (diff)
parent4d4e2f421c1a4f0339568d3c96ff2459a027aa09 (diff)
Several easy but efficient optimizations for subst and clear tactics.
They were spotted by profiling tactics manipulating huge terms, provided by Jason Gross.
Diffstat (limited to 'engine/termops.mli')
-rw-r--r--engine/termops.mli5
1 files changed, 5 insertions, 0 deletions
diff --git a/engine/termops.mli b/engine/termops.mli
index 76a31037bc..5d85088f8d 100644
--- a/engine/termops.mli
+++ b/engine/termops.mli
@@ -96,6 +96,7 @@ val strip_head_cast : constr -> constr
val drop_extra_implicit_args : constr -> constr
(** occur checks *)
+
exception Occur
val occur_meta : types -> bool
val occur_existential : types -> bool
@@ -105,6 +106,10 @@ val occur_var : env -> Id.t -> types -> bool
val occur_var_in_decl :
env ->
Id.t -> Context.Named.Declaration.t -> bool
+
+(** As {!occur_var} but assume the identifier not to be a section variable *)
+val local_occur_var : Id.t -> types -> bool
+
val free_rels : constr -> Int.Set.t
(** [dependent m t] tests whether [m] is a subterm of [t] *)