aboutsummaryrefslogtreecommitdiff
path: root/tactics
diff options
context:
space:
mode:
authorHugo Herbelin2016-04-12 22:25:26 +0200
committerHugo Herbelin2016-04-27 21:55:45 +0200
commitbde36d4b00185065628324d8ca71994f84eae244 (patch)
treec4d7bba0352ee72fa31712e02882c7066a6e1ba1 /tactics
parentc4d1e3113f77af2e5474fe5676c272050dd445e5 (diff)
In the short term, stronger invariant on the syntax of TacAssert, what
allows for a simpler re-printing of assert. Also fixing the precedence for printing "by" clause.
Diffstat (limited to 'tactics')
-rw-r--r--tactics/tactics.ml7
-rw-r--r--tactics/tactics.mli2
2 files changed, 6 insertions, 3 deletions
diff --git a/tactics/tactics.ml b/tactics/tactics.ml
index a626092dd1..4c47dc67e3 100644
--- a/tactics/tactics.ml
+++ b/tactics/tactics.ml
@@ -2551,6 +2551,9 @@ let forward b usetac ipat c =
(Proofview.V82.tactic (exact_no_check c))
end }
| Some tac ->
+ let tac = match tac with
+ | None -> Tacticals.New.tclIDTAC
+ | Some tac -> Tacticals.New.tclCOMPLETE tac in
if b then
Tacticals.New.tclTHENFIRST (assert_as b None ipat c) tac
else
@@ -2558,8 +2561,8 @@ let forward b usetac ipat c =
(assert_as b None ipat c) [||] tac [|Tacticals.New.tclIDTAC|]
let pose_proof na c = forward true None (ipat_of_name na) c
-let assert_by na t tac = forward true (Some tac) (ipat_of_name na) t
-let enough_by na t tac = forward false (Some tac) (ipat_of_name na) t
+let assert_by na t tac = forward true (Some (Some tac)) (ipat_of_name na) t
+let enough_by na t tac = forward false (Some (Some tac)) (ipat_of_name na) t
(***************************)
(* Generalization tactics *)
diff --git a/tactics/tactics.mli b/tactics/tactics.mli
index 4c4a96ec07..0919fb28e2 100644
--- a/tactics/tactics.mli
+++ b/tactics/tactics.mli
@@ -365,7 +365,7 @@ val pose_proof : Name.t -> constr ->
(** Common entry point for user-level "assert", "enough" and "pose proof" *)
-val forward : bool -> unit Proofview.tactic option ->
+val forward : bool -> unit Proofview.tactic option option ->
intro_pattern option -> constr -> unit Proofview.tactic
(** Implements the tactic cut, actually a modus ponens rule *)