diff options
author | 2012-07-11 16:42:09 +0000 | |
---|---|---|
committer | 2012-07-11 16:42:09 +0000 | |
commit | df954f17d5f487e06ee21e10bab1ae9a133ba72d (patch) | |
tree | 18c5d0e64dc17792ca2537896cc70d92a16c3a34 /proofs/proofview.mli | |
parent | e6bf1b6936f8bd61eb1266f7f4dd67181f3630f1 (diff) |
Severe reorganisation of the code of tactics in Proofview.
All the purely monadic code has been moved to a new module Monads,
where, I'm afraid to confess, I got to use a number of proof transformers
to modularise the definition of tactics. It is still not easy to understand (why
would it with backtracking support?) but at least it's more robust, cleaner,
and more extensible. Plus there is now a Proofview.tclORELSE which will
be used to interprete the Ltac tactical (t1 || t2).
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@15596 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'proofs/proofview.mli')
-rw-r--r-- | proofs/proofview.mli | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/proofs/proofview.mli b/proofs/proofview.mli index d9cc43e50..ade8be1a3 100644 --- a/proofs/proofview.mli +++ b/proofs/proofview.mli @@ -134,13 +134,18 @@ val tclTHEN : unit tactic -> 'a tactic -> 'a tactic but drops the value at the end. *) val tclIGNORE : 'a tactic -> unit tactic -(* [tclOR t1 t2 = t1] if t1 succeeds and [tclOR t1 t2 = t2] if t2 fails. - No interleaving at this point. *) +(* [tclOR t1 t2 = t1] as long as [t1] succeeds. Whenever the successes + of [t1] have been depleted, then it behaves as [t2]. No + interleaving at this point. *) val tclOR : 'a tactic -> 'a tactic -> 'a tactic (* [tclZERO] always fails *) val tclZERO : exn -> 'a tactic +(* [tclORELSE t1 t2] behaves like [t1] if [t1] succeeds at least once + or [t2] if [t1] fails. *) +val tclORELSE : 'a tactic -> 'a tactic -> 'a tactic + (* Focuses a tactic at a range of subgoals, found by their indices. *) val tclFOCUS : int -> int -> 'a tactic -> 'a tactic @@ -229,8 +234,4 @@ module V82 : sig (* Implements the Existential command *) val instantiate_evar : int -> Constrexpr.constr_expr -> proofview -> proofview - - (* spiwack: [purify] might be useful while writing tactics manipulating exception - explicitely or from the [V82] submodule (neither being advised, though *) - val purify : 'a tactic -> 'a tactic end |