aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/refman/RefMan-ltac.tex3
-rw-r--r--tactics/tacinterp.ml2
-rw-r--r--tactics/tacticals.ml2
-rw-r--r--tactics/tacticals.mli1
4 files changed, 6 insertions, 2 deletions
diff --git a/doc/refman/RefMan-ltac.tex b/doc/refman/RefMan-ltac.tex
index ae5653c145..13b2d387b8 100644
--- a/doc/refman/RefMan-ltac.tex
+++ b/doc/refman/RefMan-ltac.tex
@@ -371,7 +371,8 @@ We can check if a tactic made progress with:
{\tt progress} {\tacexpr}
\end{quote}
{\tacexpr} is evaluated to $v$. $v$ must be a tactic value. $v$ is
-applied. If the application of $v$ produced subgoals equal to the
+applied to each focued subgoal independently. If the application of
+$v$ to one of the focused subgoal produced subgoals equal to the
initial goals (up to syntactical equality), then an error of level 0
is raised.
diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml
index c19159eeea..34314088c0 100644
--- a/tactics/tacinterp.ml
+++ b/tactics/tacinterp.ml
@@ -1131,7 +1131,7 @@ and eval_tactic ist = function
Proofview.V82.tactic begin fun gl ->
tclFAIL (interp_int_or_var ist n) (interp_message ist gl s) gl
end
- | TacProgress tac -> Proofview.tclPROGRESS (interp_tactic ist tac)
+ | TacProgress tac -> Tacticals.New.tclPROGRESS (interp_tactic ist tac)
| TacShowHyps tac ->
Proofview.V82.tactic begin
tclSHOWHYPS (Proofview.V82.of_tactic (interp_tactic ist tac))
diff --git a/tactics/tacticals.ml b/tactics/tacticals.ml
index bcb6041eff..f815830ca2 100644
--- a/tactics/tacticals.ml
+++ b/tactics/tacticals.ml
@@ -510,6 +510,8 @@ module New = struct
(* Try the first thats solves the current goal *)
let tclSOLVE tacl = tclFIRST (List.map tclCOMPLETE tacl)
+ let tclPROGRESS t =
+ Proofview.tclINDEPENDENT (Proofview.tclPROGRESS t)
let tclWITHHOLES accept_unresolved_holes tac sigma x =
tclEVARMAP >= fun sigma_initial ->
diff --git a/tactics/tacticals.mli b/tactics/tacticals.mli
index 312e5cb494..f1e8a34033 100644
--- a/tactics/tacticals.mli
+++ b/tactics/tacticals.mli
@@ -236,6 +236,7 @@ module New : sig
val tclREPEAT_MAIN : unit tactic -> unit tactic
val tclCOMPLETE : 'a tactic -> 'a tactic
val tclSOLVE : unit tactic list -> unit tactic
+ val tclPROGRESS : unit tactic -> unit tactic
val tclWITHHOLES : bool -> ('a -> unit tactic) -> Evd.evar_map -> 'a -> unit tactic
val tclTIMEOUT : int -> unit tactic -> unit tactic