diff options
author | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2017-11-21 11:24:04 +0100 |
---|---|---|
committer | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2017-11-21 14:53:41 +0100 |
commit | 8eea5a5ecdd33d85e4e7d42408360fff68e04f5d (patch) | |
tree | f62f130020b02d78395bf441f62dd47ee96ae3df /engine/proofview.ml | |
parent | 9eaeb462425728ee2df225619a632d3a6c25cad9 (diff) |
Experimenting with a fine-grained cache for undefined evars in evinfos.
Diffstat (limited to 'engine/proofview.ml')
-rw-r--r-- | engine/proofview.ml | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/engine/proofview.ml b/engine/proofview.ml index af65bc320..613fb1d20 100644 --- a/engine/proofview.ml +++ b/engine/proofview.ml @@ -645,12 +645,13 @@ let unifiable_delayed g l = CList.exists (fun (tgt, lazy evs) -> not (Evar.equal g tgt) && Evar.Set.mem g evs) l let free_evars sigma l = + let cache = Evarutil.create_undefined_evars_cache () in let map ev = (** Computes the set of evars appearing in the hypotheses, the conclusion or the body of the evar_info [evi]. Note: since we want to use it on goals, the body is actually supposed to be empty. *) let evi = Evd.find sigma ev in - let fevs = lazy (Evd.evars_of_filtered_evar_info (Evarutil.nf_evar_info sigma evi)) in + let fevs = lazy (Evarutil.filtered_undefined_evars_of_evar_info ~cache sigma evi) in (ev, fevs) in List.map map l |