aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2000-05-05 13:23:02 +0000
committerherbelin2000-05-05 13:23:02 +0000
commit29d0b8cab874cf496d0f8b8e2f899329627b6a1f (patch)
treefe5b7018a2591375b444975434b8d2a5cea935f5
parent41eaad090bd3dfa27c510f7cffa841652e10516b (diff)
Achèvement nettoyage Pfedit; ajout intros_replacing
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@423 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--tactics/tactics.ml13
-rw-r--r--tactics/tactics.mli1
2 files changed, 13 insertions, 1 deletions
diff --git a/tactics/tactics.ml b/tactics/tactics.ml
index f27bf381b0..860c981264 100644
--- a/tactics/tactics.ml
+++ b/tactics/tactics.ml
@@ -319,6 +319,17 @@ let intros = tclREPEAT (intro_force false)
let intro_erasing id = tclTHEN (thin [id]) (intro_using id)
+let intros_replacing ids gls =
+ let rec introrec = function
+ | [] -> tclIDTAC
+ | id::tl ->
+ (tclTHEN (tclORELSE (intro_replacing id)
+ (tclORELSE (intro_erasing id) (* ?? *)
+ (intro_using id)))
+ (introrec tl))
+ in
+ introrec ids gls
+
(* User-level introduction tactics *)
let dyn_intro = function
@@ -1623,7 +1634,7 @@ let abstract_subproof name tac gls =
by (tclCOMPLETE (tclTHEN (tclDO (sign_length sign) intro) tac));
save_named true
with e when catchable_exception e ->
- (abort_current_goal(); raise e)
+ (abort_current_proof(); raise e)
end;
exact (applist ((Declare.construct_reference env' CCI na),
(List.map (fun id -> VAR(id))
diff --git a/tactics/tactics.mli b/tactics/tactics.mli
index 0f45a1e7cb..751a777390 100644
--- a/tactics/tactics.mli
+++ b/tactics/tactics.mli
@@ -63,6 +63,7 @@ val intro_using : identifier -> tactic
val intro_using_warning : identifier -> tactic
val intros_using : identifier list -> tactic
val intro_erasing : identifier -> tactic
+val intros_replacing : identifier list -> tactic
val intros : tactic