aboutsummaryrefslogtreecommitdiffhomepage
path: root/engine/evarutil.mli
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2016-08-05 12:38:12 +0200
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2016-08-06 12:06:34 +0200
commitf1e1b7f735c8cd4a1f3cc52e7f9a7cdf1481ffe5 (patch)
treed9c24d91ab1a3ed14e72ec6aa0e6ccd5d55b0d4d /engine/evarutil.mli
parent26e5194bc252e4ac71c74f8ac73a0e2cbe82edf6 (diff)
Using a dedicated kind of substitutions in evar name generation.
This saves a quadratic allocation by replacing arrays with maps.
Diffstat (limited to 'engine/evarutil.mli')
-rw-r--r--engine/evarutil.mli9
1 files changed, 7 insertions, 2 deletions
diff --git a/engine/evarutil.mli b/engine/evarutil.mli
index 429ea73de..c0c81442d 100644
--- a/engine/evarutil.mli
+++ b/engine/evarutil.mli
@@ -199,15 +199,20 @@ val clear_hyps_in_evi : env -> evar_map ref -> named_context_val -> types ->
val clear_hyps2_in_evi : env -> evar_map ref -> named_context_val -> types -> types ->
Id.Set.t -> named_context_val * types * types
+type csubst
+
+val empty_csubst : csubst
+val csubst_subst : csubst -> Constr.t -> Constr.t
+
type ext_named_context =
- Vars.substl * (Id.t * Constr.constr) list *
+ csubst * (Id.t * Constr.constr) list *
Id.Set.t * Context.Named.t
val push_rel_decl_to_named_context :
Context.Rel.Declaration.t -> ext_named_context -> ext_named_context
val push_rel_context_to_named_context : Environ.env -> types ->
- named_context_val * types * constr list * constr list * (identifier*constr) list
+ named_context_val * types * constr list * csubst * (identifier*constr) list
val generalize_evar_over_rels : evar_map -> existential -> types * constr list