Method.insert_tac;
authorwenzelm
Wed, 01 Sep 1999 21:24:23 +0200
changeset 7425 2089c70f2c6d
parent 7424 ce03b804c5e7
child 7426 e0be36ee7ab9
Method.insert_tac; Method.multi_resolves; contradiction: made faithful; tuned comments;
src/Provers/classical.ML
--- a/src/Provers/classical.ML	Wed Sep 01 21:22:56 1999 +0200
+++ b/src/Provers/classical.ML	Wed Sep 01 21:24:23 1999 +0200
@@ -1093,7 +1093,7 @@
       let
         val irules = find_rules (Logic.strip_assums_concl goal) nets;
         val rules = erules @ irules;
-        val ruleq = Method.forward_chain facts rules;
+        val ruleq = Method.multi_resolves facts rules;
       in trace rules i; fn st => Seq.flat (Seq.map (fn rule => Tactic.rtac rule i st) ruleq) end);
   in tac end;
 
@@ -1115,7 +1115,7 @@
       if null rules then FIRST' (map (biresolve_from_nets_tac o netpair_of) (get_nets cs))
       else res_tac rules;
     fun multi_tac st = (single_tac THEN_ALL_NEW (TRY o (fn st => multi_tac st))) st;
-  in Method.same_tac facts THEN' multi_tac end;
+  in Method.insert_tac facts THEN' multi_tac end;
 
 val intro_tac = intro_elim_tac (fn (inet, _) => (inet, Net.empty)) resolve_tac;
 val elim_tac = intro_elim_tac (fn (_, enet) => (Net.empty, enet)) eresolve_tac;
@@ -1128,8 +1128,7 @@
 
 (* contradiction method *)
 
-val contradiction = Method.METHOD (fn facts =>
-  FIRSTGOAL (Method.same_tac facts THEN' contr_tac));
+val contradiction = Method.rule [Data.not_elim, Data.not_elim COMP Drule.swap_prems_rl];
 
 
 (* automatic methods *)
@@ -1149,10 +1148,10 @@
 val cla_args = Method.only_sectioned_args cla_modifiers;
 
 fun cla_meth tac ctxt = Method.METHOD (fn facts =>
-  ALLGOALS (Method.same_tac facts) THEN tac (get_local_claset ctxt));
+  ALLGOALS (Method.insert_tac facts) THEN tac (get_local_claset ctxt));
 
 fun cla_meth' tac ctxt = Method.METHOD (fn facts =>
-  FIRSTGOAL (Method.same_tac facts THEN' tac (get_local_claset ctxt)));
+  FIRSTGOAL (Method.insert_tac facts THEN' tac (get_local_claset ctxt)));
 
 val cla_method = cla_args o cla_meth;
 val cla_method' = cla_args o cla_meth';
@@ -1162,11 +1161,11 @@
 (** setup_methods **)
 
 val setup_methods = Method.add_methods
- [("default", Method.thms_args rule, "apply some rule (chain facts)"),
-  ("rule", Method.thms_args rule, "apply some rule (chain facts)"),
-  ("intro", Method.thms_args intro, "apply some introduction rule (cut facts)"),
-  ("elim", Method.thms_args elim, "apply some elimination rule (cut facts)"),
+ [("default", Method.thms_args rule, "apply some rule"),
+  ("rule", Method.thms_args rule, "apply some rule"),
   ("contradiction", Method.no_args contradiction, "proof by contradiction"),
+  ("intro", Method.thms_args intro, "repeatedly apply introduction rules"),
+  ("elim", Method.thms_args elim, "repeatedly apply elimination rules"),
   ("safe_tac", cla_method safe_tac, "safe_tac (improper!)"),
   ("safe_step_tac", cla_method' safe_step_tac, "safe_step_tac (improper!)"),
   ("step_tac", cla_method' step_tac, "step_tac (improper!)"),