From 8eea5a5ecdd33d85e4e7d42408360fff68e04f5d Mon Sep 17 00:00:00 2001 From: Pierre-Marie Pédrot Date: Tue, 21 Nov 2017 11:24:04 +0100 Subject: Experimenting with a fine-grained cache for undefined evars in evinfos. --- engine/proofview.ml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'engine/proofview.ml') 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 -- cgit v1.2.3