Eliminated mutual_induct_tac.
authorberghofe
Wed, 13 Oct 1999 15:18:15 +0200
changeset 7847 5a3fa0c4b215
parent 7846 adf6b1112bc1
child 7848 6ddcc24038e1
Eliminated mutual_induct_tac.
NEWS
src/HOL/Induct/ABexp.ML
src/HOL/Induct/Term.ML
src/HOL/Tools/datatype_package.ML
--- a/NEWS	Wed Oct 13 15:16:52 1999 +0200
+++ b/NEWS	Wed Oct 13 15:18:15 1999 +0200
@@ -17,6 +17,9 @@
 
 * HOL: the predicate "inj" is now defined by translation to "inj_on";
 
+* HOL/datatype: mutual_induct_tac no longer exists --
+  use induct_tac "x_1 ... x_n" instead of mutual_induct_tac ["x_1", ..., "x_n"]
+
 * HOL/typedef: fixed type inference for representing set; type
 arguments now have to occur explicitly on the rhs as type constraints;
 
--- a/src/HOL/Induct/ABexp.ML	Wed Oct 13 15:16:52 1999 +0200
+++ b/src/HOL/Induct/ABexp.ML	Wed Oct 13 15:18:15 1999 +0200
@@ -12,7 +12,7 @@
 Goal
   "evala env (substa (Var(v := a')) a) = evala (env(v := evala env a')) a &  \
  \ evalb env (substb (Var(v := a')) b) = evalb (env(v := evala env a')) b";
-by (mutual_induct_tac ["a","b"] 1);
+by (induct_tac "a b" 1);
 by (ALLGOALS Asm_full_simp_tac);
 qed "subst1_aexp_bexp";
 
@@ -20,6 +20,6 @@
 Goal
   "evala env (substa s a) = evala (%x. evala env (s x)) a &  \
  \ evalb env (substb s b) = evalb (%x. evala env (s x)) b";
-by (mutual_induct_tac ["a","b"] 1);
+by (induct_tac "a b" 1);
 by (Auto_tac);
 qed "subst_all_aexp_bexp";
--- a/src/HOL/Induct/Term.ML	Wed Oct 13 15:16:52 1999 +0200
+++ b/src/HOL/Induct/Term.ML	Wed Oct 13 15:18:15 1999 +0200
@@ -12,7 +12,7 @@
   \  (subst_term f1 (subst_term f2 t)) &  \
   \  (subst_term_list ((subst_term f1) o f2) ts) =  \
   \  (subst_term_list f1 (subst_term_list f2 ts))";
-by (mutual_induct_tac ["t", "ts"] 1);
+by (induct_tac "t ts" 1);
 by (ALLGOALS Asm_full_simp_tac);
 qed "subst_comp";
 
@@ -23,7 +23,7 @@
    \  !!f ts. list_all P ts ==> P (App f ts) |] ==>  \
    \    P t & list_all P ts"
   (fn prems =>
-    [mutual_induct_tac ["t", "ts"] 1,
+    [induct_tac "t ts" 1,
      resolve_tac prems 1,
      resolve_tac prems 1,
      atac 1,
--- a/src/HOL/Tools/datatype_package.ML	Wed Oct 13 15:16:52 1999 +0200
+++ b/src/HOL/Tools/datatype_package.ML	Wed Oct 13 15:18:15 1999 +0200
@@ -8,7 +8,6 @@
 
 signature BASIC_DATATYPE_PACKAGE =
 sig
-  val mutual_induct_tac : string list -> int -> tactic
   val induct_tac : string -> int -> tactic
   val exhaust_tac : string -> int -> tactic
   val distinct_simproc : simproc
@@ -170,8 +169,9 @@
 
 (* generic induction tactic for datatypes *)
 
-fun mutual_induct_tac vars i state =
+fun induct_tac s i state =
   let
+    val vars = Syntax.read_idents s;
     val (_, _, Bi, _) = dest_state (state, i);
     val {sign, ...} = rep_thm state;
     val tn = find_tname (hd vars) Bi;
@@ -185,8 +185,6 @@
     occs_in_prems (res_inst_tac insts induction) vars i state
   end;
 
-fun induct_tac var = mutual_induct_tac [var];
-
 (* generic exhaustion tactic for datatypes *)
 
 fun exhaust_tac aterm i state =