aboutsummaryrefslogtreecommitdiff
path: root/engine/proofview.ml
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2020-12-11 18:21:49 +0100
committerPierre-Marie Pédrot2020-12-11 18:28:05 +0100
commitcade097ff6e5670b5f4c3ea832b593cf88251fbd (patch)
treeee8f0fec90e56a21f6262bcc2b8423b94e1965b6 /engine/proofview.ml
parent5a77078718c18b05e7ffb1366d6dd9e439ecfc91 (diff)
Fast path in tclPROGRESS.
We first check that the list of goals have the same length before trying to engage into potentially costly equality checks.
Diffstat (limited to 'engine/proofview.ml')
-rw-r--r--engine/proofview.ml3
1 files changed, 2 insertions, 1 deletions
diff --git a/engine/proofview.ml b/engine/proofview.ml
index 22863f451d..b3061eaa81 100644
--- a/engine/proofview.ml
+++ b/engine/proofview.ml
@@ -909,10 +909,11 @@ let tclPROGRESS t =
in
let test =
quick_test ||
+ (CList.same_length initial.comb final.comb &&
Util.List.for_all2eq begin fun i f ->
Progress.goal_equal ~evd:initial.solution
~extended_evd:final.solution (drop_state i) (drop_state f)
- end initial.comb final.comb
+ end initial.comb final.comb)
in
if not test then
tclUNIT res