Skip to content

Commit 403d1c3

Browse files
committed
Add API Evd.mem_shelf instead of going through lower level Evd.shelf
1 parent 9dba7f6 commit 403d1c3

File tree

4 files changed

+8
-3
lines changed

4 files changed

+8
-3
lines changed

engine/evd.ml

+2
Original file line numberDiff line numberDiff line change
@@ -1303,6 +1303,8 @@ let given_up evd = evd.given_up
13031303

13041304
let shelf evd = List.flatten evd.shelf
13051305

1306+
let mem_shelf e evd = List.exists (List.exists (fun e' -> Evar.equal e e')) evd.shelf
1307+
13061308
let pr_shelf evd =
13071309
let open Pp in
13081310
if List.is_empty evd.shelf then str"(empty stack)"

engine/evd.mli

+4
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,10 @@ val unshelve : evar_map -> Evar.t list -> evar_map
441441
val given_up : evar_map -> Evar.Set.t
442442

443443
val shelf : evar_map -> Evar.t list
444+
(** All evars in the shelf (not just the shallowest shelf) *)
445+
446+
val mem_shelf : Evar.t -> evar_map -> bool
447+
(** [true] if the evar is in the shelf (not necessarily in the shallowest shelf) *)
444448

445449
val pr_shelf : evar_map -> Pp.t
446450

proofs/proof.ml

+1-1
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ let focus_id cond inf id pr =
202202
(* goal is already under focus *)
203203
_focus cond inf i i pr
204204
| None ->
205-
if CList.mem_f Evar.equal ev (Evd.shelf evar_map) then
205+
if Evd.mem_shelf ev evar_map then
206206
(* goal is on the shelf, put it in focus *)
207207
let proofview = Proofview.unshelve [ev] pr.proofview in
208208
let pr = { pr with proofview } in

proofs/refine.ml

+1-2
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ let generic_refine ~typecheck f gl =
7575
let future_goals, sigma = Evd.pop_future_goals sigma in
7676
(* Select the goals *)
7777
let future_goals = Evd.FutureGoals.map_filter (Proofview.Unsafe.advance sigma) future_goals in
78-
let shelf = Evd.shelf sigma in
79-
let future_goals = Evd.FutureGoals.filter (fun ev -> not @@ List.mem ev shelf) future_goals in
78+
let future_goals = Evd.FutureGoals.filter (fun ev -> not @@ Evd.mem_shelf ev sigma) future_goals in
8079
(* Proceed to the refinement *)
8180
let sigma = match Proofview.Unsafe.advance sigma self with
8281
| None ->

0 commit comments

Comments
 (0)