diff options
author | 2016-08-05 12:38:12 +0200 | |
---|---|---|
committer | 2016-08-06 12:06:34 +0200 | |
commit | f1e1b7f735c8cd4a1f3cc52e7f9a7cdf1481ffe5 (patch) | |
tree | d9c24d91ab1a3ed14e72ec6aa0e6ccd5d55b0d4d /engine/evarutil.mli | |
parent | 26e5194bc252e4ac71c74f8ac73a0e2cbe82edf6 (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.mli | 9 |
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 |