isatool fixclasimp;
authorwenzelm
Mon Nov 03 12:24:13 1997 +0100 (1997-11-03)
changeset 4091771b1f6422a8
parent 4090 9f1eaab75e8c
child 4092 9faf228771dc
isatool fixclasimp;
src/FOL/ex/If.ML
src/FOL/ex/Nat.ML
src/FOL/ex/Nat2.ML
src/FOL/ex/NatClass.ML
src/FOL/ex/cla.ML
src/HOL/Auth/Event.ML
src/HOL/Auth/Message.ML
src/HOL/Auth/NS_Public.ML
src/HOL/Auth/NS_Public_Bad.ML
src/HOL/Auth/NS_Shared.ML
src/HOL/Auth/OtwayRees.ML
src/HOL/Auth/OtwayRees_AN.ML
src/HOL/Auth/OtwayRees_Bad.ML
src/HOL/Auth/Public.ML
src/HOL/Auth/Recur.ML
src/HOL/Auth/Shared.ML
src/HOL/Auth/TLS.ML
src/HOL/Auth/WooLam.ML
src/HOL/Auth/Yahalom.ML
src/HOL/Auth/Yahalom2.ML
src/HOL/AxClasses/Group/GroupDefs.ML
src/HOL/AxClasses/Lattice/CLattice.ML
src/HOL/AxClasses/Lattice/LatInsts.ML
src/HOL/AxClasses/Lattice/LatMorph.ML
src/HOL/AxClasses/Lattice/LatPreInsts.ML
src/HOL/AxClasses/Lattice/Lattice.ML
src/HOL/AxClasses/Lattice/OrdDefs.ML
src/HOL/AxClasses/Lattice/Order.ML
src/HOL/AxClasses/Tutorial/ProdGroupInsts.thy
src/HOL/thy_syntax.ML
src/ZF/AC.ML
src/ZF/AC/AC0_AC1.ML
src/ZF/AC/AC10_AC15.ML
src/ZF/AC/AC15_WO6.ML
src/ZF/AC/AC16_WO4.ML
src/ZF/AC/AC16_lemmas.ML
src/ZF/AC/AC17_AC1.ML
src/ZF/AC/AC18_AC19.ML
src/ZF/AC/AC1_AC17.ML
src/ZF/AC/AC1_WO2.ML
src/ZF/AC/AC2_AC6.ML
src/ZF/AC/AC7_AC9.ML
src/ZF/AC/AC_Equiv.ML
src/ZF/AC/Cardinal_aux.ML
src/ZF/AC/DC.ML
src/ZF/AC/DC_lemmas.ML
src/ZF/AC/HH.ML
src/ZF/AC/Hartog.ML
src/ZF/AC/WO1_AC.ML
src/ZF/AC/WO1_WO6.ML
src/ZF/AC/WO1_WO7.ML
src/ZF/AC/WO1_WO8.ML
src/ZF/AC/WO2_AC16.ML
src/ZF/AC/WO6_WO1.ML
src/ZF/AC/WO_AC.ML
src/ZF/AC/recfunAC16.ML
src/ZF/AC/rel_is_fun.ML
src/ZF/Arith.ML
src/ZF/Bool.ML
src/ZF/Cardinal.ML
src/ZF/CardinalArith.ML
src/ZF/Cardinal_AC.ML
src/ZF/Coind/ECR.ML
src/ZF/Coind/MT.ML
src/ZF/Coind/Map.ML
src/ZF/Coind/Static.ML
src/ZF/Coind/Types.ML
src/ZF/Coind/Values.ML
src/ZF/Epsilon.ML
src/ZF/EquivClass.ML
src/ZF/Finite.ML
src/ZF/IMP/Com.ML
src/ZF/IMP/Denotation.ML
src/ZF/IMP/Equiv.ML
src/ZF/InfDatatype.ML
src/ZF/List.ML
src/ZF/Nat.ML
src/ZF/OrdQuant.ML
src/ZF/Order.ML
src/ZF/OrderArith.ML
src/ZF/OrderType.ML
src/ZF/Ordinal.ML
src/ZF/Perm.ML
src/ZF/QPair.ML
src/ZF/QUniv.ML
src/ZF/Resid/Confluence.ML
src/ZF/Resid/Conversion.ML
src/ZF/Resid/Cube.ML
src/ZF/Resid/Reduction.ML
src/ZF/Resid/Residuals.ML
src/ZF/Resid/SubUnion.ML
src/ZF/Resid/Substitution.ML
src/ZF/Resid/Terms.ML
src/ZF/Sum.ML
src/ZF/Trancl.ML
src/ZF/Univ.ML
src/ZF/WF.ML
src/ZF/ZF.ML
src/ZF/Zorn.ML
src/ZF/domrange.ML
src/ZF/equalities.ML
src/ZF/ex/Acc.ML
src/ZF/ex/BT.ML
src/ZF/ex/Bin.ML
src/ZF/ex/Brouwer.ML
src/ZF/ex/CoUnit.ML
src/ZF/ex/Comb.ML
src/ZF/ex/Data.ML
src/ZF/ex/Enum.ML
src/ZF/ex/Integ.ML
src/ZF/ex/LList.ML
src/ZF/ex/Limit.ML
src/ZF/ex/ListN.ML
src/ZF/ex/Mutil.ML
src/ZF/ex/Ntree.ML
src/ZF/ex/Primes.ML
src/ZF/ex/Primrec.ML
src/ZF/ex/PropLog.ML
src/ZF/ex/Ramsey.ML
src/ZF/ex/Rmap.ML
src/ZF/ex/TF.ML
src/ZF/ex/Term.ML
src/ZF/ex/misc.ML
src/ZF/func.ML
src/ZF/mono.ML
src/ZF/pair.ML
src/ZF/simpdata.ML
src/ZF/subset.ML
src/ZF/upair.ML
     1.1 --- a/src/FOL/ex/If.ML	Mon Nov 03 12:22:43 1997 +0100
     1.2 +++ b/src/FOL/ex/If.ML	Mon Nov 03 12:24:13 1997 +0100
     1.3 @@ -11,13 +11,13 @@
     1.4  
     1.5  val prems = goalw If.thy [if_def]
     1.6      "[| P ==> Q; ~P ==> R |] ==> if(P,Q,R)";
     1.7 -by (blast_tac (!claset addIs prems) 1);
     1.8 +by (blast_tac (claset() addIs prems) 1);
     1.9  qed "ifI";
    1.10  
    1.11  val major::prems = goalw If.thy [if_def]
    1.12     "[| if(P,Q,R);  [| P; Q |] ==> S; [| ~P; R |] ==> S |] ==> S";
    1.13  by (cut_facts_tac [major] 1);
    1.14 -by (blast_tac (!claset addIs prems) 1);
    1.15 +by (blast_tac (claset() addIs prems) 1);
    1.16  qed "ifE";
    1.17  
    1.18  
     2.1 --- a/src/FOL/ex/Nat.ML	Mon Nov 03 12:22:43 1997 +0100
     2.2 +++ b/src/FOL/ex/Nat.ML	Mon Nov 03 12:24:13 1997 +0100
     2.3 @@ -61,5 +61,5 @@
     2.4  val prems = goal Nat.thy "(!!n. f(Suc(n)) = Suc(f(n))) ==> f(i+j) = i+f(j)";
     2.5  by (res_inst_tac [("n","i")] induct 1);
     2.6  by (Simp_tac 1);
     2.7 -by (asm_simp_tac (!simpset addsimps prems) 1);
     2.8 +by (asm_simp_tac (simpset() addsimps prems) 1);
     2.9  result();
     3.1 --- a/src/FOL/ex/Nat2.ML	Mon Nov 03 12:22:43 1997 +0100
     3.2 +++ b/src/FOL/ex/Nat2.ML	Mon Nov 03 12:24:13 1997 +0100
     3.3 @@ -82,13 +82,13 @@
     3.4  result();
     3.5  
     3.6  goal Nat2.thy "m <= n --> m <= n+k";
     3.7 -by (IND_TAC nat_ind (simp_tac (!simpset addsimps [le_imp_le_succ]))
     3.8 +by (IND_TAC nat_ind (simp_tac (simpset() addsimps [le_imp_le_succ]))
     3.9       "k" 1);
    3.10  qed "le_plus";
    3.11  
    3.12  goal Nat2.thy "succ(m) <= n --> m <= n";
    3.13  by (res_inst_tac [("x","n")]spec 1);
    3.14 -by (ALL_IND_TAC nat_exh (simp_tac (!simpset addsimps [le_imp_le_succ])) 1);
    3.15 +by (ALL_IND_TAC nat_exh (simp_tac (simpset() addsimps [le_imp_le_succ])) 1);
    3.16  qed "succ_le";
    3.17  
    3.18  goal Nat2.thy "~m<n <-> n<=m";
    3.19 @@ -98,7 +98,7 @@
    3.20  qed "not_less";
    3.21  
    3.22  goal Nat2.thy "n<=m --> ~m<n";
    3.23 -by (simp_tac (!simpset addsimps [not_less]) 1);
    3.24 +by (simp_tac (simpset() addsimps [not_less]) 1);
    3.25  qed "le_imp_not_less";
    3.26  
    3.27  goal Nat2.thy "m<n --> ~n<=m";
    3.28 @@ -123,7 +123,7 @@
    3.29  qed "not0";
    3.30  
    3.31  goal Nat2.thy "a<=a' & b<=b' --> a+b<=a'+b'";
    3.32 -by (IND_TAC nat_ind (simp_tac (!simpset addsimps [le_plus])) "b" 1);
    3.33 +by (IND_TAC nat_ind (simp_tac (simpset() addsimps [le_plus])) "b" 1);
    3.34  by (resolve_tac [impI RS allI] 1);
    3.35  by (resolve_tac [allI RS allI] 1);
    3.36  by (ALL_IND_TAC nat_exh Asm_simp_tac 1);
     4.1 --- a/src/FOL/ex/NatClass.ML	Mon Nov 03 12:22:43 1997 +0100
     4.2 +++ b/src/FOL/ex/NatClass.ML	Mon Nov 03 12:24:13 1997 +0100
     4.3 @@ -57,5 +57,5 @@
     4.4  val [prem] = goal NatClass.thy "(!!n. f(Suc(n)) = Suc(f(n))) ==> f(i+j) = i+f(j)";
     4.5  by (res_inst_tac [("n","i")] induct 1);
     4.6  by (Simp_tac 1);
     4.7 -by (asm_simp_tac (!simpset addsimps [prem]) 1);
     4.8 +by (asm_simp_tac (simpset() addsimps [prem]) 1);
     4.9  result();
     5.1 --- a/src/FOL/ex/cla.ML	Mon Nov 03 12:22:43 1997 +0100
     5.2 +++ b/src/FOL/ex/cla.ML	Mon Nov 03 12:24:13 1997 +0100
     5.3 @@ -470,7 +470,7 @@
     5.4  
     5.5  writeln"Problem 58  NOT PROVED AUTOMATICALLY";
     5.6  goal FOL.thy "(ALL x y. f(x)=g(y)) --> (ALL x y. f(f(x))=f(g(y)))";
     5.7 -by (slow_tac (!claset addEs [subst_context]) 1);
     5.8 +by (slow_tac (claset() addEs [subst_context]) 1);
     5.9  result();
    5.10  
    5.11  writeln"Problem 59";
    5.12 @@ -512,7 +512,7 @@
    5.13  \                 ((C(y) & Q(w,y,y)) & OO(w,b) --> P(v,y) & OO(v,b))))) \
    5.14  \  -->                  \
    5.15  \  ~ (EX x. A(x) & (ALL y. C(y) --> (ALL z. D(x,y,z))))";
    5.16 -by (Blast.depth_tac (!claset) 12 1);
    5.17 +by (Blast.depth_tac (claset()) 12 1);
    5.18  result();
    5.19  
    5.20  
    5.21 @@ -539,7 +539,7 @@
    5.22  \                        (C(y) & ~P(y,y) --> P(u,y) & OO(u,b))))) \
    5.23  \  -->                                                            \
    5.24  \  ~ (EX x. A(x) & (ALL y. C(y) --> (ALL z. D(x,y,z))))";
    5.25 -by (Blast.depth_tac(!claset) 7 1);
    5.26 +by (Blast.depth_tac(claset()) 7 1);
    5.27  result();
    5.28  
    5.29  (* Challenge found on info-hol *)
     6.1 --- a/src/HOL/Auth/Event.ML	Mon Nov 03 12:22:43 1997 +0100
     6.2 +++ b/src/HOL/Auth/Event.ML	Mon Nov 03 12:24:13 1997 +0100
     6.3 @@ -42,11 +42,11 @@
     6.4  qed "spies_Notes";
     6.5  
     6.6  goal thy "spies evs <= spies (Says A B X # evs)";
     6.7 -by (simp_tac (!simpset addsimps [subset_insertI]) 1);
     6.8 +by (simp_tac (simpset() addsimps [subset_insertI]) 1);
     6.9  qed "spies_subset_spies_Says";
    6.10  
    6.11  goal thy "spies evs <= spies (Notes A X # evs)";
    6.12 -by (simp_tac (!simpset addsplits [expand_if]) 1);
    6.13 +by (simp_tac (simpset() addsplits [expand_if]) 1);
    6.14  by (Fast_tac 1);
    6.15  qed "spies_subset_spies_Notes";
    6.16  
    6.17 @@ -54,14 +54,14 @@
    6.18  goal thy "Says A B X : set evs --> X : spies evs";
    6.19  by (induct_tac "evs" 1);
    6.20  by (ALLGOALS (asm_simp_tac
    6.21 -	      (!simpset addsplits [expand_event_case, expand_if])));
    6.22 +	      (simpset() addsplits [expand_event_case, expand_if])));
    6.23  qed_spec_mp "Says_imp_spies";
    6.24  
    6.25  (*Spy sees Notes of bad agents*)
    6.26  goal thy "Notes A X : set evs --> A: bad --> X : spies evs";
    6.27  by (induct_tac "evs" 1);
    6.28  by (ALLGOALS (asm_simp_tac
    6.29 -	      (!simpset addsplits [expand_event_case, expand_if])));
    6.30 +	      (simpset() addsplits [expand_event_case, expand_if])));
    6.31  qed_spec_mp "Notes_imp_spies";
    6.32  
    6.33  (*Use with addSEs to derive contradictions from old Says events containing
    6.34 @@ -79,7 +79,7 @@
    6.35  goal thy "parts (spies evs) <= used evs";
    6.36  by (induct_tac "evs" 1);
    6.37  by (ALLGOALS (asm_simp_tac
    6.38 -	      (!simpset addsimps [parts_insert_spies]
    6.39 +	      (simpset() addsimps [parts_insert_spies]
    6.40  	                addsplits [expand_event_case, expand_if])));
    6.41  by (ALLGOALS Blast_tac);
    6.42  qed "parts_spies_subset_used";
    6.43 @@ -90,7 +90,7 @@
    6.44  goal thy "parts (initState B) <= used evs";
    6.45  by (induct_tac "evs" 1);
    6.46  by (ALLGOALS (asm_simp_tac
    6.47 -	      (!simpset addsimps [parts_insert_spies]
    6.48 +	      (simpset() addsimps [parts_insert_spies]
    6.49  	                addsplits [expand_event_case, expand_if])));
    6.50  by (ALLGOALS Blast_tac);
    6.51  bind_thm ("initState_into_used", impOfSubs (result()));
    6.52 @@ -107,7 +107,7 @@
    6.53  
    6.54  goal thy "used [] <= used evs";
    6.55  by (Simp_tac 1);
    6.56 -by (blast_tac (!claset addIs [initState_into_used]) 1);
    6.57 +by (blast_tac (claset() addIs [initState_into_used]) 1);
    6.58  qed "used_nil_subset";
    6.59  
    6.60  (**** NOTE REMOVAL--laws above are cleaner, as they don't involve "case" ****)
    6.61 @@ -117,7 +117,7 @@
    6.62  (*currently unused*)
    6.63  goal thy "used evs <= used (evs@evs')";
    6.64  by (induct_tac "evs" 1);
    6.65 -by (simp_tac (!simpset addsimps [used_nil_subset]) 1);
    6.66 +by (simp_tac (simpset() addsimps [used_nil_subset]) 1);
    6.67  by (induct_tac "a" 1);
    6.68  by (ALLGOALS Asm_simp_tac);
    6.69  by (ALLGOALS Blast_tac);
     7.1 --- a/src/HOL/Auth/Message.ML	Mon Nov 03 12:22:43 1997 +0100
     7.2 +++ b/src/HOL/Auth/Message.ML	Mon Nov 03 12:24:13 1997 +0100
     7.3 @@ -177,8 +177,8 @@
     7.4  (*TWO inserts to avoid looping.  This rewrite is better than nothing.
     7.5    Not suitable for Addsimps: its behaviour can be strange.*)
     7.6  goal thy "parts (insert X (insert Y H)) = parts {X} Un parts {Y} Un parts H";
     7.7 -by (simp_tac (!simpset addsimps [Un_assoc]) 1);
     7.8 -by (simp_tac (!simpset addsimps [parts_insert RS sym]) 1);
     7.9 +by (simp_tac (simpset() addsimps [Un_assoc]) 1);
    7.10 +by (simp_tac (simpset() addsimps [parts_insert RS sym]) 1);
    7.11  qed "parts_insert2";
    7.12  
    7.13  goal thy "(UN x:A. parts(H x)) <= parts(UN x:A. H x)";
    7.14 @@ -196,7 +196,7 @@
    7.15  qed "parts_UN";
    7.16  
    7.17  goal thy "parts(UN x. H x) = (UN x. parts(H x))";
    7.18 -by (simp_tac (!simpset addsimps [UNION1_def, parts_UN]) 1);
    7.19 +by (simp_tac (simpset() addsimps [UNION1_def, parts_UN]) 1);
    7.20  qed "parts_UN1";
    7.21  
    7.22  (*Added to simplify arguments to parts, analz and synth.
    7.23 @@ -207,7 +207,7 @@
    7.24  	parts_UN1 RS equalityD1 RS subsetD RS UN1_E];
    7.25  
    7.26  goal thy "insert X (parts H) <= parts(insert X H)";
    7.27 -by (blast_tac (!claset addIs [impOfSubs parts_mono]) 1);
    7.28 +by (blast_tac (claset() addIs [impOfSubs parts_mono]) 1);
    7.29  qed "parts_insert_subset";
    7.30  
    7.31  (** Idempotence and transitivity **)
    7.32 @@ -236,9 +236,9 @@
    7.33  qed "parts_cut";
    7.34  
    7.35  goal thy "!!H. X: parts H ==> parts (insert X H) = parts H";
    7.36 -by (fast_tac (!claset addSDs [parts_cut]
    7.37 +by (fast_tac (claset() addSDs [parts_cut]
    7.38                        addIs  [parts_insertI] 
    7.39 -                      addss (!simpset)) 1);
    7.40 +                      addss (simpset())) 1);
    7.41  qed "parts_cut_eq";
    7.42  
    7.43  Addsimps [parts_cut_eq];
    7.44 @@ -278,7 +278,7 @@
    7.45  by (etac parts.induct 1);
    7.46  by (Auto_tac());
    7.47  by (etac parts.induct 1);
    7.48 -by (ALLGOALS (blast_tac (!claset addIs [parts.Body])));
    7.49 +by (ALLGOALS (blast_tac (claset() addIs [parts.Body])));
    7.50  qed "parts_insert_Crypt";
    7.51  
    7.52  goal thy "parts (insert {|X,Y|} H) = \
    7.53 @@ -288,7 +288,7 @@
    7.54  by (etac parts.induct 1);
    7.55  by (Auto_tac());
    7.56  by (etac parts.induct 1);
    7.57 -by (ALLGOALS (blast_tac (!claset addIs [parts.Fst, parts.Snd])));
    7.58 +by (ALLGOALS (blast_tac (claset() addIs [parts.Fst, parts.Snd])));
    7.59  qed "parts_insert_MPair";
    7.60  
    7.61  Addsimps [parts_insert_Agent, parts_insert_Nonce, 
    7.62 @@ -308,12 +308,12 @@
    7.63  goal thy "EX N. ALL n. N<=n --> Nonce n ~: parts {msg}";
    7.64  by (induct_tac "msg" 1);
    7.65  by (induct_tac "atomic" 1);
    7.66 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [exI, parts_insert2])));
    7.67 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [exI, parts_insert2])));
    7.68  (*MPair case: blast_tac works out the necessary sum itself!*)
    7.69 -by (blast_tac (!claset addSEs [add_leE]) 2);
    7.70 +by (blast_tac (claset() addSEs [add_leE]) 2);
    7.71  (*Nonce case*)
    7.72  by (res_inst_tac [("x","N + Suc nat")] exI 1);
    7.73 -by (fast_tac (!claset addSEs [add_leE] addaltern trans_tac) 1);
    7.74 +by (fast_tac (claset() addSEs [add_leE] addaltern trans_tac) 1);
    7.75  qed "msg_Nonce_supply";
    7.76  
    7.77  
    7.78 @@ -351,7 +351,7 @@
    7.79  by (rtac equalityI 1);
    7.80  by (rtac (analz_subset_parts RS parts_mono RS subset_trans) 1);
    7.81  by (Simp_tac 1);
    7.82 -by (blast_tac (!claset addIs [analz_increasing RS parts_mono RS subsetD]) 1);
    7.83 +by (blast_tac (claset() addIs [analz_increasing RS parts_mono RS subsetD]) 1);
    7.84  qed "parts_analz";
    7.85  Addsimps [parts_analz];
    7.86  
    7.87 @@ -386,7 +386,7 @@
    7.88  qed "analz_Un";
    7.89  
    7.90  goal thy "insert X (analz H) <= analz(insert X H)";
    7.91 -by (blast_tac (!claset addIs [impOfSubs analz_mono]) 1);
    7.92 +by (blast_tac (claset() addIs [impOfSubs analz_mono]) 1);
    7.93  qed "analz_insert";
    7.94  
    7.95  (** Rewrite rules for pulling out atomic messages **)
    7.96 @@ -426,7 +426,7 @@
    7.97  by (etac analz.induct 1);
    7.98  by (Auto_tac());
    7.99  by (etac analz.induct 1);
   7.100 -by (ALLGOALS (blast_tac (!claset addIs [analz.Fst, analz.Snd])));
   7.101 +by (ALLGOALS (blast_tac (claset() addIs [analz.Fst, analz.Snd])));
   7.102  qed "analz_insert_MPair";
   7.103  
   7.104  (*Can pull out enCrypted message if the Key is not known*)
   7.105 @@ -450,7 +450,7 @@
   7.106  by (Auto_tac());
   7.107  by (eres_inst_tac [("za","x")] analz.induct 1);
   7.108  by (Auto_tac());
   7.109 -by (blast_tac (!claset addIs [analz_insertI, analz.Decrypt]) 1);
   7.110 +by (blast_tac (claset() addIs [analz_insertI, analz.Decrypt]) 1);
   7.111  val lemma2 = result();
   7.112  
   7.113  goal thy "!!H. Key (invKey K) : analz H ==>  \
   7.114 @@ -468,7 +468,7 @@
   7.115  \          then insert (Crypt K X) (analz (insert X H)) \
   7.116  \          else insert (Crypt K X) (analz H))";
   7.117  by (case_tac "Key (invKey K)  : analz H " 1);
   7.118 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [analz_insert_Crypt, 
   7.119 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [analz_insert_Crypt, 
   7.120                                                 analz_insert_Decrypt])));
   7.121  qed "analz_Crypt_if";
   7.122  
   7.123 @@ -526,7 +526,7 @@
   7.124    the forwarding of unknown components (X).  Without it, removing occurrences
   7.125    of X can be very complicated. *)
   7.126  goal thy "!!H. X: analz H ==> analz (insert X H) = analz H";
   7.127 -by (blast_tac (!claset addIs [analz_cut, analz_insertI]) 1);
   7.128 +by (blast_tac (claset() addIs [analz_cut, analz_insertI]) 1);
   7.129  qed "analz_insert_eq";
   7.130  
   7.131  
   7.132 @@ -536,7 +536,7 @@
   7.133  \              |] ==> analz (G Un H) <= analz (G' Un H')";
   7.134  by (Clarify_tac 1);
   7.135  by (etac analz.induct 1);
   7.136 -by (ALLGOALS (best_tac (!claset addIs [analz_mono RS subsetD])));
   7.137 +by (ALLGOALS (best_tac (claset() addIs [analz_mono RS subsetD])));
   7.138  qed "analz_subset_cong";
   7.139  
   7.140  goal thy "!!H. [| analz G = analz G'; analz H = analz H' \
   7.141 @@ -547,7 +547,7 @@
   7.142  
   7.143  
   7.144  goal thy "!!H. analz H = analz H' ==> analz(insert X H) = analz(insert X H')";
   7.145 -by (asm_simp_tac (!simpset addsimps [insert_def] delsimps [singleton_conv]
   7.146 +by (asm_simp_tac (simpset() addsimps [insert_def] delsimps [singleton_conv]
   7.147                             setloop (rtac analz_cong)) 1);
   7.148  qed "analz_insert_cong";
   7.149  
   7.150 @@ -562,11 +562,11 @@
   7.151  (*Helps to prove Fake cases*)
   7.152  goal thy "!!X. X: analz (UN i. analz (H i)) ==> X: analz (UN i. H i)";
   7.153  by (etac analz.induct 1);
   7.154 -by (ALLGOALS (blast_tac (!claset addIs [impOfSubs analz_mono])));
   7.155 +by (ALLGOALS (blast_tac (claset() addIs [impOfSubs analz_mono])));
   7.156  val lemma = result();
   7.157  
   7.158  goal thy "analz (UN i. analz (H i)) = analz (UN i. H i)";
   7.159 -by (blast_tac (!claset addIs [lemma, impOfSubs analz_mono]) 1);
   7.160 +by (blast_tac (claset() addIs [lemma, impOfSubs analz_mono]) 1);
   7.161  qed "analz_UN_analz";
   7.162  Addsimps [analz_UN_analz];
   7.163  
   7.164 @@ -607,7 +607,7 @@
   7.165  qed "synth_Un";
   7.166  
   7.167  goal thy "insert X (synth H) <= synth(insert X H)";
   7.168 -by (blast_tac (!claset addIs [impOfSubs synth_mono]) 1);
   7.169 +by (blast_tac (claset() addIs [impOfSubs synth_mono]) 1);
   7.170  qed "synth_insert";
   7.171  
   7.172  (** Idempotence and transitivity **)
   7.173 @@ -671,7 +671,7 @@
   7.174  by (rtac subsetI 1);
   7.175  by (etac parts.induct 1);
   7.176  by (ALLGOALS
   7.177 -    (blast_tac (!claset addIs ((synth_increasing RS parts_mono RS subsetD)
   7.178 +    (blast_tac (claset() addIs ((synth_increasing RS parts_mono RS subsetD)
   7.179                               ::parts.intrs))));
   7.180  qed "parts_synth";
   7.181  Addsimps [parts_synth];
   7.182 @@ -685,8 +685,8 @@
   7.183  by (rtac equalityI 1);
   7.184  by (rtac subsetI 1);
   7.185  by (etac analz.induct 1);
   7.186 -by (blast_tac (!claset addIs [impOfSubs analz_mono]) 5);
   7.187 -by (ALLGOALS (blast_tac (!claset addIs analz.intrs)));
   7.188 +by (blast_tac (claset() addIs [impOfSubs analz_mono]) 5);
   7.189 +by (ALLGOALS (blast_tac (claset() addIs analz.intrs)));
   7.190  qed "analz_synth_Un";
   7.191  
   7.192  goal thy "analz (synth H) = analz H Un synth H";
   7.193 @@ -717,25 +717,25 @@
   7.194  \          ==> Crypt K Y : parts G Un parts H";
   7.195  by (dtac (impOfSubs Fake_parts_insert) 1);
   7.196  by (assume_tac 1);
   7.197 -by (blast_tac (!claset addDs [impOfSubs analz_subset_parts]) 1);
   7.198 +by (blast_tac (claset() addDs [impOfSubs analz_subset_parts]) 1);
   7.199  qed "Crypt_Fake_parts_insert";
   7.200  
   7.201  goal thy "!!H. X: synth (analz G) ==> \
   7.202  \              analz (insert X H) <= synth (analz G) Un analz (G Un H)";
   7.203  by (rtac subsetI 1);
   7.204  by (subgoal_tac "x : analz (synth (analz G) Un H)" 1);
   7.205 -by (blast_tac (!claset addIs [impOfSubs analz_mono,
   7.206 +by (blast_tac (claset() addIs [impOfSubs analz_mono,
   7.207  			      impOfSubs (analz_mono RS synth_mono)]) 2);
   7.208  by (Full_simp_tac 1);
   7.209  by (Blast_tac 1);
   7.210  qed "Fake_analz_insert";
   7.211  
   7.212  goal thy "(X: analz H & X: parts H) = (X: analz H)";
   7.213 -by (blast_tac (!claset addIs [impOfSubs analz_subset_parts]) 1);
   7.214 +by (blast_tac (claset() addIs [impOfSubs analz_subset_parts]) 1);
   7.215  val analz_conj_parts = result();
   7.216  
   7.217  goal thy "(X: analz H | X: parts H) = (X: parts H)";
   7.218 -by (blast_tac (!claset addIs [impOfSubs analz_subset_parts]) 1);
   7.219 +by (blast_tac (claset() addIs [impOfSubs analz_subset_parts]) 1);
   7.220  val analz_disj_parts = result();
   7.221  
   7.222  AddIffs [analz_conj_parts, analz_disj_parts];
   7.223 @@ -868,11 +868,11 @@
   7.224    concerns  Crypt K X ~: Key``shrK``bad  and cannot be proved by rewriting
   7.225    alone.*)
   7.226  fun prove_simple_subgoals_tac i = 
   7.227 -    fast_tac (!claset addss (!simpset)) i THEN
   7.228 +    fast_tac (claset() addss (simpset())) i THEN
   7.229      ALLGOALS Asm_simp_tac;
   7.230  
   7.231  fun Fake_parts_insert_tac i = 
   7.232 -    blast_tac (!claset addDs [impOfSubs analz_subset_parts,
   7.233 +    blast_tac (claset() addDs [impOfSubs analz_subset_parts,
   7.234  			      impOfSubs Fake_parts_insert]) i;
   7.235  
   7.236  (*Apply rules to break down assumptions of the form
   7.237 @@ -899,13 +899,13 @@
   7.238         (REPEAT o CHANGED)
   7.239             (res_inst_tac [("x1","X")] (insert_commute RS ssubst) 1),
   7.240         (*...allowing further simplifications*)
   7.241 -       simp_tac (!simpset addsplits [expand_if]) 1,
   7.242 +       simp_tac (simpset() addsplits [expand_if]) 1,
   7.243         REPEAT (FIRSTGOAL (resolve_tac [allI,impI,notI,conjI,iffI])),
   7.244         DEPTH_SOLVE 
   7.245           (Fake_insert_simp_tac 1
   7.246            THEN
   7.247            IF_UNSOLVED (Blast.depth_tac
   7.248 -		       (!claset addIs [analz_insertI,
   7.249 +		       (claset() addIs [analz_insertI,
   7.250  				       impOfSubs analz_subset_parts]) 4 1))
   7.251         ]) i);
   7.252  
   7.253 @@ -920,7 +920,7 @@
   7.254            REPEAT o (mp_tac ORELSE' eresolve_tac [asm_rl,exE]),
   7.255            (*Duplicate the assumption*)
   7.256            forw_inst_tac [("psi", "ALL C.?P(C)")] asm_rl,
   7.257 -          Blast.depth_tac (!claset addSDs [spec]) 0];
   7.258 +          Blast.depth_tac (claset() addSDs [spec]) 0];
   7.259  
   7.260  
   7.261  (*Needed occasionally with spy_analz_tac, e.g. in analz_insert_Key_newK*)
     8.1 --- a/src/HOL/Auth/NS_Public.ML	Mon Nov 03 12:22:43 1997 +0100
     8.2 +++ b/src/HOL/Auth/NS_Public.ML	Mon Nov 03 12:24:13 1997 +0100
     8.3 @@ -59,13 +59,13 @@
     8.4  
     8.5  goal thy 
     8.6   "!!A. evs: ns_public ==> (Key (priK A) : analz (spies evs)) = (A : bad)";
     8.7 -by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
     8.8 +by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
     8.9  qed "Spy_analz_priK";
    8.10  Addsimps [Spy_analz_priK];
    8.11  
    8.12  goal thy  "!!A. [| Key (priK A) : parts (spies evs);       \
    8.13  \                  evs : ns_public |] ==> A:bad";
    8.14 -by (blast_tac (!claset addDs [Spy_see_priK]) 1);
    8.15 +by (blast_tac (claset() addDs [Spy_see_priK]) 1);
    8.16  qed "Spy_see_priK_D";
    8.17  
    8.18  bind_thm ("Spy_analz_priK_D", analz_subset_parts RS subsetD RS Spy_see_priK_D);
    8.19 @@ -85,9 +85,9 @@
    8.20  by (etac rev_mp 1);
    8.21  by (parts_induct_tac 1);
    8.22  (*NS3*)
    8.23 -by (blast_tac (!claset addSEs partsEs) 3);
    8.24 +by (blast_tac (claset() addSEs partsEs) 3);
    8.25  (*NS2*)
    8.26 -by (blast_tac (!claset addSEs partsEs) 2);
    8.27 +by (blast_tac (claset() addSEs partsEs) 2);
    8.28  by (Fake_parts_insert_tac 1);
    8.29  qed "no_nonce_NS1_NS2";
    8.30  
    8.31 @@ -101,9 +101,9 @@
    8.32  by (etac rev_mp 1);
    8.33  by (parts_induct_tac 1);
    8.34  by (ALLGOALS
    8.35 -    (asm_simp_tac (!simpset addsimps [all_conj_distrib, parts_insert_spies])));
    8.36 +    (asm_simp_tac (simpset() addsimps [all_conj_distrib, parts_insert_spies])));
    8.37  (*NS1*)
    8.38 -by (expand_case_tac "NA = ?y" 2 THEN blast_tac (!claset addSEs partsEs) 2);
    8.39 +by (expand_case_tac "NA = ?y" 2 THEN blast_tac (claset() addSEs partsEs) 2);
    8.40  (*Fake*)
    8.41  by (Clarify_tac 1);
    8.42  by (ex_strip_tac 1);
    8.43 @@ -124,7 +124,7 @@
    8.44  fun analz_induct_tac i = 
    8.45      etac ns_public.induct i   THEN
    8.46      ALLGOALS (asm_simp_tac 
    8.47 -              (!simpset addsplits [expand_if]));
    8.48 +              (simpset() addsplits [expand_if]));
    8.49  
    8.50  
    8.51  (*Secrecy: Spy does not see the nonce sent in msg NS1 if A and B are secure*)
    8.52 @@ -135,14 +135,14 @@
    8.53  by (etac rev_mp 1);
    8.54  by (analz_induct_tac 1);
    8.55  (*NS3*)
    8.56 -by (blast_tac (!claset addDs  [Says_imp_spies RS parts.Inj]
    8.57 +by (blast_tac (claset() addDs  [Says_imp_spies RS parts.Inj]
    8.58                         addEs  [no_nonce_NS1_NS2 RSN (2, rev_notE)]) 4);
    8.59  (*NS2*)
    8.60 -by (blast_tac (!claset addSEs [MPair_parts]
    8.61 +by (blast_tac (claset() addSEs [MPair_parts]
    8.62  		       addDs  [Says_imp_spies RS parts.Inj,
    8.63  			       parts.Body, unique_NA]) 3);
    8.64  (*NS1*)
    8.65 -by (blast_tac (!claset addSEs spies_partsEs
    8.66 +by (blast_tac (claset() addSEs spies_partsEs
    8.67                         addIs  [impOfSubs analz_subset_parts]) 2);
    8.68  (*Fake*)
    8.69  by (spy_analz_tac 1);
    8.70 @@ -164,9 +164,9 @@
    8.71  by (etac ns_public.induct 1);
    8.72  by (ALLGOALS Asm_simp_tac);
    8.73  (*NS1*)
    8.74 -by (blast_tac (!claset addSEs spies_partsEs) 2);
    8.75 +by (blast_tac (claset() addSEs spies_partsEs) 2);
    8.76  (*Fake*)
    8.77 -by (blast_tac (!claset addSDs [impOfSubs Fake_parts_insert]
    8.78 +by (blast_tac (claset() addSDs [impOfSubs Fake_parts_insert]
    8.79                         addDs  [Spy_not_see_NA, 
    8.80  			       impOfSubs analz_subset_parts]) 1);
    8.81  qed "A_trusts_NS2";
    8.82 @@ -198,9 +198,9 @@
    8.83  by (etac rev_mp 1);
    8.84  by (parts_induct_tac 1);
    8.85  by (ALLGOALS
    8.86 -    (asm_simp_tac (!simpset addsimps [all_conj_distrib, parts_insert_spies])));
    8.87 +    (asm_simp_tac (simpset() addsimps [all_conj_distrib, parts_insert_spies])));
    8.88  (*NS2*)
    8.89 -by (expand_case_tac "NB = ?y" 2 THEN blast_tac (!claset addSEs partsEs) 2);
    8.90 +by (expand_case_tac "NB = ?y" 2 THEN blast_tac (claset() addSEs partsEs) 2);
    8.91  (*Fake*)
    8.92  by (Clarify_tac 1);
    8.93  by (ex_strip_tac 1);
    8.94 @@ -228,14 +228,14 @@
    8.95  by (etac rev_mp 1);
    8.96  by (analz_induct_tac 1);
    8.97  (*NS3*)
    8.98 -by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj, unique_NB]) 4);
    8.99 +by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj, unique_NB]) 4);
   8.100  (*NS2: by freshness and unicity of NB*)
   8.101 -by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj]
   8.102 +by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj]
   8.103                         addEs [no_nonce_NS1_NS2 RSN (2, rev_notE)]
   8.104                         addEs partsEs
   8.105  		       addIs [impOfSubs analz_subset_parts]) 3);
   8.106  (*NS1*)
   8.107 -by (blast_tac (!claset addSEs spies_partsEs) 2);
   8.108 +by (blast_tac (claset() addSEs spies_partsEs) 2);
   8.109  (*Fake*)
   8.110  by (spy_analz_tac 1);
   8.111  qed "Spy_not_see_NB";
   8.112 @@ -255,12 +255,12 @@
   8.113  by (parts_induct_tac 1);
   8.114  by (ALLGOALS Clarify_tac);
   8.115  (*NS3: because NB determines A*)
   8.116 -by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj, 
   8.117 +by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj, 
   8.118  			      Spy_not_see_NB, unique_NB]) 3);
   8.119  (*NS1: by freshness*)
   8.120 -by (blast_tac (!claset addSEs spies_partsEs) 2);
   8.121 +by (blast_tac (claset() addSEs spies_partsEs) 2);
   8.122  (*Fake*)
   8.123 -by (blast_tac (!claset addSDs [impOfSubs Fake_parts_insert]
   8.124 +by (blast_tac (claset() addSDs [impOfSubs Fake_parts_insert]
   8.125                         addDs  [Spy_not_see_NB, 
   8.126  			       impOfSubs analz_subset_parts]) 1);
   8.127  qed "B_trusts_NS3";
   8.128 @@ -288,12 +288,12 @@
   8.129  by (ALLGOALS Asm_simp_tac);
   8.130  by (ALLGOALS Clarify_tac);
   8.131  (*NS3: because NB determines A*)
   8.132 -by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj, 
   8.133 +by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj, 
   8.134  			      Spy_not_see_NB, unique_NB]) 3);
   8.135  (*NS1*)
   8.136 -by (blast_tac (!claset addSEs spies_partsEs) 2);
   8.137 +by (blast_tac (claset() addSEs spies_partsEs) 2);
   8.138  (*Fake*)
   8.139 -by (blast_tac (!claset addSDs [impOfSubs Fake_parts_insert]
   8.140 +by (blast_tac (claset() addSDs [impOfSubs Fake_parts_insert]
   8.141                         addDs  [Spy_not_see_NB, 
   8.142  			       impOfSubs analz_subset_parts]) 1);
   8.143  qed "B_trusts_protocol";
     9.1 --- a/src/HOL/Auth/NS_Public_Bad.ML	Mon Nov 03 12:22:43 1997 +0100
     9.2 +++ b/src/HOL/Auth/NS_Public_Bad.ML	Mon Nov 03 12:24:13 1997 +0100
     9.3 @@ -63,13 +63,13 @@
     9.4  
     9.5  goal thy 
     9.6   "!!A. evs: ns_public ==> (Key (priK A) : analz (spies evs)) = (A : bad)";
     9.7 -by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
     9.8 +by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
     9.9  qed "Spy_analz_priK";
    9.10  Addsimps [Spy_analz_priK];
    9.11  
    9.12  goal thy  "!!A. [| Key (priK A) : parts (spies evs);       \
    9.13  \                  evs : ns_public |] ==> A:bad";
    9.14 -by (blast_tac (!claset addDs [Spy_see_priK]) 1);
    9.15 +by (blast_tac (claset() addDs [Spy_see_priK]) 1);
    9.16  qed "Spy_see_priK_D";
    9.17  
    9.18  bind_thm ("Spy_analz_priK_D", analz_subset_parts RS subsetD RS Spy_see_priK_D);
    9.19 @@ -88,9 +88,9 @@
    9.20  by (etac rev_mp 1);
    9.21  by (parts_induct_tac 1);
    9.22  (*NS3*)
    9.23 -by (blast_tac (!claset addSEs partsEs) 3);
    9.24 +by (blast_tac (claset() addSEs partsEs) 3);
    9.25  (*NS2*)
    9.26 -by (blast_tac (!claset addSEs partsEs) 2);
    9.27 +by (blast_tac (claset() addSEs partsEs) 2);
    9.28  by (Fake_parts_insert_tac 1);
    9.29  qed "no_nonce_NS1_NS2";
    9.30  
    9.31 @@ -104,9 +104,9 @@
    9.32  by (etac rev_mp 1);
    9.33  by (parts_induct_tac 1);
    9.34  by (ALLGOALS
    9.35 -    (asm_simp_tac (!simpset addsimps [all_conj_distrib, parts_insert_spies])));
    9.36 +    (asm_simp_tac (simpset() addsimps [all_conj_distrib, parts_insert_spies])));
    9.37  (*NS1*)
    9.38 -by (expand_case_tac "NA = ?y" 2 THEN blast_tac (!claset addSEs partsEs) 2);
    9.39 +by (expand_case_tac "NA = ?y" 2 THEN blast_tac (claset() addSEs partsEs) 2);
    9.40  (*Fake*)
    9.41  by (Clarify_tac 1);
    9.42  by (ex_strip_tac 1);
    9.43 @@ -126,7 +126,7 @@
    9.44  (*Tactic for proving secrecy theorems*)
    9.45  fun analz_induct_tac i = 
    9.46      etac ns_public.induct i   THEN
    9.47 -    ALLGOALS (asm_simp_tac (!simpset addsplits [expand_if]));
    9.48 +    ALLGOALS (asm_simp_tac (simpset() addsplits [expand_if]));
    9.49  
    9.50  
    9.51  (*Secrecy: Spy does not see the nonce sent in msg NS1 if A and B are secure*)
    9.52 @@ -137,14 +137,14 @@
    9.53  by (etac rev_mp 1);
    9.54  by (analz_induct_tac 1);
    9.55  (*NS3*)
    9.56 -by (blast_tac (!claset addDs  [Says_imp_spies RS parts.Inj]
    9.57 +by (blast_tac (claset() addDs  [Says_imp_spies RS parts.Inj]
    9.58                         addEs  [no_nonce_NS1_NS2 RSN (2, rev_notE)]) 4);
    9.59  (*NS2*)
    9.60 -by (blast_tac (!claset addSEs [MPair_parts]
    9.61 +by (blast_tac (claset() addSEs [MPair_parts]
    9.62  		       addDs  [Says_imp_spies RS parts.Inj,
    9.63  			       parts.Body, unique_NA]) 3);
    9.64  (*NS1*)
    9.65 -by (blast_tac (!claset addSEs spies_partsEs
    9.66 +by (blast_tac (claset() addSEs spies_partsEs
    9.67                         addIs  [impOfSubs analz_subset_parts]) 2);
    9.68  (*Fake*)
    9.69  by (spy_analz_tac 1);
    9.70 @@ -165,12 +165,12 @@
    9.71  by (ALLGOALS Asm_simp_tac);
    9.72  by (ALLGOALS Clarify_tac);
    9.73  (*NS2*)
    9.74 -by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj,
    9.75 +by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj,
    9.76  			      Spy_not_see_NA, unique_NA]) 3);
    9.77  (*NS1*)
    9.78 -by (blast_tac (!claset addSEs spies_partsEs) 2);
    9.79 +by (blast_tac (claset() addSEs spies_partsEs) 2);
    9.80  (*Fake*)
    9.81 -by (blast_tac (!claset addSDs [impOfSubs Fake_parts_insert]
    9.82 +by (blast_tac (claset() addSDs [impOfSubs Fake_parts_insert]
    9.83                         addDs  [Spy_not_see_NA, 
    9.84  			       impOfSubs analz_subset_parts]) 1);
    9.85  qed "A_trusts_NS2";
    9.86 @@ -201,9 +201,9 @@
    9.87  by (etac rev_mp 1);
    9.88  by (parts_induct_tac 1);
    9.89  by (ALLGOALS
    9.90 -    (asm_simp_tac (!simpset addsimps [all_conj_distrib, parts_insert_spies])));
    9.91 +    (asm_simp_tac (simpset() addsimps [all_conj_distrib, parts_insert_spies])));
    9.92  (*NS2*)
    9.93 -by (expand_case_tac "NB = ?y" 2 THEN blast_tac (!claset addSEs partsEs) 2);
    9.94 +by (expand_case_tac "NB = ?y" 2 THEN blast_tac (claset() addSEs partsEs) 2);
    9.95  (*Fake*)
    9.96  by (Clarify_tac 1);
    9.97  by (ex_strip_tac 1);
    9.98 @@ -229,17 +229,17 @@
    9.99  by (etac rev_mp 1);
   9.100  by (etac rev_mp 1);
   9.101  by (analz_induct_tac 1);
   9.102 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
   9.103 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
   9.104  by (ALLGOALS Clarify_tac);
   9.105  (*NS3: because NB determines A*)
   9.106 -by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj, unique_NB]) 4);
   9.107 +by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj, unique_NB]) 4);
   9.108  (*NS2: by freshness and unicity of NB*)
   9.109 -by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj]
   9.110 +by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj]
   9.111                         addEs [no_nonce_NS1_NS2 RSN (2, rev_notE)]
   9.112                         addEs partsEs
   9.113  		       addIs [impOfSubs analz_subset_parts]) 3);
   9.114  (*NS1: by freshness*)
   9.115 -by (blast_tac (!claset addSEs spies_partsEs) 2);
   9.116 +by (blast_tac (claset() addSEs spies_partsEs) 2);
   9.117  (*Fake*)
   9.118  by (spy_analz_tac 1);
   9.119  qed "Spy_not_see_NB";
   9.120 @@ -257,15 +257,15 @@
   9.121  (*prepare induction over Crypt (pubK B) NB : parts H*)
   9.122  by (etac (Says_imp_spies RS parts.Inj RS rev_mp) 1);
   9.123  by (parts_induct_tac 1);
   9.124 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [ex_disj_distrib])));
   9.125 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [ex_disj_distrib])));
   9.126  by (ALLGOALS Clarify_tac);
   9.127  (*NS3: because NB determines A*)
   9.128 -by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj, 
   9.129 +by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj, 
   9.130  			      Spy_not_see_NB, unique_NB]) 3);
   9.131  (*NS1: by freshness*)
   9.132 -by (blast_tac (!claset addSEs spies_partsEs) 2);
   9.133 +by (blast_tac (claset() addSEs spies_partsEs) 2);
   9.134  (*Fake*)
   9.135 -by (blast_tac (!claset addSDs [impOfSubs Fake_parts_insert]
   9.136 +by (blast_tac (claset() addSDs [impOfSubs Fake_parts_insert]
   9.137                         addDs  [Spy_not_see_NB, 
   9.138  			       impOfSubs analz_subset_parts]) 1);
   9.139  qed "B_trusts_NS3";
   9.140 @@ -279,12 +279,12 @@
   9.141  by (analz_induct_tac 1);
   9.142  by (ALLGOALS Clarify_tac);
   9.143  (*NS2: by freshness and unicity of NB*)
   9.144 -by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj]
   9.145 +by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj]
   9.146                         addEs [no_nonce_NS1_NS2 RSN (2, rev_notE)]
   9.147                         addEs partsEs
   9.148  		       addIs [impOfSubs analz_subset_parts]) 3);
   9.149  (*NS1: by freshness*)
   9.150 -by (blast_tac (!claset addSEs spies_partsEs) 2);
   9.151 +by (blast_tac (claset() addSEs spies_partsEs) 2);
   9.152  (*Fake*)
   9.153  by (spy_analz_tac 1);
   9.154  (*NS3: unicity of NB identifies A and NA, but not B*)
    10.1 --- a/src/HOL/Auth/NS_Shared.ML	Mon Nov 03 12:22:43 1997 +0100
    10.2 +++ b/src/HOL/Auth/NS_Shared.ML	Mon Nov 03 12:24:13 1997 +0100
    10.3 @@ -49,13 +49,13 @@
    10.4  (*For reasoning about the encrypted portion of message NS3*)
    10.5  goal thy "!!evs. Says S A (Crypt KA {|N, B, K, X|}) : set evs \
    10.6  \                ==> X : parts (spies evs)";
    10.7 -by (blast_tac (!claset addSEs spies_partsEs) 1);
    10.8 +by (blast_tac (claset() addSEs spies_partsEs) 1);
    10.9  qed "NS3_msg_in_parts_spies";
   10.10                                
   10.11  goal thy
   10.12      "!!evs. Says Server A (Crypt (shrK A) {|NA, B, K, X|}) : set evs \
   10.13  \           ==> K : parts (spies evs)";
   10.14 -by (blast_tac (!claset addSEs spies_partsEs) 1);
   10.15 +by (blast_tac (claset() addSEs spies_partsEs) 1);
   10.16  qed "Oops_parts_spies";
   10.17  
   10.18  (*For proving the easier theorems about X ~: parts (spies evs).*)
   10.19 @@ -80,13 +80,13 @@
   10.20  
   10.21  goal thy 
   10.22   "!!evs. evs : ns_shared ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
   10.23 -by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
   10.24 +by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
   10.25  qed "Spy_analz_shrK";
   10.26  Addsimps [Spy_analz_shrK];
   10.27  
   10.28  goal thy  "!!A. [| Key (shrK A) : parts (spies evs);       \
   10.29  \                  evs : ns_shared |] ==> A:bad";
   10.30 -by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
   10.31 +by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
   10.32  qed "Spy_see_shrK_D";
   10.33  
   10.34  bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
   10.35 @@ -99,12 +99,12 @@
   10.36  by (parts_induct_tac 1);
   10.37  (*Fake*)
   10.38  by (best_tac
   10.39 -      (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   10.40 +      (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   10.41                 addIs  [impOfSubs analz_subset_parts]
   10.42                 addDs  [impOfSubs (analz_subset_parts RS keysFor_mono)]
   10.43 -               addss  (!simpset)) 1);
   10.44 +               addss  (simpset())) 1);
   10.45  (*NS2, NS4, NS5*)
   10.46 -by (ALLGOALS (blast_tac (!claset addSEs spies_partsEs)));
   10.47 +by (ALLGOALS (blast_tac (claset() addSEs spies_partsEs)));
   10.48  qed_spec_mp "new_keys_not_used";
   10.49  
   10.50  bind_thm ("new_keys_not_analzd",
   10.51 @@ -151,10 +151,10 @@
   10.52  \        ==> (K ~: range shrK & X = (Crypt (shrK B) {|Key K, Agent A|}))   \
   10.53  \            | X : analz (spies evs)";
   10.54  by (case_tac "A : bad" 1);
   10.55 -by (fast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]
   10.56 -                      addss (!simpset)) 1);
   10.57 +by (fast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]
   10.58 +                      addss (simpset())) 1);
   10.59  by (forward_tac [Says_imp_spies RS parts.Inj] 1);
   10.60 -by (blast_tac (!claset addSDs [A_trusts_NS2, Says_Server_message_form]) 1);
   10.61 +by (blast_tac (claset() addSDs [A_trusts_NS2, Says_Server_message_form]) 1);
   10.62  qed "Says_S_message_form";
   10.63  
   10.64  
   10.65 @@ -185,7 +185,7 @@
   10.66  \           Key K : parts {X} --> Key K : parts (spies evs)";
   10.67  by (parts_induct_tac 1);
   10.68  (*Deals with Faked messages*)
   10.69 -by (blast_tac (!claset addSEs partsEs
   10.70 +by (blast_tac (claset() addSEs partsEs
   10.71                         addDs [impOfSubs parts_insert_subset_Un]) 1);
   10.72  (*Base, NS4 and NS5*)
   10.73  by (Auto_tac());
   10.74 @@ -229,7 +229,7 @@
   10.75  \       Says Server A (Crypt (shrK A) {|NA, Agent B, Key K, X|}) : set evs \
   10.76  \       -->         A=A' & NA=NA' & B=B' & X=X'";
   10.77  by (etac ns_shared.induct 1);
   10.78 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
   10.79 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
   10.80  by Safe_tac;
   10.81  (*NS3*)
   10.82  by (ex_strip_tac 2);
   10.83 @@ -237,7 +237,7 @@
   10.84  (*NS2: it can't be a new key*)
   10.85  by (expand_case_tac "K = ?y" 1);
   10.86  by (REPEAT (ares_tac [refl,exI,impI,conjI] 2));
   10.87 -by (blast_tac (!claset delrules [conjI]    (*prevent split-up into 4 subgoals*)
   10.88 +by (blast_tac (claset() delrules [conjI]    (*prevent split-up into 4 subgoals*)
   10.89                        addSEs spies_partsEs) 1);
   10.90  val lemma = result();
   10.91  
   10.92 @@ -266,24 +266,24 @@
   10.93  by analz_spies_tac;
   10.94  by (ALLGOALS 
   10.95      (asm_simp_tac 
   10.96 -     (!simpset addsimps ([analz_insert_eq, analz_insert_freshK] @ 
   10.97 +     (simpset() addsimps ([analz_insert_eq, analz_insert_freshK] @ 
   10.98  			 pushes @ expand_ifs))));
   10.99  (*Oops*)
  10.100 -by (blast_tac (!claset addDs [unique_session_keys]) 5);
  10.101 +by (blast_tac (claset() addDs [unique_session_keys]) 5);
  10.102  (*NS3, replay sub-case*) 
  10.103  by (Blast_tac 4);
  10.104  (*NS2*)
  10.105 -by (blast_tac (!claset addSEs spies_partsEs
  10.106 +by (blast_tac (claset() addSEs spies_partsEs
  10.107                         addIs [parts_insertI, impOfSubs analz_subset_parts]) 2);
  10.108  (*Fake*) 
  10.109  by (spy_analz_tac 1);
  10.110  (*NS3, Server sub-case*) (**LEVEL 6 **)
  10.111 -by (clarify_tac (!claset delrules [impCE]) 1);
  10.112 +by (clarify_tac (claset() delrules [impCE]) 1);
  10.113  by (forward_tac [Says_imp_spies RS parts.Inj RS A_trusts_NS2] 1);
  10.114  by (assume_tac 2);
  10.115 -by (blast_tac (!claset addDs [Says_imp_spies RS analz.Inj RS
  10.116 +by (blast_tac (claset() addDs [Says_imp_spies RS analz.Inj RS
  10.117  			      Crypt_Spy_analz_bad]) 1);
  10.118 -by (blast_tac (!claset addDs [unique_session_keys]) 1);
  10.119 +by (blast_tac (claset() addDs [unique_session_keys]) 1);
  10.120  val lemma = result() RS mp RS mp RSN(2,rev_notE);
  10.121  
  10.122  
  10.123 @@ -295,7 +295,7 @@
  10.124  \           A ~: bad;  B ~: bad;  evs : ns_shared                \
  10.125  \        |] ==> Key K ~: analz (spies evs)";
  10.126  by (forward_tac [Says_Server_message_form] 1 THEN assume_tac 1);
  10.127 -by (blast_tac (!claset addSDs [lemma]) 1);
  10.128 +by (blast_tac (claset() addSDs [lemma]) 1);
  10.129  qed "Spy_not_see_encrypted_key";
  10.130  
  10.131  
  10.132 @@ -334,9 +334,9 @@
  10.133  by (TRYALL (rtac impI));
  10.134  by (REPEAT_FIRST
  10.135      (dtac (spies_subset_spies_Says RS analz_mono RS contra_subsetD)));
  10.136 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
  10.137 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
  10.138  (**LEVEL 7**)
  10.139 -by (blast_tac (!claset addSDs [Crypt_Fake_parts_insert]
  10.140 +by (blast_tac (claset() addSDs [Crypt_Fake_parts_insert]
  10.141                         addDs [impOfSubs analz_subset_parts]) 1);
  10.142  by (Blast_tac 2);
  10.143  by (REPEAT_FIRST (rtac impI ORELSE' etac conjE ORELSE' hyp_subst_tac));
  10.144 @@ -348,9 +348,9 @@
  10.145  by (rtac disjI1 1);
  10.146  by (thin_tac "?PP-->?QQ" 1);
  10.147  by (case_tac "Ba : bad" 1);
  10.148 -by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj RS B_trusts_NS3, 
  10.149 +by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj RS B_trusts_NS3, 
  10.150  			      unique_session_keys]) 2);
  10.151 -by (blast_tac (!claset addDs [Says_imp_spies RS analz.Inj RS
  10.152 +by (blast_tac (claset() addDs [Says_imp_spies RS analz.Inj RS
  10.153  			      Crypt_Spy_analz_bad]) 1);
  10.154  val lemma = result();
  10.155  
  10.156 @@ -361,6 +361,6 @@
  10.157  \           ALL NB. Says A Spy {|NA, NB, Key K|} ~: set evs;          \
  10.158  \           A ~: bad;  B ~: bad;  evs : ns_shared |]           \
  10.159  \        ==> Says B A (Crypt K (Nonce NB)) : set evs";
  10.160 -by (blast_tac (!claset addSIs [lemma RS mp RS mp RS mp]
  10.161 +by (blast_tac (claset() addSIs [lemma RS mp RS mp RS mp]
  10.162                         addSEs [Spy_not_see_encrypted_key RSN (2,rev_notE)]) 1);
  10.163  qed "A_trusts_NS4";
    11.1 --- a/src/HOL/Auth/OtwayRees.ML	Mon Nov 03 12:22:43 1997 +0100
    11.2 +++ b/src/HOL/Auth/OtwayRees.ML	Mon Nov 03 12:24:13 1997 +0100
    11.3 @@ -45,17 +45,17 @@
    11.4  
    11.5  goal thy "!!evs. Says A' B {|N, Agent A, Agent B, X|} : set evs \
    11.6  \                ==> X : analz (spies evs)";
    11.7 -by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
    11.8 +by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
    11.9  qed "OR2_analz_spies";
   11.10  
   11.11  goal thy "!!evs. Says S' B {|N, X, Crypt (shrK B) X'|} : set evs \
   11.12  \                ==> X : analz (spies evs)";
   11.13 -by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
   11.14 +by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
   11.15  qed "OR4_analz_spies";
   11.16  
   11.17  goal thy "!!evs. Says Server B {|NA, X, Crypt K' {|NB,K|}|} : set evs \
   11.18  \                 ==> K : parts (spies evs)";
   11.19 -by (blast_tac (!claset addSEs spies_partsEs) 1);
   11.20 +by (blast_tac (claset() addSEs spies_partsEs) 1);
   11.21  qed "Oops_parts_spies";
   11.22  
   11.23  (*OR2_analz... and OR4_analz... let us treat those cases using the same 
   11.24 @@ -92,12 +92,12 @@
   11.25  
   11.26  goal thy 
   11.27   "!!evs. evs : otway ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
   11.28 -by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
   11.29 +by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
   11.30  qed "Spy_analz_shrK";
   11.31  Addsimps [Spy_analz_shrK];
   11.32  
   11.33  goal thy  "!!A. [| Key (shrK A) : parts (spies evs); evs : otway |] ==> A:bad";
   11.34 -by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
   11.35 +by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
   11.36  qed "Spy_see_shrK_D";
   11.37  
   11.38  bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
   11.39 @@ -110,10 +110,10 @@
   11.40  by (parts_induct_tac 1);
   11.41  (*Fake*)
   11.42  by (best_tac
   11.43 -      (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   11.44 +      (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   11.45                 addIs  [impOfSubs analz_subset_parts]
   11.46                 addDs  [impOfSubs (analz_subset_parts RS keysFor_mono)]
   11.47 -               addss  (!simpset)) 1);
   11.48 +               addss  (simpset())) 1);
   11.49  by (ALLGOALS Blast_tac);
   11.50  qed_spec_mp "new_keys_not_used";
   11.51  
   11.52 @@ -195,7 +195,7 @@
   11.53  \     Says Server B {|NA, X, Crypt (shrK B) {|NB, K|}|} : set evs -->     \
   11.54  \     B=B' & NA=NA' & NB=NB' & X=X'";
   11.55  by (etac otway.induct 1);
   11.56 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
   11.57 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
   11.58  by (ALLGOALS Clarify_tac);
   11.59  (*Remaining cases: OR3 and OR4*)
   11.60  by (ex_strip_tac 2);
   11.61 @@ -203,7 +203,7 @@
   11.62  by (expand_case_tac "K = ?y" 1);
   11.63  by (REPEAT (ares_tac [refl,exI,impI,conjI] 2));
   11.64  (*...we assume X is a recent message, and handle this case by contradiction*)
   11.65 -by (blast_tac (!claset addSEs spies_partsEs
   11.66 +by (blast_tac (claset() addSEs spies_partsEs
   11.67                         delrules [conjI] (*no split-up into 4 subgoals*)) 1);
   11.68  val lemma = result();
   11.69  
   11.70 @@ -239,10 +239,10 @@
   11.71  \        --> B = B'";
   11.72  by (parts_induct_tac 1);
   11.73  by (Fake_parts_insert_tac 1);
   11.74 -by (simp_tac (!simpset addsimps [all_conj_distrib]) 1); 
   11.75 +by (simp_tac (simpset() addsimps [all_conj_distrib]) 1); 
   11.76  (*OR1: creation of new Nonce.  Move assertion into global context*)
   11.77  by (expand_case_tac "NA = ?y" 1);
   11.78 -by (blast_tac (!claset addSEs spies_partsEs) 1);
   11.79 +by (blast_tac (claset() addSEs spies_partsEs) 1);
   11.80  val lemma = result();
   11.81  
   11.82  goal thy 
   11.83 @@ -264,7 +264,7 @@
   11.84  \             ~: parts (spies evs)";
   11.85  by (parts_induct_tac 1);
   11.86  by (Fake_parts_insert_tac 1);
   11.87 -by (REPEAT (blast_tac (!claset addSEs spies_partsEs
   11.88 +by (REPEAT (blast_tac (claset() addSEs spies_partsEs
   11.89                                 addSDs  [impOfSubs parts_insert_subset_Un]) 1));
   11.90  qed_spec_mp"no_nonce_OR1_OR2";
   11.91  
   11.92 @@ -285,20 +285,20 @@
   11.93  by (parts_induct_tac 1);
   11.94  by (Fake_parts_insert_tac 1);
   11.95  (*OR1: it cannot be a new Nonce, contradiction.*)
   11.96 -by (blast_tac (!claset addSIs [parts_insertI] addSEs spies_partsEs) 1);
   11.97 +by (blast_tac (claset() addSIs [parts_insertI] addSEs spies_partsEs) 1);
   11.98  (*OR3 and OR4*)
   11.99 -by (asm_simp_tac (!simpset addsimps [ex_disj_distrib]) 1);
  11.100 +by (asm_simp_tac (simpset() addsimps [ex_disj_distrib]) 1);
  11.101  by (rtac conjI 1);
  11.102  by (ALLGOALS Clarify_tac);
  11.103  (*OR4*)
  11.104 -by (blast_tac (!claset addSIs [Crypt_imp_OR1]
  11.105 +by (blast_tac (claset() addSIs [Crypt_imp_OR1]
  11.106                         addEs  spies_partsEs) 3);
  11.107  (*OR3, two cases*)  (** LEVEL 5 **)
  11.108 -by (blast_tac (!claset addSEs [MPair_parts]
  11.109 +by (blast_tac (claset() addSEs [MPair_parts]
  11.110                         addSDs [Says_imp_spies RS parts.Inj]
  11.111                         addEs  [no_nonce_OR1_OR2 RSN (2, rev_notE)]
  11.112                         delrules [conjI] (*stop split-up into 4 subgoals*)) 2);
  11.113 -by (blast_tac (!claset addSDs [Says_imp_spies RS parts.Inj]
  11.114 +by (blast_tac (claset() addSDs [Says_imp_spies RS parts.Inj]
  11.115                         addSEs [MPair_parts]
  11.116                         addIs  [unique_NA]) 1);
  11.117  qed_spec_mp "NA_Crypt_imp_Server_msg";
  11.118 @@ -318,7 +318,7 @@
  11.119  \                       Crypt (shrK A) {|NA, Key K|},              \
  11.120  \                       Crypt (shrK B) {|NB, Key K|}|}             \
  11.121  \                       : set evs";
  11.122 -by (blast_tac (!claset addSIs [NA_Crypt_imp_Server_msg]
  11.123 +by (blast_tac (claset() addSIs [NA_Crypt_imp_Server_msg]
  11.124                         addEs  spies_partsEs) 1);
  11.125  qed "A_trusts_OR4";
  11.126  
  11.127 @@ -337,15 +337,15 @@
  11.128  by (etac otway.induct 1);
  11.129  by analz_spies_tac;
  11.130  by (ALLGOALS
  11.131 -    (asm_simp_tac (!simpset addcongs [conj_cong] 
  11.132 +    (asm_simp_tac (simpset() addcongs [conj_cong] 
  11.133                              addsimps [analz_insert_eq, analz_insert_freshK]
  11.134                              addsimps (pushes@expand_ifs))));
  11.135  (*Oops*)
  11.136 -by (blast_tac (!claset addSDs [unique_session_keys]) 4);
  11.137 +by (blast_tac (claset() addSDs [unique_session_keys]) 4);
  11.138  (*OR4*) 
  11.139  by (Blast_tac 3);
  11.140  (*OR3*)
  11.141 -by (blast_tac (!claset addSEs spies_partsEs
  11.142 +by (blast_tac (claset() addSEs spies_partsEs
  11.143                         addIs [impOfSubs analz_subset_parts]) 2);
  11.144  (*Fake*) 
  11.145  by (spy_analz_tac 1);
  11.146 @@ -359,7 +359,7 @@
  11.147  \           A ~: bad;  B ~: bad;  evs : otway |]                  \
  11.148  \        ==> Key K ~: analz (spies evs)";
  11.149  by (forward_tac [Says_Server_message_form] 1 THEN assume_tac 1);
  11.150 -by (blast_tac (!claset addSEs [lemma]) 1);
  11.151 +by (blast_tac (claset() addSEs [lemma]) 1);
  11.152  qed "Spy_not_see_encrypted_key";
  11.153  
  11.154  
  11.155 @@ -390,10 +390,10 @@
  11.156  \      --> NA = NA' & A = A'";
  11.157  by (parts_induct_tac 1);
  11.158  by (Fake_parts_insert_tac 1);
  11.159 -by (simp_tac (!simpset addsimps [all_conj_distrib]) 1); 
  11.160 +by (simp_tac (simpset() addsimps [all_conj_distrib]) 1); 
  11.161  (*OR2: creation of new Nonce.  Move assertion into global context*)
  11.162  by (expand_case_tac "NB = ?y" 1);
  11.163 -by (blast_tac (!claset addSEs spies_partsEs) 1);
  11.164 +by (blast_tac (claset() addSEs spies_partsEs) 1);
  11.165  val lemma = result();
  11.166  
  11.167  goal thy 
  11.168 @@ -421,16 +421,16 @@
  11.169  by (parts_induct_tac 1);
  11.170  by (Fake_parts_insert_tac 1);
  11.171  (*OR1: it cannot be a new Nonce, contradiction.*)
  11.172 -by (blast_tac (!claset addSIs [parts_insertI] addSEs spies_partsEs) 1);
  11.173 +by (blast_tac (claset() addSIs [parts_insertI] addSEs spies_partsEs) 1);
  11.174  (*OR4*)
  11.175 -by (blast_tac (!claset addSEs [MPair_parts, Crypt_imp_OR2]) 2);
  11.176 +by (blast_tac (claset() addSEs [MPair_parts, Crypt_imp_OR2]) 2);
  11.177  (*OR3*)
  11.178 -by (safe_tac (!claset delrules [disjCI, impCE]));
  11.179 -by (blast_tac (!claset delrules [conjI] (*stop split-up*)) 3); 
  11.180 -by (blast_tac (!claset addSDs [Says_imp_spies RS parts.Inj]
  11.181 +by (safe_tac (claset() delrules [disjCI, impCE]));
  11.182 +by (blast_tac (claset() delrules [conjI] (*stop split-up*)) 3); 
  11.183 +by (blast_tac (claset() addSDs [Says_imp_spies RS parts.Inj]
  11.184                         addSEs [MPair_parts]
  11.185                         addDs  [unique_NB]) 2);
  11.186 -by (blast_tac (!claset addSEs [MPair_parts, no_nonce_OR1_OR2 RSN (2, rev_notE)]
  11.187 +by (blast_tac (claset() addSEs [MPair_parts, no_nonce_OR1_OR2 RSN (2, rev_notE)]
  11.188                         addSDs [Says_imp_spies RS parts.Inj]
  11.189                         delrules [conjI, impCE] (*stop split-up*)) 1);
  11.190  qed_spec_mp "NB_Crypt_imp_Server_msg";
  11.191 @@ -449,7 +449,7 @@
  11.192  \                   Crypt (shrK A) {|NA, Key K|},                  \
  11.193  \                   Crypt (shrK B) {|NB, Key K|}|}                 \
  11.194  \                   : set evs";
  11.195 -by (blast_tac (!claset addSIs [NB_Crypt_imp_Server_msg]
  11.196 +by (blast_tac (claset() addSIs [NB_Crypt_imp_Server_msg]
  11.197                         addSEs spies_partsEs) 1);
  11.198  qed "B_trusts_OR3";
  11.199  
  11.200 @@ -467,7 +467,7 @@
  11.201  \            : set evs)";
  11.202  by (etac otway.induct 1);
  11.203  by (ALLGOALS Asm_simp_tac);
  11.204 -by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj]
  11.205 +by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj]
  11.206  		       addSEs [MPair_parts, Crypt_imp_OR2]) 3);
  11.207  by (ALLGOALS Blast_tac);
  11.208  bind_thm ("OR3_imp_OR2", result() RSN (2,rev_mp) RS exE);
  11.209 @@ -484,6 +484,6 @@
  11.210  \        ==> EX NB X. Says B Server {|NA, Agent A, Agent B, X,              \
  11.211  \                              Crypt (shrK B)  {|NA, NB, Agent A, Agent B|} |}\
  11.212  \            : set evs";
  11.213 -by (blast_tac (!claset addSDs  [A_trusts_OR4]
  11.214 +by (blast_tac (claset() addSDs  [A_trusts_OR4]
  11.215                         addSEs [OR3_imp_OR2]) 1);
  11.216  qed "A_auths_B";
    12.1 --- a/src/HOL/Auth/OtwayRees_AN.ML	Mon Nov 03 12:22:43 1997 +0100
    12.2 +++ b/src/HOL/Auth/OtwayRees_AN.ML	Mon Nov 03 12:24:13 1997 +0100
    12.3 @@ -45,12 +45,12 @@
    12.4  
    12.5  goal thy "!!evs. Says S' B {|X, Crypt(shrK B) X'|} : set evs ==> \
    12.6  \                X : analz (spies evs)";
    12.7 -by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
    12.8 +by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
    12.9  qed "OR4_analz_spies";
   12.10  
   12.11  goal thy "!!evs. Says Server B {|X, Crypt K' {|NB, a, Agent B, K|}|} \
   12.12  \                  : set evs ==> K : parts (spies evs)";
   12.13 -by (blast_tac (!claset addSEs spies_partsEs) 1);
   12.14 +by (blast_tac (claset() addSEs spies_partsEs) 1);
   12.15  qed "Oops_parts_spies";
   12.16  
   12.17  (*OR4_analz_spies lets us treat those cases using the same 
   12.18 @@ -82,12 +82,12 @@
   12.19  
   12.20  goal thy 
   12.21   "!!evs. evs : otway ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
   12.22 -by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
   12.23 +by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
   12.24  qed "Spy_analz_shrK";
   12.25  Addsimps [Spy_analz_shrK];
   12.26  
   12.27  goal thy  "!!A. [| Key (shrK A) : parts (spies evs); evs : otway |] ==> A:bad";
   12.28 -by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
   12.29 +by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
   12.30  qed "Spy_see_shrK_D";
   12.31  
   12.32  bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
   12.33 @@ -100,10 +100,10 @@
   12.34  by (parts_induct_tac 1);
   12.35  (*Fake*)
   12.36  by (best_tac
   12.37 -      (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   12.38 +      (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   12.39                 addIs  [impOfSubs analz_subset_parts]
   12.40                 addDs  [impOfSubs (analz_subset_parts RS keysFor_mono)]
   12.41 -               addss  (!simpset)) 1);
   12.42 +               addss  (simpset())) 1);
   12.43  (*OR3*)
   12.44  by (Blast_tac 1);
   12.45  qed_spec_mp "new_keys_not_used";
   12.46 @@ -189,7 +189,7 @@
   12.47  \           Crypt (shrK B) {|NB, Agent A, Agent B, K|}|} : set evs  \
   12.48  \       --> A=A' & B=B' & NA=NA' & NB=NB'";
   12.49  by (etac otway.induct 1);
   12.50 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
   12.51 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
   12.52  by (ALLGOALS Clarify_tac);
   12.53  (*Remaining cases: OR3 and OR4*)
   12.54  by (ex_strip_tac 2);
   12.55 @@ -197,7 +197,7 @@
   12.56  by (expand_case_tac "K = ?y" 1);
   12.57  by (REPEAT (ares_tac [refl,exI,impI,conjI] 2));
   12.58  (*...we assume X is a recent message and handle this case by contradiction*)
   12.59 -by (blast_tac (!claset addSEs spies_partsEs
   12.60 +by (blast_tac (claset() addSEs spies_partsEs
   12.61                         delrules[conjI] (*prevent splitup into 4 subgoals*)) 1);
   12.62  val lemma = result();
   12.63  
   12.64 @@ -230,7 +230,7 @@
   12.65  \                  : set evs)";
   12.66  by (parts_induct_tac 1);
   12.67  by (Fake_parts_insert_tac 1);
   12.68 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [ex_disj_distrib])));
   12.69 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [ex_disj_distrib])));
   12.70  (*OR3*)
   12.71  by (Blast_tac 1);
   12.72  qed_spec_mp "NA_Crypt_imp_Server_msg";
   12.73 @@ -246,7 +246,7 @@
   12.74  \                    {|Crypt (shrK A) {|NA, Agent A, Agent B, Key K|},  \
   12.75  \                      Crypt (shrK B) {|NB, Agent A, Agent B, Key K|}|} \
   12.76  \                   : set evs";
   12.77 -by (blast_tac (!claset addSIs [NA_Crypt_imp_Server_msg]
   12.78 +by (blast_tac (claset() addSIs [NA_Crypt_imp_Server_msg]
   12.79                        addEs  spies_partsEs) 1);
   12.80  qed "A_trusts_OR4";
   12.81  
   12.82 @@ -266,15 +266,15 @@
   12.83  by (etac otway.induct 1);
   12.84  by analz_spies_tac;
   12.85  by (ALLGOALS
   12.86 -    (asm_simp_tac (!simpset addcongs [conj_cong, if_weak_cong] 
   12.87 +    (asm_simp_tac (simpset() addcongs [conj_cong, if_weak_cong] 
   12.88                              addsimps [analz_insert_eq, analz_insert_freshK]
   12.89                              addsimps (pushes@expand_ifs))));
   12.90  (*Oops*)
   12.91 -by (blast_tac (!claset addSDs [unique_session_keys]) 4);
   12.92 +by (blast_tac (claset() addSDs [unique_session_keys]) 4);
   12.93  (*OR4*) 
   12.94  by (Blast_tac 3);
   12.95  (*OR3*)
   12.96 -by (blast_tac (!claset addSEs spies_partsEs
   12.97 +by (blast_tac (claset() addSEs spies_partsEs
   12.98                         addIs [impOfSubs analz_subset_parts]) 2);
   12.99  (*Fake*) 
  12.100  by (spy_analz_tac 1);
  12.101 @@ -289,7 +289,7 @@
  12.102  \           A ~: bad;  B ~: bad;  evs : otway |]                  \
  12.103  \        ==> Key K ~: analz (spies evs)";
  12.104  by (forward_tac [Says_Server_message_form] 1 THEN assume_tac 1);
  12.105 -by (blast_tac (!claset addSEs [lemma]) 1);
  12.106 +by (blast_tac (claset() addSEs [lemma]) 1);
  12.107  qed "Spy_not_see_encrypted_key";
  12.108  
  12.109  
  12.110 @@ -305,7 +305,7 @@
  12.111  \                     : set evs)";
  12.112  by (parts_induct_tac 1);
  12.113  by (Fake_parts_insert_tac 1);
  12.114 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [ex_disj_distrib])));
  12.115 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [ex_disj_distrib])));
  12.116  (*OR3*)
  12.117  by (Blast_tac 1);
  12.118  qed_spec_mp "NB_Crypt_imp_Server_msg";
  12.119 @@ -321,6 +321,6 @@
  12.120  \                     {|Crypt (shrK A) {|NA, Agent A, Agent B, Key K|},     \
  12.121  \                       Crypt (shrK B) {|NB, Agent A, Agent B, Key K|}|}    \
  12.122  \                     : set evs";
  12.123 -by (blast_tac (!claset addSIs [NB_Crypt_imp_Server_msg]
  12.124 +by (blast_tac (claset() addSIs [NB_Crypt_imp_Server_msg]
  12.125                         addEs  spies_partsEs) 1);
  12.126  qed "B_trusts_OR3";
    13.1 --- a/src/HOL/Auth/OtwayRees_Bad.ML	Mon Nov 03 12:22:43 1997 +0100
    13.2 +++ b/src/HOL/Auth/OtwayRees_Bad.ML	Mon Nov 03 12:24:13 1997 +0100
    13.3 @@ -48,17 +48,17 @@
    13.4  
    13.5  goal thy "!!evs. Says A' B {|N, Agent A, Agent B, X|} : set evs ==> \
    13.6  \                X : analz (spies evs)";
    13.7 -by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
    13.8 +by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
    13.9  qed "OR2_analz_spies";
   13.10  
   13.11  goal thy "!!evs. Says S' B {|N, X, Crypt (shrK B) X'|} : set evs ==> \
   13.12  \                X : analz (spies evs)";
   13.13 -by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
   13.14 +by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
   13.15  qed "OR4_analz_spies";
   13.16  
   13.17  goal thy "!!evs. Says Server B {|NA, X, Crypt K' {|NB,K|}|} : set evs \
   13.18  \                 ==> K : parts (spies evs)";
   13.19 -by (blast_tac (!claset addSEs spies_partsEs) 1);
   13.20 +by (blast_tac (claset() addSEs spies_partsEs) 1);
   13.21  qed "Oops_parts_spies";
   13.22  
   13.23  (*OR2_analz... and OR4_analz... let us treat those cases using the same 
   13.24 @@ -94,12 +94,12 @@
   13.25  
   13.26  goal thy 
   13.27   "!!evs. evs : otway ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
   13.28 -by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
   13.29 +by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
   13.30  qed "Spy_analz_shrK";
   13.31  Addsimps [Spy_analz_shrK];
   13.32  
   13.33  goal thy  "!!A. [| Key (shrK A) : parts (spies evs); evs : otway |] ==> A:bad";
   13.34 -by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
   13.35 +by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
   13.36  qed "Spy_see_shrK_D";
   13.37  
   13.38  bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
   13.39 @@ -112,10 +112,10 @@
   13.40  by (parts_induct_tac 1);
   13.41  (*Fake*)
   13.42  by (best_tac
   13.43 -      (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   13.44 +      (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   13.45                 addIs  [impOfSubs analz_subset_parts]
   13.46                 addDs  [impOfSubs (analz_subset_parts RS keysFor_mono)]
   13.47 -               addss  (!simpset)) 1);
   13.48 +               addss  (simpset())) 1);
   13.49  (*OR1-3*)
   13.50  by (ALLGOALS Blast_tac);
   13.51  qed_spec_mp "new_keys_not_used";
   13.52 @@ -198,7 +198,7 @@
   13.53  \     Says Server B {|NA, X, Crypt (shrK B) {|NB, K|}|} : set evs -->     \
   13.54  \     B=B' & NA=NA' & NB=NB' & X=X'";
   13.55  by (etac otway.induct 1);
   13.56 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
   13.57 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
   13.58  by (ALLGOALS Clarify_tac);
   13.59  (*Remaining cases: OR3 and OR4*)
   13.60  by (ex_strip_tac 2);
   13.61 @@ -206,7 +206,7 @@
   13.62  by (expand_case_tac "K = ?y" 1);
   13.63  by (REPEAT (ares_tac [refl,exI,impI,conjI] 2));
   13.64  (*...we assume X is a recent message, and handle this case by contradiction*)
   13.65 -by (blast_tac (!claset addSEs spies_partsEs
   13.66 +by (blast_tac (claset() addSEs spies_partsEs
   13.67                        delrules [conjI]    (*no split-up to 4 subgoals*)) 1);
   13.68  val lemma = result();
   13.69  
   13.70 @@ -229,15 +229,15 @@
   13.71  by (etac otway.induct 1);
   13.72  by analz_spies_tac;
   13.73  by (ALLGOALS
   13.74 -    (asm_simp_tac (!simpset addcongs [conj_cong] 
   13.75 +    (asm_simp_tac (simpset() addcongs [conj_cong] 
   13.76                              addsimps [analz_insert_eq, analz_insert_freshK]
   13.77                              addsimps (pushes@expand_ifs))));
   13.78  (*Oops*)
   13.79 -by (blast_tac (!claset addSDs [unique_session_keys]) 4);
   13.80 +by (blast_tac (claset() addSDs [unique_session_keys]) 4);
   13.81  (*OR4*) 
   13.82  by (Blast_tac 3);
   13.83  (*OR3*)
   13.84 -by (blast_tac (!claset addSEs spies_partsEs
   13.85 +by (blast_tac (claset() addSEs spies_partsEs
   13.86                         addIs [impOfSubs analz_subset_parts]) 2);
   13.87  (*Fake*) 
   13.88  by (spy_analz_tac 1);
   13.89 @@ -251,7 +251,7 @@
   13.90  \           A ~: bad;  B ~: bad;  evs : otway |]                \
   13.91  \        ==> Key K ~: analz (spies evs)";
   13.92  by (forward_tac [Says_Server_message_form] 1 THEN assume_tac 1);
   13.93 -by (blast_tac (!claset addSEs [lemma]) 1);
   13.94 +by (blast_tac (claset() addSEs [lemma]) 1);
   13.95  qed "Spy_not_see_encrypted_key";
   13.96  
   13.97  
   13.98 @@ -289,13 +289,13 @@
   13.99  by (parts_induct_tac 1);
  13.100  by (Fake_parts_insert_tac 1);
  13.101  (*OR1: it cannot be a new Nonce, contradiction.*)
  13.102 -by (blast_tac (!claset addSIs [parts_insertI]
  13.103 +by (blast_tac (claset() addSIs [parts_insertI]
  13.104                         addSEs spies_partsEs) 1);
  13.105  (*OR3 and OR4*)
  13.106 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [ex_disj_distrib])));
  13.107 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [ex_disj_distrib])));
  13.108  by (ALLGOALS Clarify_tac);
  13.109  (*OR4*)
  13.110 -by (blast_tac (!claset addSIs [Crypt_imp_OR1]
  13.111 +by (blast_tac (claset() addSIs [Crypt_imp_OR1]
  13.112                         addEs  spies_partsEs) 2);
  13.113  (*OR3*)  (** LEVEL 5 **)
  13.114  (*The hypotheses at this point suggest an attack in which nonce NB is used
    14.1 --- a/src/HOL/Auth/Public.ML	Mon Nov 03 12:22:43 1997 +0100
    14.2 +++ b/src/HOL/Auth/Public.ML	Mon Nov 03 12:24:13 1997 +0100
    14.3 @@ -39,7 +39,7 @@
    14.4  
    14.5  goalw thy [keysFor_def] "keysFor (parts (initState C)) = {}";
    14.6  by (induct_tac "C" 1);
    14.7 -by (auto_tac (!claset addIs [range_eqI], !simpset));
    14.8 +by (auto_tac (claset() addIs [range_eqI], simpset()));
    14.9  qed "keysFor_parts_initState";
   14.10  Addsimps [keysFor_parts_initState];
   14.11  
   14.12 @@ -57,7 +57,7 @@
   14.13  goal thy "Key (pubK A) : spies evs";
   14.14  by (induct_tac "evs" 1);
   14.15  by (ALLGOALS (asm_simp_tac
   14.16 -	      (!simpset addsimps [imageI, spies_Cons]
   14.17 +	      (simpset() addsimps [imageI, spies_Cons]
   14.18  	                addsplits [expand_event_case, expand_if])));
   14.19  qed_spec_mp "spies_pubK";
   14.20  
   14.21 @@ -65,7 +65,7 @@
   14.22  goal thy "!!A. A: bad ==> Key (priK A) : spies evs";
   14.23  by (induct_tac "evs" 1);
   14.24  by (ALLGOALS (asm_simp_tac
   14.25 -	      (!simpset addsimps [imageI, spies_Cons]
   14.26 +	      (simpset() addsimps [imageI, spies_Cons]
   14.27  	                addsplits [expand_event_case, expand_if])));
   14.28  qed "Spy_spies_bad";
   14.29  
   14.30 @@ -76,7 +76,7 @@
   14.31  (*For not_bad_tac*)
   14.32  goal thy "!!A. [| Crypt (pubK A) X : analz (spies evs);  A: bad |] \
   14.33  \              ==> X : analz (spies evs)";
   14.34 -by (blast_tac (!claset addSDs [analz.Decrypt]) 1);
   14.35 +by (blast_tac (claset() addSDs [analz.Decrypt]) 1);
   14.36  qed "Crypt_Spy_analz_bad";
   14.37  
   14.38  (*Prove that the agent is uncompromised by the confidentiality of 
   14.39 @@ -101,7 +101,7 @@
   14.40  AddIffs [Nonce_notin_initState];
   14.41  
   14.42  goal thy "Nonce N ~: used []";
   14.43 -by (simp_tac (!simpset addsimps [used_Nil]) 1);
   14.44 +by (simp_tac (simpset() addsimps [used_Nil]) 1);
   14.45  qed "Nonce_notin_used_empty";
   14.46  Addsimps [Nonce_notin_used_empty];
   14.47  
   14.48 @@ -113,11 +113,11 @@
   14.49  by (induct_tac "evs" 1);
   14.50  by (res_inst_tac [("x","0")] exI 1);
   14.51  by (ALLGOALS (asm_simp_tac
   14.52 -	      (!simpset addsimps [used_Cons]
   14.53 +	      (simpset() addsimps [used_Cons]
   14.54  			addsplits [expand_event_case, expand_if])));
   14.55  by Safe_tac;
   14.56  by (ALLGOALS (rtac (msg_Nonce_supply RS exE)));
   14.57 -by (ALLGOALS (blast_tac (!claset addSEs [add_leE])));
   14.58 +by (ALLGOALS (blast_tac (claset() addSEs [add_leE])));
   14.59  val lemma = result();
   14.60  
   14.61  goal thy "EX N. Nonce N ~: used evs";
   14.62 @@ -134,7 +134,7 @@
   14.63  (*Tactic for possibility theorems*)
   14.64  fun possibility_tac st = st |>
   14.65      REPEAT (*omit used_Says so that Nonces start from different traces!*)
   14.66 -    (ALLGOALS (simp_tac (!simpset delsimps [used_Says] setSolver safe_solver))
   14.67 +    (ALLGOALS (simp_tac (simpset() delsimps [used_Says] setSolver safe_solver))
   14.68       THEN
   14.69       REPEAT_FIRST (eq_assume_tac ORELSE' 
   14.70                     resolve_tac [refl, conjI, Nonce_supply]));
   14.71 @@ -153,7 +153,7 @@
   14.72  (*Reverse the normal simplification of "image" to build up (not break down)
   14.73    the set of keys.  Based on analz_image_freshK_ss, but simpler.*)
   14.74  val analz_image_keys_ss = 
   14.75 -     !simpset addcongs [if_weak_cong]
   14.76 +     simpset() addcongs [if_weak_cong]
   14.77  	      delsimps [image_insert, image_Un]
   14.78                delsimps [imp_disjL]    (*reduces blow-up*)
   14.79                addsimps [image_insert RS sym, image_Un RS sym,
    15.1 --- a/src/HOL/Auth/Recur.ML	Mon Nov 03 12:22:43 1997 +0100
    15.2 +++ b/src/HOL/Auth/Recur.ML	Mon Nov 03 12:24:13 1997 +0100
    15.3 @@ -99,8 +99,8 @@
    15.4  \        ==> Key K ~: used evs";
    15.5  by (etac rev_mp 1);
    15.6  by (etac respond.induct 1);
    15.7 -by (auto_tac(!claset addDs [Key_not_used, respond_imp_not_used],
    15.8 -             !simpset));
    15.9 +by (auto_tac(claset() addDs [Key_not_used, respond_imp_not_used],
   15.10 +             simpset()));
   15.11  qed_spec_mp "Key_in_parts_respond";
   15.12  
   15.13  (*Simple inductive reasoning about responses*)
   15.14 @@ -116,7 +116,7 @@
   15.15  
   15.16  goal thy "!!evs. Says C' B {|Crypt K X, X', RA|} : set evs \
   15.17  \                ==> RA : analz (spies evs)";
   15.18 -by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
   15.19 +by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
   15.20  qed "RA4_analz_spies";
   15.21  
   15.22  (*RA2_analz... and RA4_analz... let us treat those cases using the same 
   15.23 @@ -150,22 +150,22 @@
   15.24  by (parts_induct_tac 1);
   15.25  by (Fake_parts_insert_tac 1);
   15.26  by (ALLGOALS 
   15.27 -    (asm_simp_tac (!simpset addsimps [parts_insert2, parts_insert_spies])));
   15.28 +    (asm_simp_tac (simpset() addsimps [parts_insert2, parts_insert_spies])));
   15.29  (*RA3*)
   15.30 -by (blast_tac (!claset addDs [Key_in_parts_respond]) 2);
   15.31 +by (blast_tac (claset() addDs [Key_in_parts_respond]) 2);
   15.32  (*RA2*)
   15.33 -by (blast_tac (!claset addSEs partsEs  addDs [parts_cut]) 1);
   15.34 +by (blast_tac (claset() addSEs partsEs  addDs [parts_cut]) 1);
   15.35  qed "Spy_see_shrK";
   15.36  Addsimps [Spy_see_shrK];
   15.37  
   15.38  goal thy 
   15.39   "!!evs. evs : recur ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
   15.40 -by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
   15.41 +by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
   15.42  qed "Spy_analz_shrK";
   15.43  Addsimps [Spy_analz_shrK];
   15.44  
   15.45  goal thy  "!!A. [| Key (shrK A) : parts (spies evs); evs : recur |] ==> A:bad";
   15.46 -by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
   15.47 +by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
   15.48  qed "Spy_see_shrK_D";
   15.49  
   15.50  bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
   15.51 @@ -188,14 +188,14 @@
   15.52  \                Key K ~: used evs --> K ~: keysFor (parts (spies evs))";
   15.53  by (parts_induct_tac 1);
   15.54  (*RA3*)
   15.55 -by (best_tac (!claset addDs  [Key_in_keysFor_parts]
   15.56 -	      addss  (!simpset addsimps [parts_insert_spies])) 2);
   15.57 +by (best_tac (claset() addDs  [Key_in_keysFor_parts]
   15.58 +	      addss  (simpset() addsimps [parts_insert_spies])) 2);
   15.59  (*Fake*)
   15.60  by (best_tac
   15.61 -      (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   15.62 +      (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   15.63                 addIs  [impOfSubs analz_subset_parts]
   15.64                 addDs  [impOfSubs (analz_subset_parts RS keysFor_mono)]
   15.65 -               addss  (!simpset)) 1);
   15.66 +               addss  (simpset())) 1);
   15.67  qed_spec_mp "new_keys_not_used";
   15.68  
   15.69  
   15.70 @@ -283,7 +283,7 @@
   15.71  by (etac responses.induct 2);
   15.72  by (ALLGOALS Asm_simp_tac);
   15.73  (*Fake*)
   15.74 -by (simp_tac (!simpset addsimps [parts_insert_spies]) 1);
   15.75 +by (simp_tac (simpset() addsimps [parts_insert_spies]) 1);
   15.76  by (Fake_parts_insert_tac 1);
   15.77  qed "Hash_imp_body";
   15.78  
   15.79 @@ -302,12 +302,12 @@
   15.80  by (parts_induct_tac 1);
   15.81  by (Fake_parts_insert_tac 1);
   15.82  by (etac responses.induct 3);
   15.83 -by (ALLGOALS (simp_tac (!simpset addsimps [all_conj_distrib]))); 
   15.84 -by (clarify_tac (!claset addSEs partsEs) 1);
   15.85 +by (ALLGOALS (simp_tac (simpset() addsimps [all_conj_distrib]))); 
   15.86 +by (clarify_tac (claset() addSEs partsEs) 1);
   15.87  (*RA1,2: creation of new Nonce.  Move assertion into global context*)
   15.88  by (ALLGOALS (expand_case_tac "NA = ?y"));
   15.89  by (REPEAT_FIRST (ares_tac [exI]));
   15.90 -by (REPEAT (blast_tac (!claset addSDs [Hash_imp_body]
   15.91 +by (REPEAT (blast_tac (claset() addSDs [Hash_imp_body]
   15.92                                 addSEs spies_partsEs) 1));
   15.93  val lemma = result();
   15.94  
   15.95 @@ -349,8 +349,8 @@
   15.96      (asm_simp_tac 
   15.97       (analz_image_freshK_ss addsimps [resp_analz_image_freshK_lemma])));
   15.98  (*Simplification using two distinct treatments of "image"*)
   15.99 -by (simp_tac (!simpset addsimps [parts_insert2]) 1);
  15.100 -by (blast_tac (!claset delrules [allE]) 1);
  15.101 +by (simp_tac (simpset() addsimps [parts_insert2]) 1);
  15.102 +by (blast_tac (claset() delrules [allE]) 1);
  15.103  qed "resp_analz_insert_lemma";
  15.104  
  15.105  bind_thm ("resp_analz_insert",
  15.106 @@ -385,13 +385,13 @@
  15.107  \        Crypt (shrK A) {|Key K, Agent B, N|} : parts {RB} \
  15.108  \          -->   (A'=A & B'=B) | (A'=B & B'=A)";
  15.109  by (etac respond.induct 1);
  15.110 -by (ALLGOALS (asm_full_simp_tac (!simpset addsimps [all_conj_distrib]))); 
  15.111 +by (ALLGOALS (asm_full_simp_tac (simpset() addsimps [all_conj_distrib]))); 
  15.112  (*Base case*)
  15.113  by (Blast_tac 1);
  15.114  by Safe_tac;
  15.115  by (expand_case_tac "K = KBC" 1);
  15.116  by (dtac respond_Key_in_parts 1);
  15.117 -by (blast_tac (!claset addSIs [exI]
  15.118 +by (blast_tac (claset() addSIs [exI]
  15.119                         addSEs partsEs
  15.120                         addDs [Key_in_parts_respond]) 1);
  15.121  by (expand_case_tac "K = KAB" 1);
  15.122 @@ -428,18 +428,18 @@
  15.123          addsimps expand_ifs
  15.124  	addsimps 
  15.125            [shrK_in_analz_respond, resp_analz_image_freshK, parts_insert2])));
  15.126 -by (ALLGOALS (simp_tac (!simpset addsimps [ex_disj_distrib])));
  15.127 +by (ALLGOALS (simp_tac (simpset() addsimps [ex_disj_distrib])));
  15.128  (** LEVEL 5 **)
  15.129 -by (blast_tac (!claset addIs [impOfSubs analz_subset_parts]) 1);
  15.130 +by (blast_tac (claset() addIs [impOfSubs analz_subset_parts]) 1);
  15.131  by (REPEAT_FIRST (resolve_tac [allI, conjI, impI]));
  15.132  by (ALLGOALS Clarify_tac);
  15.133 -by (blast_tac (!claset addSDs  [resp_analz_insert]
  15.134 +by (blast_tac (claset() addSDs  [resp_analz_insert]
  15.135  		       addIs  [impOfSubs analz_subset_parts]) 2);
  15.136 -by (blast_tac (!claset addSDs [respond_certificate]) 1);
  15.137 +by (blast_tac (claset() addSDs [respond_certificate]) 1);
  15.138  by (Asm_full_simp_tac 1);
  15.139  (*by unicity, either B=Aa or B=A', a contradiction if B: bad*)
  15.140  by (blast_tac
  15.141 -    (!claset addSEs [MPair_parts]
  15.142 +    (claset() addSEs [MPair_parts]
  15.143  	     addDs [parts.Body,
  15.144  		    respond_certificate RSN (2, unique_session_keys)]) 1);
  15.145  qed_spec_mp "respond_Spy_not_see_session_key";
  15.146 @@ -454,7 +454,7 @@
  15.147  by analz_spies_tac;
  15.148  by (ALLGOALS
  15.149      (asm_simp_tac
  15.150 -     (!simpset addsimps (expand_ifs @
  15.151 +     (simpset() addsimps (expand_ifs @
  15.152  			 [analz_insert_eq, parts_insert_spies, 
  15.153  			  analz_insert_freshK]))));
  15.154  (*RA4*)
  15.155 @@ -466,13 +466,13 @@
  15.156  (*Base*)
  15.157  by (Blast_tac 1);
  15.158  (*RA3 remains*)
  15.159 -by (safe_tac (!claset delrules [impCE]));
  15.160 +by (safe_tac (claset() delrules [impCE]));
  15.161  (*RA3, case 2: K is an old key*)
  15.162 -by (blast_tac (!claset addSDs [resp_analz_insert]
  15.163 +by (blast_tac (claset() addSDs [resp_analz_insert]
  15.164                         addSEs partsEs
  15.165                         addDs  [Key_in_parts_respond]) 2);
  15.166  (*RA3, case 1: use lemma previously proved by induction*)
  15.167 -by (blast_tac (!claset addSEs [respond_Spy_not_see_session_key RSN
  15.168 +by (blast_tac (claset() addSEs [respond_Spy_not_see_session_key RSN
  15.169  			       (2,rev_notE)]) 1);
  15.170  qed "Spy_not_see_session_key";
  15.171  
  15.172 @@ -501,7 +501,7 @@
  15.173  by (parts_induct_tac 1);
  15.174  by (Fake_parts_insert_tac 1);
  15.175  (*RA3*)
  15.176 -by (blast_tac (!claset addSDs [Hash_in_parts_respond]) 1);
  15.177 +by (blast_tac (claset() addSDs [Hash_in_parts_respond]) 1);
  15.178  qed_spec_mp "Hash_auth_sender";
  15.179  
  15.180  (** These two results subsume (for all agents) the guarantees proved
  15.181 @@ -521,7 +521,7 @@
  15.182  (*RA4*)
  15.183  by (Blast_tac 4);
  15.184  (*RA3*)
  15.185 -by (full_simp_tac (!simpset addsimps [parts_insert_spies]) 3
  15.186 +by (full_simp_tac (simpset() addsimps [parts_insert_spies]) 3
  15.187      THEN Blast_tac 3);
  15.188  (*RA1*)
  15.189  by (Blast_tac 1);
    16.1 --- a/src/HOL/Auth/Shared.ML	Mon Nov 03 12:22:43 1997 +0100
    16.2 +++ b/src/HOL/Auth/Shared.ML	Mon Nov 03 12:24:13 1997 +0100
    16.3 @@ -35,7 +35,7 @@
    16.4  goal thy "!!A. A: bad ==> Key (shrK A) : spies evs";
    16.5  by (induct_tac "evs" 1);
    16.6  by (ALLGOALS (asm_simp_tac
    16.7 -	      (!simpset addsimps [imageI, spies_Cons]
    16.8 +	      (simpset() addsimps [imageI, spies_Cons]
    16.9  	                addsplits [expand_event_case, expand_if])));
   16.10  qed "Spy_spies_bad";
   16.11  
   16.12 @@ -44,7 +44,7 @@
   16.13  (*For not_bad_tac*)
   16.14  goal thy "!!A. [| Crypt (shrK A) X : analz (spies evs);  A: bad |] \
   16.15  \              ==> X : analz (spies evs)";
   16.16 -by (fast_tac (!claset addSDs [analz.Decrypt] addss (!simpset)) 1);
   16.17 +by (fast_tac (claset() addSDs [analz.Decrypt] addss (simpset())) 1);
   16.18  qed "Crypt_Spy_analz_bad";
   16.19  
   16.20  (*Prove that the agent is uncompromised by the confidentiality of 
   16.21 @@ -97,7 +97,7 @@
   16.22  AddIffs [Nonce_notin_initState];
   16.23  
   16.24  goal thy "Nonce N ~: used []";
   16.25 -by (simp_tac (!simpset addsimps [used_Nil]) 1);
   16.26 +by (simp_tac (simpset() addsimps [used_Nil]) 1);
   16.27  qed "Nonce_notin_used_empty";
   16.28  Addsimps [Nonce_notin_used_empty];
   16.29  
   16.30 @@ -109,11 +109,11 @@
   16.31  by (induct_tac "evs" 1);
   16.32  by (res_inst_tac [("x","0")] exI 1);
   16.33  by (ALLGOALS (asm_simp_tac
   16.34 -	      (!simpset addsimps [used_Cons]
   16.35 +	      (simpset() addsimps [used_Cons]
   16.36  			addsplits [expand_event_case, expand_if])));
   16.37  by Safe_tac;
   16.38  by (ALLGOALS (rtac (msg_Nonce_supply RS exE)));
   16.39 -by (ALLGOALS (blast_tac (!claset addSEs [add_leE])));
   16.40 +by (ALLGOALS (blast_tac (claset() addSEs [add_leE])));
   16.41  val lemma = result();
   16.42  
   16.43  goal thy "EX N. Nonce N ~: used evs";
   16.44 @@ -127,7 +127,7 @@
   16.45  by (Clarify_tac 1);
   16.46  by (res_inst_tac [("x","N")] exI 1);
   16.47  by (res_inst_tac [("x","Suc (N+Na)")] exI 1);
   16.48 -by (asm_simp_tac (!simpset addsimps [less_not_refl2 RS not_sym, 
   16.49 +by (asm_simp_tac (simpset() addsimps [less_not_refl2 RS not_sym, 
   16.50  				     le_add2, le_add1, 
   16.51  				     le_eq_less_Suc RS sym]) 1);
   16.52  qed "Nonce_supply2";
   16.53 @@ -141,12 +141,12 @@
   16.54  by (res_inst_tac [("x","N")] exI 1);
   16.55  by (res_inst_tac [("x","Suc (N+Na)")] exI 1);
   16.56  by (res_inst_tac [("x","Suc (Suc (N+Na+Nb))")] exI 1);
   16.57 -by (asm_simp_tac (!simpset addsimps [less_not_refl2 RS not_sym, 
   16.58 +by (asm_simp_tac (simpset() addsimps [less_not_refl2 RS not_sym, 
   16.59  				     le_add2, le_add1, 
   16.60  				     le_eq_less_Suc RS sym]) 1);
   16.61  by (rtac (less_trans RS less_not_refl2 RS not_sym) 1);
   16.62  by (stac (le_eq_less_Suc RS sym) 1);
   16.63 -by (asm_simp_tac (!simpset addsimps [le_eq_less_Suc RS sym]) 2);
   16.64 +by (asm_simp_tac (simpset() addsimps [le_eq_less_Suc RS sym]) 2);
   16.65  by (REPEAT (rtac le_add1 1));
   16.66  qed "Nonce_supply3";
   16.67  
   16.68 @@ -182,7 +182,7 @@
   16.69      (Finites.emptyI RS Finites.insertI RS Finites.insertI RS Key_supply_ax) 1);
   16.70  by (Clarify_tac 1);
   16.71  by (Full_simp_tac 1);
   16.72 -by (fast_tac (!claset addSEs [allE]) 1);
   16.73 +by (fast_tac (claset() addSEs [allE]) 1);
   16.74  qed "Key_supply3";
   16.75  
   16.76  goal thy "Key (@ K. Key K ~: used evs) ~: used evs";
   16.77 @@ -197,7 +197,7 @@
   16.78      such as  Nonce ?N ~: used evs that match Nonce_supply*)
   16.79  fun possibility_tac st = st |>
   16.80     (REPEAT 
   16.81 -    (ALLGOALS (simp_tac (!simpset delsimps [used_Says] setSolver safe_solver))
   16.82 +    (ALLGOALS (simp_tac (simpset() delsimps [used_Says] setSolver safe_solver))
   16.83       THEN
   16.84       REPEAT_FIRST (eq_assume_tac ORELSE' 
   16.85                     resolve_tac [refl, conjI, Nonce_supply, Key_supply])));
   16.86 @@ -206,7 +206,7 @@
   16.87    nonces and keys initially*)
   16.88  fun basic_possibility_tac st = st |>
   16.89      REPEAT 
   16.90 -    (ALLGOALS (asm_simp_tac (!simpset setSolver safe_solver))
   16.91 +    (ALLGOALS (asm_simp_tac (simpset() setSolver safe_solver))
   16.92       THEN
   16.93       REPEAT_FIRST (resolve_tac [refl, conjI]));
   16.94  
   16.95 @@ -229,7 +229,7 @@
   16.96    the set of keys.  Use analz_insert_eq with (Un_upper2 RS analz_mono) to
   16.97    erase occurrences of forwarded message components (X).*)
   16.98  val analz_image_freshK_ss = 
   16.99 -     !simpset addcongs [if_weak_cong]
  16.100 +     simpset() addcongs [if_weak_cong]
  16.101  	      delsimps [image_insert, image_Un]
  16.102                delsimps [imp_disjL]    (*reduces blow-up*)
  16.103                addsimps ([image_insert RS sym, image_Un RS sym,
  16.104 @@ -243,5 +243,5 @@
  16.105  goal thy  
  16.106   "!!evs. (Key K : analz (Key``nE Un H)) --> (K : nE | Key K : analz H)  ==> \
  16.107  \        (Key K : analz (Key``nE Un H)) = (K : nE | Key K : analz H)";
  16.108 -by (blast_tac (!claset addIs [impOfSubs analz_mono]) 1);
  16.109 +by (blast_tac (claset() addIs [impOfSubs analz_mono]) 1);
  16.110  qed "analz_image_freshK_lemma";
    17.1 --- a/src/HOL/Auth/TLS.ML	Mon Nov 03 12:22:43 1997 +0100
    17.2 +++ b/src/HOL/Auth/TLS.ML	Mon Nov 03 12:24:13 1997 +0100
    17.3 @@ -144,8 +144,8 @@
    17.4      THEN 
    17.5      REPEAT (FIRSTGOAL analz_mono_contra_tac)
    17.6      THEN 
    17.7 -    fast_tac (!claset addss (!simpset)) i THEN
    17.8 -    ALLGOALS (asm_simp_tac (!simpset addsplits [expand_if]));
    17.9 +    fast_tac (claset() addss (simpset())) i THEN
   17.10 +    ALLGOALS (asm_simp_tac (simpset() addsplits [expand_if]));
   17.11  
   17.12  
   17.13  (** Theorems of the form X ~: parts (spies evs) imply that NOBODY
   17.14 @@ -161,12 +161,12 @@
   17.15  
   17.16  goal thy 
   17.17   "!!evs. evs : tls ==> (Key (priK A) : analz (spies evs)) = (A : bad)";
   17.18 -by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
   17.19 +by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
   17.20  qed "Spy_analz_priK";
   17.21  Addsimps [Spy_analz_priK];
   17.22  
   17.23  goal thy  "!!A. [| Key (priK A) : parts (spies evs);  evs : tls |] ==> A:bad";
   17.24 -by (blast_tac (!claset addDs [Spy_see_priK]) 1);
   17.25 +by (blast_tac (claset() addDs [Spy_see_priK]) 1);
   17.26  qed "Spy_see_priK_D";
   17.27  
   17.28  bind_thm ("Spy_analz_priK_D", analz_subset_parts RS subsetD RS Spy_see_priK_D);
   17.29 @@ -196,13 +196,13 @@
   17.30      etac tls.induct i   THEN
   17.31      ClientKeyExch_tac  (i+6)  THEN	(*ClientKeyExch*)
   17.32      ALLGOALS (asm_simp_tac 
   17.33 -              (!simpset addcongs [if_weak_cong]
   17.34 +              (simpset() addcongs [if_weak_cong]
   17.35                          addsimps (expand_ifs@pushes)
   17.36                          addsplits [expand_if]))  THEN
   17.37      (*Remove instances of pubK B:  the Spy already knows all public keys.
   17.38        Combining the two simplifier calls makes them run extremely slowly.*)
   17.39      ALLGOALS (asm_simp_tac 
   17.40 -              (!simpset addcongs [if_weak_cong]
   17.41 +              (simpset() addcongs [if_weak_cong]
   17.42  			addsimps [insert_absorb]
   17.43                          addsplits [expand_if]));
   17.44  
   17.45 @@ -213,7 +213,7 @@
   17.46  \                ==> Crypt (pubK B) X : parts (spies evs)";
   17.47  by (etac rev_mp 1);
   17.48  by (analz_induct_tac 1);
   17.49 -by (blast_tac (!claset addIs [parts_insertI]) 1);
   17.50 +by (blast_tac (claset() addIs [parts_insertI]) 1);
   17.51  qed "Notes_Crypt_parts_spies";
   17.52  
   17.53  (*C may be either A or B*)
   17.54 @@ -225,9 +225,9 @@
   17.55  by (parts_induct_tac 1);
   17.56  by (ALLGOALS Clarify_tac);
   17.57  (*Fake*)
   17.58 -by (blast_tac (!claset addIs [parts_insertI]) 1);
   17.59 +by (blast_tac (claset() addIs [parts_insertI]) 1);
   17.60  (*Client, Server Accept*)
   17.61 -by (REPEAT (blast_tac (!claset addSEs spies_partsEs
   17.62 +by (REPEAT (blast_tac (claset() addSEs spies_partsEs
   17.63                                 addSDs [Notes_Crypt_parts_spies]) 1));
   17.64  qed "Notes_master_imp_Crypt_PMS";
   17.65  
   17.66 @@ -264,7 +264,7 @@
   17.67  \           certificate A KA : parts (spies evs);             \
   17.68  \           evs : tls;  A ~: bad |]                           \
   17.69  \    ==> Says A B X : set evs";
   17.70 -by (blast_tac (!claset addSDs [certificate_valid] addSIs [lemma]) 1);
   17.71 +by (blast_tac (claset() addSDs [certificate_valid] addSIs [lemma]) 1);
   17.72  qed "TrustCertVerify";
   17.73  
   17.74  
   17.75 @@ -286,7 +286,7 @@
   17.76  \           certificate A KA : parts (spies evs);              \
   17.77  \           evs : tls;  A ~: bad |]                            \
   17.78  \        ==> Notes A {|Agent B, Nonce PMS|} : set evs";
   17.79 -by (blast_tac (!claset addSDs [certificate_valid] addSIs [lemma]) 1);
   17.80 +by (blast_tac (claset() addSDs [certificate_valid] addSIs [lemma]) 1);
   17.81  qed "UseCertVerify";
   17.82  
   17.83  
   17.84 @@ -303,10 +303,10 @@
   17.85  \                ==> Nonce PMS : parts (spies evs)";
   17.86  by (etac rev_mp 1);
   17.87  by (parts_induct_tac 1);
   17.88 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [parts_insert_spies])));
   17.89 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [parts_insert_spies])));
   17.90  by (Fake_parts_insert_tac 1);
   17.91  (*Six others, all trivial or by freshness*)
   17.92 -by (REPEAT (blast_tac (!claset addSDs [Notes_Crypt_parts_spies]
   17.93 +by (REPEAT (blast_tac (claset() addSDs [Notes_Crypt_parts_spies]
   17.94                                 addSEs spies_partsEs) 1));
   17.95  qed "MS_imp_PMS";
   17.96  AddSDs [MS_imp_PMS];
   17.97 @@ -325,9 +325,9 @@
   17.98  by (Fake_parts_insert_tac 1);
   17.99  (*ClientKeyExch*)
  17.100  by (ClientKeyExch_tac 1);
  17.101 -by (asm_simp_tac (!simpset addsimps [all_conj_distrib]) 1);
  17.102 +by (asm_simp_tac (simpset() addsimps [all_conj_distrib]) 1);
  17.103  by (expand_case_tac "PMS = ?y" 1 THEN
  17.104 -    blast_tac (!claset addSEs partsEs) 1);
  17.105 +    blast_tac (claset() addSEs partsEs) 1);
  17.106  val lemma = result();
  17.107  
  17.108  goal thy 
  17.109 @@ -351,10 +351,10 @@
  17.110  \                ==> EX A' B'. ALL A B.  \
  17.111  \                    Notes A {|Agent B, Nonce PMS|} : set evs --> A=A' & B=B'";
  17.112  by (parts_induct_tac 1);
  17.113 -by (asm_simp_tac (!simpset addsimps [all_conj_distrib]) 1);
  17.114 +by (asm_simp_tac (simpset() addsimps [all_conj_distrib]) 1);
  17.115  (*ClientKeyExch: if PMS is fresh, then it can't appear in Notes A X.*)
  17.116  by (expand_case_tac "PMS = ?y" 1 THEN
  17.117 -    blast_tac (!claset addSDs [Notes_Crypt_parts_spies] addSEs partsEs) 1);
  17.118 +    blast_tac (claset() addSDs [Notes_Crypt_parts_spies] addSEs partsEs) 1);
  17.119  val lemma = result();
  17.120  
  17.121  goal thy 
  17.122 @@ -395,7 +395,7 @@
  17.123  goal thy  
  17.124   "!!evs. (X : analz (G Un H)) --> (X : analz H)  ==> \
  17.125  \        (X : analz (G Un H))  =  (X : analz H)";
  17.126 -by (blast_tac (!claset addIs [impOfSubs analz_mono]) 1);
  17.127 +by (blast_tac (claset() addIs [impOfSubs analz_mono]) 1);
  17.128  val analz_image_keys_lemma = result();
  17.129  
  17.130  (** Strangely, the following version doesn't work:
  17.131 @@ -417,7 +417,7 @@
  17.132  		   addsimps (expand_ifs@pushes)
  17.133  		   addsimps [range_sessionkeys_not_priK, 
  17.134                               analz_image_priK, certificate_def])));
  17.135 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [insert_absorb])));
  17.136 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [insert_absorb])));
  17.137  (*Fake*) 
  17.138  by (spy_analz_tac 2);
  17.139  (*Base*)
  17.140 @@ -452,17 +452,17 @@
  17.141  by (hyp_subst_tac 1);
  17.142  by (analz_induct_tac 1);
  17.143  (*SpyKeys*)
  17.144 -by (blast_tac (!claset addSEs spies_partsEs) 3);
  17.145 +by (blast_tac (claset() addSEs spies_partsEs) 3);
  17.146  (*Fake*)
  17.147 -by (simp_tac (!simpset addsimps [parts_insert_spies]) 2);
  17.148 +by (simp_tac (simpset() addsimps [parts_insert_spies]) 2);
  17.149  by (Fake_parts_insert_tac 2);
  17.150  (** LEVEL 6 **)
  17.151  (*Oops*)
  17.152 -by (fast_tac (!claset addSEs [MPair_parts]
  17.153 +by (fast_tac (claset() addSEs [MPair_parts]
  17.154  		       addDs  [Says_imp_spies RS parts.Inj]
  17.155 -		       addss (!simpset)) 6);
  17.156 +		       addss (simpset())) 6);
  17.157  by (REPEAT 
  17.158 -    (blast_tac (!claset addSDs [Notes_Crypt_parts_spies, 
  17.159 +    (blast_tac (claset() addSDs [Notes_Crypt_parts_spies, 
  17.160  				Notes_master_imp_Crypt_PMS]
  17.161                          addSEs spies_partsEs) 1));
  17.162  val lemma = result();
  17.163 @@ -470,7 +470,7 @@
  17.164  goal thy 
  17.165   "!!evs. [| Nonce PMS ~: parts (spies evs);  evs : tls |]             \
  17.166  \  ==> Key (sessionK((Na, Nb, PRF(PMS,NA,NB)), b)) ~: parts (spies evs)";
  17.167 -by (blast_tac (!claset addDs [lemma]) 1);
  17.168 +by (blast_tac (claset() addDs [lemma]) 1);
  17.169  qed "PMS_sessionK_not_spied";
  17.170  bind_thm ("PMS_sessionK_spiedE", 
  17.171  	  PMS_sessionK_not_spied RSN (2,rev_notE));
  17.172 @@ -478,7 +478,7 @@
  17.173  goal thy 
  17.174   "!!evs. [| Nonce PMS ~: parts (spies evs);  evs : tls |]             \
  17.175  \  ==> Crypt (sessionK((Na, Nb, PRF(PMS,NA,NB)), b)) Y ~: parts (spies evs)";
  17.176 -by (blast_tac (!claset addDs [lemma]) 1);
  17.177 +by (blast_tac (claset() addDs [lemma]) 1);
  17.178  qed "PMS_Crypt_sessionK_not_spied";
  17.179  bind_thm ("PMS_Crypt_sessionK_spiedE", 
  17.180  	  PMS_Crypt_sessionK_not_spied RSN (2,rev_notE));
  17.181 @@ -497,7 +497,7 @@
  17.182  (*Oops*)
  17.183  by (Blast_tac 4);
  17.184  (*SpyKeys*)
  17.185 -by (blast_tac (!claset addDs [Says_imp_spies RS analz.Inj]) 3);
  17.186 +by (blast_tac (claset() addDs [Says_imp_spies RS analz.Inj]) 3);
  17.187  (*Fake*) 
  17.188  by (spy_analz_tac 2);
  17.189  (*Base*)
  17.190 @@ -513,15 +513,15 @@
  17.191  \            Nonce PMS ~: analz (spies evs)";
  17.192  by (analz_induct_tac 1);   (*11 seconds*)
  17.193  (*ClientAccepts and ServerAccepts: because PMS ~: range PRF*)
  17.194 -by (REPEAT (fast_tac (!claset addss (!simpset)) 6));
  17.195 +by (REPEAT (fast_tac (claset() addss (simpset())) 6));
  17.196  (*ClientHello, ServerHello, ClientKeyExch, ServerResume: 
  17.197    mostly freshness reasoning*)
  17.198 -by (REPEAT (blast_tac (!claset addSEs partsEs
  17.199 +by (REPEAT (blast_tac (claset() addSEs partsEs
  17.200  			       addDs  [Notes_Crypt_parts_spies,
  17.201  				       impOfSubs analz_subset_parts,
  17.202  				       Says_imp_spies RS analz.Inj]) 3));
  17.203  (*SpyKeys*)
  17.204 -by (fast_tac (!claset addss (!simpset)) 2);
  17.205 +by (fast_tac (claset() addss (simpset())) 2);
  17.206  (*Fake*)
  17.207  by (spy_analz_tac 1);
  17.208  bind_thm ("Spy_not_see_PMS", result() RSN (2, rev_mp));
  17.209 @@ -535,18 +535,18 @@
  17.210  \            Nonce (PRF(PMS,NA,NB)) ~: analz (spies evs)";
  17.211  by (analz_induct_tac 1);   (*13 seconds*)
  17.212  (*ClientAccepts and ServerAccepts: because PMS was already visible*)
  17.213 -by (REPEAT (blast_tac (!claset addDs [Spy_not_see_PMS, 
  17.214 +by (REPEAT (blast_tac (claset() addDs [Spy_not_see_PMS, 
  17.215  				      Says_imp_spies RS analz.Inj,
  17.216  				      Notes_imp_spies RS analz.Inj]) 6));
  17.217  (*ClientHello*)
  17.218  by (Blast_tac 3);
  17.219  (*SpyKeys: by secrecy of the PMS, Spy cannot make the MS*)
  17.220 -by (blast_tac (!claset addSDs [Spy_not_see_PMS, 
  17.221 +by (blast_tac (claset() addSDs [Spy_not_see_PMS, 
  17.222  			       Says_imp_spies RS analz.Inj]) 2);
  17.223  (*Fake*)
  17.224  by (spy_analz_tac 1);
  17.225  (*ServerHello and ClientKeyExch: mostly freshness reasoning*)
  17.226 -by (REPEAT (blast_tac (!claset addSEs partsEs
  17.227 +by (REPEAT (blast_tac (claset() addSEs partsEs
  17.228  			       addDs  [Notes_Crypt_parts_spies,
  17.229  				       impOfSubs analz_subset_parts,
  17.230  				       Says_imp_spies RS analz.Inj]) 1));
  17.231 @@ -566,10 +566,10 @@
  17.232  by (ALLGOALS Clarify_tac);
  17.233  (*ClientFinished, ClientResume: by unicity of PMS*)
  17.234  by (REPEAT 
  17.235 -    (blast_tac (!claset addSDs [Notes_master_imp_Notes_PMS]
  17.236 +    (blast_tac (claset() addSDs [Notes_master_imp_Notes_PMS]
  17.237       	 	        addIs  [Notes_unique_PMS RS conjunct1]) 2));
  17.238  (*ClientKeyExch*)
  17.239 -by (blast_tac (!claset addSEs [PMS_Crypt_sessionK_spiedE]
  17.240 +by (blast_tac (claset() addSEs [PMS_Crypt_sessionK_spiedE]
  17.241  	               addSDs [Says_imp_spies RS parts.Inj]) 1);
  17.242  bind_thm ("Says_clientK_unique",
  17.243  	  result() RSN(2,rev_mp) RSN(2,rev_mp));
  17.244 @@ -589,9 +589,9 @@
  17.245  by (Fake_parts_insert_tac 1);
  17.246  by (ALLGOALS Asm_simp_tac);
  17.247  (*Oops*)
  17.248 -by (blast_tac (!claset addIs [Says_clientK_unique]) 2);
  17.249 +by (blast_tac (claset() addIs [Says_clientK_unique]) 2);
  17.250  (*ClientKeyExch*)
  17.251 -by (blast_tac (!claset addSEs (PMS_sessionK_spiedE::spies_partsEs)) 1);
  17.252 +by (blast_tac (claset() addSEs (PMS_sessionK_spiedE::spies_partsEs)) 1);
  17.253  qed_spec_mp "clientK_Oops_ALL";
  17.254  
  17.255  
  17.256 @@ -609,14 +609,14 @@
  17.257  by (ALLGOALS Clarify_tac);
  17.258  (*ServerResume, ServerFinished: by unicity of PMS*)
  17.259  by (REPEAT
  17.260 -    (blast_tac (!claset addSEs [MPair_parts]
  17.261 +    (blast_tac (claset() addSEs [MPair_parts]
  17.262  		        addSDs [Notes_master_imp_Crypt_PMS, 
  17.263  				Says_imp_spies RS parts.Inj]
  17.264                          addDs  [Spy_not_see_PMS, 
  17.265  				Notes_Crypt_parts_spies,
  17.266  				Crypt_unique_PMS]) 2));
  17.267  (*ClientKeyExch*)
  17.268 -by (blast_tac (!claset addSEs [PMS_Crypt_sessionK_spiedE]
  17.269 +by (blast_tac (claset() addSEs [PMS_Crypt_sessionK_spiedE]
  17.270  	               addSDs [Says_imp_spies RS parts.Inj]) 1);
  17.271  bind_thm ("Says_serverK_unique",
  17.272  	  result() RSN(2,rev_mp) RSN(2,rev_mp));
  17.273 @@ -635,9 +635,9 @@
  17.274  by (Fake_parts_insert_tac 1);
  17.275  by (ALLGOALS Asm_simp_tac);
  17.276  (*Oops*)
  17.277 -by (blast_tac (!claset addIs [Says_serverK_unique]) 2);
  17.278 +by (blast_tac (claset() addIs [Says_serverK_unique]) 2);
  17.279  (*ClientKeyExch*)
  17.280 -by (blast_tac (!claset addSEs (PMS_sessionK_spiedE::spies_partsEs)) 1);
  17.281 +by (blast_tac (claset() addSEs (PMS_sessionK_spiedE::spies_partsEs)) 1);
  17.282  qed_spec_mp "serverK_Oops_ALL";
  17.283  
  17.284  
  17.285 @@ -660,15 +660,15 @@
  17.286  \            X : parts (spies evs) --> Says B A X : set evs";
  17.287  by (hyp_subst_tac 1);
  17.288  by (analz_induct_tac 1);        (*22 seconds*)
  17.289 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
  17.290 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
  17.291  (*proves ServerResume*)
  17.292  by (ALLGOALS Clarify_tac);
  17.293  (*ClientKeyExch*)
  17.294  by (fast_tac  (*blast_tac gives PROOF FAILED*)
  17.295 -    (!claset addSEs [PMS_Crypt_sessionK_spiedE]) 2);
  17.296 +    (claset() addSEs [PMS_Crypt_sessionK_spiedE]) 2);
  17.297  (*Fake: the Spy doesn't have the critical session key!*)
  17.298  by (subgoal_tac "Key (serverK(Na,Nb,PRF(PMS,NA,NB))) ~: analz(spies evsa)" 1);
  17.299 -by (asm_simp_tac (!simpset addsimps [Spy_not_see_MS, 
  17.300 +by (asm_simp_tac (simpset() addsimps [Spy_not_see_MS, 
  17.301  				     not_parts_not_analz]) 2);
  17.302  by (Fake_parts_insert_tac 1);
  17.303  val lemma = normalize_thm [RSmp] (result());
  17.304 @@ -685,7 +685,7 @@
  17.305  \           Says B Spy (Key (serverK(Na,Nb,M))) ~: set evs; \
  17.306  \           evs : tls;  A ~: bad;  B ~: bad |]          \
  17.307  \        ==> Says B A X : set evs";
  17.308 -by (blast_tac (!claset addIs [lemma]
  17.309 +by (blast_tac (claset() addIs [lemma]
  17.310                         addEs [serverK_Oops_ALL RSN(2, rev_notE)]) 1);
  17.311  qed_spec_mp "TrustServerFinished";
  17.312  
  17.313 @@ -704,11 +704,11 @@
  17.314  \            (EX A'. Says B A' (Crypt (serverK(Na,Nb,M)) Y) : set evs)";
  17.315  by (hyp_subst_tac 1);
  17.316  by (analz_induct_tac 1);	(*20 seconds*)
  17.317 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [ex_disj_distrib])));
  17.318 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [ex_disj_distrib])));
  17.319  by (ALLGOALS Clarify_tac);
  17.320  (*ServerResume, ServerFinished: by unicity of PMS*)
  17.321  by (REPEAT
  17.322 -    (blast_tac (!claset addSEs [MPair_parts]
  17.323 +    (blast_tac (claset() addSEs [MPair_parts]
  17.324  		        addSDs [Notes_master_imp_Crypt_PMS, 
  17.325  				Says_imp_spies RS parts.Inj]
  17.326                          addDs  [Spy_not_see_PMS, 
  17.327 @@ -716,10 +716,10 @@
  17.328  				Crypt_unique_PMS]) 3));
  17.329  (*ClientKeyExch*)
  17.330  by (blast_tac
  17.331 -    (!claset addSEs [PMS_Crypt_sessionK_spiedE]) 2);
  17.332 +    (claset() addSEs [PMS_Crypt_sessionK_spiedE]) 2);
  17.333  (*Fake: the Spy doesn't have the critical session key!*)
  17.334  by (subgoal_tac "Key (serverK(Na,Nb,PRF(PMS,NA,NB))) ~: analz(spies evsa)" 1);
  17.335 -by (asm_simp_tac (!simpset addsimps [Spy_not_see_MS, 
  17.336 +by (asm_simp_tac (simpset() addsimps [Spy_not_see_MS, 
  17.337  				     not_parts_not_analz]) 2);
  17.338  by (Fake_parts_insert_tac 1);
  17.339  val lemma = normalize_thm [RSmp] (result());
  17.340 @@ -732,7 +732,7 @@
  17.341  \           Says B Spy (Key (serverK(Na,Nb,M))) ~: set evs; \
  17.342  \           evs : tls;  A ~: bad;  B ~: bad |]          \
  17.343  \        ==> EX A'. Says B A' (Crypt (serverK(Na,Nb,M)) Y) : set evs";
  17.344 -by (blast_tac (!claset addIs [lemma]
  17.345 +by (blast_tac (claset() addIs [lemma]
  17.346                         addEs [serverK_Oops_ALL RSN(2, rev_notE)]) 1);
  17.347  qed_spec_mp "TrustServerMsg";
  17.348  
  17.349 @@ -754,15 +754,15 @@
  17.350  by (analz_induct_tac 1);	(*15 seconds*)
  17.351  by (ALLGOALS Clarify_tac);
  17.352  (*ClientFinished, ClientResume: by unicity of PMS*)
  17.353 -by (REPEAT (blast_tac (!claset delrules [conjI]
  17.354 +by (REPEAT (blast_tac (claset() delrules [conjI]
  17.355  		               addSDs [Notes_master_imp_Notes_PMS]
  17.356  	 	               addDs  [Notes_unique_PMS]) 3));
  17.357  (*ClientKeyExch*)
  17.358  by (fast_tac  (*blast_tac gives PROOF FAILED*)
  17.359 -    (!claset addSEs [PMS_Crypt_sessionK_spiedE]) 2);
  17.360 +    (claset() addSEs [PMS_Crypt_sessionK_spiedE]) 2);
  17.361  (*Fake: the Spy doesn't have the critical session key!*)
  17.362  by (subgoal_tac "Key (clientK(Na,Nb,PRF(PMS,NA,NB))) ~: analz(spies evsa)" 1);
  17.363 -by (asm_simp_tac (!simpset addsimps [Spy_not_see_MS, 
  17.364 +by (asm_simp_tac (simpset() addsimps [Spy_not_see_MS, 
  17.365  				     not_parts_not_analz]) 2);
  17.366  by (Fake_parts_insert_tac 1);
  17.367  val lemma = normalize_thm [RSmp] (result());
  17.368 @@ -775,7 +775,7 @@
  17.369  \           Says A Spy (Key(clientK(Na,Nb,M))) ~: set evs;  \
  17.370  \           evs : tls;  A ~: bad;  B ~: bad |]                         \
  17.371  \  ==> Says A B (Crypt (clientK(Na,Nb,M)) Y) : set evs";
  17.372 -by (blast_tac (!claset addIs [lemma]
  17.373 +by (blast_tac (claset() addIs [lemma]
  17.374                         addEs [clientK_Oops_ALL RSN(2, rev_notE)]) 1);
  17.375  qed "TrustClientMsg";
  17.376  
  17.377 @@ -794,7 +794,7 @@
  17.378  \             : set evs;                                                  \
  17.379  \        evs : tls;  A ~: bad;  B ~: bad |]                             \
  17.380  \     ==> Says A B (Crypt (clientK(Na,Nb,M)) Y) : set evs";
  17.381 -by (blast_tac (!claset addSIs [TrustClientMsg, UseCertVerify]
  17.382 +by (blast_tac (claset() addSIs [TrustClientMsg, UseCertVerify]
  17.383                         addDs  [Says_imp_spies RS parts.Inj]) 1);
  17.384  qed "AuthClientFinished";
  17.385  
    18.1 --- a/src/HOL/Auth/WooLam.ML	Mon Nov 03 12:22:43 1997 +0100
    18.2 +++ b/src/HOL/Auth/WooLam.ML	Mon Nov 03 12:24:13 1997 +0100
    18.3 @@ -68,13 +68,13 @@
    18.4  
    18.5  goal thy 
    18.6   "!!evs. evs : woolam ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
    18.7 -by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
    18.8 +by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
    18.9  qed "Spy_analz_shrK";
   18.10  Addsimps [Spy_analz_shrK];
   18.11  
   18.12  goal thy  "!!A. [| Key (shrK A) : parts (spies evs);       \
   18.13  \                  evs : woolam |] ==> A:bad";
   18.14 -by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
   18.15 +by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
   18.16  qed "Spy_see_shrK_D";
   18.17  
   18.18  bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
   18.19 @@ -104,7 +104,7 @@
   18.20  \           Says B' Server {|Agent A, Agent B, Crypt (shrK A) (Nonce NB)|} \
   18.21  \            : set evs |]                                  \
   18.22  \        ==> EX B. Says A B (Crypt (shrK A) (Nonce NB)) : set evs";
   18.23 -by (blast_tac (!claset addSIs [NB_Crypt_imp_Alice_msg]
   18.24 +by (blast_tac (claset() addSIs [NB_Crypt_imp_Alice_msg]
   18.25                        addSEs [MPair_parts]
   18.26                        addDs  [Says_imp_spies RS parts.Inj]) 1);
   18.27  qed "Server_trusts_WL4";
   18.28 @@ -139,7 +139,7 @@
   18.29   "!!evs. [| Says S B (Crypt (shrK B) {|Agent A, NB|}) : set evs;         \
   18.30  \           B ~: bad;  evs : woolam |]                                  \
   18.31  \        ==> Says Server B (Crypt (shrK B) {|Agent A, NB|}) : set evs";
   18.32 -by (blast_tac (!claset addSIs [NB_Crypt_imp_Server_msg]
   18.33 +by (blast_tac (claset() addSIs [NB_Crypt_imp_Server_msg]
   18.34                        addDs  [Says_imp_spies RS parts.Inj]) 1);
   18.35  qed "B_got_WL5";
   18.36  
   18.37 @@ -151,7 +151,7 @@
   18.38   "!!evs. [| Says S B (Crypt (shrK B) {|Agent A, Nonce NB|}): set evs; \
   18.39  \           A ~: bad;  B ~: bad;  evs : woolam  |]                  \
   18.40  \        ==> EX B. Says A B (Crypt (shrK A) (Nonce NB)) : set evs";
   18.41 -by (blast_tac (!claset addIs  [Server_trusts_WL4]
   18.42 +by (blast_tac (claset() addIs  [Server_trusts_WL4]
   18.43                        addSDs [B_got_WL5 RS Server_sent_WL5]) 1);
   18.44  qed "B_trusts_WL5";
   18.45  
   18.46 @@ -176,5 +176,5 @@
   18.47  by (parts_induct_tac 1);
   18.48  by (Fake_parts_insert_tac 1);
   18.49  by Safe_tac;
   18.50 -by (blast_tac (!claset addSEs partsEs) 1);
   18.51 +by (blast_tac (claset() addSEs partsEs) 1);
   18.52  **)
    19.1 --- a/src/HOL/Auth/Yahalom.ML	Mon Nov 03 12:22:43 1997 +0100
    19.2 +++ b/src/HOL/Auth/Yahalom.ML	Mon Nov 03 12:24:13 1997 +0100
    19.3 @@ -45,7 +45,7 @@
    19.4  (*Lets us treat YM4 using a similar argument as for the Fake case.*)
    19.5  goal thy "!!evs. Says S A {|Crypt (shrK A) Y, X|} : set evs ==> \
    19.6  \                X : analz (spies evs)";
    19.7 -by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
    19.8 +by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
    19.9  qed "YM4_analz_spies";
   19.10  
   19.11  bind_thm ("YM4_parts_spies",
   19.12 @@ -54,7 +54,7 @@
   19.13  (*Relates to both YM4 and Oops*)
   19.14  goal thy "!!evs. Says S A {|Crypt (shrK A) {|B,K,NA,NB|}, X|} : set evs ==> \
   19.15  \                K : parts (spies evs)";
   19.16 -by (blast_tac (!claset addSEs partsEs
   19.17 +by (blast_tac (claset() addSEs partsEs
   19.18                        addSDs [Says_imp_spies RS parts.Inj]) 1);
   19.19  qed "YM4_Key_parts_spies";
   19.20  
   19.21 @@ -88,13 +88,13 @@
   19.22  
   19.23  goal thy 
   19.24   "!!evs. evs : yahalom ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
   19.25 -by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
   19.26 +by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
   19.27  qed "Spy_analz_shrK";
   19.28  Addsimps [Spy_analz_shrK];
   19.29  
   19.30  goal thy  "!!A. [| Key (shrK A) : parts (spies evs);       \
   19.31  \                  evs : yahalom |] ==> A:bad";
   19.32 -by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
   19.33 +by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
   19.34  qed "Spy_see_shrK_D";
   19.35  
   19.36  bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
   19.37 @@ -107,12 +107,12 @@
   19.38  by (parts_induct_tac 1);
   19.39  (*Fake*)
   19.40  by (best_tac
   19.41 -      (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   19.42 +      (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   19.43                 addIs  [impOfSubs analz_subset_parts]
   19.44                 addDs  [impOfSubs (analz_subset_parts RS keysFor_mono)]
   19.45 -               addss  (!simpset)) 1);
   19.46 +               addss  (simpset())) 1);
   19.47  (*YM2-4: Because Key K is not fresh, etc.*)
   19.48 -by (REPEAT (blast_tac (!claset addSEs spies_partsEs) 1));
   19.49 +by (REPEAT (blast_tac (claset() addSEs spies_partsEs) 1));
   19.50  qed_spec_mp "new_keys_not_used";
   19.51  
   19.52  bind_thm ("new_keys_not_analzd",
   19.53 @@ -187,7 +187,7 @@
   19.54  \           {|Crypt (shrK A) {|Agent B, Key K, na, nb|}, X|}        \
   19.55  \          : set evs --> A=A' & B=B' & na=na' & nb=nb' & X=X'";
   19.56  by (etac yahalom.induct 1);
   19.57 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
   19.58 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
   19.59  by (ALLGOALS Clarify_tac);
   19.60  by (ex_strip_tac 2);
   19.61  by (Blast_tac 2);
   19.62 @@ -195,7 +195,7 @@
   19.63  by (expand_case_tac "K = ?y" 1);
   19.64  by (REPEAT (ares_tac [refl,exI,impI,conjI] 2));
   19.65  (*...we assume X is a recent message and handle this case by contradiction*)
   19.66 -by (blast_tac (!claset addSEs spies_partsEs
   19.67 +by (blast_tac (claset() addSEs spies_partsEs
   19.68                         delrules [conjI]    (*no split-up to 4 subgoals*)) 1);
   19.69  val lemma = result();
   19.70  
   19.71 @@ -224,12 +224,12 @@
   19.72  by analz_spies_tac;
   19.73  by (ALLGOALS
   19.74      (asm_simp_tac 
   19.75 -     (!simpset addsimps (expand_ifs@pushes)
   19.76 +     (simpset() addsimps (expand_ifs@pushes)
   19.77  	       addsimps [analz_insert_eq, analz_insert_freshK])));
   19.78  (*Oops*)
   19.79 -by (blast_tac (!claset addDs [unique_session_keys]) 3);
   19.80 +by (blast_tac (claset() addDs [unique_session_keys]) 3);
   19.81  (*YM3*)
   19.82 -by (blast_tac (!claset delrules [impCE]
   19.83 +by (blast_tac (claset() delrules [impCE]
   19.84                         addSEs spies_partsEs
   19.85                         addIs [impOfSubs analz_subset_parts]) 2);
   19.86  (*Fake*) 
   19.87 @@ -247,7 +247,7 @@
   19.88  \           A ~: bad;  B ~: bad;  evs : yahalom |]         \
   19.89  \        ==> Key K ~: analz (spies evs)";
   19.90  by (forward_tac [Says_Server_message_form] 1 THEN assume_tac 1);
   19.91 -by (blast_tac (!claset addSEs [lemma]) 1);
   19.92 +by (blast_tac (claset() addSEs [lemma]) 1);
   19.93  qed "Spy_not_see_encrypted_key";
   19.94  
   19.95  
   19.96 @@ -307,7 +307,7 @@
   19.97  (*A is uncompromised because NB is secure*)
   19.98  by (not_bad_tac "A" 1);
   19.99  (*A's certificate guarantees the existence of the Server message*)
  19.100 -by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj RS parts.Fst RS
  19.101 +by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj RS parts.Fst RS
  19.102  			      A_trusts_YM3]) 1);
  19.103  bind_thm ("B_trusts_YM4_newK", result() RS mp RSN (2, rev_mp));
  19.104  
  19.105 @@ -337,7 +337,7 @@
  19.106    (with respect to a given trace). *)
  19.107  goalw thy [KeyWithNonce_def]
  19.108   "!!evs. Key K ~: used evs ==> ~ KeyWithNonce K NB evs";
  19.109 -by (blast_tac (!claset addSEs spies_partsEs) 1);
  19.110 +by (blast_tac (claset() addSEs spies_partsEs) 1);
  19.111  qed "fresh_not_KeyWithNonce";
  19.112  
  19.113  (*The Server message associates K with NB' and therefore not with any 
  19.114 @@ -348,7 +348,7 @@
  19.115  \             : set evs;                                                 \
  19.116  \           NB ~= NB';  evs : yahalom |]                            \
  19.117  \        ==> ~ KeyWithNonce K NB evs";
  19.118 -by (blast_tac (!claset addDs [unique_session_keys]) 1);
  19.119 +by (blast_tac (claset() addDs [unique_session_keys]) 1);
  19.120  qed "Says_Server_KeyWithNonce";
  19.121  
  19.122  
  19.123 @@ -362,7 +362,7 @@
  19.124  goal thy  
  19.125   "!!evs. P --> (X : analz (G Un H)) --> (X : analz H)  ==> \
  19.126  \        P --> (X : analz (G Un H)) = (X : analz H)";
  19.127 -by (blast_tac (!claset addIs [impOfSubs analz_mono]) 1);
  19.128 +by (blast_tac (claset() addIs [impOfSubs analz_mono]) 1);
  19.129  val Nonce_secrecy_lemma = result();
  19.130  
  19.131  goal thy 
  19.132 @@ -394,7 +394,7 @@
  19.133  by (not_bad_tac "A" 1);
  19.134  by (dtac (Says_imp_spies RS parts.Inj RS parts.Fst RS A_trusts_YM3) 1
  19.135      THEN REPEAT (assume_tac 1));
  19.136 -by (blast_tac (!claset addIs [KeyWithNonceI]) 1);
  19.137 +by (blast_tac (claset() addIs [KeyWithNonceI]) 1);
  19.138  qed_spec_mp "Nonce_secrecy";
  19.139  
  19.140  
  19.141 @@ -424,11 +424,11 @@
  19.142  (*Fake*)
  19.143  by (REPEAT (etac (exI RSN (2,exE)) 1)   (*stripping EXs makes proof faster*)
  19.144      THEN Fake_parts_insert_tac 1);
  19.145 -by (asm_simp_tac (!simpset addsimps [all_conj_distrib]) 1); 
  19.146 +by (asm_simp_tac (simpset() addsimps [all_conj_distrib]) 1); 
  19.147  (*YM2: creation of new Nonce.  Move assertion into global context*)
  19.148  by (expand_case_tac "nb = ?y" 1);
  19.149  by (REPEAT (resolve_tac [exI, conjI, impI, refl] 1));
  19.150 -by (blast_tac (!claset addSEs spies_partsEs) 1);
  19.151 +by (blast_tac (claset() addSEs spies_partsEs) 1);
  19.152  val lemma = result();
  19.153  
  19.154  goal thy 
  19.155 @@ -450,7 +450,7 @@
  19.156  \          nb ~: analz (spies evs);  evs : yahalom |]        \
  19.157  \        ==> NA' = NA & A' = A & B' = B";
  19.158  by (not_bad_tac "B'" 1);
  19.159 -by (blast_tac (!claset addSDs [Says_imp_spies RS parts.Inj]
  19.160 +by (blast_tac (claset() addSDs [Says_imp_spies RS parts.Inj]
  19.161                         addSEs [MPair_parts]
  19.162                         addDs  [unique_NB]) 1);
  19.163  qed "Says_unique_NB";
  19.164 @@ -465,7 +465,7 @@
  19.165  \     Crypt (shrK B)  {|Agent A, Nonce NA, Nonce NB|} ~: parts(spies evs)";
  19.166  by (parts_induct_tac 1);
  19.167  by (Fake_parts_insert_tac 1);
  19.168 -by (blast_tac (!claset addDs [Says_imp_spies RS analz.Inj]
  19.169 +by (blast_tac (claset() addDs [Says_imp_spies RS analz.Inj]
  19.170                         addSIs [parts_insertI]
  19.171                         addSEs partsEs) 1);
  19.172  bind_thm ("no_nonce_YM1_YM2", result() RS mp RSN (2,rev_mp) RSN (2,rev_notE));
  19.173 @@ -497,19 +497,19 @@
  19.174  by analz_spies_tac;
  19.175  by (ALLGOALS
  19.176      (asm_simp_tac 
  19.177 -     (!simpset addsimps (expand_ifs@pushes)
  19.178 +     (simpset() addsimps (expand_ifs@pushes)
  19.179  	       addsimps [analz_insert_eq, analz_insert_freshK])));
  19.180  (*Prove YM3 by showing that no NB can also be an NA*)
  19.181 -by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj]
  19.182 +by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj]
  19.183  	               addSEs [MPair_parts]
  19.184  		       addDs  [no_nonce_YM1_YM2, Says_unique_NB]) 4
  19.185      THEN flexflex_tac);
  19.186  (*YM2: similar freshness reasoning*) 
  19.187 -by (blast_tac (!claset addSEs partsEs
  19.188 +by (blast_tac (claset() addSEs partsEs
  19.189  		       addDs  [Says_imp_spies RS analz.Inj,
  19.190  			       impOfSubs analz_subset_parts]) 3);
  19.191  (*YM1: NB=NA is impossible anyway, but NA is secret because it is fresh!*)
  19.192 -by (blast_tac (!claset addSIs [parts_insertI]
  19.193 +by (blast_tac (claset() addSIs [parts_insertI]
  19.194                         addSEs spies_partsEs) 2);
  19.195  (*Fake*)
  19.196  by (spy_analz_tac 1);
  19.197 @@ -522,19 +522,19 @@
  19.198  by (forward_tac [Says_Server_imp_YM2] 4);
  19.199  by (REPEAT_FIRST (eresolve_tac [asm_rl, bexE, exE, disjE]));
  19.200  (*  use Says_unique_NB to identify message components: Aa=A, Ba=B, NAa=NA *)
  19.201 -by (blast_tac (!claset addDs [Says_unique_NB, Spy_not_see_encrypted_key,
  19.202 +by (blast_tac (claset() addDs [Says_unique_NB, Spy_not_see_encrypted_key,
  19.203  			      impOfSubs Fake_analz_insert]) 1);
  19.204  (** LEVEL 14 **)
  19.205  (*Oops case: if the nonce is betrayed now, show that the Oops event is 
  19.206    covered by the quantified Oops assumption.*)
  19.207 -by (full_simp_tac (!simpset addsimps [all_conj_distrib]) 1);
  19.208 +by (full_simp_tac (simpset() addsimps [all_conj_distrib]) 1);
  19.209  by (forward_tac [Says_Server_imp_YM2] 1 THEN assume_tac 1 THEN etac exE 1);
  19.210  by (expand_case_tac "NB = NBa" 1);
  19.211  (*If NB=NBa then all other components of the Oops message agree*)
  19.212 -by (blast_tac (!claset addDs [Says_unique_NB]) 1 THEN flexflex_tac);
  19.213 +by (blast_tac (claset() addDs [Says_unique_NB]) 1 THEN flexflex_tac);
  19.214  (*case NB ~= NBa*)
  19.215 -by (asm_simp_tac (!simpset addsimps [single_Nonce_secrecy]) 1);
  19.216 -by (blast_tac (!claset addSEs [MPair_parts]
  19.217 +by (asm_simp_tac (simpset() addsimps [single_Nonce_secrecy]) 1);
  19.218 +by (blast_tac (claset() addSEs [MPair_parts]
  19.219  		       addDs  [Says_imp_spies RS parts.Inj, 
  19.220  			       no_nonce_YM1_YM2 (*to prove NB~=NAa*) ]) 1);
  19.221  bind_thm ("Spy_not_see_NB", result() RSN(2,rev_mp) RSN(2,rev_mp));
  19.222 @@ -565,7 +565,7 @@
  19.223  by (REPEAT_FIRST (eresolve_tac [asm_rl, exE]));
  19.224  by (forward_tac [Says_Server_imp_YM2] 1 THEN assume_tac 1);
  19.225  by (dtac unique_session_keys 1 THEN REPEAT (assume_tac 1));
  19.226 -by (blast_tac (!claset addDs [Says_unique_NB]) 1);
  19.227 +by (blast_tac (claset() addDs [Says_unique_NB]) 1);
  19.228  qed "B_trusts_YM4";
  19.229  
  19.230  
  19.231 @@ -596,7 +596,7 @@
  19.232  (*YM4*)
  19.233  by (Blast_tac 2);
  19.234  (*YM3*)
  19.235 -by (best_tac (!claset addSDs [B_Said_YM2, Says_imp_spies RS parts.Inj]
  19.236 +by (best_tac (claset() addSDs [B_Said_YM2, Says_imp_spies RS parts.Inj]
  19.237  		      addSEs [MPair_parts]) 1);
  19.238  val lemma = result() RSN (2, rev_mp) RS mp |> standard;
  19.239  
  19.240 @@ -607,7 +607,7 @@
  19.241  \           A ~: bad;  B ~: bad;  evs : yahalom |]                        \
  19.242  \   ==> Says B Server {|Agent B, Crypt (shrK B) {|Agent A, Nonce NA, nb|}|} \
  19.243  \         : set evs";
  19.244 -by (blast_tac (!claset addSDs [A_trusts_YM3, lemma]
  19.245 +by (blast_tac (claset() addSDs [A_trusts_YM3, lemma]
  19.246  		       addEs spies_partsEs) 1);
  19.247  qed "YM3_auth_B_to_A";
  19.248  
  19.249 @@ -628,12 +628,12 @@
  19.250  (*Fake*)
  19.251  by (Fake_parts_insert_tac 1);
  19.252  (*YM3: by new_keys_not_used we note that Crypt K (Nonce NB) could not exist*)
  19.253 -by (fast_tac (!claset addSDs [Crypt_imp_invKey_keysFor] addss (!simpset)) 1); 
  19.254 +by (fast_tac (claset() addSDs [Crypt_imp_invKey_keysFor] addss (simpset())) 1); 
  19.255  (*YM4: was Crypt K (Nonce NB) the very last message?  If not, use ind. hyp.*)
  19.256 -by (asm_simp_tac (!simpset addsimps [ex_disj_distrib]) 1);
  19.257 +by (asm_simp_tac (simpset() addsimps [ex_disj_distrib]) 1);
  19.258  (*yes: apply unicity of session keys*)
  19.259  by (not_bad_tac "Aa" 1);
  19.260 -by (blast_tac (!claset addSEs [MPair_parts]
  19.261 +by (blast_tac (claset() addSEs [MPair_parts]
  19.262                         addSDs [A_trusts_YM3, B_trusts_YM4_shrK]
  19.263  		       addDs  [Says_imp_spies RS parts.Inj,
  19.264  			       unique_session_keys]) 1);
  19.265 @@ -657,6 +657,6 @@
  19.266  by (rtac lemma 1);
  19.267  by (rtac Spy_not_see_encrypted_key 2);
  19.268  by (REPEAT_FIRST assume_tac);
  19.269 -by (blast_tac (!claset addSEs [MPair_parts]
  19.270 +by (blast_tac (claset() addSEs [MPair_parts]
  19.271  	       	       addDs [Says_imp_spies RS parts.Inj]) 1);
  19.272  qed_spec_mp "YM4_imp_A_Said_YM3";
    20.1 --- a/src/HOL/Auth/Yahalom2.ML	Mon Nov 03 12:22:43 1997 +0100
    20.2 +++ b/src/HOL/Auth/Yahalom2.ML	Mon Nov 03 12:24:13 1997 +0100
    20.3 @@ -45,7 +45,7 @@
    20.4  (*Lets us treat YM4 using a similar argument as for the Fake case.*)
    20.5  goal thy "!!evs. Says S A {|NB, Crypt (shrK A) Y, X|} : set evs ==> \
    20.6  \                X : analz (spies evs)";
    20.7 -by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
    20.8 +by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
    20.9  qed "YM4_analz_spies";
   20.10  
   20.11  bind_thm ("YM4_parts_spies",
   20.12 @@ -54,7 +54,7 @@
   20.13  (*Relates to both YM4 and Oops*)
   20.14  goal thy "!!evs. Says S A {|NB, Crypt (shrK A) {|B,K,NA|}, X|} : set evs ==> \
   20.15  \                K : parts (spies evs)";
   20.16 -by (blast_tac (!claset addSEs partsEs
   20.17 +by (blast_tac (claset() addSEs partsEs
   20.18                         addSDs [Says_imp_spies RS parts.Inj]) 1);
   20.19  qed "YM4_Key_parts_spies";
   20.20  
   20.21 @@ -88,13 +88,13 @@
   20.22  
   20.23  goal thy 
   20.24   "!!evs. evs : yahalom ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
   20.25 -by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
   20.26 +by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
   20.27  qed "Spy_analz_shrK";
   20.28  Addsimps [Spy_analz_shrK];
   20.29  
   20.30  goal thy  "!!A. [| Key (shrK A) : parts (spies evs);       \
   20.31  \                  evs : yahalom |] ==> A:bad";
   20.32 -by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
   20.33 +by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
   20.34  qed "Spy_see_shrK_D";
   20.35  
   20.36  bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
   20.37 @@ -106,15 +106,15 @@
   20.38  \         Key K ~: used evs --> K ~: keysFor (parts (spies evs))";
   20.39  by (parts_induct_tac 1);
   20.40  (*YM4: Key K is not fresh!*)
   20.41 -by (blast_tac (!claset addSEs spies_partsEs) 3);
   20.42 +by (blast_tac (claset() addSEs spies_partsEs) 3);
   20.43  (*YM3*)
   20.44 -by (blast_tac (!claset addss (!simpset)) 2);
   20.45 +by (blast_tac (claset() addss (simpset())) 2);
   20.46  (*Fake*)
   20.47  by (best_tac
   20.48 -      (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   20.49 +      (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
   20.50                 addIs  [impOfSubs analz_subset_parts]
   20.51                 addDs  [impOfSubs (analz_subset_parts RS keysFor_mono)]
   20.52 -               addss  (!simpset)) 1);
   20.53 +               addss  (simpset())) 1);
   20.54  qed_spec_mp "new_keys_not_used";
   20.55  
   20.56  bind_thm ("new_keys_not_analzd",
   20.57 @@ -189,15 +189,15 @@
   20.58  \           {|nb, Crypt (shrK A) {|Agent B, Key K, na|}, X|}   \
   20.59  \          : set evs --> A=A' & B=B' & na=na' & nb=nb' & X=X'";
   20.60  by (etac yahalom.induct 1);
   20.61 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
   20.62 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
   20.63  by (Clarify_tac 1);
   20.64  (*Remaining case: YM3*)
   20.65  by (expand_case_tac "K = ?y" 1);
   20.66  by (REPEAT (ares_tac [refl,exI,impI,conjI] 2));
   20.67  (*...we assume X is a recent message and handle this case by contradiction*)
   20.68 -by (blast_tac (!claset addSEs spies_partsEs
   20.69 +by (blast_tac (claset() addSEs spies_partsEs
   20.70                         delrules [conjI]    (*prevent split-up into 4 subgoals*)
   20.71 -                       addss (!simpset addsimps [parts_insertI])) 1);
   20.72 +                       addss (simpset() addsimps [parts_insertI])) 1);
   20.73  val lemma = result();
   20.74  
   20.75  goal thy 
   20.76 @@ -226,13 +226,13 @@
   20.77  by analz_spies_tac;
   20.78  by (ALLGOALS
   20.79      (asm_simp_tac 
   20.80 -     (!simpset addsimps expand_ifs
   20.81 +     (simpset() addsimps expand_ifs
   20.82  	       addsimps [analz_insert_eq, analz_insert_freshK]
   20.83                 addsplits [expand_if])));
   20.84  (*Oops*)
   20.85 -by (blast_tac (!claset addDs [unique_session_keys]) 3);
   20.86 +by (blast_tac (claset() addDs [unique_session_keys]) 3);
   20.87  (*YM3*)
   20.88 -by (blast_tac (!claset delrules [impCE]
   20.89 +by (blast_tac (claset() delrules [impCE]
   20.90                         addSEs spies_partsEs
   20.91                         addIs [impOfSubs analz_subset_parts]) 2);
   20.92  (*Fake*) 
   20.93 @@ -250,7 +250,7 @@
   20.94  \           A ~: bad;  B ~: bad;  evs : yahalom |]         \
   20.95  \        ==> Key K ~: analz (spies evs)";
   20.96  by (forward_tac [Says_Server_message_form] 1 THEN assume_tac 1);
   20.97 -by (blast_tac (!claset addSEs [lemma]) 1);
   20.98 +by (blast_tac (claset() addSEs [lemma]) 1);
   20.99  qed "Spy_not_see_encrypted_key";
  20.100  
  20.101  
  20.102 @@ -308,7 +308,7 @@
  20.103  \                      Crypt (shrK B) {|Nonce NB, Key K, Agent A|}|}     \
  20.104  \                   : set evs";
  20.105  by (etac (Says_imp_spies RS parts.Inj RS MPair_parts) 1);
  20.106 -by (blast_tac (!claset addSDs [B_trusts_YM4_shrK]) 1);
  20.107 +by (blast_tac (claset() addSDs [B_trusts_YM4_shrK]) 1);
  20.108  qed "B_trusts_YM4";
  20.109  
  20.110  
  20.111 @@ -341,7 +341,7 @@
  20.112  by (etac yahalom.induct 1);
  20.113  by (ALLGOALS Asm_simp_tac);
  20.114  (*YM3*)
  20.115 -by (blast_tac (!claset addSDs [B_Said_YM2]
  20.116 +by (blast_tac (claset() addSDs [B_Said_YM2]
  20.117  		       addSEs [MPair_parts]
  20.118  		       addDs [Says_imp_spies RS parts.Inj]) 3);
  20.119  (*Fake, YM2*)
  20.120 @@ -356,7 +356,7 @@
  20.121  \   ==> EX nb'. Says B Server                                               \
  20.122  \                    {|Agent B, nb', Crypt (shrK B) {|Agent A, Nonce NA|}|} \
  20.123  \                 : set evs";
  20.124 -by (blast_tac (!claset addSDs [A_trusts_YM3, lemma]
  20.125 +by (blast_tac (claset() addSDs [A_trusts_YM3, lemma]
  20.126  		       addEs spies_partsEs) 1);
  20.127  qed "YM3_auth_B_to_A";
  20.128  
  20.129 @@ -378,12 +378,12 @@
  20.130  (*Fake*)
  20.131  by (Fake_parts_insert_tac 1);
  20.132  (*YM3: by new_keys_not_used we note that Crypt K (Nonce NB) could not exist*)
  20.133 -by (fast_tac (!claset addSDs [Crypt_imp_invKey_keysFor] addss (!simpset)) 1); 
  20.134 +by (fast_tac (claset() addSDs [Crypt_imp_invKey_keysFor] addss (simpset())) 1); 
  20.135  (*YM4: was Crypt K (Nonce NB) the very last message?  If not, use ind. hyp.*)
  20.136 -by (asm_simp_tac (!simpset addsimps [ex_disj_distrib]) 1);
  20.137 +by (asm_simp_tac (simpset() addsimps [ex_disj_distrib]) 1);
  20.138  (*yes: apply unicity of session keys*)
  20.139  by (not_bad_tac "Aa" 1);
  20.140 -by (blast_tac (!claset addSEs [MPair_parts]
  20.141 +by (blast_tac (claset() addSEs [MPair_parts]
  20.142                         addSDs [A_trusts_YM3, B_trusts_YM4_shrK]
  20.143  		       addDs  [Says_imp_spies RS parts.Inj,
  20.144  			       unique_session_keys]) 1);
  20.145 @@ -400,10 +400,10 @@
  20.146  \        ==> EX X. Says A B {|X, Crypt K (Nonce NB)|} : set evs";
  20.147  by (etac (Says_imp_spies RS parts.Inj RS MPair_parts) 1);
  20.148  by (dtac B_trusts_YM4_shrK 1);
  20.149 -by (safe_tac (!claset));
  20.150 +by (safe_tac (claset()));
  20.151  by (rtac lemma 1);
  20.152  by (rtac Spy_not_see_encrypted_key 2);
  20.153  by (REPEAT_FIRST assume_tac);
  20.154 -by (ALLGOALS (blast_tac (!claset addSEs [MPair_parts]
  20.155 +by (ALLGOALS (blast_tac (claset() addSEs [MPair_parts]
  20.156  			         addDs [Says_imp_spies RS parts.Inj])));
  20.157  qed_spec_mp "YM4_imp_A_Said_YM3";
    21.1 --- a/src/HOL/AxClasses/Group/GroupDefs.ML	Mon Nov 03 12:22:43 1997 +0100
    21.2 +++ b/src/HOL/AxClasses/Group/GroupDefs.ML	Mon Nov 03 12:24:13 1997 +0100
    21.3 @@ -26,7 +26,7 @@
    21.4  
    21.5  (* cartesian products *)
    21.6  
    21.7 -val prod_ss = simpset_of "Prod";
    21.8 +val prod_ss = simpset_of Prod.thy;
    21.9  
   21.10  goalw thy [times_prod_def]
   21.11    "(x * y) * z = x * (y * (z::'a::semigroup*'b::semigroup))";
    22.1 --- a/src/HOL/AxClasses/Lattice/CLattice.ML	Mon Nov 03 12:22:43 1997 +0100
    22.2 +++ b/src/HOL/AxClasses/Lattice/CLattice.ML	Mon Nov 03 12:24:13 1997 +0100
    22.3 @@ -19,7 +19,7 @@
    22.4  qed "Inf_uniq";
    22.5  
    22.6  goalw thy [Ex1_def] "ALL A. EX! inf::'a::clattice. is_Inf A inf";
    22.7 -  by (safe_tac (!claset));
    22.8 +  by (safe_tac (claset()));
    22.9    by (Step_tac 1);
   22.10    by (Step_tac 1);
   22.11    br Inf_is_Inf 1;
   22.12 @@ -41,7 +41,7 @@
   22.13  qed "Sup_uniq";
   22.14  
   22.15  goalw thy [Ex1_def] "ALL A. EX! sup::'a::clattice. is_Sup A sup";
   22.16 -  by (safe_tac (!claset));
   22.17 +  by (safe_tac (claset()));
   22.18    by (Step_tac 1);
   22.19    by (Step_tac 1);
   22.20    br Sup_is_Sup 1;
   22.21 @@ -127,7 +127,7 @@
   22.22    br impI 1;
   22.23    by (stac le_Inf_eq 1);
   22.24    by (rewtac Ball_def);
   22.25 -  by (safe_tac (!claset));
   22.26 +  by (safe_tac (claset()));
   22.27    bd subsetD 1;
   22.28    ba 1;
   22.29    be Inf_lb 1;
   22.30 @@ -137,7 +137,7 @@
   22.31    br impI 1;
   22.32    by (stac ge_Sup_eq 1);
   22.33    by (rewtac Ball_def);
   22.34 -  by (safe_tac (!claset));
   22.35 +  by (safe_tac (claset()));
   22.36    bd subsetD 1;
   22.37    ba 1;
   22.38    be Sup_ub 1;
   22.39 @@ -149,7 +149,7 @@
   22.40  goal thy "Inf {x} = x";
   22.41    br (Inf_uniq RS mp) 1;
   22.42    by (rewtac is_Inf_def);
   22.43 -  by (safe_tac (!claset));
   22.44 +  by (safe_tac (claset()));
   22.45    br le_refl 1;
   22.46    by (Fast_tac 1);
   22.47  qed "sing_Inf_eq";
   22.48 @@ -157,7 +157,7 @@
   22.49  goal thy "Sup {x} = x";
   22.50    br (Sup_uniq RS mp) 1;
   22.51    by (rewtac is_Sup_def);
   22.52 -  by (safe_tac (!claset));
   22.53 +  by (safe_tac (claset()));
   22.54    br le_refl 1;
   22.55    by (Fast_tac 1);
   22.56  qed "sing_Sup_eq";
   22.57 @@ -166,7 +166,7 @@
   22.58  goal thy "Inf {} = Sup {x. True}";
   22.59    br (Inf_uniq RS mp) 1;
   22.60    by (rewtac is_Inf_def);
   22.61 -  by (safe_tac (!claset));
   22.62 +  by (safe_tac (claset()));
   22.63    br (sing_Sup_eq RS subst) 1;
   22.64    back();
   22.65    br (Sup_subset_mon RS mp) 1;
   22.66 @@ -176,7 +176,7 @@
   22.67  goal thy "Sup {} = Inf {x. True}";
   22.68    br (Sup_uniq RS mp) 1;
   22.69    by (rewtac is_Sup_def);
   22.70 -  by (safe_tac (!claset));
   22.71 +  by (safe_tac (claset()));
   22.72    br (sing_Inf_eq RS subst) 1;
   22.73    br (Inf_subset_antimon RS mp) 1;
   22.74    by (Fast_tac 1);
    23.1 --- a/src/HOL/AxClasses/Lattice/LatInsts.ML	Mon Nov 03 12:22:43 1997 +0100
    23.2 +++ b/src/HOL/AxClasses/Lattice/LatInsts.ML	Mon Nov 03 12:24:13 1997 +0100
    23.3 @@ -21,7 +21,7 @@
    23.4  goal thy "Inf (A Un B) = Inf A && Inf B";
    23.5    br (Inf_uniq RS mp) 1;
    23.6    by (rewtac is_Inf_def);
    23.7 -  by (safe_tac (!claset));
    23.8 +  by (safe_tac (claset()));
    23.9  
   23.10    br (conjI RS (le_trans RS mp)) 1;
   23.11    br inf_lb1 1;
   23.12 @@ -42,7 +42,7 @@
   23.13  goal thy "Inf (UN i:A. B i) = Inf {Inf (B i) |i. i:A}";
   23.14    br (Inf_uniq RS mp) 1;
   23.15    by (rewtac is_Inf_def);
   23.16 -  by (safe_tac (!claset));
   23.17 +  by (safe_tac (claset()));
   23.18    (*level 3*)
   23.19    br (conjI RS (le_trans RS mp)) 1;
   23.20    be Inf_lb 2;
   23.21 @@ -51,7 +51,7 @@
   23.22    by (Fast_tac 1);
   23.23    (*level 8*)
   23.24    by (stac le_Inf_eq 1);
   23.25 -  by (safe_tac (!claset));
   23.26 +  by (safe_tac (claset()));
   23.27    by (stac le_Inf_eq 1);
   23.28    by (Fast_tac 1);
   23.29  qed "Inf_UN_eq";
   23.30 @@ -61,7 +61,7 @@
   23.31  goal thy "Sup (A Un B) = Sup A || Sup B";
   23.32    br (Sup_uniq RS mp) 1;
   23.33    by (rewtac is_Sup_def);
   23.34 -  by (safe_tac (!claset));
   23.35 +  by (safe_tac (claset()));
   23.36  
   23.37    br (conjI RS (le_trans RS mp)) 1;
   23.38    be Sup_ub 1;
   23.39 @@ -82,7 +82,7 @@
   23.40  goal thy "Sup (UN i:A. B i) = Sup {Sup (B i) |i. i:A}";
   23.41    br (Sup_uniq RS mp) 1;
   23.42    by (rewtac is_Sup_def);
   23.43 -  by (safe_tac (!claset));
   23.44 +  by (safe_tac (claset()));
   23.45    (*level 3*)
   23.46    br (conjI RS (le_trans RS mp)) 1;
   23.47    be Sup_ub 1;
   23.48 @@ -92,7 +92,7 @@
   23.49    by (Fast_tac 1);
   23.50    (*level 8*)
   23.51    by (stac ge_Sup_eq 1);
   23.52 -  by (safe_tac (!claset));
   23.53 +  by (safe_tac (claset()));
   23.54    by (stac ge_Sup_eq 1);
   23.55    by (Fast_tac 1);
   23.56  qed "Sup_UN_eq";
    24.1 --- a/src/HOL/AxClasses/Lattice/LatMorph.ML	Mon Nov 03 12:22:43 1997 +0100
    24.2 +++ b/src/HOL/AxClasses/Lattice/LatMorph.ML	Mon Nov 03 12:24:13 1997 +0100
    24.3 @@ -5,7 +5,7 @@
    24.4  (** monotone functions vs. "&&"- / "||"-semi-morphisms **)
    24.5  
    24.6  goalw thy [is_mono_def] "is_mono f = (ALL x y. f (x && y) [= f x && f y)";
    24.7 -  by (safe_tac (!claset));
    24.8 +  by (safe_tac (claset()));
    24.9    (*==> (level 1)*)
   24.10      by (stac le_inf_eq 1);
   24.11      br conjI 1;
   24.12 @@ -28,7 +28,7 @@
   24.13  qed "mono_inf_eq";
   24.14  
   24.15  goalw thy [is_mono_def] "is_mono f = (ALL x y. f x || f y [= f (x || y))";
   24.16 -  by (safe_tac (!claset));
   24.17 +  by (safe_tac (claset()));
   24.18    (*==> (level 1)*)
   24.19      by (stac ge_sup_eq 1);
   24.20      br conjI 1;
    25.1 --- a/src/HOL/AxClasses/Lattice/LatPreInsts.ML	Mon Nov 03 12:22:43 1997 +0100
    25.2 +++ b/src/HOL/AxClasses/Lattice/LatPreInsts.ML	Mon Nov 03 12:24:13 1997 +0100
    25.3 @@ -22,13 +22,13 @@
    25.4  
    25.5  goalw thy [is_inf_def, le_prod_def] "is_inf p q (fst p && fst q, snd p && snd q)";
    25.6    by (Simp_tac 1);
    25.7 -  by (safe_tac (!claset));
    25.8 +  by (safe_tac (claset()));
    25.9    by (REPEAT_FIRST (fn i => resolve_tac [inf_lb1, inf_lb2, inf_ub_lbs] i ORELSE atac i));
   25.10  qed "prod_is_inf";
   25.11  
   25.12  goalw thy [is_sup_def, le_prod_def] "is_sup p q (fst p || fst q, snd p || snd q)";
   25.13    by (Simp_tac 1);
   25.14 -  by (safe_tac (!claset));
   25.15 +  by (safe_tac (claset()));
   25.16    by (REPEAT_FIRST (fn i => resolve_tac [sup_ub1, sup_ub2, sup_lb_ubs] i ORELSE atac i));
   25.17  qed "prod_is_sup";
   25.18  
   25.19 @@ -36,7 +36,7 @@
   25.20  (* functions *)
   25.21  
   25.22  goalw thy [is_inf_def, le_fun_def] "is_inf f g (%x. f x && g x)";
   25.23 -  by (safe_tac (!claset));
   25.24 +  by (safe_tac (claset()));
   25.25    br inf_lb1 1;
   25.26    br inf_lb2 1;
   25.27    br inf_ub_lbs 1;
   25.28 @@ -44,7 +44,7 @@
   25.29  qed "fun_is_inf";
   25.30  
   25.31  goalw thy [is_sup_def, le_fun_def] "is_sup f g (%x. f x || g x)";
   25.32 -  by (safe_tac (!claset));
   25.33 +  by (safe_tac (claset()));
   25.34    br sup_ub1 1;
   25.35    br sup_ub2 1;
   25.36    br sup_lb_ubs 1;
   25.37 @@ -57,7 +57,7 @@
   25.38  
   25.39  goalw thy [is_inf_def, le_dual_def] "is_inf x y (Abs_dual (Rep_dual x || Rep_dual y))";
   25.40    by (stac Abs_dual_inverse' 1);
   25.41 -  by (safe_tac (!claset));
   25.42 +  by (safe_tac (claset()));
   25.43    br sup_ub1 1;
   25.44    br sup_ub2 1;
   25.45    br sup_lb_ubs 1;
   25.46 @@ -67,7 +67,7 @@
   25.47  
   25.48  goalw thy [is_sup_def, le_dual_def] "is_sup x y (Abs_dual (Rep_dual x && Rep_dual y))";
   25.49    by (stac Abs_dual_inverse' 1);
   25.50 -  by (safe_tac (!claset));
   25.51 +  by (safe_tac (claset()));
   25.52    br inf_lb1 1;
   25.53    br inf_lb2 1;
   25.54    br inf_ub_lbs 1;
    26.1 --- a/src/HOL/AxClasses/Lattice/Lattice.ML	Mon Nov 03 12:22:43 1997 +0100
    26.2 +++ b/src/HOL/AxClasses/Lattice/Lattice.ML	Mon Nov 03 12:24:13 1997 +0100
    26.3 @@ -19,7 +19,7 @@
    26.4  qed "inf_uniq";
    26.5  
    26.6  goalw thy [Ex1_def] "ALL x y. EX! inf::'a::lattice. is_inf x y inf";
    26.7 -  by (safe_tac (!claset));
    26.8 +  by (safe_tac (claset()));
    26.9    by (Step_tac 1);
   26.10    by (Step_tac 1);
   26.11    br inf_is_inf 1;
   26.12 @@ -41,7 +41,7 @@
   26.13  qed "sup_uniq";
   26.14  
   26.15  goalw thy [Ex1_def] "ALL x y. EX! sup::'a::lattice. is_sup x y sup";
   26.16 -  by (safe_tac (!claset));
   26.17 +  by (safe_tac (claset()));
   26.18    by (Step_tac 1);
   26.19    by (Step_tac 1);
   26.20    br sup_is_sup 1;
    27.1 --- a/src/HOL/AxClasses/Lattice/OrdDefs.ML	Mon Nov 03 12:22:43 1997 +0100
    27.2 +++ b/src/HOL/AxClasses/Lattice/OrdDefs.ML	Mon Nov 03 12:24:13 1997 +0100
    27.3 @@ -13,7 +13,7 @@
    27.4  qed "le_prod_refl";
    27.5  
    27.6  goalw thy [le_prod_def] "x [= y & y [= z --> x [= (z::'a::quasi_order*'b::quasi_order)";
    27.7 -  by (safe_tac (!claset));
    27.8 +  by (safe_tac (claset()));
    27.9    be (conjI RS (le_trans RS mp)) 1;
   27.10    ba 1;
   27.11    be (conjI RS (le_trans RS mp)) 1;
   27.12 @@ -21,7 +21,7 @@
   27.13  qed "le_prod_trans";
   27.14  
   27.15  goalw thy [le_prod_def] "x [= y & y [= x --> x = (y::'a::partial_order*'b::partial_order)";
   27.16 -  by (safe_tac (!claset));
   27.17 +  by (safe_tac (claset()));
   27.18    by (stac Pair_fst_snd_eq 1);
   27.19    br conjI 1;
   27.20    be (conjI RS (le_antisym RS mp)) 1;
   27.21 @@ -39,13 +39,13 @@
   27.22  qed "le_fun_refl";
   27.23  
   27.24  goalw thy [le_fun_def] "f [= g & g [= h --> f [= (h::'a=>'b::quasi_order)";
   27.25 -  by (safe_tac (!claset));
   27.26 +  by (safe_tac (claset()));
   27.27    br (le_trans RS mp) 1;
   27.28    by (Fast_tac 1);
   27.29  qed "le_fun_trans";
   27.30  
   27.31  goalw thy [le_fun_def] "f [= g & g [= f --> f = (g::'a=>'b::partial_order)";
   27.32 -  by (safe_tac (!claset));
   27.33 +  by (safe_tac (claset()));
   27.34    br ext 1;
   27.35    br (le_antisym RS mp) 1;
   27.36    by (Fast_tac 1);
   27.37 @@ -73,7 +73,7 @@
   27.38  qed "le_dual_trans";
   27.39  
   27.40  goalw thy [le_dual_def] "x [= y & y [= x --> x = (y::'a::partial_order dual)";
   27.41 -  by (safe_tac (!claset));
   27.42 +  by (safe_tac (claset()));
   27.43    br (Rep_dual_inverse RS subst) 1;
   27.44    br sym 1;
   27.45    br (Rep_dual_inverse RS subst) 1;
    28.1 --- a/src/HOL/AxClasses/Lattice/Order.ML	Mon Nov 03 12:22:43 1997 +0100
    28.2 +++ b/src/HOL/AxClasses/Lattice/Order.ML	Mon Nov 03 12:24:13 1997 +0100
    28.3 @@ -45,7 +45,7 @@
    28.4  (* associativity *)
    28.5  
    28.6  goalw thy [is_inf_def] "is_inf x y xy & is_inf y z yz & is_inf xy z xyz --> is_inf x yz xyz";
    28.7 -  by (safe_tac (!claset));
    28.8 +  by (safe_tac (claset()));
    28.9    (*level 1*)
   28.10      br (le_trans RS mp) 1;
   28.11      be conjI 1;
   28.12 @@ -79,7 +79,7 @@
   28.13  
   28.14  
   28.15  goalw thy [is_sup_def] "is_sup x y xy & is_sup y z yz & is_sup xy z xyz --> is_sup x yz xyz";
   28.16 -  by (safe_tac (!claset));
   28.17 +  by (safe_tac (claset()));
   28.18    (*level 1*)
   28.19      br (le_trans RS mp) 1;
   28.20      be conjI 1;
   28.21 @@ -155,7 +155,7 @@
   28.22    (*==>*)
   28.23      by (Fast_tac 1);
   28.24    (*<==*)
   28.25 -    by (safe_tac (!claset));
   28.26 +    by (safe_tac (claset()));
   28.27      by (Step_tac 1);
   28.28      be mp 1;
   28.29      by (Fast_tac 1);
   28.30 @@ -166,7 +166,7 @@
   28.31    (*==>*)
   28.32      by (Fast_tac 1);
   28.33    (*<==*)
   28.34 -    by (safe_tac (!claset));
   28.35 +    by (safe_tac (claset()));
   28.36      by (Step_tac 1);
   28.37      be mp 1;
   28.38      by (Fast_tac 1);
    29.1 --- a/src/HOL/AxClasses/Tutorial/ProdGroupInsts.thy	Mon Nov 03 12:22:43 1997 +0100
    29.2 +++ b/src/HOL/AxClasses/Tutorial/ProdGroupInsts.thy	Mon Nov 03 12:24:13 1997 +0100
    29.3 @@ -15,6 +15,6 @@
    29.4  
    29.5  instance
    29.6    "*" :: (semigroup, semigroup) semigroup
    29.7 -    {| simp_tac (!simpset addsimps [assoc]) 1 |}
    29.8 +    {| SIMPSET' (fn ss => simp_tac (ss addsimps [assoc])) 1 |}
    29.9  
   29.10  end
    30.1 --- a/src/HOL/thy_syntax.ML	Mon Nov 03 12:22:43 1997 +0100
    30.2 +++ b/src/HOL/thy_syntax.ML	Mon Nov 03 12:24:13 1997 +0100
    30.3 @@ -276,7 +276,7 @@
    30.4  
    30.5  val rec_decl = (name -- string -- 
    30.6  		optional ("congs" $$-- string >> trim) "[]" -- 
    30.7 -		optional ("simpset" $$-- string >> trim) "!simpset" -- 
    30.8 +		optional ("simpset" $$-- string >> trim) "simpset()" -- 
    30.9  		repeat1 string >> mk_rec_decl) ;
   30.10  
   30.11  
    31.1 --- a/src/ZF/AC.ML	Mon Nov 03 12:22:43 1997 +0100
    31.2 +++ b/src/ZF/AC.ML	Mon Nov 03 12:24:13 1997 +0100
    31.3 @@ -12,9 +12,9 @@
    31.4  val [nonempty] = goal AC.thy
    31.5       "[| !!x. x:A ==> (EX y. y:B(x)) |] ==> EX z. z : Pi(A,B)";
    31.6  by (excluded_middle_tac "A=0" 1);
    31.7 -by (asm_simp_tac (!simpset addsimps [Pi_empty1]) 2 THEN Blast_tac 2);
    31.8 +by (asm_simp_tac (simpset() addsimps [Pi_empty1]) 2 THEN Blast_tac 2);
    31.9  (*The non-trivial case*)
   31.10 -by (blast_tac (!claset addIs [AC, nonempty]) 1);
   31.11 +by (blast_tac (claset() addIs [AC, nonempty]) 1);
   31.12  qed "AC_Pi";
   31.13  
   31.14  (*Using dtac, this has the advantage of DELETING the universal quantifier*)
   31.15 @@ -35,7 +35,7 @@
   31.16  \     |] ==> EX f: A->Union(A). ALL x:A. f`x : x";
   31.17  by (res_inst_tac [("B1", "%x. x")] (AC_Pi RS exE) 1);
   31.18  by (etac nonempty 1);
   31.19 -by (blast_tac (!claset addDs [apply_type] addIs [Pi_type]) 1);
   31.20 +by (blast_tac (claset() addDs [apply_type] addIs [Pi_type]) 1);
   31.21  qed "AC_func";
   31.22  
   31.23  goal ZF.thy "!!x A. [| 0 ~: A;  x: A |] ==> EX y. y:x";
    32.1 --- a/src/ZF/AC/AC0_AC1.ML	Mon Nov 03 12:22:43 1997 +0100
    32.2 +++ b/src/ZF/AC/AC0_AC1.ML	Mon Nov 03 12:24:13 1997 +0100
    32.3 @@ -11,7 +11,7 @@
    32.4  qed "subset_Pow_Union";
    32.5  
    32.6  goal thy "!!f. [| f:(PROD X:A. X); D<=A |] ==> EX g. g:(PROD X:D. X)";
    32.7 -by (fast_tac (!claset addSIs [restrict_type, apply_type]) 1);
    32.8 +by (fast_tac (claset() addSIs [restrict_type, apply_type]) 1);
    32.9  val lemma1 = result();
   32.10  
   32.11  goalw thy AC_defs "!!Z. AC0 ==> AC1"; 
   32.12 @@ -21,6 +21,6 @@
   32.13  goalw thy AC_defs "!!Z. AC1 ==> AC0";
   32.14  by (Deepen_tac 0 1);
   32.15  (*Large search space.  Faster proof by
   32.16 -  by (fast_tac (!claset addSIs [notI, singletonI] addSEs [notE, DiffE]) 1);
   32.17 +  by (fast_tac (claset() addSIs [notI, singletonI] addSEs [notE, DiffE]) 1);
   32.18  *)
   32.19  qed "AC1_AC0";
    33.1 --- a/src/ZF/AC/AC10_AC15.ML	Mon Nov 03 12:22:43 1997 +0100
    33.2 +++ b/src/ZF/AC/AC10_AC15.ML	Mon Nov 03 12:24:13 1997 +0100
    33.3 @@ -30,7 +30,7 @@
    33.4  goalw thy [lepoll_def] "!!A. A~=0 ==> B lepoll A*B";
    33.5  by (etac not_emptyE 1);
    33.6  by (res_inst_tac [("x","lam z:B. <x,z>")] exI 1);
    33.7 -by (fast_tac (!claset addSIs [snd_conv, lam_injective]) 1);
    33.8 +by (fast_tac (claset() addSIs [snd_conv, lam_injective]) 1);
    33.9  qed "lepoll_Sigma";
   33.10  
   33.11  goal thy "!!A. 0~:A ==> ALL B:{cons(0,x*nat). x:A}. ~Finite(B)";
   33.12 @@ -79,13 +79,13 @@
   33.13  by (res_inst_tac [("d", "%y. P(converse(f)`y)")] lam_injective 1);
   33.14  by (etac RepFunE 1);
   33.15  by (forward_tac [inj_is_fun RS apply_type] 1 THEN (assume_tac 1));
   33.16 -by (fast_tac (!claset addIs [LeastI2]
   33.17 +by (fast_tac (claset() addIs [LeastI2]
   33.18                  addSEs [Ord_in_Ord, inj_is_fun RS apply_type]) 1);
   33.19  by (etac RepFunE 1);
   33.20  by (rtac LeastI2 1);
   33.21  by (Fast_tac 1);
   33.22 -by (fast_tac (!claset addSEs [Ord_in_Ord, inj_is_fun RS apply_type]) 1);
   33.23 -by (fast_tac (!claset addEs [sym, left_inverse RS ssubst]) 1);
   33.24 +by (fast_tac (claset() addSEs [Ord_in_Ord, inj_is_fun RS apply_type]) 1);
   33.25 +by (fast_tac (claset() addEs [sym, left_inverse RS ssubst]) 1);
   33.26  val lemma4 = result();
   33.27  
   33.28  goal thy "!!A. [| n:nat; B:A; u(B) <= cons(0, B*nat); 0:u(B); 2 lepoll u(B);  \
   33.29 @@ -100,8 +100,8 @@
   33.30                  addEs [lepoll_trans RS succ_lepoll_natE, ssubst]
   33.31                  addSIs [notI, lepoll_refl, nat_0I]) 1);
   33.32  by (rtac conjI 1);
   33.33 -by (fast_tac (!claset addSIs [fst_type] addSEs [consE]) 1);
   33.34 -by (fast_tac (!claset addSEs [equalityE,
   33.35 +by (fast_tac (claset() addSIs [fst_type] addSEs [consE]) 1);
   33.36 +by (fast_tac (claset() addSEs [equalityE,
   33.37                  Diff_lepoll RS (nat_into_Ord RSN (2, lemma4))]) 1);
   33.38  val lemma5 = result();
   33.39  
   33.40 @@ -141,11 +141,11 @@
   33.41  (* ********************************************************************** *)
   33.42  
   33.43  goalw thy AC_defs "!!Z. AC12 ==> AC15";
   33.44 -by (safe_tac (!claset));
   33.45 +by (safe_tac (claset()));
   33.46  by (etac allE 1);
   33.47  by (etac impE 1);
   33.48  by (etac cons_times_nat_not_Finite 1);
   33.49 -by (fast_tac (!claset addSIs [ex_fun_AC13_AC15]) 1);
   33.50 +by (fast_tac (claset() addSIs [ex_fun_AC13_AC15]) 1);
   33.51  qed "AC12_AC15";
   33.52  
   33.53  (* ********************************************************************** *)
   33.54 @@ -167,7 +167,7 @@
   33.55  (* ********************************************************************** *)
   33.56  
   33.57  goalw thy AC_defs "!!n. [| n:nat; 1 le n; AC10(n) |] ==> AC13(n)";
   33.58 -by (safe_tac (!claset));
   33.59 +by (safe_tac (claset()));
   33.60  by (fast_tac (empty_cs addSEs [allE, cons_times_nat_not_Finite RSN (2, impE),
   33.61                                  ex_fun_AC13_AC15]) 1);
   33.62  qed "AC10_AC13";
   33.63 @@ -187,10 +187,10 @@
   33.64  by (mp_tac 1);
   33.65  by (etac exE 1);
   33.66  by (res_inst_tac [("x","lam x:A. {f`x}")] exI 1);
   33.67 -by (asm_full_simp_tac (!simpset addsimps
   33.68 +by (asm_full_simp_tac (simpset() addsimps
   33.69                  [singleton_eqpoll_1 RS eqpoll_imp_lepoll,
   33.70                  singletonI RS not_emptyI]) 1);
   33.71 -by (fast_tac (!claset addSEs [apply_type]) 1);
   33.72 +by (fast_tac (claset() addSEs [apply_type]) 1);
   33.73  qed "AC1_AC13";
   33.74  
   33.75  (* ********************************************************************** *)
   33.76 @@ -199,7 +199,7 @@
   33.77  
   33.78  goalw thy AC_defs "!!m n. [| m:nat; n:nat; m le n; AC13(m) |] ==> AC13(n)";
   33.79  by (dtac nat_le_imp_lepoll 1 THEN REPEAT (assume_tac 1));
   33.80 -by (fast_tac (!claset addSEs [lepoll_trans]) 1);
   33.81 +by (fast_tac (claset() addSEs [lepoll_trans]) 1);
   33.82  qed "AC13_mono";
   33.83  
   33.84  (* ********************************************************************** *)
   33.85 @@ -231,7 +231,7 @@
   33.86  (* ********************************************************************** *)
   33.87  
   33.88  goal thy "!!A. [| A~=0; A lepoll 1 |] ==> EX a. A={a}";
   33.89 -by (fast_tac (!claset addSEs [not_emptyE, lepoll_1_is_sing]) 1);
   33.90 +by (fast_tac (claset() addSEs [not_emptyE, lepoll_1_is_sing]) 1);
   33.91  qed "lemma_aux";
   33.92  
   33.93  goal thy "!!f. ALL B:A. f(B)~=0 & f(B)<=B & f(B) lepoll 1  \
   33.94 @@ -240,12 +240,12 @@
   33.95  by (dtac bspec 1 THEN (assume_tac 1));
   33.96  by (REPEAT (etac conjE 1));
   33.97  by (eresolve_tac [lemma_aux RS exE] 1 THEN (assume_tac 1));
   33.98 -by (asm_full_simp_tac (!simpset addsimps [the_element]) 1);
   33.99 -by (fast_tac (!claset addEs [ssubst]) 1);
  33.100 +by (asm_full_simp_tac (simpset() addsimps [the_element]) 1);
  33.101 +by (fast_tac (claset() addEs [ssubst]) 1);
  33.102  val lemma = result();
  33.103  
  33.104  goalw thy AC_defs "!!Z. AC13(1) ==> AC1";
  33.105 -by (fast_tac (!claset addSEs [lemma]) 1);
  33.106 +by (fast_tac (claset() addSEs [lemma]) 1);
  33.107  qed "AC13_AC1";
  33.108  
  33.109  (* ********************************************************************** *)
  33.110 @@ -253,5 +253,5 @@
  33.111  (* ********************************************************************** *)
  33.112  
  33.113  goalw thy [AC11_def, AC14_def] "!!Z. AC11 ==> AC14";
  33.114 -by (fast_tac (!claset addSIs [AC10_AC13]) 1);
  33.115 +by (fast_tac (claset() addSIs [AC10_AC13]) 1);
  33.116  qed "AC11_AC14";
    34.1 --- a/src/ZF/AC/AC15_WO6.ML	Mon Nov 03 12:22:43 1997 +0100
    34.2 +++ b/src/ZF/AC/AC15_WO6.ML	Mon Nov 03 12:24:13 1997 +0100
    34.3 @@ -8,15 +8,15 @@
    34.4  open AC15_WO6;
    34.5  
    34.6  goal thy "!!x. Ord(x) ==> (UN a<x. F(a)) = (UN a:x. F(a))";
    34.7 -by (fast_tac (!claset addSIs [ltI] addSDs [ltD]) 1);
    34.8 +by (fast_tac (claset() addSIs [ltI] addSDs [ltD]) 1);
    34.9  qed "OUN_eq_UN";
   34.10  
   34.11  val [prem] = goal thy "ALL x:Pow(A)-{0}. f`x~=0 & f`x<=x & f`x lepoll m ==>  \
   34.12  \       (UN i<LEAST x. HH(f,A,x)={A}. HH(f,A,i)) = A";
   34.13 -by (simp_tac (!simpset addsimps [Ord_Least RS OUN_eq_UN]) 1);
   34.14 +by (simp_tac (simpset() addsimps [Ord_Least RS OUN_eq_UN]) 1);
   34.15  by (rtac equalityI 1);
   34.16 -by (fast_tac (!claset addSDs [less_Least_subset_x]) 1);
   34.17 -by (fast_tac (!claset addSDs [prem RS bspec]
   34.18 +by (fast_tac (claset() addSDs [less_Least_subset_x]) 1);
   34.19 +by (fast_tac (claset() addSDs [prem RS bspec]
   34.20                  addSIs [f_subsets_imp_UN_HH_eq_x RS (Diff_eq_0_iff RS iffD1)]) 1);
   34.21  val lemma1 = result();
   34.22  
   34.23 @@ -26,7 +26,7 @@
   34.24  by (dresolve_tac [ltD RS less_Least_subset_x] 1);
   34.25  by (forward_tac [HH_subset_imp_eq] 1);
   34.26  by (etac ssubst 1);
   34.27 -by (fast_tac (!claset addIs [prem RS ballE]
   34.28 +by (fast_tac (claset() addIs [prem RS ballE]
   34.29                  addSDs [HH_subset_x_imp_subset_Diff_UN RS not_emptyI2]) 1);
   34.30  val lemma2 = result();
   34.31  
   34.32 @@ -41,6 +41,6 @@
   34.33  by (res_inst_tac [("x","LEAST i. HH(f,A,i)={A}")] exI 1);
   34.34  by (res_inst_tac [("x","lam j: (LEAST i. HH(f,A,i)={A}). HH(f,A,j)")] exI 1);
   34.35  by (Asm_full_simp_tac 1);
   34.36 -by (fast_tac (!claset addSIs [Ord_Least, lam_type RS domain_of_fun]
   34.37 +by (fast_tac (claset() addSIs [Ord_Least, lam_type RS domain_of_fun]
   34.38                  addSEs [less_Least_subset_x, lemma1, lemma2]) 1);
   34.39  qed "AC15_WO6";
    35.1 --- a/src/ZF/AC/AC16_WO4.ML	Mon Nov 03 12:22:43 1997 +0100
    35.2 +++ b/src/ZF/AC/AC16_WO4.ML	Mon Nov 03 12:24:13 1997 +0100
    35.3 @@ -21,7 +21,7 @@
    35.4  by (res_inst_tac [("x","lam i:n. {f`i}")] exI 1);
    35.5  by (Asm_full_simp_tac 1);
    35.6  by (rewrite_goals_tac [bij_def, surj_def]);
    35.7 -by (fast_tac (!claset addSIs [ltI, nat_into_Ord, lam_funtype RS domain_of_fun,
    35.8 +by (fast_tac (claset() addSIs [ltI, nat_into_Ord, lam_funtype RS domain_of_fun,
    35.9          equalityI, singleton_eqpoll_1 RS eqpoll_imp_lepoll RS lepoll_trans,
   35.10          nat_1_lepoll_iff RS iffD2]
   35.11          addSEs [apply_type, ltE]) 1);
   35.12 @@ -35,12 +35,12 @@
   35.13  bind_thm ("well_ord_paired", (paired_bij RS bij_is_inj RS well_ord_rvimage));
   35.14  
   35.15  goal thy "!!A. [| A lepoll B; ~ A lepoll C |] ==> ~ B lepoll C";
   35.16 -by (fast_tac (!claset addEs [notE, lepoll_trans]) 1);
   35.17 +by (fast_tac (claset() addEs [notE, lepoll_trans]) 1);
   35.18  qed "lepoll_trans1";
   35.19  
   35.20  goalw thy [lepoll_def]
   35.21          "!!X.[| Y lepoll X; well_ord(X, R) |] ==> EX S. well_ord(Y, S)";
   35.22 -by (fast_tac (!claset addSEs [well_ord_rvimage]) 1);
   35.23 +by (fast_tac (claset() addSEs [well_ord_rvimage]) 1);
   35.24  qed "well_ord_lepoll";
   35.25  
   35.26  goal thy "!!X. [| well_ord(X,R); well_ord(Y,S)  \
   35.27 @@ -57,7 +57,7 @@
   35.28  by (res_inst_tac [("x","{{a,x}. a:nat Un  Hartog(z)}")] exI 1);
   35.29  by (resolve_tac [transfer thy Ord_nat RS well_ord_Memrel RS (Ord_Hartog RS
   35.30                  well_ord_Memrel RSN (2, well_ord_Un)) RS exE] 1);
   35.31 -by (fast_tac (!claset addSIs [Ord_Hartog, well_ord_Memrel, well_ord_paired,
   35.32 +by (fast_tac (claset() addSIs [Ord_Hartog, well_ord_Memrel, well_ord_paired,
   35.33          equals0I, HartogI RSN (2, lepoll_trans1),
   35.34          subset_imp_lepoll RS (paired_eqpoll RS eqpoll_sym RS
   35.35          eqpoll_imp_lepoll RSN (2, lepoll_trans))]
   35.36 @@ -68,7 +68,7 @@
   35.37  val lemma2 = result();
   35.38  
   35.39  val [prem] = goal thy "~Finite(B) ==> ~Finite(A Un B)";
   35.40 -by (fast_tac (!claset
   35.41 +by (fast_tac (claset()
   35.42          addSIs [subset_imp_lepoll RS (prem RSN (2, lepoll_infinite))]) 1);
   35.43  qed "infinite_Un";
   35.44  
   35.45 @@ -90,13 +90,13 @@
   35.46  by (res_inst_tac [("d","%z. if(z=y, A, converse(f)`z)")] lam_injective 1);
   35.47  by (ALLGOALS
   35.48      (asm_simp_tac 
   35.49 -     (!simpset addsimps [inj_is_fun RS apply_type, left_inverse] 
   35.50 +     (simpset() addsimps [inj_is_fun RS apply_type, left_inverse] 
   35.51        setloop (split_tac [expand_if] ORELSE' Step_tac))));
   35.52  qed "succ_not_lepoll_lemma";
   35.53  
   35.54  goalw thy [lepoll_def, eqpoll_def, bij_def, surj_def]
   35.55          "!!A. [| ~A eqpoll B; A lepoll B |] ==> succ(A) lepoll B";
   35.56 -by (fast_tac (!claset addSEs [succ_not_lepoll_lemma, inj_is_fun]) 1);
   35.57 +by (fast_tac (claset() addSEs [succ_not_lepoll_lemma, inj_is_fun]) 1);
   35.58  qed "succ_not_lepoll_imp_eqpoll";
   35.59  
   35.60  val [prem] = goalw thy [s_u_def]
   35.61 @@ -108,7 +108,7 @@
   35.62  by (etac CollectE 1);
   35.63  by (etac conjE 1);
   35.64  by (etac swap 1);
   35.65 -by (fast_tac (!claset addSEs [succ_not_lepoll_imp_eqpoll]) 1);
   35.66 +by (fast_tac (claset() addSEs [succ_not_lepoll_imp_eqpoll]) 1);
   35.67  qed "suppose_not";
   35.68  
   35.69  (* ********************************************************************** *)
   35.70 @@ -130,13 +130,13 @@
   35.71  by (etac nat_lepoll_imp_ex_eqpoll_n 1);
   35.72  by (resolve_tac [ordertype_eqpoll RS eqpoll_sym RS eqpoll_imp_lepoll
   35.73          RSN (2, lepoll_trans)] 1 THEN (assume_tac 2));
   35.74 -by (fast_tac (!claset addSIs [nat_le_infinite_Ord RS le_imp_lepoll]
   35.75 +by (fast_tac (claset() addSIs [nat_le_infinite_Ord RS le_imp_lepoll]
   35.76                  addSEs [Ord_ordertype, ordertype_eqpoll RS eqpoll_imp_lepoll
   35.77                          RS lepoll_infinite]) 1);
   35.78  qed "ex_subset_eqpoll_n";
   35.79  
   35.80  goalw thy [lesspoll_def] "!!n. n: nat ==> n lesspoll nat";
   35.81 -by (fast_tac (!claset addSEs [Ord_nat RSN (2, ltI) RS leI RS le_imp_lepoll,
   35.82 +by (fast_tac (claset() addSEs [Ord_nat RSN (2, ltI) RS leI RS le_imp_lepoll,
   35.83          eqpoll_sym RS eqpoll_imp_lepoll]
   35.84          addIs [Ord_nat RSN (2, nat_succI RS ltI) RS leI
   35.85          RS le_imp_lepoll RS lepoll_trans RS succ_lepoll_natE]) 1);
   35.86 @@ -162,7 +162,7 @@
   35.87  
   35.88  goal thy "!!x. [| a eqpoll k; a<=y; b:y-a; u:x; x Int y = 0  \
   35.89  \       |] ==> cons(b, cons(u, a)) eqpoll succ(succ(k))";
   35.90 -by (fast_tac (!claset addSIs [cons_eqpoll_succ] addEs [equals0D]) 1);
   35.91 +by (fast_tac (claset() addSIs [cons_eqpoll_succ] addEs [equals0D]) 1);
   35.92  qed "cons_cons_eqpoll";
   35.93  
   35.94  goalw thy [s_u_def] "s_u(u, t_n, k, y) <= t_n";
   35.95 @@ -172,7 +172,7 @@
   35.96  goalw thy [s_u_def, succ_def]
   35.97          "!!w. [| w:t_n; cons(b,cons(u,a)) <= w; a <= y; b : y-a; k eqpoll a  \
   35.98  \       |] ==> w: s_u(u, t_n, succ(k), y)";
   35.99 -by (fast_tac (!claset addDs [eqpoll_imp_lepoll RS cons_lepoll_cong]
  35.100 +by (fast_tac (claset() addDs [eqpoll_imp_lepoll RS cons_lepoll_cong]
  35.101                  addSEs [subset_imp_lepoll RSN (2, lepoll_trans)]) 1);
  35.102  qed "s_uI";
  35.103  
  35.104 @@ -198,7 +198,7 @@
  35.105  by (etac allE 1);
  35.106  by (etac impE 1);
  35.107  by (assume_tac 2);
  35.108 -by (fast_tac (!claset addSEs [s_u_subset RS subsetD, in_s_u_imp_u_in]) 1);
  35.109 +by (fast_tac (claset() addSEs [s_u_subset RS subsetD, in_s_u_imp_u_in]) 1);
  35.110  qed "ex1_superset_a";
  35.111  
  35.112  goal thy
  35.113 @@ -213,7 +213,7 @@
  35.114  by (Fast_tac 1);
  35.115  by (dtac cons_eqpoll_succ 1);
  35.116  by (Fast_tac 1);
  35.117 -by (fast_tac (!claset addSIs [nat_succI]
  35.118 +by (fast_tac (claset() addSIs [nat_succI]
  35.119          addSEs [[eqpoll_sym RS eqpoll_imp_lepoll, subset_imp_lepoll] MRS
  35.120          (lepoll_trans RS lepoll_trans) RS succ_lepoll_natE]) 1);
  35.121  qed "set_eq_cons";
  35.122 @@ -231,7 +231,7 @@
  35.123  qed "the_eq_cons";
  35.124  
  35.125  goal thy "!!a. [| cons(x,a) = cons(y,a); x~: a |] ==> x = y ";
  35.126 -by (fast_tac (!claset addSEs [equalityE]) 1);
  35.127 +by (fast_tac (claset() addSEs [equalityE]) 1);
  35.128  qed "cons_eqE";
  35.129  
  35.130  goal thy "!!A. A = B ==> A Int C = B Int C";
  35.131 @@ -285,8 +285,8 @@
  35.132          "!!k. [| k:nat; m:nat |] ==>  \
  35.133  \       ALL A B. A eqpoll k #+ m & k lepoll B & B<=A --> A-B lepoll m";
  35.134  by (eres_inst_tac [("n","k")] nat_induct 1);
  35.135 -by (simp_tac (!simpset addsimps [add_0]) 1);
  35.136 -by (fast_tac (!claset addIs [eqpoll_imp_lepoll RS
  35.137 +by (simp_tac (simpset() addsimps [add_0]) 1);
  35.138 +by (fast_tac (claset() addIs [eqpoll_imp_lepoll RS
  35.139          (Diff_subset RS subset_imp_lepoll RS lepoll_trans)]) 1);
  35.140  by (REPEAT (resolve_tac [allI,impI] 1));
  35.141  by (resolve_tac [succ_lepoll_imp_not_empty RS not_emptyE] 1);
  35.142 @@ -294,8 +294,8 @@
  35.143  by (eres_inst_tac [("x","A - {xa}")] allE 1);
  35.144  by (eres_inst_tac [("x","B - {xa}")] allE 1);
  35.145  by (etac impE 1);
  35.146 -by (asm_full_simp_tac (!simpset addsimps [add_succ]) 1);
  35.147 -by (fast_tac (!claset addSIs [Diff_sing_eqpoll, lepoll_Diff_sing]) 1);
  35.148 +by (asm_full_simp_tac (simpset() addsimps [add_succ]) 1);
  35.149 +by (fast_tac (claset() addSIs [Diff_sing_eqpoll, lepoll_Diff_sing]) 1);
  35.150  by (res_inst_tac [("P","%z. z lepoll m")] subst 1 THEN (assume_tac 2));
  35.151  by (Fast_tac 1);
  35.152  qed "eqpoll_sum_imp_Diff_lepoll_lemma";
  35.153 @@ -317,17 +317,17 @@
  35.154          "!!k. [| k:nat; m:nat |] ==>  \
  35.155  \       ALL A B. A eqpoll k #+ m & k eqpoll B & B<=A --> A-B eqpoll m";
  35.156  by (eres_inst_tac [("n","k")] nat_induct 1);
  35.157 -by (fast_tac (!claset addSDs [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_0_is_0]
  35.158 -        addss (!simpset addsimps [add_0])) 1);
  35.159 +by (fast_tac (claset() addSDs [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_0_is_0]
  35.160 +        addss (simpset() addsimps [add_0])) 1);
  35.161  by (REPEAT (resolve_tac [allI,impI] 1));
  35.162  by (resolve_tac [succ_lepoll_imp_not_empty RS not_emptyE] 1);
  35.163 -by (fast_tac (!claset addSEs [eqpoll_imp_lepoll]) 1);
  35.164 +by (fast_tac (claset() addSEs [eqpoll_imp_lepoll]) 1);
  35.165  by (eres_inst_tac [("x","A - {xa}")] allE 1);
  35.166  by (eres_inst_tac [("x","B - {xa}")] allE 1);
  35.167  by (etac impE 1);
  35.168 -by (fast_tac (!claset addSIs [Diff_sing_eqpoll,
  35.169 +by (fast_tac (claset() addSIs [Diff_sing_eqpoll,
  35.170          eqpoll_sym RSN (2, Diff_sing_eqpoll) RS eqpoll_sym]
  35.171 -        addss (!simpset addsimps [add_succ])) 1);
  35.172 +        addss (simpset() addsimps [add_succ])) 1);
  35.173  by (res_inst_tac [("P","%z. z eqpoll m")] subst 1 THEN (assume_tac 2));
  35.174  by (Fast_tac 1);
  35.175  qed "eqpoll_sum_imp_Diff_eqpoll_lemma";
  35.176 @@ -347,7 +347,7 @@
  35.177  
  35.178  goal thy "!!w. [| x Int y = 0; w <= x Un y |]  \
  35.179  \        ==> w Int (x - {u}) = w - cons(u, w Int y)";
  35.180 -by (fast_tac (!claset addEs [equals0D]) 1);
  35.181 +by (fast_tac (claset() addEs [equals0D]) 1);
  35.182  qed "w_Int_eq_w_Diff";
  35.183  
  35.184  goal thy "!!w. [| w:{v:s_u(u, t_n, succ(l), y). a <= v};  \
  35.185 @@ -357,8 +357,8 @@
  35.186  \       |] ==> w Int (x - {u}) eqpoll m";
  35.187  by (etac CollectE 1);
  35.188  by (resolve_tac [w_Int_eq_w_Diff RS ssubst] 1 THEN (assume_tac 1));
  35.189 -by (fast_tac (!claset addSDs [s_u_subset RS subsetD]) 1);
  35.190 -by (fast_tac (!claset addEs [equals0D] addSDs [bspec]
  35.191 +by (fast_tac (claset() addSDs [s_u_subset RS subsetD]) 1);
  35.192 +by (fast_tac (claset() addEs [equals0D] addSDs [bspec]
  35.193          addDs [s_u_subset RS subsetD]
  35.194          addSEs [eqpoll_sym RS cons_eqpoll_succ RS eqpoll_sym, in_s_u_imp_u_in]
  35.195          addSIs [nat_succI, eqpoll_sum_imp_Diff_eqpoll]) 1);
  35.196 @@ -372,7 +372,7 @@
  35.197  goal thy
  35.198          "!!z. [| z : xa Int (x - {u}); l eqpoll a; a <= y; x Int y = 0; u:x  \
  35.199  \       |] ==> cons(z, cons(u, a)) : {v: Pow(x Un y). v eqpoll succ(succ(l))}";
  35.200 -by (fast_tac (!claset addSIs [cons_eqpoll_succ] addEs [equals0D, eqpoll_sym]) 1);
  35.201 +by (fast_tac (claset() addSIs [cons_eqpoll_succ] addEs [equals0D, eqpoll_sym]) 1);
  35.202  qed "cons_cons_in";
  35.203  
  35.204  (* ********************************************************************** *)
  35.205 @@ -398,7 +398,7 @@
  35.206  by (rtac CollectI 1);
  35.207  by (Fast_tac 1);
  35.208  by (rtac w_Int_eqpoll_m 1 THEN REPEAT (assume_tac 1));
  35.209 -by (simp_tac (!simpset delsimps ball_simps) 1);
  35.210 +by (simp_tac (simpset() delsimps ball_simps) 1);
  35.211  by (REPEAT (resolve_tac [ballI, impI] 1));
  35.212  (** LEVEL 9 **)
  35.213  by (eresolve_tac [w_Int_eqpoll_m RSN (2, eqpoll_m_not_empty) RS not_emptyE] 1
  35.214 @@ -406,8 +406,8 @@
  35.215  by (dresolve_tac [equalityD1 RS subsetD] 1 THEN (assume_tac 1));
  35.216  by (dresolve_tac [cons_cons_in RSN (2, bspec)] 1 THEN REPEAT (assume_tac 1));
  35.217  by (etac ex1_two_eq 1);
  35.218 -by (fast_tac (!claset addSEs [s_u_subset RS subsetD, in_s_u_imp_u_in]) 1);
  35.219 -by (fast_tac (!claset addSEs [s_u_subset RS subsetD, in_s_u_imp_u_in]) 1);
  35.220 +by (fast_tac (claset() addSEs [s_u_subset RS subsetD, in_s_u_imp_u_in]) 1);
  35.221 +by (fast_tac (claset() addSEs [s_u_subset RS subsetD, in_s_u_imp_u_in]) 1);
  35.222  qed "subset_s_u_lepoll_w";
  35.223  
  35.224  goal thy "!!k. [| 0<k; k:nat |] ==> EX l:nat. k = succ(l)";
  35.225 @@ -439,7 +439,7 @@
  35.226  (* ********************************************************************** *)
  35.227  
  35.228  goal thy "{x:Pow(X). x lepoll 0} = {0}";
  35.229 -by (fast_tac (!claset addSDs [lepoll_0_is_0]
  35.230 +by (fast_tac (claset() addSDs [lepoll_0_is_0]
  35.231                        addSIs [lepoll_refl]) 1);
  35.232  qed "subsets_lepoll_0_eq_unit";
  35.233  
  35.234 @@ -448,19 +448,19 @@
  35.235  by (resolve_tac [well_ord_infinite_subsets_eqpoll_X
  35.236          RS (eqpoll_def RS def_imp_iff RS iffD1) RS exE] 1
  35.237      THEN (REPEAT (assume_tac 1)));
  35.238 -by (fast_tac (!claset addSEs [bij_is_inj RS well_ord_rvimage]) 1);
  35.239 +by (fast_tac (claset() addSEs [bij_is_inj RS well_ord_rvimage]) 1);
  35.240  qed "well_ord_subsets_eqpoll_n";
  35.241  
  35.242  goal thy "!!n. n:nat ==> {z:Pow(y). z lepoll succ(n)} =  \
  35.243  \       {z:Pow(y). z lepoll n} Un {z:Pow(y). z eqpoll succ(n)}";
  35.244 -by (fast_tac (!claset addIs [le_refl, leI, le_imp_lepoll]
  35.245 +by (fast_tac (claset() addIs [le_refl, leI, le_imp_lepoll]
  35.246                  addSDs [lepoll_succ_disj]
  35.247                  addSEs [nat_into_Ord, lepoll_trans, eqpoll_imp_lepoll]) 1);
  35.248  qed "subsets_lepoll_succ";
  35.249  
  35.250  goal thy "!!n. n:nat ==>  \
  35.251  \       {z:Pow(y). z lepoll n} Int {z:Pow(y). z eqpoll succ(n)} = 0";
  35.252 -by (fast_tac (!claset addSEs [eqpoll_sym RS eqpoll_imp_lepoll 
  35.253 +by (fast_tac (claset() addSEs [eqpoll_sym RS eqpoll_imp_lepoll 
  35.254                  RS lepoll_trans RS succ_lepoll_natE]
  35.255                  addSIs [equals0I]) 1);
  35.256  qed "Int_empty";
  35.257 @@ -479,7 +479,7 @@
  35.258  qed "wf_on_unit";
  35.259  
  35.260  goalw thy [well_ord_def] "well_ord({a},0)";
  35.261 -by (simp_tac (!simpset addsimps [tot_ord_unit, wf_on_unit]) 1);
  35.262 +by (simp_tac (simpset() addsimps [tot_ord_unit, wf_on_unit]) 1);
  35.263  qed "well_ord_unit";
  35.264  
  35.265  (* ********************************************************************** *)
  35.266 @@ -489,22 +489,22 @@
  35.267  goal thy "!!y r. [| well_ord(y,r); ~Finite(y); n:nat |] ==>  \
  35.268  \       EX R. well_ord({z:Pow(y). z lepoll n}, R)";
  35.269  by (etac nat_induct 1);
  35.270 -by (fast_tac (!claset addSIs [well_ord_unit]
  35.271 -        addss (!simpset addsimps [subsets_lepoll_0_eq_unit])) 1);
  35.272 +by (fast_tac (claset() addSIs [well_ord_unit]
  35.273 +        addss (simpset() addsimps [subsets_lepoll_0_eq_unit])) 1);
  35.274  by (etac exE 1);
  35.275  by (eresolve_tac [well_ord_subsets_eqpoll_n RS exE] 1 
  35.276          THEN REPEAT (assume_tac 1));
  35.277 -by (asm_simp_tac (!simpset addsimps [subsets_lepoll_succ]) 1);
  35.278 +by (asm_simp_tac (simpset() addsimps [subsets_lepoll_succ]) 1);
  35.279  by (dtac well_ord_radd 1 THEN (assume_tac 1));
  35.280  by (eresolve_tac [Int_empty RS disj_Un_eqpoll_sum RS 
  35.281                  (eqpoll_def RS def_imp_iff RS iffD1) RS exE] 1);
  35.282 -by (fast_tac (!claset addSEs [bij_is_inj RS well_ord_rvimage]) 1);
  35.283 +by (fast_tac (claset() addSEs [bij_is_inj RS well_ord_rvimage]) 1);
  35.284  qed "well_ord_subsets_lepoll_n";
  35.285  
  35.286  goalw thy [LL_def, MM_def]
  35.287          "!!x. t_n <= {v:Pow(x Un y). v eqpoll n}  \
  35.288  \               ==> LL(t_n, k, y) <= {z:Pow(y). z lepoll n}";
  35.289 -by (fast_tac (!claset addSEs [RepFunE]
  35.290 +by (fast_tac (claset() addSEs [RepFunE]
  35.291          addIs [subset_imp_lepoll RS (eqpoll_imp_lepoll
  35.292                  RSN (2, lepoll_trans))]) 1);
  35.293  qed "LL_subset";
  35.294 @@ -526,11 +526,11 @@
  35.295  \       t_n <= {v:Pow(x Un y). v eqpoll n}; \
  35.296  \       v:LL(t_n, k, y)  \
  35.297  \       |] ==> EX! w. w:MM(t_n, k, y) & v<=w";
  35.298 -by (safe_tac (!claset addSEs [RepFunE]));
  35.299 +by (safe_tac (claset() addSEs [RepFunE]));
  35.300  by (Fast_tac 1);
  35.301  by (resolve_tac [lepoll_imp_eqpoll_subset RS exE] 1 THEN (assume_tac 1));
  35.302  by (eres_inst_tac [("x","xa")] ballE 1);
  35.303 -by (fast_tac (!claset addSEs [eqpoll_sym]) 2);
  35.304 +by (fast_tac (claset() addSEs [eqpoll_sym]) 2);
  35.305  by (etac alt_ex1E 1);
  35.306  by (dtac spec 1);
  35.307  by (dtac spec 1);
  35.308 @@ -579,10 +579,10 @@
  35.309  by (res_inst_tac [("x","w Int y")] bexI 1);
  35.310  by (etac Int_in_LL 2);
  35.311  by (rewtac GG_def);
  35.312 -by (asm_full_simp_tac (!simpset delsimps ball_simps addsimps [Int_in_LL]) 1);
  35.313 +by (asm_full_simp_tac (simpset() delsimps ball_simps addsimps [Int_in_LL]) 1);
  35.314  by (eresolve_tac [unique_superset_in_MM RS the_equality2 RS ssubst] 1
  35.315          THEN (assume_tac 1));
  35.316 -by (REPEAT (fast_tac (!claset addEs [equals0D] addSEs [Int_in_LL]) 1));
  35.317 +by (REPEAT (fast_tac (claset() addEs [equals0D] addSEs [Int_in_LL]) 1));
  35.318  qed "exists_in_LL";
  35.319  
  35.320  goalw thy [LL_def] 
  35.321 @@ -590,7 +590,7 @@
  35.322  \       t_n <= {v:Pow(x Un y). v eqpoll n};  \
  35.323  \       v : LL(t_n, k, y) |]  \
  35.324  \       ==> v = (THE x. x : MM(t_n, k, y) & v <= x) Int y";
  35.325 -by (fast_tac (!claset addSEs [Int_in_LL,
  35.326 +by (fast_tac (claset() addSEs [Int_in_LL,
  35.327                  unique_superset_in_MM RS the_equality2 RS ssubst]) 1);
  35.328  qed "in_LL_eq_Int";
  35.329  
  35.330 @@ -599,7 +599,7 @@
  35.331  \       t_n <= {v:Pow(x Un y). v eqpoll n};  \
  35.332  \       v : LL(t_n, k, y) |]  \
  35.333  \       ==> (THE x. x : MM(t_n, k, y) & v <= x) <= x Un y";
  35.334 -by (fast_tac (!claset addSDs [unique_superset_in_MM RS theI RS conjunct1 RS 
  35.335 +by (fast_tac (claset() addSDs [unique_superset_in_MM RS theI RS conjunct1 RS 
  35.336          (MM_subset RS subsetD)]) 1);
  35.337  qed "the_in_MM_subset";
  35.338  
  35.339 @@ -614,7 +614,7 @@
  35.340  by (rtac subsetI 1);
  35.341  by (etac DiffE 1);
  35.342  by (etac swap 1);
  35.343 -by (fast_tac (!claset addEs [ssubst]) 1);
  35.344 +by (fast_tac (claset() addEs [ssubst]) 1);
  35.345  qed "GG_subset";
  35.346  
  35.347  goal thy  
  35.348 @@ -667,7 +667,7 @@
  35.349  \       (converse(ordermap(LL(t_n, succ(k), y), S)) ` b) lepoll m";
  35.350  by (rtac oallI 1);
  35.351  by (asm_full_simp_tac 
  35.352 -    (!simpset delsimps ball_simps
  35.353 +    (simpset() delsimps ball_simps
  35.354                addsimps [ltD,
  35.355                          ordermap_bij RS bij_converse_bij RS
  35.356                          bij_is_fun RS apply_type]) 1);
  35.357 @@ -695,7 +695,7 @@
  35.358  by (forward_tac [infinite_Un] 1 THEN (mp_tac 1));
  35.359  by (REPEAT (eresolve_tac [exE, conjE] 1));
  35.360  by (resolve_tac [well_ord_LL RS exE] 1 THEN REPEAT (assume_tac 1));
  35.361 -by (fast_tac (!claset addSIs [nat_succI, add_type]) 1);
  35.362 +by (fast_tac (claset() addSIs [nat_succI, add_type]) 1);
  35.363  by (res_inst_tac [("x","ordertype(LL(T, succ(k), y), x)")] exI 1);
  35.364  by (res_inst_tac [("x","lam b:ordertype(LL(T, succ(k), y), x).  \
  35.365  \       (GG(T, succ(k), y)) `  \
    36.1 --- a/src/ZF/AC/AC16_lemmas.ML	Mon Nov 03 12:22:43 1997 +0100
    36.2 +++ b/src/ZF/AC/AC16_lemmas.ML	Mon Nov 03 12:24:13 1997 +0100
    36.3 @@ -13,23 +13,23 @@
    36.4  
    36.5  goalw thy [lepoll_def] "1 lepoll X <-> (EX x. x:X)";
    36.6  by (rtac iffI 1);
    36.7 -by (fast_tac (!claset addIs [inj_is_fun RS apply_type]) 1);
    36.8 +by (fast_tac (claset() addIs [inj_is_fun RS apply_type]) 1);
    36.9  by (etac exE 1);
   36.10  by (res_inst_tac [("x","lam a:1. x")] exI 1);
   36.11 -by (fast_tac (!claset addSIs [lam_injective]) 1);
   36.12 +by (fast_tac (claset() addSIs [lam_injective]) 1);
   36.13  qed "nat_1_lepoll_iff";
   36.14  
   36.15  goal thy "X eqpoll 1 <-> (EX x. X={x})";
   36.16  by (rtac iffI 1);
   36.17  by (etac eqpollE 1);
   36.18  by (dresolve_tac [nat_1_lepoll_iff RS iffD1] 1);
   36.19 -by (fast_tac (!claset addSIs [lepoll_1_is_sing]) 1);
   36.20 -by (fast_tac (!claset addSIs [singleton_eqpoll_1]) 1);
   36.21 +by (fast_tac (claset() addSIs [lepoll_1_is_sing]) 1);
   36.22 +by (fast_tac (claset() addSIs [singleton_eqpoll_1]) 1);
   36.23  qed "eqpoll_1_iff_singleton";
   36.24  
   36.25  goalw thy [succ_def] 
   36.26        "!!x. [| x eqpoll n; y~:x |] ==> cons(y,x) eqpoll succ(n)";
   36.27 -by (fast_tac (!claset addSEs [cons_eqpoll_cong, mem_irrefl]) 1);
   36.28 +by (fast_tac (claset() addSEs [cons_eqpoll_cong, mem_irrefl]) 1);
   36.29  qed "cons_eqpoll_succ";
   36.30  
   36.31  goal thy "{Y:Pow(X). Y eqpoll 1} = {{x}. x:X}";
   36.32 @@ -37,12 +37,12 @@
   36.33  by (rtac subsetI 1);
   36.34  by (etac CollectE 1);
   36.35  by (dresolve_tac [eqpoll_1_iff_singleton RS iffD1] 1);
   36.36 -by (fast_tac (!claset addSIs [RepFunI]) 1);
   36.37 +by (fast_tac (claset() addSIs [RepFunI]) 1);
   36.38  by (rtac subsetI 1);
   36.39  by (etac RepFunE 1);
   36.40  by (rtac CollectI 1);
   36.41  by (Fast_tac 1);
   36.42 -by (fast_tac (!claset addSIs [singleton_eqpoll_1]) 1);
   36.43 +by (fast_tac (claset() addSIs [singleton_eqpoll_1]) 1);
   36.44  qed "subsets_eqpoll_1_eq";
   36.45  
   36.46  goalw thy [eqpoll_def, bij_def] "X eqpoll {{x}. x:X}";
   36.47 @@ -50,10 +50,10 @@
   36.48  by (rtac IntI 1);
   36.49  by (rewrite_goals_tac [inj_def, surj_def]);
   36.50  by (Asm_full_simp_tac 1);
   36.51 -by (fast_tac (!claset addSIs [lam_type, RepFunI] 
   36.52 +by (fast_tac (claset() addSIs [lam_type, RepFunI] 
   36.53                  addIs [singleton_eq_iff RS iffD1]) 1);
   36.54  by (Asm_full_simp_tac 1);
   36.55 -by (fast_tac (!claset addSIs [lam_type]) 1);
   36.56 +by (fast_tac (claset() addSIs [lam_type]) 1);
   36.57  qed "eqpoll_RepFun_sing";
   36.58  
   36.59  goal thy "{Y:Pow(X). Y eqpoll 1} eqpoll X";
   36.60 @@ -65,7 +65,7 @@
   36.61  \               ==> (LEAST i. i:y) : y";
   36.62  by (eresolve_tac [eqpoll_sym RS eqpoll_imp_lepoll RS 
   36.63                  succ_lepoll_imp_not_empty RS not_emptyE] 1);
   36.64 -by (fast_tac (!claset addIs [LeastI]
   36.65 +by (fast_tac (claset() addIs [LeastI]
   36.66          addSDs [InfCard_is_Card RS Card_is_Ord, PowD RS subsetD]
   36.67          addEs [Ord_in_Ord]) 1);
   36.68  qed "InfCard_Least_in";
   36.69 @@ -87,7 +87,7 @@
   36.70  by (rtac CollectI 2);
   36.71  by (Fast_tac 2);
   36.72  by (resolve_tac [PowD RS subsetD] 1 THEN (assume_tac 1));
   36.73 -by (REPEAT (fast_tac (!claset addSIs [Diff_sing_eqpoll]
   36.74 +by (REPEAT (fast_tac (claset() addSIs [Diff_sing_eqpoll]
   36.75                  addIs [InfCard_Least_in]) 1));
   36.76  qed "subsets_lepoll_lemma1";
   36.77  
   36.78 @@ -99,13 +99,13 @@
   36.79  by (rtac ballI 1);
   36.80  by (rtac Ord_linear_le 1);
   36.81  by (dtac le_imp_subset 3 THEN (assume_tac 3));
   36.82 -by (fast_tac (!claset addDs prems) 1);
   36.83 -by (fast_tac (!claset addDs prems) 1);
   36.84 -by (fast_tac (!claset addSEs [leE,ltE]) 1);
   36.85 +by (fast_tac (claset() addDs prems) 1);
   36.86 +by (fast_tac (claset() addDs prems) 1);
   36.87 +by (fast_tac (claset() addSEs [leE,ltE]) 1);
   36.88  qed "set_of_Ord_succ_Union";
   36.89  
   36.90  goal thy "!!i. j<=i ==> i ~: j";
   36.91 -by (fast_tac (!claset addSEs [mem_irrefl]) 1);
   36.92 +by (fast_tac (claset() addSEs [mem_irrefl]) 1);
   36.93  qed "subset_not_mem";
   36.94  
   36.95  val prems = goal thy "(!!y. y:z ==> Ord(y)) ==> succ(Union(z)) ~: z";
   36.96 @@ -118,7 +118,7 @@
   36.97  qed "Union_cons_eq_succ_Union";
   36.98  
   36.99  goal thy "!!i. [| Ord(i); Ord(j) |] ==> i Un j = i | i Un j = j";
  36.100 -by (fast_tac (!claset addSDs [le_imp_subset] addEs [Ord_linear_le]) 1);
  36.101 +by (fast_tac (claset() addSDs [le_imp_subset] addEs [Ord_linear_le]) 1);
  36.102  qed "Un_Ord_disj";
  36.103  
  36.104  goal thy "!!X. x:X ==> Union(X) = x Un Union(X-{x})";
  36.105 @@ -128,16 +128,16 @@
  36.106  goal thy "!!n. n:nat ==>  \
  36.107  \       ALL z. (ALL y:z. Ord(y)) & z eqpoll n & z~=0 --> Union(z) : z";
  36.108  by (etac nat_induct 1);
  36.109 -by (fast_tac (!claset addSDs [eqpoll_imp_lepoll RS lepoll_0_is_0]) 1);
  36.110 +by (fast_tac (claset() addSDs [eqpoll_imp_lepoll RS lepoll_0_is_0]) 1);
  36.111  by (REPEAT (resolve_tac [allI, impI] 1));
  36.112  by (etac natE 1);
  36.113 -by (fast_tac (!claset addSDs [eqpoll_1_iff_singleton RS iffD1]
  36.114 +by (fast_tac (claset() addSDs [eqpoll_1_iff_singleton RS iffD1]
  36.115          addSIs [Union_singleton]) 1);
  36.116  by (hyp_subst_tac 1);
  36.117  by (REPEAT (eresolve_tac [conjE, not_emptyE] 1));
  36.118  by (eres_inst_tac [("x","z-{xb}")] allE 1);
  36.119  by (etac impE 1);
  36.120 -by (fast_tac (!claset addSEs [Diff_sing_eqpoll,
  36.121 +by (fast_tac (claset() addSEs [Diff_sing_eqpoll,
  36.122                  Diff_sing_eqpoll RS eqpoll_succ_imp_not_empty]) 1);
  36.123  by (resolve_tac [Union_eq_Un RSN (2, subst_elem)] 1 THEN (assume_tac 2));
  36.124  by (forward_tac [bspec] 1 THEN (assume_tac 1));
  36.125 @@ -160,12 +160,12 @@
  36.126  by (resolve_tac [Limit_has_succ RS ltE] 1 THEN (assume_tac 3));
  36.127  by (etac InfCard_is_Limit 1);
  36.128  by (excluded_middle_tac "z=0" 1);
  36.129 -by (fast_tac (!claset addSIs [InfCard_is_Limit RS Limit_has_0]
  36.130 -                      addss (!simpset)) 2);
  36.131 +by (fast_tac (claset() addSIs [InfCard_is_Limit RS Limit_has_0]
  36.132 +                      addss (simpset())) 2);
  36.133  by (resolve_tac
  36.134          [PowD RS subsetD RS (InfCard_is_Card RS Card_is_Ord RSN (2, ltI))] 1
  36.135          THEN (TRYALL assume_tac));
  36.136 -by (fast_tac (!claset addSIs [Union_in]
  36.137 +by (fast_tac (claset() addSIs [Union_in]
  36.138                        addSEs [PowD RS subsetD RSN 
  36.139  		 (2, InfCard_is_Card RS Card_is_Ord RS Ord_in_Ord)]) 1);
  36.140  qed "succ_Union_in_x";
  36.141 @@ -178,14 +178,14 @@
  36.142  by (res_inst_tac [("d","%z. z-{Union(z)}")] lam_injective 1);
  36.143  by (resolve_tac [Union_cons_eq_succ_Union RS ssubst] 2);
  36.144  by (rtac cons_Diff_eq 2);
  36.145 -by (fast_tac (!claset addSDs [InfCard_is_Card RS Card_is_Ord]
  36.146 +by (fast_tac (claset() addSDs [InfCard_is_Card RS Card_is_Ord]
  36.147          addEs [Ord_in_Ord] addSIs [succ_Union_not_mem]) 2);
  36.148  by (rtac CollectI 1);
  36.149 -by (fast_tac (!claset addSEs [cons_eqpoll_succ] 
  36.150 +by (fast_tac (claset() addSEs [cons_eqpoll_succ] 
  36.151                      addSIs [succ_Union_not_mem] 
  36.152                      addSDs [InfCard_is_Card RS Card_is_Ord] 
  36.153                      addEs  [Ord_in_Ord]) 2);
  36.154 -by (fast_tac (!claset addSIs [succ_Union_in_x, nat_succI]) 1);
  36.155 +by (fast_tac (claset() addSIs [succ_Union_in_x, nat_succI]) 1);
  36.156  qed "succ_lepoll_succ_succ";
  36.157  
  36.158  goal thy "!!X. [| InfCard(X); n:nat |]  \
  36.159 @@ -201,18 +201,18 @@
  36.160  by (resolve_tac [InfCard_is_Card RS Card_cardinal_eq RS ssubst] 2 
  36.161          THEN (REPEAT (assume_tac 2)));
  36.162  by (eresolve_tac [eqpoll_refl RS prod_eqpoll_cong RS eqpoll_imp_lepoll] 1);
  36.163 -by (fast_tac (!claset addEs [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_trans]
  36.164 +by (fast_tac (claset() addEs [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_trans]
  36.165          addSIs [succ_lepoll_succ_succ]) 1);
  36.166  qed "subsets_eqpoll_X";
  36.167  
  36.168  goalw thy [surj_def] "!!f. [| f:surj(A,B); y<=B |]  \
  36.169  \       ==> f``(converse(f)``y) = y";
  36.170 -by (fast_tac (!claset addDs [apply_equality2]
  36.171 +by (fast_tac (claset() addDs [apply_equality2]
  36.172  	              addEs [apply_iff RS iffD2]) 1);
  36.173  qed "image_vimage_eq";
  36.174  
  36.175  goal thy "!!f. [| f:inj(A,B); y<=A |] ==> converse(f)``(f``y) = y";
  36.176 -by (fast_tac (!claset addSEs [inj_is_fun RS apply_Pair]
  36.177 +by (fast_tac (claset() addSEs [inj_is_fun RS apply_Pair]
  36.178                  addDs [inj_equality]) 1);
  36.179  qed "vimage_image_eq";
  36.180  
  36.181 @@ -221,20 +221,20 @@
  36.182  by (etac exE 1);
  36.183  by (res_inst_tac [("x","lam X:{Y:Pow(A). EX f. f : bij(Y, n)}. f``X")] exI 1);
  36.184  by (res_inst_tac [("d","%Z. converse(f)``Z")] lam_bijective 1);
  36.185 -by (fast_tac (!claset
  36.186 +by (fast_tac (claset()
  36.187          addSIs [bij_is_inj RS restrict_bij RS bij_converse_bij RS comp_bij] 
  36.188          addSEs [bij_is_fun RS fun_is_rel RS image_subset RS PowI]) 1);
  36.189 -by (fast_tac (!claset addSIs [bij_converse_bij RS bij_is_inj RS restrict_bij
  36.190 +by (fast_tac (claset() addSIs [bij_converse_bij RS bij_is_inj RS restrict_bij
  36.191                          RS bij_converse_bij RS comp_bij] 
  36.192                      addSEs [bij_converse_bij RS bij_is_fun RS fun_is_rel
  36.193                          RS image_subset RS PowI]) 1);
  36.194 -by (fast_tac (!claset addSEs [bij_is_inj RS vimage_image_eq]) 1);
  36.195 -by (fast_tac (!claset addSEs [bij_is_surj RS image_vimage_eq]) 1);
  36.196 +by (fast_tac (claset() addSEs [bij_is_inj RS vimage_image_eq]) 1);
  36.197 +by (fast_tac (claset() addSEs [bij_is_surj RS image_vimage_eq]) 1);
  36.198  qed "subsets_eqpoll";
  36.199  
  36.200  goalw thy [WO2_def] "!!X. WO2 ==> EX a. Card(a) & X eqpoll a";
  36.201  by (REPEAT (eresolve_tac [allE,exE,conjE] 1));
  36.202 -by (fast_tac (!claset addSEs [well_ord_Memrel RS well_ord_cardinal_eqpoll RS
  36.203 +by (fast_tac (claset() addSEs [well_ord_Memrel RS well_ord_cardinal_eqpoll RS
  36.204                  (eqpoll_sym RSN (2, eqpoll_trans)) RS eqpoll_sym]
  36.205                  addSIs [Card_cardinal]) 1);
  36.206  qed "WO2_imp_ex_Card";
  36.207 @@ -244,7 +244,7 @@
  36.208  qed "lepoll_infinite";
  36.209  
  36.210  goalw thy [InfCard_def] "!!X. [| ~Finite(X); Card(X) |] ==> InfCard(X)";
  36.211 -by (fast_tac (!claset addSEs [Card_is_Ord RS nat_le_infinite_Ord]) 1);
  36.212 +by (fast_tac (claset() addSEs [Card_is_Ord RS nat_le_infinite_Ord]) 1);
  36.213  qed "infinite_Card_is_InfCard";
  36.214  
  36.215  goal thy "!!X n. [| WO2; n:nat; ~Finite(X) |]  \
  36.216 @@ -260,7 +260,7 @@
  36.217  qed "WO2_infinite_subsets_eqpoll_X";
  36.218  
  36.219  goal thy "!!X. well_ord(X,R) ==> EX a. Card(a) & X eqpoll a";
  36.220 -by (fast_tac (!claset addSEs [well_ord_cardinal_eqpoll RS eqpoll_sym]
  36.221 +by (fast_tac (claset() addSEs [well_ord_cardinal_eqpoll RS eqpoll_sym]
  36.222                  addSIs [Card_cardinal]) 1);
  36.223  qed "well_ord_imp_ex_Card";
  36.224  
    37.1 --- a/src/ZF/AC/AC17_AC1.ML	Mon Nov 03 12:22:43 1997 +0100
    37.2 +++ b/src/ZF/AC/AC17_AC1.ML	Mon Nov 03 12:24:13 1997 +0100
    37.3 @@ -34,7 +34,7 @@
    37.4  by (rtac ballI 1);
    37.5  by (etac swap 1);
    37.6  by (rtac impI 1);
    37.7 -by (fast_tac (!claset addSIs [restrict_type]) 1);
    37.8 +by (fast_tac (claset() addSIs [restrict_type]) 1);
    37.9  qed "not_AC1_imp_ex";
   37.10  
   37.11  goal thy "!!x. [| ALL f:Pow(x) - {0} -> x. EX u: Pow(x) - {0}. f`u~:u;  \
   37.12 @@ -56,13 +56,13 @@
   37.13  goal thy "!!x. ~ (EX f: Pow(x)-{0}->x. x - F(f) = 0)  \
   37.14  \       ==> (lam f: Pow(x)-{0}->x. x - F(f))  \
   37.15  \               : (Pow(x) -{0} -> x) -> Pow(x) - {0}";
   37.16 -by (fast_tac (!claset addSIs [lam_type] addSDs [Diff_eq_0_iff RS iffD1]) 1);
   37.17 +by (fast_tac (claset() addSIs [lam_type] addSDs [Diff_eq_0_iff RS iffD1]) 1);
   37.18  val lemma2 = result();
   37.19  
   37.20  goal thy "!!f. [| f`Z : Z; Z:Pow(x)-{0} |] ==>  \
   37.21  \       (lam X:Pow(x)-{0}. {f`X})`Z : Pow(Z)-{0}";
   37.22  by (Asm_full_simp_tac 1);
   37.23 -by (fast_tac (!claset addSDs [equals0D]) 1);
   37.24 +by (fast_tac (claset() addSDs [equals0D]) 1);
   37.25  val lemma3 = result();
   37.26  
   37.27  goal thy "!!z. EX f:F. f`((lam f:F. Q(f))`f) : (lam f:F. Q(f))`f  \
   37.28 @@ -87,6 +87,6 @@
   37.29  by (dresolve_tac [beta RS sym RSN (2, subst_elem)] 1);
   37.30  by (assume_tac 1);
   37.31  by (dtac lemma3 1 THEN (assume_tac 1));
   37.32 -by (fast_tac (!claset addSDs [HH_Least_eq_x RS sym RSN (2, subst_elem),
   37.33 +by (fast_tac (claset() addSDs [HH_Least_eq_x RS sym RSN (2, subst_elem),
   37.34                  f_subset_imp_HH_subset] addSEs [mem_irrefl]) 1);
   37.35  qed "AC17_AC1";
    38.1 --- a/src/ZF/AC/AC18_AC19.ML	Mon Nov 03 12:22:43 1997 +0100
    38.2 +++ b/src/ZF/AC/AC18_AC19.ML	Mon Nov 03 12:24:13 1997 +0100
    38.3 @@ -25,19 +25,19 @@
    38.4  by (rtac subsetI 1);
    38.5  by (eres_inst_tac [("x","{{b:B(a). x:X(a,b)}. a:A}")] allE 1);
    38.6  by (etac impE 1);
    38.7 -by (fast_tac (!claset addSEs [RepFunE] addSDs [INT_E]
    38.8 +by (fast_tac (claset() addSEs [RepFunE] addSDs [INT_E]
    38.9                  addEs [UN_E, sym RS equals0D]) 1);
   38.10  by (etac exE 1);
   38.11  by (rtac UN_I 1);
   38.12 -by (fast_tac (!claset addSEs [PROD_subsets]) 1);
   38.13 +by (fast_tac (claset() addSEs [PROD_subsets]) 1);
   38.14  by (Simp_tac 1);
   38.15 -by (fast_tac (!claset addSEs [not_emptyE] addDs [RepFunI RSN (2, apply_type)]
   38.16 +by (fast_tac (claset() addSEs [not_emptyE] addDs [RepFunI RSN (2, apply_type)]
   38.17                  addEs [CollectD2] addSIs [INT_I]) 1);
   38.18  qed "lemma_AC18";
   38.19  
   38.20  val [prem] = goalw thy (AC18_def::AC_defs) "AC1 ==> AC18";
   38.21  by (resolve_tac [prem RS revcut_rl] 1);
   38.22 -by (fast_tac (!claset addSEs [lemma_AC18, not_emptyE, apply_type]
   38.23 +by (fast_tac (claset() addSEs [lemma_AC18, not_emptyE, apply_type]
   38.24                  addSIs [equalityI, INT_I, UN_I]) 1);
   38.25  qed "AC1_AC18";
   38.26  
   38.27 @@ -57,7 +57,7 @@
   38.28  
   38.29  goalw thy [u_def]
   38.30          "!!A. [| A ~= 0; 0 ~: A |] ==> {u_(a). a:A} ~= 0 & 0 ~: {u_(a). a:A}";
   38.31 -by (fast_tac (!claset addSIs [not_emptyI, RepFunI]
   38.32 +by (fast_tac (claset() addSIs [not_emptyI, RepFunI]
   38.33                  addSEs [not_emptyE, RepFunE]
   38.34                  addSDs [sym RS (RepFun_eq_0_iff RS iffD1)]) 1);
   38.35  qed "RepRep_conj";
   38.36 @@ -70,13 +70,13 @@
   38.37  by (rtac subsetI 1);
   38.38  by (excluded_middle_tac "x=0" 1);
   38.39  by (Fast_tac 1);
   38.40 -by (fast_tac (!claset addEs [notE, subst_elem])  1);
   38.41 +by (fast_tac (claset() addEs [notE, subst_elem])  1);
   38.42  val lemma1_1 = result();
   38.43  
   38.44  goalw thy [u_def]
   38.45          "!!a. [| f`(u_(a)) ~: a; f: (PROD B:{u_(a). a:A}. B); a:A |]  \
   38.46  \               ==> f`(u_(a))-{0} : a";
   38.47 -by (fast_tac (!claset addSEs [RepFunI, RepFunE, lemma1_1]
   38.48 +by (fast_tac (claset() addSEs [RepFunI, RepFunE, lemma1_1]
   38.49                  addSDs [apply_type]) 1);
   38.50  val lemma1_2 = result();
   38.51  
   38.52 @@ -88,34 +88,34 @@
   38.53  by (split_tac [expand_if] 1);
   38.54  by (rtac conjI 1);
   38.55  by (Fast_tac 1);
   38.56 -by (fast_tac (!claset addSEs [lemma1_2]) 1);
   38.57 +by (fast_tac (claset() addSEs [lemma1_2]) 1);
   38.58  val lemma1 = result();
   38.59  
   38.60  goalw thy [u_def] "!!a. a~=0 ==> 0: (UN b:u_(a). b)";
   38.61 -by (fast_tac (!claset addSEs [not_emptyE] addSIs [UN_I, RepFunI]) 1);
   38.62 +by (fast_tac (claset() addSEs [not_emptyE] addSIs [UN_I, RepFunI]) 1);
   38.63  val lemma2_1 = result();
   38.64  
   38.65  goal thy "!!A C. [| A~=0; 0~:A |] ==> (INT x:{u_(a). a:A}. UN b:x. b) ~= 0";
   38.66  by (etac not_emptyE 1);
   38.67  by (res_inst_tac [("a","0")] not_emptyI 1);
   38.68 -by (fast_tac (!claset addSIs [INT_I, RepFunI, lemma2_1] addSEs [RepFunE]) 1);
   38.69 +by (fast_tac (claset() addSIs [INT_I, RepFunI, lemma2_1] addSEs [RepFunE]) 1);
   38.70  val lemma2 = result();
   38.71  
   38.72  goal thy "!!F. (UN f:F. P(f)) ~= 0 ==> F ~= 0";
   38.73 -by (fast_tac (!claset addSEs [not_emptyE]) 1);
   38.74 +by (fast_tac (claset() addSEs [not_emptyE]) 1);
   38.75  val lemma3 = result();
   38.76  
   38.77  goalw thy AC_defs "!!Z. AC19 ==> AC1";
   38.78  by (REPEAT (resolve_tac [allI,impI] 1));
   38.79  by (excluded_middle_tac "A=0" 1);
   38.80 -by (fast_tac (!claset addSIs [exI, empty_fun]) 2);
   38.81 +by (fast_tac (claset() addSIs [exI, empty_fun]) 2);
   38.82  by (eres_inst_tac [("x","{u_(a). a:A}")] allE 1);
   38.83  by (etac impE 1);
   38.84  by (etac RepRep_conj 1 THEN (assume_tac 1));
   38.85  by (rtac lemma1 1);
   38.86  by (dtac lemma2 1 THEN (assume_tac 1));
   38.87  by (dres_inst_tac [("P","%x. x~=0")] subst 1 THEN (assume_tac 1));
   38.88 -by (fast_tac (!claset addSEs [lemma3 RS not_emptyE]) 1);
   38.89 +by (fast_tac (claset() addSEs [lemma3 RS not_emptyE]) 1);
   38.90  qed "AC19_AC1";
   38.91  
   38.92  
    39.1 --- a/src/ZF/AC/AC1_AC17.ML	Mon Nov 03 12:22:43 1997 +0100
    39.2 +++ b/src/ZF/AC/AC1_AC17.ML	Mon Nov 03 12:24:13 1997 +0100
    39.3 @@ -21,5 +21,5 @@
    39.4  by (rtac bexI 1);
    39.5  by (etac lemma1 2);
    39.6  by (rtac apply_type 1 THEN (assume_tac 1));
    39.7 -by (fast_tac (!claset addSDs [lemma1] addSEs [apply_type]) 1);
    39.8 +by (fast_tac (claset() addSDs [lemma1] addSEs [apply_type]) 1);
    39.9  qed "AC1_AC17";
    40.1 --- a/src/ZF/AC/AC1_WO2.ML	Mon Nov 03 12:22:43 1997 +0100
    40.2 +++ b/src/ZF/AC/AC1_WO2.ML	Mon Nov 03 12:24:13 1997 +0100
    40.3 @@ -13,12 +13,12 @@
    40.4  by (resolve_tac [bij_Least_HH_x RS bij_converse_bij] 1);
    40.5  by (rtac f_subsets_imp_UN_HH_eq_x 1);
    40.6  by (resolve_tac [lam_type RS apply_type] 1 THEN (assume_tac 2));
    40.7 -by (fast_tac (!claset addSDs [equals0D, prem RS apply_type]) 1);
    40.8 -by (fast_tac (!claset addSIs [prem RS Pi_weaken_type]) 1);
    40.9 +by (fast_tac (claset() addSDs [equals0D, prem RS apply_type]) 1);
   40.10 +by (fast_tac (claset() addSIs [prem RS Pi_weaken_type]) 1);
   40.11  val lemma1 = uresult() |> standard;
   40.12  
   40.13  goalw thy [AC1_def, WO2_def, eqpoll_def] "!!Z. AC1 ==> WO2";
   40.14  by (rtac allI 1);
   40.15  by (eres_inst_tac [("x","Pow(A)-{0}")] allE 1);
   40.16 -by (fast_tac (!claset addSDs [lemma1] addSIs [Ord_Least]) 1);
   40.17 +by (fast_tac (claset() addSDs [lemma1] addSIs [Ord_Least]) 1);
   40.18  qed "AC1_WO2";
    41.1 --- a/src/ZF/AC/AC2_AC6.ML	Mon Nov 03 12:22:43 1997 +0100
    41.2 +++ b/src/ZF/AC/AC2_AC6.ML	Mon Nov 03 12:24:13 1997 +0100
    41.3 @@ -16,12 +16,12 @@
    41.4  
    41.5  goal thy "!!B. [| B:A; f:(PROD X:A. X); 0~:A |]  \
    41.6  \               ==> {f`B} <= B Int {f`C. C:A}";
    41.7 -by (fast_tac (!claset addSEs [apply_type]) 1);
    41.8 +by (fast_tac (claset() addSEs [apply_type]) 1);
    41.9  val lemma1 = result();
   41.10  
   41.11  goalw thy [pairwise_disjoint_def]
   41.12          "!!A. [| pairwise_disjoint(A); B:A; C:A; D:B; D:C |] ==> f`B = f`C";
   41.13 -by (fast_tac (!claset addSEs [equals0D]) 1);
   41.14 +by (fast_tac (claset() addSEs [equals0D]) 1);
   41.15  val lemma2 = result();
   41.16  
   41.17  goalw thy AC_defs "!!Z. AC1 ==> AC2"; 
   41.18 @@ -30,7 +30,7 @@
   41.19  by (REPEAT (eresolve_tac [asm_rl,conjE,allE,exE,impE] 1));
   41.20  by (REPEAT (resolve_tac [exI,ballI,equalityI] 1));
   41.21  by (rtac lemma1 2 THEN (REPEAT (assume_tac 2)));
   41.22 -by (fast_tac (!claset addSEs [RepFunE, lemma2] addEs [apply_type]) 1);
   41.23 +by (fast_tac (claset() addSEs [RepFunE, lemma2] addEs [apply_type]) 1);
   41.24  qed "AC1_AC2";
   41.25  
   41.26  
   41.27 @@ -39,22 +39,22 @@
   41.28  (* ********************************************************************** *)
   41.29  
   41.30  goal thy "!!A. 0~:A ==> 0 ~: {B*{B}. B:A}";
   41.31 -by (fast_tac (!claset addSDs [sym RS (Sigma_empty_iff RS iffD1)]
   41.32 +by (fast_tac (claset() addSDs [sym RS (Sigma_empty_iff RS iffD1)]
   41.33          addSEs [RepFunE, equals0D]) 1);
   41.34  val lemma1 = result();
   41.35  
   41.36  goal thy "!!A. [| X*{X} Int C = {y}; X:A |]  \
   41.37  \               ==> (THE y. X*{X} Int C = {y}): X*A";
   41.38  by (rtac subst_elem 1);
   41.39 -by (fast_tac (!claset addSIs [the_equality]
   41.40 +by (fast_tac (claset() addSIs [the_equality]
   41.41                  addSEs [sym RS trans RS (singleton_eq_iff RS iffD1)]) 2);
   41.42 -by (fast_tac (!claset addSEs [equalityE, make_elim singleton_subsetD]) 1);
   41.43 +by (fast_tac (claset() addSEs [equalityE, make_elim singleton_subsetD]) 1);
   41.44  val lemma2 = result();
   41.45  
   41.46  goal thy "!!A. ALL D:{E*{E}. E:A}. EX y. D Int C = {y}  \
   41.47  \       ==> (lam x:A. fst(THE z. (x*{x} Int C = {z}))) :  \
   41.48  \               (PROD X:A. X) ";
   41.49 -by (fast_tac (!claset addSEs [lemma2]
   41.50 +by (fast_tac (claset() addSEs [lemma2]
   41.51                  addSIs [lam_type, RepFunI, fst_type]
   41.52                  addSDs [bspec]) 1);
   41.53  val lemma3 = result();
   41.54 @@ -62,8 +62,8 @@
   41.55  goalw thy (AC_defs@AC_aux_defs) "!!Z. AC2 ==> AC1";
   41.56  by (REPEAT (resolve_tac [allI, impI] 1));
   41.57  by (REPEAT (eresolve_tac [allE, impE] 1));
   41.58 -by (fast_tac (!claset addSEs [lemma3]) 2);
   41.59 -by (fast_tac (!claset addSIs [lemma1, equals0I]) 1);
   41.60 +by (fast_tac (claset() addSEs [lemma3]) 2);
   41.61 +by (fast_tac (claset() addSIs [lemma1, equals0I]) 1);
   41.62  qed "AC2_AC1";
   41.63  
   41.64  
   41.65 @@ -72,13 +72,13 @@
   41.66  (* ********************************************************************** *)
   41.67  
   41.68  goal thy "!!R. 0 ~: {R``{x}. x:domain(R)}";
   41.69 -by (fast_tac (!claset addEs [sym RS equals0D]) 1);
   41.70 +by (fast_tac (claset() addEs [sym RS equals0D]) 1);
   41.71  val lemma = result();
   41.72  
   41.73  goalw thy AC_defs "!!Z. AC1 ==> AC4";
   41.74  by (REPEAT (resolve_tac [allI, impI] 1));
   41.75  by (REPEAT (eresolve_tac [allE, lemma RSN (2, impE), exE] 1));
   41.76 -by (best_tac (!claset addSIs [lam_type] addSEs [apply_type]) 1);
   41.77 +by (best_tac (claset() addSIs [lam_type] addSEs [apply_type]) 1);
   41.78  qed "AC1_AC4";
   41.79  
   41.80  
   41.81 @@ -87,11 +87,11 @@
   41.82  (* ********************************************************************** *)
   41.83  
   41.84  goal thy "!!f. f:A->B ==> (UN z:A. {z}*f`z) <= A*Union(B)";
   41.85 -by (fast_tac (!claset addSDs [apply_type]) 1);
   41.86 +by (fast_tac (claset() addSDs [apply_type]) 1);
   41.87  val lemma1 = result();
   41.88  
   41.89  goal thy "!!f. domain(UN z:A. {z}*f(z)) = {a:A. f(a)~=0}";
   41.90 -by (fast_tac (!claset addSIs [not_emptyI] addDs [range_type]) 1);
   41.91 +by (fast_tac (claset() addSIs [not_emptyI] addDs [range_type]) 1);
   41.92  val lemma2 = result();
   41.93  
   41.94  goal thy "!!f. x:A ==> (UN z:A. {z}*f(z))``{x} = f(x)";
   41.95 @@ -102,7 +102,7 @@
   41.96  by (REPEAT (resolve_tac [allI,ballI] 1));
   41.97  by (REPEAT (eresolve_tac [allE,impE] 1));
   41.98  by (etac lemma1 1);
   41.99 -by (asm_full_simp_tac (!simpset addsimps [lemma2, lemma3]
  41.100 +by (asm_full_simp_tac (simpset() addsimps [lemma2, lemma3]
  41.101                          addcongs [Pi_cong]) 1);
  41.102  qed "AC4_AC3";
  41.103  
  41.104 @@ -111,7 +111,7 @@
  41.105  (* ********************************************************************** *)
  41.106  
  41.107  goal thy "!!A. b~:A ==> (PROD x:{a:A. id(A)`a~=b}. id(A)`x) = (PROD x:A. x)";
  41.108 -by (asm_full_simp_tac (!simpset addsimps [id_def] addcongs [Pi_cong]) 1);
  41.109 +by (asm_full_simp_tac (simpset() addsimps [id_def] addcongs [Pi_cong]) 1);
  41.110  by (res_inst_tac [("b","A")] subst_context 1);
  41.111  by (Fast_tac 1);
  41.112  val lemma = result();
  41.113 @@ -119,8 +119,8 @@
  41.114  goalw thy AC_defs "!!Z. AC3 ==> AC1";
  41.115  by (REPEAT (resolve_tac [allI, impI] 1));
  41.116  by (REPEAT (eresolve_tac [allE, ballE] 1));
  41.117 -by (fast_tac (!claset addSIs [id_type]) 2);
  41.118 -by (fast_tac (!claset addEs [lemma RS subst]) 1);
  41.119 +by (fast_tac (claset() addSIs [id_type]) 2);
  41.120 +by (fast_tac (claset() addEs [lemma RS subst]) 1);
  41.121  qed "AC3_AC1";
  41.122  
  41.123  (* ********************************************************************** *)
  41.124 @@ -134,13 +134,13 @@
  41.125  by (etac exE 1);
  41.126  by (rtac bexI 1);
  41.127  by (rtac Pi_type 2 THEN (assume_tac 2));
  41.128 -by (fast_tac (!claset addSDs [apply_type]
  41.129 +by (fast_tac (claset() addSDs [apply_type]
  41.130          addSEs [fun_is_rel RS converse_type RS subsetD RS SigmaD2]) 2);
  41.131  by (rtac ballI 1);
  41.132  by (rtac apply_equality 1 THEN (assume_tac 2));
  41.133  by (etac domainE 1);
  41.134  by (forward_tac [range_type] 1 THEN (assume_tac 1));
  41.135 -by (fast_tac (!claset addDs [apply_equality]) 1);
  41.136 +by (fast_tac (claset() addDs [apply_equality]) 1);
  41.137  qed "AC4_AC5";
  41.138  
  41.139  
  41.140 @@ -149,18 +149,18 @@
  41.141  (* ********************************************************************** *)
  41.142  
  41.143  goal thy "!!A. R <= A*B ==> (lam x:R. fst(x)) : R -> A";
  41.144 -by (fast_tac (!claset addSIs [lam_type, fst_type]) 1);
  41.145 +by (fast_tac (claset() addSIs [lam_type, fst_type]) 1);
  41.146  val lemma1 = result();
  41.147  
  41.148  goalw thy [range_def] "!!A. R <= A*B ==> range(lam x:R. fst(x)) = domain(R)";
  41.149  by (rtac equalityI 1);
  41.150 -by (fast_tac (!claset addSEs [lamE]
  41.151 +by (fast_tac (claset() addSEs [lamE]
  41.152                  addEs [subst_elem]
  41.153                  addSDs [Pair_fst_snd_eq]) 1);
  41.154  by (rtac subsetI 1);
  41.155  by (etac domainE 1);
  41.156  by (rtac domainI 1);
  41.157 -by (fast_tac (!claset addSEs [lamI RS subst_elem] addIs [fst_conv RS ssubst]) 1);
  41.158 +by (fast_tac (claset() addSEs [lamI RS subst_elem] addIs [fst_conv RS ssubst]) 1);
  41.159  val lemma2 = result();
  41.160  
  41.161  goal thy "!!A. [| EX f: A->C. P(f,domain(f)); A=B |] ==>  EX f: B->C. P(f,B)";
  41.162 @@ -185,7 +185,7 @@
  41.163  by (REPEAT (eresolve_tac [allE,ballE] 1));
  41.164  by (eresolve_tac [lemma1 RSN (2, notE)] 2 THEN (assume_tac 2));
  41.165  by (dresolve_tac [lemma2 RSN (2, lemma3)] 1 THEN (assume_tac 1));
  41.166 -by (fast_tac (!claset addSEs [lemma4]) 1);
  41.167 +by (fast_tac (claset() addSEs [lemma4]) 1);
  41.168  qed "AC5_AC4";
  41.169  
  41.170  
  41.171 @@ -194,6 +194,6 @@
  41.172  (* ********************************************************************** *)
  41.173  
  41.174  goalw thy AC_defs "AC1 <-> AC6";
  41.175 -by (fast_tac (!claset addDs [equals0D] addSEs [not_emptyE]) 1);
  41.176 +by (fast_tac (claset() addDs [equals0D] addSEs [not_emptyE]) 1);
  41.177  qed "AC1_iff_AC6";
  41.178  
    42.1 --- a/src/ZF/AC/AC7_AC9.ML	Mon Nov 03 12:22:43 1997 +0100
    42.2 +++ b/src/ZF/AC/AC7_AC9.ML	Mon Nov 03 12:24:13 1997 +0100
    42.3 @@ -18,7 +18,7 @@
    42.4  qed "mem_not_eq_not_mem";
    42.5  
    42.6  goal thy "!!A. [| 0~:A; B:A |] ==> (nat->Union(A))*B ~= 0";
    42.7 -by (fast_tac (!claset addSDs [Sigma_empty_iff RS iffD1]
    42.8 +by (fast_tac (claset() addSDs [Sigma_empty_iff RS iffD1]
    42.9                  addDs [fun_space_emptyD, mem_not_eq_not_mem]
   42.10                  addEs [equals0D]
   42.11                  addSIs [equals0I,UnionI]) 1);
   42.12 @@ -45,7 +45,7 @@
   42.13  qed "if_eqE2";
   42.14  
   42.15  goal thy "!!A. [| (lam x:A. f(x))=(lam x:A. g(x)); a:A |] ==> f(a)=g(a)";
   42.16 -by (fast_tac (!claset addDs [subsetD]
   42.17 +by (fast_tac (claset() addDs [subsetD]
   42.18                  addSIs [lamI]
   42.19                  addEs [equalityE, lamE]) 1);
   42.20  qed "lam_eqE";
   42.21 @@ -55,7 +55,7 @@
   42.22  \               (lam n:nat. if(n=0, snd(g), fst(g)`(n #- 1))))  \
   42.23  \               : inj((nat->Union(A))*C, (nat->Union(A)) ) ";
   42.24  by (rtac CollectI 1);
   42.25 -by (fast_tac (!claset addSIs [lam_type,RepFunI,if_type,snd_type,apply_type,
   42.26 +by (fast_tac (claset() addSIs [lam_type,RepFunI,if_type,snd_type,apply_type,
   42.27                                  fst_type,diff_type,nat_succI,nat_0I]) 1);
   42.28  by (REPEAT (resolve_tac [ballI, impI] 1));
   42.29  by (Asm_full_simp_tac 1);
   42.30 @@ -67,15 +67,15 @@
   42.31  by (Asm_full_simp_tac 2);
   42.32  by (rtac fun_extension 1 THEN  REPEAT (assume_tac 1));
   42.33  by (dresolve_tac [nat_succI RSN (2, lam_eqE)] 1 THEN (assume_tac 1));
   42.34 -by (asm_full_simp_tac (!simpset addsimps [succ_not_0 RS if_not_P]) 1);
   42.35 +by (asm_full_simp_tac (simpset() addsimps [succ_not_0 RS if_not_P]) 1);
   42.36  val lemma = result();
   42.37  
   42.38  goal thy "!!A. [| C:A; 0~:A |] ==> (nat->Union(A)) * C eqpoll (nat->Union(A))";
   42.39  by (rtac eqpollI 1);
   42.40 -by (fast_tac (!claset addSEs [prod_lepoll_self, not_sym RS not_emptyE,
   42.41 +by (fast_tac (claset() addSEs [prod_lepoll_self, not_sym RS not_emptyE,
   42.42                  subst_elem] addEs [swap]) 2);
   42.43  by (rewtac lepoll_def);
   42.44 -by (fast_tac (!claset addSIs [lemma]) 1);
   42.45 +by (fast_tac (claset() addSIs [lemma]) 1);
   42.46  qed "Sigma_fun_space_eqpoll";
   42.47  
   42.48  
   42.49 @@ -94,22 +94,22 @@
   42.50  (* ********************************************************************** *)
   42.51  
   42.52  goal thy "!!y. y: (PROD B:A. Y*B) ==> (lam B:A. snd(y`B)): (PROD B:A. B)";
   42.53 -by (fast_tac (!claset addSIs [lam_type, snd_type, apply_type]) 1);
   42.54 +by (fast_tac (claset() addSIs [lam_type, snd_type, apply_type]) 1);
   42.55  val lemma1_1 = result();
   42.56  
   42.57  goal thy "!!A. y: (PROD B:{Y*C. C:A}. B)  \
   42.58  \               ==> (lam B:A. y`(Y*B)): (PROD B:A. Y*B)";
   42.59 -by (fast_tac (!claset addSIs [lam_type, apply_type]) 1);
   42.60 +by (fast_tac (claset() addSIs [lam_type, apply_type]) 1);
   42.61  val lemma1_2 = result();
   42.62  
   42.63  goal thy "!!A. (PROD B:{(nat->Union(A))*C. C:A}. B) ~= 0  \
   42.64  \               ==> (PROD B:A. B) ~= 0";
   42.65 -by (fast_tac (!claset addSIs [equals0I,lemma1_1, lemma1_2]
   42.66 +by (fast_tac (claset() addSIs [equals0I,lemma1_1, lemma1_2]
   42.67                  addSEs [equals0D]) 1);
   42.68  val lemma1 = result();
   42.69  
   42.70  goal thy "!!A. 0 ~: A ==> 0 ~: {(nat -> Union(A)) * C. C:A}";
   42.71 -by (fast_tac (!claset addEs [RepFunE,
   42.72 +by (fast_tac (claset() addEs [RepFunE,
   42.73                  Sigma_fun_space_not0 RS not_sym RS notE]) 1);
   42.74  val lemma2 = result();
   42.75  
   42.76 @@ -117,11 +117,11 @@
   42.77  by (rtac allI 1);
   42.78  by (rtac impI 1);
   42.79  by (excluded_middle_tac "A=0" 1);
   42.80 -by (fast_tac (!claset addSIs [not_emptyI, empty_fun]) 2);
   42.81 +by (fast_tac (claset() addSIs [not_emptyI, empty_fun]) 2);
   42.82  by (rtac lemma1 1);
   42.83  by (etac allE 1);
   42.84  by (etac impE 1 THEN (assume_tac 2));
   42.85 -by (fast_tac (!claset addSEs [RepFunE]
   42.86 +by (fast_tac (claset() addSEs [RepFunE]
   42.87          addSIs [lemma2, all_eqpoll_imp_pair_eqpoll,
   42.88                  Sigma_fun_space_eqpoll]) 1);
   42.89  qed "AC7_AC6";
   42.90 @@ -140,13 +140,13 @@
   42.91  by (REPEAT (eresolve_tac [exE,conjE] 1));
   42.92  by (hyp_subst_tac 1);
   42.93  by (Asm_full_simp_tac 1);
   42.94 -by (fast_tac (!claset addSEs [sym RS equals0D]) 1);
   42.95 +by (fast_tac (claset() addSEs [sym RS equals0D]) 1);
   42.96  val lemma1 = result();
   42.97  
   42.98  goal thy "!!A. [| f: (PROD X:RepFun(A,p). X); D:A |]  \
   42.99  \               ==> (lam x:A. f`p(x))`D : p(D)";
  42.100  by (resolve_tac [beta RS ssubst] 1 THEN (assume_tac 1));
  42.101 -by (fast_tac (!claset addSEs [apply_type]) 1);
  42.102 +by (fast_tac (claset() addSEs [apply_type]) 1);
  42.103  val lemma2 = result();
  42.104  
  42.105  goalw thy AC_defs "!!Z. AC1 ==> AC8";
  42.106 @@ -155,7 +155,7 @@
  42.107  by (rtac impI 1);
  42.108  by (etac impE 1);
  42.109  by (etac lemma1 1);
  42.110 -by (fast_tac (!claset addSEs [lemma2]) 1);
  42.111 +by (fast_tac (claset() addSEs [lemma2]) 1);
  42.112  qed "AC1_AC8";
  42.113  
  42.114  
  42.115 @@ -180,7 +180,7 @@
  42.116  by (etac allE 1);
  42.117  by (etac impE 1);
  42.118  by (etac lemma1 1);
  42.119 -by (fast_tac (!claset addSEs [lemma2]) 1);
  42.120 +by (fast_tac (claset() addSEs [lemma2]) 1);
  42.121  qed "AC8_AC9";
  42.122  
  42.123  
  42.124 @@ -203,7 +203,7 @@
  42.125  \       ALL B2: ({((nat->Union(A))*B)*nat. B:A}  \
  42.126  \               Un {cons(0,((nat->Union(A))*B)*nat). B:A}).  \
  42.127  \       B1 eqpoll B2";
  42.128 -by (fast_tac (!claset addSIs [all_eqpoll_imp_pair_eqpoll, ballI,
  42.129 +by (fast_tac (claset() addSIs [all_eqpoll_imp_pair_eqpoll, ballI,
  42.130                          nat_cons_eqpoll RS eqpoll_trans]
  42.131                  addEs [Sigma_fun_space_not0 RS not_emptyE]
  42.132                  addIs [snd_lepoll_SigmaI, eqpoll_refl RSN 
  42.133 @@ -219,7 +219,7 @@
  42.134  by (rtac snd_type 1);
  42.135  by (rtac fst_type 1);
  42.136  by (resolve_tac [consI1 RSN (2, apply_type)] 1);
  42.137 -by (fast_tac (!claset addSIs [fun_weaken_type, bij_is_fun]) 1);
  42.138 +by (fast_tac (claset() addSIs [fun_weaken_type, bij_is_fun]) 1);
  42.139  val lemma2 = result();
  42.140  
  42.141  goalw thy AC_defs "!!Z. AC9 ==> AC1";
  42.142 @@ -229,6 +229,6 @@
  42.143  by (excluded_middle_tac "A=0" 1);
  42.144  by (etac impE 1);
  42.145  by (rtac lemma1 1 THEN (REPEAT (assume_tac 1)));
  42.146 -by (fast_tac (!claset addSEs [lemma2]) 1);
  42.147 -by (fast_tac (!claset addSIs [empty_fun]) 1);
  42.148 +by (fast_tac (claset() addSEs [lemma2]) 1);
  42.149 +by (fast_tac (claset() addSIs [empty_fun]) 1);
  42.150  qed "AC9_AC1";
    43.1 --- a/src/ZF/AC/AC_Equiv.ML	Mon Nov 03 12:22:43 1997 +0100
    43.2 +++ b/src/ZF/AC/AC_Equiv.ML	Mon Nov 03 12:24:13 1997 +0100
    43.3 @@ -24,11 +24,11 @@
    43.4  val [prem] = goalw Cardinal.thy [lepoll_def]
    43.5               "m:nat ==> ALL n: nat. m le n --> m lepoll n";
    43.6  by (nat_ind_tac "m" [prem] 1);
    43.7 -by (fast_tac (!claset addSIs [le_imp_subset RS id_subset_inj]) 1);
    43.8 +by (fast_tac (claset() addSIs [le_imp_subset RS id_subset_inj]) 1);
    43.9  by (rtac ballI 1);
   43.10  by (eres_inst_tac [("n","n")] natE 1);
   43.11 -by (asm_simp_tac (!simpset addsimps [inj_def, succI1 RS Pi_empty2]) 1);
   43.12 -by (fast_tac (!claset addSIs [le_imp_subset RS id_subset_inj]) 1);
   43.13 +by (asm_simp_tac (simpset() addsimps [inj_def, succI1 RS Pi_empty2]) 1);
   43.14 +by (fast_tac (claset() addSIs [le_imp_subset RS id_subset_inj]) 1);
   43.15  qed "nat_le_imp_lepoll_lemma";
   43.16  
   43.17  (* used in : AC10-AC15.ML WO1-WO6.ML WO6WO1.ML*)
   43.18 @@ -39,14 +39,14 @@
   43.19  (* ********************************************************************** *)
   43.20  
   43.21  goal thy "!!X. (A->X)=0 ==> X=0";
   43.22 -by (fast_tac (!claset addSIs [equals0I] addEs [lam_type RSN (2, equals0D)]) 1);
   43.23 +by (fast_tac (claset() addSIs [equals0I] addEs [lam_type RSN (2, equals0D)]) 1);
   43.24  qed "fun_space_emptyD";
   43.25  
   43.26  (* used only in WO1_DC.ML *)
   43.27  (*Note simpler proof*)
   43.28  goal ZF.thy "!!A f g. [| ALL x:A. f`x=g`x; f:Df->Cf; g:Dg->Cg;  \
   43.29  \         A<=Df; A<=Dg |] ==> f``A=g``A";
   43.30 -by (asm_simp_tac (!simpset addsimps [image_fun]) 1);
   43.31 +by (asm_simp_tac (simpset() addsimps [image_fun]) 1);
   43.32  qed "images_eq";
   43.33  
   43.34  (* used in : AC10-AC15.ML AC16WO4.ML WO6WO1.ML *)
   43.35 @@ -78,7 +78,7 @@
   43.36      THEN (assume_tac 1));
   43.37  by (dres_inst_tac [("P","%a. <a,ya>:r")] (id_conv RS subst) 1
   43.38      THEN (REPEAT (assume_tac 1)));
   43.39 -by (fast_tac (!claset addIs [id_conv RS ssubst]) 1);
   43.40 +by (fast_tac (claset() addIs [id_conv RS ssubst]) 1);
   43.41  qed "rvimage_id";
   43.42  
   43.43  (* used only in Hartog.ML *)
   43.44 @@ -92,42 +92,42 @@
   43.45  (* used only in AC16_lemmas.ML *)
   43.46  goalw CardinalArith.thy [InfCard_def]
   43.47          "!!i. [| ~Finite(i); Card(i) |] ==> InfCard(i)";
   43.48 -by (asm_simp_tac (!simpset addsimps [Card_is_Ord RS nat_le_infinite_Ord]) 1);
   43.49 +by (asm_simp_tac (simpset() addsimps [Card_is_Ord RS nat_le_infinite_Ord]) 1);
   43.50  qed "Inf_Card_is_InfCard";
   43.51  
   43.52  goal thy "(THE z. {x}={z}) = x";
   43.53 -by (fast_tac (!claset addSIs [the_equality]
   43.54 +by (fast_tac (claset() addSIs [the_equality]
   43.55                  addSEs [singleton_eq_iff RS iffD1 RS sym]) 1);
   43.56  qed "the_element";
   43.57  
   43.58  goal thy "(lam x:A. {x}) : bij(A, {{x}. x:A})";
   43.59  by (res_inst_tac [("d","%z. THE x. z={x}")] lam_bijective 1);
   43.60  by (TRYALL (eresolve_tac [RepFunI, RepFunE]));
   43.61 -by (REPEAT (asm_full_simp_tac (!simpset addsimps [the_element]) 1));
   43.62 +by (REPEAT (asm_full_simp_tac (simpset() addsimps [the_element]) 1));
   43.63  qed "lam_sing_bij";
   43.64  
   43.65  val [major,minor] = goal thy 
   43.66          "[| f : Pi(A,B); (!!x. x:A ==> B(x)<=C(x)) |] ==> f : Pi(A,C)";
   43.67 -by (fast_tac (!claset addSIs [major RS Pi_type, minor RS subsetD,
   43.68 +by (fast_tac (claset() addSIs [major RS Pi_type, minor RS subsetD,
   43.69                  major RS apply_type]) 1);
   43.70  qed "Pi_weaken_type";
   43.71  
   43.72  val [major, minor] = goalw thy [inj_def]
   43.73          "[| f:inj(A, B); (!!a. a:A ==> f`a : C) |] ==> f:inj(A,C)";
   43.74 -by (fast_tac (!claset addSEs [minor]
   43.75 +by (fast_tac (claset() addSEs [minor]
   43.76          addSIs [major RS CollectD1 RS Pi_type, major RS CollectD2]) 1);
   43.77  qed "inj_strengthen_type";
   43.78  
   43.79  goal thy "A*B=0 <-> A=0 | B=0";
   43.80 -by (fast_tac (!claset addSIs [equals0I] addEs [equals0D]) 1);
   43.81 +by (fast_tac (claset() addSIs [equals0I] addEs [equals0D]) 1);
   43.82  qed "Sigma_empty_iff";
   43.83  
   43.84  goalw thy [Finite_def] "!!n. n:nat ==> Finite(n)";
   43.85 -by (fast_tac (!claset addSIs [eqpoll_refl]) 1);
   43.86 +by (fast_tac (claset() addSIs [eqpoll_refl]) 1);
   43.87  qed "nat_into_Finite";
   43.88  
   43.89  goalw thy [Finite_def] "~Finite(nat)";
   43.90 -by (fast_tac (!claset addSDs [eqpoll_imp_lepoll]
   43.91 +by (fast_tac (claset() addSDs [eqpoll_imp_lepoll]
   43.92                  addIs [Ord_nat RSN (2, ltI) RS lt_not_lepoll RS notE]) 1);
   43.93  qed "nat_not_Finite";
   43.94  
   43.95 @@ -152,15 +152,15 @@
   43.96  by (etac CollectE 1);
   43.97  by (resolve_tac [subset_refl RSN (2, image_fun) RS ssubst] 1 
   43.98      THEN (assume_tac 1));
   43.99 -by (fast_tac (!claset addSEs [apply_type] addIs [equalityI]) 1);
  43.100 +by (fast_tac (claset() addSEs [apply_type] addIs [equalityI]) 1);
  43.101  qed "surj_image_eq";
  43.102  
  43.103  
  43.104  goal thy "!!y. succ(x) lepoll y ==> y ~= 0";
  43.105 -by (fast_tac (!claset addSDs [lepoll_0_is_0]) 1);
  43.106 +by (fast_tac (claset() addSDs [lepoll_0_is_0]) 1);
  43.107  qed "succ_lepoll_imp_not_empty";
  43.108  
  43.109  goal thy "!!x. x eqpoll succ(n) ==> x ~= 0";
  43.110 -by (fast_tac (!claset addSEs [eqpoll_sym RS eqpoll_0_is_0 RS succ_neq_0]) 1);
  43.111 +by (fast_tac (claset() addSEs [eqpoll_sym RS eqpoll_0_is_0 RS succ_neq_0]) 1);
  43.112  qed "eqpoll_succ_imp_not_empty";
  43.113  
    44.1 --- a/src/ZF/AC/Cardinal_aux.ML	Mon Nov 03 12:22:43 1997 +0100
    44.2 +++ b/src/ZF/AC/Cardinal_aux.ML	Mon Nov 03 12:24:13 1997 +0100
    44.3 @@ -15,7 +15,7 @@
    44.4  (* j=|A| *)
    44.5  goal Cardinal.thy
    44.6      "!!A. [| A lepoll i; Ord(i) |] ==> EX j. j le i & A eqpoll j";
    44.7 -by (fast_tac (!claset addIs [lepoll_cardinal_le, well_ord_Memrel,
    44.8 +by (fast_tac (claset() addIs [lepoll_cardinal_le, well_ord_Memrel,
    44.9                              well_ord_cardinal_eqpoll RS eqpoll_sym]
   44.10                      addDs [lepoll_well_ord]) 1);
   44.11  qed "lepoll_imp_ex_le_eqpoll";
   44.12 @@ -23,7 +23,7 @@
   44.13  (* j=|A| *)
   44.14  goalw Cardinal.thy [lesspoll_def]
   44.15      "!!A a. [| A lesspoll i; Ord(i) |] ==> EX j. j<i & A eqpoll j";
   44.16 -by (fast_tac (!claset addSDs [lepoll_imp_ex_le_eqpoll] addSEs [leE]) 1);
   44.17 +by (fast_tac (claset() addSDs [lepoll_imp_ex_le_eqpoll] addSEs [leE]) 1);
   44.18  qed "lesspoll_imp_ex_lt_eqpoll";
   44.19  
   44.20  goalw thy [InfCard_def] "!!i. [| ~Finite(i); Ord(i) |] ==> InfCard(|i|)";
   44.21 @@ -65,7 +65,7 @@
   44.22      THEN REPEAT (assume_tac 1));
   44.23  qed "Un_eqpoll_Inf_Ord";
   44.24  
   44.25 -val ss = (!simpset) addsimps [inj_is_fun RS apply_type, left_inverse] 
   44.26 +val ss = (simpset()) addsimps [inj_is_fun RS apply_type, left_inverse] 
   44.27                 setloop (split_tac [expand_if] ORELSE' etac UnE);
   44.28  
   44.29  goal ZF.thy "{x, y} - {y} = {x} - {y}";
   44.30 @@ -74,23 +74,23 @@
   44.31  
   44.32  goal ZF.thy "if({y,z}-{z}=0, z, THE w. {y,z}-{z}={w}) = y";
   44.33  by (split_tac [expand_if] 1);
   44.34 -by (asm_full_simp_tac (!simpset addsimps [double_Diff_sing, Diff_eq_0_iff]) 1);
   44.35 -by (fast_tac (!claset addSIs [the_equality] addEs [equalityE]) 1);
   44.36 +by (asm_full_simp_tac (simpset() addsimps [double_Diff_sing, Diff_eq_0_iff]) 1);
   44.37 +by (fast_tac (claset() addSIs [the_equality] addEs [equalityE]) 1);
   44.38  qed "paired_bij_lemma";
   44.39  
   44.40  goal thy "(lam y:{{y,z}. y:x}. if(y-{z}=0, z, THE w. y-{z}={w}))  \
   44.41  \               : bij({{y,z}. y:x}, x)";
   44.42  by (res_inst_tac [("d","%a. {a,z}")] lam_bijective 1);
   44.43 -by (TRYALL (fast_tac (!claset addSEs [RepFunE] addSIs [RepFunI] 
   44.44 -                addss (!simpset addsimps [paired_bij_lemma]))));
   44.45 +by (TRYALL (fast_tac (claset() addSEs [RepFunE] addSIs [RepFunI] 
   44.46 +                addss (simpset() addsimps [paired_bij_lemma]))));
   44.47  qed "paired_bij";
   44.48  
   44.49  goalw thy [eqpoll_def] "{{y,z}. y:x} eqpoll x";
   44.50 -by (fast_tac (!claset addSIs [paired_bij]) 1);
   44.51 +by (fast_tac (claset() addSIs [paired_bij]) 1);
   44.52  qed "paired_eqpoll";
   44.53  
   44.54  goal thy "!!A. EX B. B eqpoll A & B Int C = 0";
   44.55 -by (fast_tac (!claset addSIs [paired_eqpoll, equals0I] addEs [mem_asym]) 1);
   44.56 +by (fast_tac (claset() addSIs [paired_eqpoll, equals0I] addEs [mem_asym]) 1);
   44.57  qed "ex_eqpoll_disjoint";
   44.58  
   44.59  goal thy "!!A. [| A lepoll i; B lepoll i; ~Finite(i); Ord(i) |]  \
   44.60 @@ -109,14 +109,14 @@
   44.61  by (eresolve_tac [Least_le RS leE] 1);
   44.62  by (etac Ord_in_Ord 1 THEN (assume_tac 1));
   44.63  by (etac ltE 1);
   44.64 -by (fast_tac (!claset addDs [OrdmemD]) 1);
   44.65 +by (fast_tac (claset() addDs [OrdmemD]) 1);
   44.66  by (etac subst_elem 1 THEN (assume_tac 1));
   44.67  qed "Least_in_Ord";
   44.68  
   44.69  goal thy "!!x. [| well_ord(x,r); y<=x; y lepoll succ(n); n:nat |]  \
   44.70  \       ==> y-{THE b. first(b,y,r)} lepoll n";
   44.71  by (res_inst_tac [("Q","y=0")] (excluded_middle RS disjE) 1);
   44.72 -by (fast_tac (!claset addSIs [Diff_sing_lepoll, the_first_in]) 1);
   44.73 +by (fast_tac (claset() addSIs [Diff_sing_lepoll, the_first_in]) 1);
   44.74  by (res_inst_tac [("b","y-{THE b. first(b, y, r)}")] subst 1);
   44.75  by (rtac empty_lepollI 2);
   44.76  by (Fast_tac 1);
   44.77 @@ -129,8 +129,8 @@
   44.78  goalw thy [lepoll_def] "!!a. Ord(a) ==> (UN x:a. {P(x)}) lepoll a";
   44.79  by (res_inst_tac [("x","lam z:(UN x:a. {P(x)}). (LEAST i. P(i)=z)")] exI 1);
   44.80  by (res_inst_tac [("d","%z. P(z)")] lam_injective 1);
   44.81 -by (fast_tac (!claset addSIs [Least_in_Ord]) 1);
   44.82 -by (fast_tac (!claset addIs [LeastI] addSEs [Ord_in_Ord]) 1);
   44.83 +by (fast_tac (claset() addSIs [Least_in_Ord]) 1);
   44.84 +by (fast_tac (claset() addIs [LeastI] addSEs [Ord_in_Ord]) 1);
   44.85  qed "UN_sing_lepoll";
   44.86  
   44.87  goal thy "!!a T. [| well_ord(T, R); ~Finite(a); Ord(a); n:nat |] ==>  \
   44.88 @@ -142,13 +142,13 @@
   44.89  by (rtac empty_lepollI 2);
   44.90  by (resolve_tac [equals0I RS sym] 1);
   44.91  by (REPEAT (eresolve_tac [UN_E, allE] 1));
   44.92 -by (fast_tac (!claset addDs [lepoll_0_is_0 RS subst]) 1);
   44.93 +by (fast_tac (claset() addDs [lepoll_0_is_0 RS subst]) 1);
   44.94  by (rtac allI 1);
   44.95  by (rtac impI 1);
   44.96  by (eres_inst_tac [("x","lam x:a. f`x - {THE b. first(b,f`x,R)}")] allE 1);
   44.97  by (etac impE 1);
   44.98  by (Asm_full_simp_tac 1);
   44.99 -by (fast_tac (!claset addSIs [Diff_first_lepoll]) 1);
  44.100 +by (fast_tac (claset() addSIs [Diff_first_lepoll]) 1);
  44.101  by (Asm_full_simp_tac 1);
  44.102  by (resolve_tac [UN_subset_split RS subset_imp_lepoll RS lepoll_trans] 1);
  44.103  by (rtac Un_lepoll_Inf_Ord 1 THEN (REPEAT_FIRST assume_tac));
  44.104 @@ -188,11 +188,11 @@
  44.105  goalw thy [eqpoll_def] "!!A B. A Int B = 0 ==> A Un B eqpoll A + B";
  44.106  by (res_inst_tac [("x","lam a:A Un B. if(a:A,Inl(a),Inr(a))")] exI 1);
  44.107  by (res_inst_tac [("d","%z. case(%x. x, %x. x, z)")] lam_bijective 1);
  44.108 -by (fast_tac (!claset addSIs [if_type, InlI, InrI]) 1);
  44.109 +by (fast_tac (claset() addSIs [if_type, InlI, InrI]) 1);
  44.110  by (TRYALL (etac sumE ));
  44.111  by (TRYALL (split_tac [expand_if]));
  44.112  by (TRYALL Asm_simp_tac);
  44.113 -by (fast_tac (!claset addDs [equals0D]) 1);
  44.114 +by (fast_tac (claset() addDs [equals0D]) 1);
  44.115  qed "disj_Un_eqpoll_sum";
  44.116  
  44.117  goalw thy [lepoll_def, eqpoll_def]
  44.118 @@ -200,7 +200,7 @@
  44.119  by (etac exE 1);
  44.120  by (forward_tac [subset_refl RSN (2, restrict_bij)] 1);
  44.121  by (res_inst_tac [("x","f``a")] exI 1);
  44.122 -by (fast_tac (!claset addSEs [inj_is_fun RS fun_is_rel RS image_subset]) 1);
  44.123 +by (fast_tac (claset() addSEs [inj_is_fun RS fun_is_rel RS image_subset]) 1);
  44.124  qed "lepoll_imp_eqpoll_subset";
  44.125  
  44.126  (* ********************************************************************** *)
  44.127 @@ -226,22 +226,22 @@
  44.128  by (dresolve_tac [[lepoll_Finite, lepoll_Finite] MRS Finite_Un] 2
  44.129          THEN (REPEAT (assume_tac 2)));
  44.130  by (dresolve_tac [subset_Un_Diff RS subset_imp_lepoll RS lepoll_Finite] 2);
  44.131 -by (fast_tac (!claset
  44.132 +by (fast_tac (claset()
  44.133          addDs [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_Finite]) 2);
  44.134  by (dresolve_tac [ Un_lepoll_Inf_Ord] 1
  44.135          THEN (REPEAT (assume_tac 1)));
  44.136 -by (fast_tac (!claset addSEs [ltE, Ord_in_Ord]) 1);
  44.137 +by (fast_tac (claset() addSEs [ltE, Ord_in_Ord]) 1);
  44.138  by (dresolve_tac [subset_Un_Diff RS subset_imp_lepoll RS lepoll_trans RSN
  44.139          (3, lt_Card_imp_lesspoll RS lepoll_lesspoll_lesspoll)] 1
  44.140          THEN (TRYALL assume_tac));
  44.141 -by (fast_tac (!claset addSDs [lesspoll_def RS def_imp_iff RS iffD1]) 1);
  44.142 +by (fast_tac (claset() addSDs [lesspoll_def RS def_imp_iff RS iffD1]) 1);
  44.143  qed "Diff_lesspoll_eqpoll_Card_lemma";
  44.144  
  44.145  goal thy "!!A. [| A eqpoll a; ~Finite(a); Card(a); B lesspoll a |]  \
  44.146  \       ==> A - B eqpoll a";
  44.147  by (rtac swap 1 THEN (Fast_tac 1));
  44.148  by (rtac Diff_lesspoll_eqpoll_Card_lemma 1 THEN (REPEAT (assume_tac 1)));
  44.149 -by (fast_tac (!claset addSIs [lesspoll_def RS def_imp_iff RS iffD2,
  44.150 +by (fast_tac (claset() addSIs [lesspoll_def RS def_imp_iff RS iffD2,
  44.151          subset_imp_lepoll RS (eqpoll_imp_lepoll RSN (2, lepoll_trans))]) 1);
  44.152  qed "Diff_lesspoll_eqpoll_Card";
  44.153  
    45.1 --- a/src/ZF/AC/DC.ML	Mon Nov 03 12:22:43 1997 +0100
    45.2 +++ b/src/ZF/AC/DC.ML	Mon Nov 03 12:24:13 1997 +0100
    45.3 @@ -50,11 +50,11 @@
    45.4  by (res_inst_tac [("a","<0, {<0, x>}>")] not_emptyI 1);
    45.5  by (rtac CollectI 1);
    45.6  by (rtac SigmaI 1);
    45.7 -by (fast_tac (!claset addSIs [nat_0I RS UN_I, empty_fun]) 1);
    45.8 +by (fast_tac (claset() addSIs [nat_0I RS UN_I, empty_fun]) 1);
    45.9  by (rtac (nat_1I RS UN_I) 1);
   45.10 -by (fast_tac (!claset addSIs [singleton_fun RS Pi_type]
   45.11 -        addss (!simpset addsimps [singleton_0 RS sym])) 1);
   45.12 -by (asm_full_simp_tac (!simpset addsimps [domain_0, domain_cons,
   45.13 +by (fast_tac (claset() addSIs [singleton_fun RS Pi_type]
   45.14 +        addss (simpset() addsimps [singleton_0 RS sym])) 1);
   45.15 +by (asm_full_simp_tac (simpset() addsimps [domain_0, domain_cons,
   45.16                  singleton_0]) 1);
   45.17  val lemma1_2 = result();
   45.18  
   45.19 @@ -86,9 +86,9 @@
   45.20  by (etac nat_succI 1);
   45.21  by (rtac CollectI 1);
   45.22  by (etac cons_fun_type2 1 THEN (assume_tac 1));
   45.23 -by (fast_tac (!claset addSEs [succE] addss (!simpset
   45.24 +by (fast_tac (claset() addSEs [succE] addss (simpset()
   45.25          addsimps [cons_image_n, cons_val_n, cons_image_k, cons_val_k])) 1);
   45.26 -by (asm_full_simp_tac (!simpset
   45.27 +by (asm_full_simp_tac (simpset()
   45.28          addsimps [domain_cons, domain_of_fun, succ_def, restrict_cons_eq]) 1);
   45.29  val lemma1_3 = result();
   45.30  
   45.31 @@ -97,7 +97,7 @@
   45.32  \       & restrict(z2, domain(z1)) = z1};  \
   45.33  \       ALL Y:Pow(X). Y lesspoll nat --> (EX x:X. <Y, x> : R)  \
   45.34  \       |] ==> RR <= XX*XX & RR ~= 0 & range(RR) <= domain(RR)";
   45.35 -by (fast_tac (!claset addSIs [lemma1_1] addSEs [lemma1_2, lemma1_3]) 1);
   45.36 +by (fast_tac (claset() addSIs [lemma1_1] addSEs [lemma1_2, lemma1_3]) 1);
   45.37  val lemma1 = result();
   45.38  
   45.39  goal thy
   45.40 @@ -114,10 +114,10 @@
   45.41  by (Asm_full_simp_tac 1);
   45.42  by Safe_tac;
   45.43  by (rtac bexI 1 THEN (assume_tac 2));
   45.44 -by (best_tac (!claset addIs [ltD]
   45.45 +by (best_tac (claset() addIs [ltD]
   45.46                        addSEs [nat_0_le RS leE]
   45.47          addEs [sym RS trans RS succ_neq_0, domain_of_fun]
   45.48 -        addss (!simpset)) 1);
   45.49 +        addss (simpset())) 1);
   45.50  (** LEVEL 7 **)
   45.51  by (dresolve_tac [nat_succI RSN (2, bspec)] 1 THEN (assume_tac 1));
   45.52  by (subgoal_tac "f ` succ(succ(x)) : succ(k)->X" 1);
   45.53 @@ -129,11 +129,11 @@
   45.54      (assume_tac 1));
   45.55  by (forw_inst_tac [("a","xa")] (domain_of_fun RS sym RS trans) 1 THEN
   45.56      (assume_tac 1));
   45.57 -by (fast_tac (!claset addSEs [nat_succI, nat_into_Ord RS succ_in_succ]
   45.58 +by (fast_tac (claset() addSEs [nat_succI, nat_into_Ord RS succ_in_succ]
   45.59          addSDs [nat_into_Ord RS succ_in_succ RSN (2, bspec)]) 1);
   45.60  by (dtac domain_of_fun 1);
   45.61  by (Full_simp_tac 1);
   45.62 -by (deepen_tac (!claset addDs [domain_of_fun RS sym RS trans]) 0 1);
   45.63 +by (deepen_tac (claset() addDs [domain_of_fun RS sym RS trans]) 0 1);
   45.64  val lemma2 = result();
   45.65  
   45.66  goal thy 
   45.67 @@ -151,7 +151,7 @@
   45.68  by (dresolve_tac [nat_succI RSN (2, bspec)] 1 THEN (assume_tac 1));
   45.69  by (Asm_full_simp_tac 1);
   45.70  by (dtac lemma2 1 THEN REPEAT (assume_tac 1));
   45.71 -by (fast_tac (!claset addSDs [domain_of_fun]) 1);
   45.72 +by (fast_tac (claset() addSDs [domain_of_fun]) 1);
   45.73  by (dres_inst_tac [("x","xa")] bspec 1 THEN (assume_tac 1));
   45.74  by (eresolve_tac [sym RS trans RS sym] 1);
   45.75  by (resolve_tac [restrict_eq_imp_val_eq RS sym] 1);
   45.76 @@ -174,21 +174,21 @@
   45.77  \       f: nat -> XX; n:nat  \
   45.78  \       |] ==> (lam x:nat. f`succ(x)`x) `` n = f`succ(n)``n";
   45.79  by (etac natE 1);
   45.80 -by (asm_full_simp_tac (!simpset addsimps [image_0]) 1);
   45.81 +by (asm_full_simp_tac (simpset() addsimps [image_0]) 1);
   45.82  by (resolve_tac [image_lam RS ssubst] 1);
   45.83 -by (fast_tac (!claset addSEs [[nat_succI, Ord_nat] MRS OrdmemD]) 1);
   45.84 +by (fast_tac (claset() addSEs [[nat_succI, Ord_nat] MRS OrdmemD]) 1);
   45.85  by (resolve_tac [lemma3_1 RS lemma3_2 RS ssubst] 1
   45.86          THEN REPEAT (assume_tac 1));
   45.87 -by (fast_tac (!claset addSEs [nat_succI]) 1);
   45.88 +by (fast_tac (claset() addSEs [nat_succI]) 1);
   45.89  by (dresolve_tac [nat_succI RSN (4, lemma2)] 1
   45.90          THEN REPEAT (assume_tac 1));
   45.91 -by (fast_tac (!claset addSEs [nat_into_Ord RSN (2, OrdmemD) RSN 
   45.92 +by (fast_tac (claset() addSEs [nat_into_Ord RSN (2, OrdmemD) RSN 
   45.93                              (2, image_fun RS sym)]) 1);
   45.94  val lemma3 = result();
   45.95  
   45.96  goal thy "!!f. [| f:A->B; B<=C |] ==> f:A->C";
   45.97  by (rtac Pi_type 1 THEN (assume_tac 1));
   45.98 -by (fast_tac (!claset addSEs [apply_type]) 1);
   45.99 +by (fast_tac (claset() addSEs [apply_type]) 1);
  45.100  qed "fun_type_gen";
  45.101  
  45.102  goalw thy [DC_def, DC0_def] "!!Z. DC0 ==> DC(nat)";
  45.103 @@ -198,16 +198,16 @@
  45.104          THEN (assume_tac 1));
  45.105  by (etac bexE 1);
  45.106  by (res_inst_tac [("x","lam n:nat. f`succ(n)`n")] bexI 1);
  45.107 -by (fast_tac (!claset addSIs [lam_type] addSDs [refl RS lemma2]
  45.108 +by (fast_tac (claset() addSIs [lam_type] addSDs [refl RS lemma2]
  45.109                  addSEs [fun_type_gen, apply_type]) 2);
  45.110  by (rtac oallI 1);
  45.111  by (forward_tac [ltD RSN (3, refl RS lemma2)] 1
  45.112          THEN assume_tac 2);
  45.113 -by (fast_tac (!claset addSEs [fun_type_gen]) 1);
  45.114 +by (fast_tac (claset() addSEs [fun_type_gen]) 1);
  45.115  by (eresolve_tac [ltD RSN (3, refl RS lemma3) RS ssubst] 1
  45.116          THEN assume_tac 2);
  45.117 -by (fast_tac (!claset addSEs [fun_type_gen]) 1);
  45.118 -by (fast_tac (!claset addss (!simpset)) 1);
  45.119 +by (fast_tac (claset() addSEs [fun_type_gen]) 1);
  45.120 +by (fast_tac (claset() addss (simpset())) 1);
  45.121  qed "DC0_DC_nat";
  45.122  
  45.123  (* ************************************************************************
  45.124 @@ -243,14 +243,14 @@
  45.125  
  45.126  goalw thy [lesspoll_def, Finite_def]
  45.127          "!!A. A lesspoll nat ==> Finite(A)";
  45.128 -by (fast_tac (!claset addSDs [ltD, lepoll_imp_ex_le_eqpoll]
  45.129 +by (fast_tac (claset() addSDs [ltD, lepoll_imp_ex_le_eqpoll]
  45.130          addSIs [Ord_nat]) 1);
  45.131  qed "lesspoll_nat_is_Finite";
  45.132  
  45.133  goal thy "!!n. n:nat ==> ALL A. (A eqpoll n & A <= X) --> A : Fin(X)";
  45.134  by (etac nat_induct 1);
  45.135  by (rtac allI 1);
  45.136 -by (fast_tac (!claset addSIs [Fin.emptyI]
  45.137 +by (fast_tac (claset() addSIs [Fin.emptyI]
  45.138          addSDs [eqpoll_imp_lepoll RS lepoll_0_is_0]) 1);
  45.139  by (rtac allI 1);
  45.140  by (rtac impI 1);
  45.141 @@ -263,7 +263,7 @@
  45.142  by (Fast_tac 1);
  45.143  by (dtac subsetD 1 THEN (assume_tac 1));
  45.144  by (dresolve_tac [Fin.consI] 1 THEN (assume_tac 1));
  45.145 -by (asm_full_simp_tac (!simpset addsimps [cons_Diff]) 1);
  45.146 +by (asm_full_simp_tac (simpset() addsimps [cons_Diff]) 1);
  45.147  qed "Finite_Fin_lemma";
  45.148  
  45.149  goalw thy [Finite_def] "!!A. [| Finite(A); A <= X |] ==> A : Fin(X)";
  45.150 @@ -278,8 +278,8 @@
  45.151  goal thy "!!x. x: X  \
  45.152  \ ==> {<0,x>}: (UN n:nat. {f:succ(n)->X. ALL k:n. <f`k, f`succ(k)> : R})";
  45.153  by (rtac (nat_0I RS UN_I) 1);
  45.154 -by (fast_tac (!claset addSIs [singleton_fun RS Pi_type]
  45.155 -        addss (!simpset addsimps [singleton_0 RS sym])) 1);
  45.156 +by (fast_tac (claset() addSIs [singleton_fun RS Pi_type]
  45.157 +        addss (simpset() addsimps [singleton_0 RS sym])) 1);
  45.158  qed "singleton_in_funs";
  45.159  
  45.160  goal thy
  45.161 @@ -293,41 +293,41 @@
  45.162  \       |] ==> RR <= Pow(XX)*XX &  \
  45.163  \       (ALL Y:Pow(XX). Y lesspoll nat --> (EX x:XX. <Y,x>:RR))";
  45.164  by (rtac conjI 1);
  45.165 -by (deepen_tac (!claset addSEs [FinD RS PowI]) 0 1);
  45.166 +by (deepen_tac (claset() addSEs [FinD RS PowI]) 0 1);
  45.167  by (rtac (impI RS ballI) 1);
  45.168  by (dresolve_tac [[lesspoll_nat_is_Finite, PowD] MRS Finite_Fin] 1
  45.169          THEN (assume_tac 1));
  45.170  by (excluded_middle_tac "EX g:XX. domain(g)=succ(UN f:Y. domain(f))  \
  45.171  \       & (ALL f:Y. restrict(g, domain(f)) = f)" 1);
  45.172  by (etac subst 2 THEN (*elimination equation for greater speed*)
  45.173 -    fast_tac (!claset addss (!simpset)) 2);
  45.174 -by (safe_tac (!claset delrules [domainE]));
  45.175 +    fast_tac (claset() addss (simpset())) 2);
  45.176 +by (safe_tac (claset() delrules [domainE]));
  45.177  by (swap_res_tac [bexI] 1 THEN etac singleton_in_funs 2);
  45.178 -by (asm_full_simp_tac (!simpset addsimps [nat_0I  RSN (2, bexI), 
  45.179 +by (asm_full_simp_tac (simpset() addsimps [nat_0I  RSN (2, bexI), 
  45.180                                       cons_fun_type2, empty_fun]) 1);
  45.181  val lemma4 = result();
  45.182  
  45.183  goal thy "!!f. [| f:nat->X; n:nat |] ==>  \
  45.184  \       (UN x:f``succ(n). P(x)) =  P(f`n) Un (UN x:f``n. P(x))";
  45.185 -by (asm_full_simp_tac (!simpset
  45.186 +by (asm_full_simp_tac (simpset()
  45.187          addsimps [Ord_nat RSN (2, OrdmemD) RSN (2, image_fun),
  45.188          [nat_succI, Ord_nat] MRS OrdmemD RSN (2, image_fun)]) 1);
  45.189  qed "UN_image_succ_eq";
  45.190  
  45.191  goal thy "!!f. [| (UN x:f``n. P(x)) = y; P(f`n) = succ(y);  \
  45.192  \       f:nat -> X; n:nat |] ==> (UN x:f``succ(n). P(x)) = succ(y)";
  45.193 -by (asm_full_simp_tac (!simpset addsimps [UN_image_succ_eq]) 1);
  45.194 +by (asm_full_simp_tac (simpset() addsimps [UN_image_succ_eq]) 1);
  45.195  by (Fast_tac 1);
  45.196  qed "UN_image_succ_eq_succ";
  45.197  
  45.198  goal thy "!!f. [| f:succ(n) -> D;  n:nat;  \
  45.199  \       domain(f)=succ(x); x=y |] ==> f`y : D";
  45.200 -by (fast_tac (!claset addEs [apply_type]
  45.201 +by (fast_tac (claset() addEs [apply_type]
  45.202          addSDs [[sym, domain_of_fun] MRS trans]) 1);
  45.203  qed "apply_domain_type";
  45.204  
  45.205  goal thy "!!f. [| f : nat -> X; n:nat |] ==> f``succ(n) = cons(f`n, f``n)";
  45.206 -by (asm_full_simp_tac (!simpset
  45.207 +by (asm_full_simp_tac (simpset()
  45.208          addsimps [nat_succI, Ord_nat RSN (2, OrdmemD), image_fun]) 1);
  45.209  qed "image_fun_succ";
  45.210  
  45.211 @@ -336,7 +336,7 @@
  45.212  \       u=k; n:nat  \
  45.213  \       |] ==> f`n : succ(k) -> domain(R)";
  45.214  by (dtac apply_type 1 THEN (assume_tac 1));
  45.215 -by (fast_tac (!claset addEs [UN_E, domain_eq_imp_fun_type]) 1);
  45.216 +by (fast_tac (claset() addEs [UN_E, domain_eq_imp_fun_type]) 1);
  45.217  qed "f_n_type";
  45.218  
  45.219  goal thy "!!f. [| f : nat -> (UN n:nat.  \
  45.220 @@ -355,9 +355,9 @@
  45.221  \       |] ==> restrict(cons(<n, y>, f), domain(x)) = x";
  45.222  by (eresolve_tac [sym RS trans RS sym] 1);
  45.223  by (rtac fun_extension 1);
  45.224 -by (fast_tac (!claset addSIs [lam_type]) 1);
  45.225 -by (fast_tac (!claset addSIs [lam_type]) 1);
  45.226 -by (asm_full_simp_tac (!simpset addsimps [subsetD RS cons_val_k]) 1);
  45.227 +by (fast_tac (claset() addSIs [lam_type]) 1);
  45.228 +by (fast_tac (claset() addSIs [lam_type]) 1);
  45.229 +by (asm_full_simp_tac (simpset() addsimps [subsetD RS cons_val_k]) 1);
  45.230  qed "restrict_cons_eq_restrict";
  45.231  
  45.232  goal thy "!!f. [| ALL x:f``n. restrict(f`n, domain(x))=x;  \
  45.233 @@ -367,12 +367,12 @@
  45.234  \       (UN x:f``n. domain(x)) <= n |] \
  45.235  \       ==> ALL x:f``succ(n). restrict(cons(<succ(n),y>, f`n), domain(x))=x";
  45.236  by (rtac ballI 1);
  45.237 -by (asm_full_simp_tac (!simpset addsimps [image_fun_succ]) 1);
  45.238 +by (asm_full_simp_tac (simpset() addsimps [image_fun_succ]) 1);
  45.239  by (dtac f_n_type 1 THEN REPEAT (ares_tac [refl] 1));
  45.240  by (etac disjE 1);
  45.241 -by (asm_full_simp_tac (!simpset addsimps [domain_of_fun, restrict_cons_eq]) 1);
  45.242 +by (asm_full_simp_tac (simpset() addsimps [domain_of_fun, restrict_cons_eq]) 1);
  45.243  by (dtac bspec 1 THEN (assume_tac 1));
  45.244 -by (fast_tac (!claset addSEs [restrict_cons_eq_restrict]) 1);
  45.245 +by (fast_tac (claset() addSEs [restrict_cons_eq_restrict]) 1);
  45.246  qed "all_in_image_restrict_eq";
  45.247  
  45.248  goal thy
  45.249 @@ -394,7 +394,7 @@
  45.250  by (etac nat_induct 1);
  45.251  by (dresolve_tac [[nat_0I, Ord_nat] MRS ltI RSN (2, ospec)] 1);
  45.252  by (fast_tac (FOL_cs addss
  45.253 -              (!simpset addsimps [singleton_fun RS domain_of_fun,
  45.254 +              (simpset() addsimps [singleton_fun RS domain_of_fun,
  45.255                                    singleton_0, singleton_in_funs])) 1);
  45.256  (*induction step*) (** LEVEL 5 **)
  45.257  by (full_simp_tac (*prevent simplification of ~EX to ALL~*)
  45.258 @@ -403,10 +403,10 @@
  45.259          THEN (assume_tac 1));
  45.260  by (REPEAT (eresolve_tac [conjE, disjE] 1));
  45.261  by (fast_tac (FOL_cs addSEs [trans, subst_context]
  45.262 -                     addSIs [UN_image_succ_eq_succ] addss (!simpset)) 1);
  45.263 +                     addSIs [UN_image_succ_eq_succ] addss (simpset())) 1);
  45.264  by (etac conjE 1);
  45.265  by (etac notE 1);
  45.266 -by (asm_full_simp_tac (!simpset addsimps [UN_image_succ_eq_succ]) 1);
  45.267 +by (asm_full_simp_tac (simpset() addsimps [UN_image_succ_eq_succ]) 1);
  45.268  (** LEVEL 12 **)
  45.269  by (REPEAT (eresolve_tac [conjE, bexE] 1));
  45.270  by (dtac apply_domain_type 1 THEN REPEAT (assume_tac 1));
  45.271 @@ -430,9 +430,9 @@
  45.272  by (dresolve_tac [domain_of_fun RSN (2, f_n_pairs_in_R)] 2
  45.273          THEN REPEAT (assume_tac 2));
  45.274  by (dtac bspec 2 THEN (assume_tac 2));
  45.275 -by (asm_full_simp_tac (!simpset
  45.276 +by (asm_full_simp_tac (simpset()
  45.277          addsimps [nat_into_Ord RS succ_in_succ, succI2, cons_val_k]) 2);
  45.278 -by (asm_full_simp_tac (!simpset addsimps [cons_val_n, cons_val_k]) 1);
  45.279 +by (asm_full_simp_tac (simpset() addsimps [cons_val_n, cons_val_k]) 1);
  45.280  qed "simplify_recursion";
  45.281  
  45.282  
  45.283 @@ -450,7 +450,7 @@
  45.284  by (etac CollectE 1);
  45.285  by (Asm_full_simp_tac 1);
  45.286  by (rtac conjI 1);
  45.287 -by (fast_tac (!claset
  45.288 +by (fast_tac (claset()
  45.289          addSEs [trans RS domain_eq_imp_fun_type, subst_context]) 1);
  45.290  by (fast_tac (FOL_cs addSEs [conjE, f_n_pairs_in_R, trans, subst_context]) 1);
  45.291  val lemma2 = result();
  45.292 @@ -472,8 +472,8 @@
  45.293  by (REPEAT (etac conjE 1));
  45.294  by (etac ballE 1);
  45.295  by (eresolve_tac [restrict_eq_imp_val_eq RS sym] 1);
  45.296 -by (fast_tac (!claset addSEs [ssubst]) 1);
  45.297 -by (asm_full_simp_tac (!simpset
  45.298 +by (fast_tac (claset() addSEs [ssubst]) 1);
  45.299 +by (asm_full_simp_tac (simpset()
  45.300          addsimps [[nat_succI, Ord_nat] MRS OrdmemD RSN (2, image_fun)]) 1);
  45.301  val lemma3 = result();
  45.302  
  45.303 @@ -494,7 +494,7 @@
  45.304  by (forward_tac [refl RS (nat_succI RSN (6, lemma2)) RS conjunct2] 1
  45.305          THEN REPEAT (assume_tac 1));
  45.306  by (dresolve_tac [refl RS lemma3] 1 THEN REPEAT (assume_tac 1));
  45.307 -by (asm_full_simp_tac (!simpset addsimps [nat_succI]) 1);
  45.308 +by (asm_full_simp_tac (simpset() addsimps [nat_succI]) 1);
  45.309  qed "DC_nat_DC0";
  45.310  
  45.311  (* ********************************************************************** *)
  45.312 @@ -503,7 +503,7 @@
  45.313  
  45.314  goalw thy [lesspoll_def]
  45.315          "!!A. [| ~ A lesspoll B; C lesspoll B |] ==> A - C ~= 0";
  45.316 -by (fast_tac (!claset addSDs [Diff_eq_0_iff RS iffD1 RS subset_imp_lepoll]
  45.317 +by (fast_tac (claset() addSDs [Diff_eq_0_iff RS iffD1 RS subset_imp_lepoll]
  45.318          addSIs [eqpollI] addEs [notE] addSEs [eqpollE, lepoll_trans]) 1);
  45.319  val lesspoll_lemma = result();
  45.320  
  45.321 @@ -515,18 +515,18 @@
  45.322  by (resolve_tac [Ord_a RS Ord_in_Ord RS Ord_linear_lt] 1
  45.323          THEN (assume_tac 1));
  45.324  by (eres_inst_tac [("j","x")] (Ord_a RS Ord_in_Ord) 1);
  45.325 -by (REPEAT (fast_tac (!claset addDs [not_eq, not_eq RS not_sym]) 1));
  45.326 +by (REPEAT (fast_tac (claset() addDs [not_eq, not_eq RS not_sym]) 1));
  45.327  qed "fun_Ord_inj";
  45.328  
  45.329  goal thy "!!a. [| f:X->Y; A<=X; a:A |] ==> f`a : f``A";
  45.330 -by (fast_tac (!claset addSEs [image_fun RS ssubst]) 1);
  45.331 +by (fast_tac (claset() addSEs [image_fun RS ssubst]) 1);
  45.332  qed "value_in_image";
  45.333  
  45.334  goalw thy [DC_def, WO3_def]
  45.335          "!!Z. ALL K. Card(K) --> DC(K) ==> WO3";
  45.336  by (rtac allI 1);
  45.337  by (excluded_middle_tac "A lesspoll Hartog(A)" 1);
  45.338 -by (fast_tac (!claset addSDs [lesspoll_imp_ex_lt_eqpoll]
  45.339 +by (fast_tac (claset() addSDs [lesspoll_imp_ex_lt_eqpoll]
  45.340          addSIs [Ord_Hartog, leI RS le_imp_subset]) 2);
  45.341  by (REPEAT (eresolve_tac [allE, impE] 1));
  45.342  by (rtac Card_Hartog 1);
  45.343 @@ -535,7 +535,7 @@
  45.344  \               lesspoll Hartog(A) & z2 ~: z1}")] allE 1);
  45.345  by (Asm_full_simp_tac 1);
  45.346  by (etac impE 1);
  45.347 -by (fast_tac (!claset addEs [lesspoll_lemma RS not_emptyE]) 1);
  45.348 +by (fast_tac (claset() addEs [lesspoll_lemma RS not_emptyE]) 1);
  45.349  by (etac bexE 1);
  45.350  by (resolve_tac [exI RS (lepoll_def RS (def_imp_iff RS iffD2))
  45.351          RS (HartogI RS notE)] 1);
  45.352 @@ -543,7 +543,7 @@
  45.353  by (dresolve_tac [Ord_Hartog RSN (2, OrdmemD) RSN (2,
  45.354          ltD RSN (3, value_in_image))] 1 
  45.355          THEN REPEAT (assume_tac 1));
  45.356 -by (fast_tac (!claset addSDs [Ord_Hartog RSN (2, ltI) RSN (2, ospec)]
  45.357 +by (fast_tac (claset() addSDs [Ord_Hartog RSN (2, ltI) RSN (2, ospec)]
  45.358          addEs [subst]) 1);
  45.359  qed "DC_WO3";
  45.360  
  45.361 @@ -554,7 +554,7 @@
  45.362  goal thy
  45.363          "!!a. [| Ord(a); b:a |] ==> (lam x:a. P(x))``b = (lam x:b. P(x))``b";
  45.364  by (rtac images_eq 1);
  45.365 -by (REPEAT (fast_tac (!claset addSEs [RepFunI, OrdmemD]
  45.366 +by (REPEAT (fast_tac (claset() addSEs [RepFunI, OrdmemD]
  45.367          addSIs [lam_type]) 2));
  45.368  by (rtac ballI 1);
  45.369  by (dresolve_tac [OrdmemD RS subsetD] 1
  45.370 @@ -563,12 +563,12 @@
  45.371  qed "lam_images_eq";
  45.372  
  45.373  goalw thy [lesspoll_def] "!!K. [| Card(K); b:K |] ==> b lesspoll K";
  45.374 -by (asm_full_simp_tac (!simpset addsimps [Card_iff_initial]) 1);
  45.375 -by (fast_tac (!claset addSIs [le_imp_lepoll, ltI, leI]) 1);
  45.376 +by (asm_full_simp_tac (simpset() addsimps [Card_iff_initial]) 1);
  45.377 +by (fast_tac (claset() addSIs [le_imp_lepoll, ltI, leI]) 1);
  45.378  qed "in_Card_imp_lesspoll";
  45.379  
  45.380  goal thy "(lam b:a. P(b)) : a -> {P(b). b:a}";
  45.381 -by (fast_tac (!claset addSIs [lam_type, RepFunI]) 1);
  45.382 +by (fast_tac (claset() addSIs [lam_type, RepFunI]) 1);
  45.383  qed "lam_type_RepFun";
  45.384  
  45.385  goal thy "!!Z. [| ALL Y:Pow(X). Y lesspoll a --> (EX x:X. <Y, x> : R);  \
  45.386 @@ -588,12 +588,12 @@
  45.387  by (resolve_tac [ff_def RS def_transrec RS ssubst] 1);
  45.388  by (etac the_first_in 1);
  45.389  by (Fast_tac 1);
  45.390 -by (asm_full_simp_tac (!simpset
  45.391 +by (asm_full_simp_tac (simpset()
  45.392          addsimps [[lam_type_RepFun, subset_refl] MRS image_fun]) 1);
  45.393  by (etac lemma_ 1 THEN (assume_tac 1));
  45.394 -by (fast_tac (!claset addSEs [RepFunE, impE, notE]
  45.395 +by (fast_tac (claset() addSEs [RepFunE, impE, notE]
  45.396                  addEs [Card_is_Ord RSN (2, OrdmemD) RS subsetD]) 1);
  45.397 -by (fast_tac (!claset addSEs [[in_Card_imp_lesspoll, RepFun_lepoll]
  45.398 +by (fast_tac (claset() addSEs [[in_Card_imp_lesspoll, RepFun_lepoll]
  45.399                  MRS lepoll_lesspoll_lesspoll]) 1);
  45.400  val lemma = result();
  45.401  
  45.402 @@ -604,8 +604,8 @@
  45.403  by (res_inst_tac [("x","lam b:K. ff(b, X, Ra, R)")] bexI 1);
  45.404  by (rtac lam_type 2);
  45.405  by (resolve_tac [lemma RS CollectD1] 2 THEN REPEAT (assume_tac 2));
  45.406 -by (asm_full_simp_tac (!simpset
  45.407 +by (asm_full_simp_tac (simpset()
  45.408          addsimps [[Card_is_Ord, ltD] MRS lam_images_eq]) 1);
  45.409 -by (fast_tac (!claset addSEs [ltE, lemma RS CollectD2]) 1);
  45.410 +by (fast_tac (claset() addSEs [ltE, lemma RS CollectD2]) 1);
  45.411  qed" WO1_DC_Card";
  45.412  
    46.1 --- a/src/ZF/AC/DC_lemmas.ML	Mon Nov 03 12:22:43 1997 +0100
    46.2 +++ b/src/ZF/AC/DC_lemmas.ML	Mon Nov 03 12:24:13 1997 +0100
    46.3 @@ -10,7 +10,7 @@
    46.4          "Ord(a) ==> {P(b). b:a} lepoll a";
    46.5  by (res_inst_tac [("x","lam z:RepFun(a,P). LEAST i. z=P(i)")] exI 1);
    46.6  by (res_inst_tac [("d","%z. P(z)")] (sym RSN (2, lam_injective)) 1);
    46.7 -by (fast_tac (!claset addSEs [RepFunE] addSIs [Least_in_Ord, prem]) 1);
    46.8 +by (fast_tac (claset() addSEs [RepFunE] addSIs [Least_in_Ord, prem]) 1);
    46.9  by (REPEAT (eresolve_tac [RepFunE, LeastI, prem RS Ord_in_Ord] 1));
   46.10  qed "RepFun_lepoll";
   46.11  
   46.12 @@ -29,8 +29,8 @@
   46.13          "!!f. [| f:X->Y; Ord(X) |] ==> f``X lepoll X";
   46.14  by (res_inst_tac [("x","lam x:f``X. LEAST y. f`y = x")] exI 1);
   46.15  by (res_inst_tac [("d","%z. f`z")] lam_injective 1);
   46.16 -by (fast_tac (!claset addSIs [Least_in_Ord, apply_equality]) 1);
   46.17 -by (fast_tac (!claset addSEs [Ord_in_Ord] addSIs [LeastI, apply_equality]) 1);
   46.18 +by (fast_tac (claset() addSIs [Least_in_Ord, apply_equality]) 1);
   46.19 +by (fast_tac (claset() addSEs [Ord_in_Ord] addSIs [LeastI, apply_equality]) 1);
   46.20  qed "image_Ord_lepoll";
   46.21  
   46.22  val [major, minor] = goal thy
   46.23 @@ -43,11 +43,11 @@
   46.24  qed "range_subset_domain";
   46.25  
   46.26  val prems = goal thy "!!k. k:n ==> k~=n";
   46.27 -by (fast_tac (!claset addSEs [mem_irrefl]) 1);
   46.28 +by (fast_tac (claset() addSEs [mem_irrefl]) 1);
   46.29  qed "mem_not_eq";
   46.30  
   46.31  goalw thy [succ_def] "!!g. g:n->X ==> cons(<n,x>, g) : succ(n) -> cons(x, X)";
   46.32 -by (fast_tac (!claset addSIs [fun_extend] addSEs [mem_irrefl]) 1);
   46.33 +by (fast_tac (claset() addSIs [fun_extend] addSEs [mem_irrefl]) 1);
   46.34  qed "cons_fun_type";
   46.35  
   46.36  goal thy "!!g. [| g:n->X; x:X |] ==> cons(<n,x>, g) : succ(n) -> X";
   46.37 @@ -55,23 +55,23 @@
   46.38  qed "cons_fun_type2";
   46.39  
   46.40  goal thy "!!n. n: nat ==> cons(<n,x>, g)``n = g``n";
   46.41 -by (fast_tac (!claset addSEs [mem_irrefl]) 1);
   46.42 +by (fast_tac (claset() addSEs [mem_irrefl]) 1);
   46.43  qed "cons_image_n";
   46.44  
   46.45  goal thy "!!n. g:n->X ==> cons(<n,x>, g)`n = x";
   46.46 -by (fast_tac (!claset addSIs [apply_equality] addSEs [cons_fun_type]) 1);
   46.47 +by (fast_tac (claset() addSIs [apply_equality] addSEs [cons_fun_type]) 1);
   46.48  qed "cons_val_n";
   46.49  
   46.50  goal thy "!!k. k : n ==> cons(<n,x>, g)``k = g``k";
   46.51 -by (fast_tac (!claset addEs [mem_asym]) 1);
   46.52 +by (fast_tac (claset() addEs [mem_asym]) 1);
   46.53  qed "cons_image_k";
   46.54  
   46.55  goal thy "!!k. [| k:n; g:n->X |] ==> cons(<n,x>, g)`k = g`k";
   46.56 -by (fast_tac (!claset addSIs [apply_equality, consI2] addSEs [cons_fun_type, apply_Pair]) 1);
   46.57 +by (fast_tac (claset() addSIs [apply_equality, consI2] addSEs [cons_fun_type, apply_Pair]) 1);
   46.58  qed "cons_val_k";
   46.59  
   46.60  goal thy "!!f. domain(f)=x ==> domain(cons(<x,y>, f)) = succ(x)";
   46.61 -by (asm_full_simp_tac (!simpset addsimps [domain_cons, succ_def]) 1);
   46.62 +by (asm_full_simp_tac (simpset() addsimps [domain_cons, succ_def]) 1);
   46.63  qed "domain_cons_eq_succ";
   46.64  
   46.65  goalw thy [restrict_def] "!!g. g:n->X ==> restrict(cons(<n,x>, g), n)=g";
   46.66 @@ -80,12 +80,12 @@
   46.67  by (eresolve_tac [cons_fun_type RS apply_type] 1);
   46.68  by (etac succI2 1);
   46.69  by (assume_tac 1);
   46.70 -by (asm_full_simp_tac (!simpset addsimps [cons_val_k]) 1);
   46.71 +by (asm_full_simp_tac (simpset() addsimps [cons_val_k]) 1);
   46.72  qed "restrict_cons_eq";
   46.73  
   46.74  goal thy "!!k. [| Ord(k); i:k |] ==> succ(i) : succ(k)";
   46.75  by (resolve_tac [Ord_linear RS disjE] 1 THEN (assume_tac 3));
   46.76 -by (REPEAT (fast_tac (!claset addSIs [Ord_succ]
   46.77 +by (REPEAT (fast_tac (claset() addSIs [Ord_succ]
   46.78          addEs [Ord_in_Ord, mem_irrefl, mem_asym]
   46.79          addSDs [succ_inject]) 1));
   46.80  qed "succ_in_succ";
   46.81 @@ -102,6 +102,6 @@
   46.82  qed "domain_eq_imp_fun_type";
   46.83  
   46.84  goal thy "!!R. [| R <= A * B; R ~= 0 |] ==> EX x. x:domain(R)";
   46.85 -by (fast_tac (!claset addSEs [not_emptyE]) 1);
   46.86 +by (fast_tac (claset() addSEs [not_emptyE]) 1);
   46.87  qed "ex_in_domain";
   46.88  
    47.1 --- a/src/ZF/AC/HH.ML	Mon Nov 03 12:22:43 1997 +0100
    47.2 +++ b/src/ZF/AC/HH.ML	Mon Nov 03 12:24:13 1997 +0100
    47.3 @@ -23,7 +23,7 @@
    47.4  
    47.5  goal thy "HH(f,x,a) : Pow(x)-{0} | HH(f,x,a)={x}";
    47.6  by (resolve_tac [HH_def_satisfies_eq RS ssubst] 1);
    47.7 -by (simp_tac (!simpset addsimps [Let_def, Diff_subset RS PowI] 
    47.8 +by (simp_tac (simpset() addsimps [Let_def, Diff_subset RS PowI] 
    47.9                      setloop split_tac [expand_if]) 1);
   47.10  by (Fast_tac 1);
   47.11  qed "HH_values";
   47.12 @@ -35,13 +35,13 @@
   47.13  goal thy "!!c. [| c:a-b; b<a |] ==> c=b | b<c & c<a";
   47.14  by (etac ltE 1);
   47.15  by (dtac Ord_linear 1);
   47.16 -by (fast_tac (!claset addSIs [ltI] addIs [Ord_in_Ord]) 2);
   47.17 -by (fast_tac (!claset addEs [Ord_in_Ord]) 1);
   47.18 +by (fast_tac (claset() addSIs [ltI] addIs [Ord_in_Ord]) 2);
   47.19 +by (fast_tac (claset() addEs [Ord_in_Ord]) 1);
   47.20  qed "Ord_DiffE";
   47.21  
   47.22  val prems = goal thy "(!!y. y:A ==> P(y) = {x}) ==> x - (UN y:A. P(y)) = x";
   47.23 -by (asm_full_simp_tac (!simpset addsimps prems) 1);
   47.24 -by (fast_tac (!claset addSDs [prem] addSEs [mem_irrefl]) 1);
   47.25 +by (asm_full_simp_tac (simpset() addsimps prems) 1);
   47.26 +by (fast_tac (claset() addSDs [prem] addSEs [mem_irrefl]) 1);
   47.27  qed "Diff_UN_eq_self";
   47.28  
   47.29  goal thy "!!a. x - (UN b:a. HH(f,x,b)) = x - (UN b:a1. HH(f,x,b))  \
   47.30 @@ -61,23 +61,23 @@
   47.31  by (res_inst_tac [("t","%z. z-?X")] subst_context 1);
   47.32  by (rtac Diff_UN_eq_self 1);
   47.33  by (dtac Ord_DiffE 1 THEN (assume_tac 1));
   47.34 -by (fast_tac (!claset addEs [ltE]) 1);
   47.35 +by (fast_tac (claset() addEs [ltE]) 1);
   47.36  qed "HH_is_x_gt_too";
   47.37  
   47.38  goal thy "!!a. [| HH(f,x,a) : Pow(x)-{0}; b<a |] ==> HH(f,x,b) : Pow(x)-{0}";
   47.39  by (resolve_tac [HH_values RS disjE] 1 THEN (assume_tac 1));
   47.40  by (dtac HH_is_x_gt_too 1 THEN (assume_tac 1));
   47.41  by (dtac subst 1 THEN (assume_tac 1));
   47.42 -by (fast_tac (!claset addSEs [mem_irrefl]) 1);
   47.43 +by (fast_tac (claset() addSEs [mem_irrefl]) 1);
   47.44  qed "HH_subset_x_lt_too";
   47.45  
   47.46  goal thy "!!a. HH(f,x,a) : Pow(x)-{0}   \
   47.47  \               ==> HH(f,x,a) : Pow(x - (UN b:a. HH(f,x,b)))-{0}";
   47.48  by (dresolve_tac [HH_def_satisfies_eq RS subst] 1);
   47.49  by (resolve_tac [HH_def_satisfies_eq RS ssubst] 1);
   47.50 -by (asm_full_simp_tac (!simpset addsimps [Let_def, Diff_subset RS PowI]) 1);
   47.51 +by (asm_full_simp_tac (simpset() addsimps [Let_def, Diff_subset RS PowI]) 1);
   47.52  by (dresolve_tac [expand_if RS iffD1] 1);
   47.53 -by (simp_tac (!simpset setloop split_tac [expand_if] ) 1);
   47.54 +by (simp_tac (simpset() setloop split_tac [expand_if] ) 1);
   47.55  by (fast_tac (subset_cs addSEs [mem_irrefl]) 1);
   47.56  qed "HH_subset_x_imp_subset_Diff_UN";
   47.57  
   47.58 @@ -85,7 +85,7 @@
   47.59  by (forw_inst_tac [("P","%y. y: Pow(x)-{0}")] subst 1 THEN (assume_tac 1));
   47.60  by (dres_inst_tac [("a","w")] HH_subset_x_imp_subset_Diff_UN 1);
   47.61  by (dtac subst_elem 1 THEN (assume_tac 1));
   47.62 -by (fast_tac (!claset addSIs [singleton_iff RS iffD2, equals0I]) 1);
   47.63 +by (fast_tac (claset() addSIs [singleton_iff RS iffD2, equals0I]) 1);
   47.64  qed "HH_eq_arg_lt";
   47.65  
   47.66  goal thy "!!x. [| HH(f,x,v)=HH(f,x,w); HH(f,x,w): Pow(x)-{0};  \
   47.67 @@ -112,7 +112,7 @@
   47.68  qed "HH_Hartog_is_x";
   47.69  
   47.70  goal thy "HH(f, x, LEAST i. HH(f, x, i) = {x}) = {x}";
   47.71 -by (fast_tac (!claset addSIs [Ord_Hartog, HH_Hartog_is_x, LeastI]) 1);
   47.72 +by (fast_tac (claset() addSIs [Ord_Hartog, HH_Hartog_is_x, LeastI]) 1);
   47.73  qed "HH_Least_eq_x";
   47.74  
   47.75  goal thy "!!a. a:(LEAST i. HH(f,x,i)={x}) ==> HH(f,x,a) : Pow(x)-{0}";
   47.76 @@ -130,7 +130,7 @@
   47.77          "(lam a:(LEAST i. HH(f,x,i)={x}). HH(f,x,a)) :  \
   47.78  \               inj(LEAST i. HH(f,x,i)={x}, Pow(x)-{0})";
   47.79  by (Asm_full_simp_tac 1);
   47.80 -by (fast_tac (!claset  addSIs [lam_type] addDs [less_Least_subset_x]
   47.81 +by (fast_tac (claset()  addSIs [lam_type] addDs [less_Least_subset_x]
   47.82                  addSEs [HH_eq_imp_arg_eq, Ord_Least RS Ord_in_Ord]) 1);
   47.83  qed "lam_Least_HH_inj_Pow";
   47.84  
   47.85 @@ -145,21 +145,21 @@
   47.86          "!!x. [| x - (UN a:A. F(a)) = 0;  \
   47.87  \               ALL a:A. EX z:x. F(a) = {z} |]  \
   47.88  \               ==> (lam a:A. F(a)) : surj(A, {{y}. y:x})";
   47.89 -by (asm_full_simp_tac (!simpset addsimps [lam_type, Diff_eq_0_iff]) 1);
   47.90 +by (asm_full_simp_tac (simpset() addsimps [lam_type, Diff_eq_0_iff]) 1);
   47.91  by Safe_tac;
   47.92  by (set_mp_tac 1);
   47.93 -by (deepen_tac (!claset addSIs [bexI] addSEs [equalityE]) 4 1);
   47.94 +by (deepen_tac (claset() addSIs [bexI] addSEs [equalityE]) 4 1);
   47.95  qed "lam_surj_sing";
   47.96  
   47.97  goal thy "!!x. y:Pow(x)-{0} ==> x ~= 0";
   47.98 -by (fast_tac (!claset addSIs [equals0I, singletonI RS subst_elem]
   47.99 +by (fast_tac (claset() addSIs [equals0I, singletonI RS subst_elem]
  47.100                  addSDs [equals0D]) 1);
  47.101  qed "not_emptyI2";
  47.102  
  47.103  goal thy "!!f. f`(x - (UN j:i. HH(f,x,j))): Pow(x - (UN j:i. HH(f,x,j)))-{0}  \
  47.104  \       ==> HH(f, x, i) : Pow(x) - {0}";
  47.105  by (resolve_tac [HH_def_satisfies_eq RS ssubst] 1);
  47.106 -by (asm_full_simp_tac (!simpset addsimps [Let_def, Diff_subset RS PowI,
  47.107 +by (asm_full_simp_tac (simpset() addsimps [Let_def, Diff_subset RS PowI,
  47.108                  not_emptyI2 RS if_P]) 1);
  47.109  by (Fast_tac 1);
  47.110  qed "f_subset_imp_HH_subset";
  47.111 @@ -170,20 +170,20 @@
  47.112  by (Fast_tac 2);
  47.113  by (dresolve_tac [Diff_subset RS PowI RS DiffI RS prem RS
  47.114                  f_subset_imp_HH_subset] 1);
  47.115 -by (fast_tac (!claset addSDs [HH_Least_eq_x RS sym RSN (2, subst_elem)]
  47.116 +by (fast_tac (claset() addSDs [HH_Least_eq_x RS sym RSN (2, subst_elem)]
  47.117                  addSEs [mem_irrefl]) 1);
  47.118  qed "f_subsets_imp_UN_HH_eq_x";
  47.119  
  47.120  goal thy "HH(f,x,i)=f`(x - (UN j:i. HH(f,x,j))) | HH(f,x,i)={x}";
  47.121  by (resolve_tac [HH_def_satisfies_eq RS ssubst] 1);
  47.122 -by (simp_tac (!simpset addsimps [Let_def, Diff_subset RS PowI]
  47.123 +by (simp_tac (simpset() addsimps [Let_def, Diff_subset RS PowI]
  47.124                setloop split_tac [expand_if]) 1);
  47.125  qed "HH_values2";
  47.126  
  47.127  goal thy
  47.128       "!!f. HH(f,x,i): Pow(x)-{0} ==> HH(f,x,i)=f`(x - (UN j:i. HH(f,x,j)))";
  47.129  by (resolve_tac [HH_values2 RS disjE] 1 THEN (assume_tac 1));
  47.130 -by (fast_tac (!claset addSEs [equalityE, mem_irrefl]
  47.131 +by (fast_tac (claset() addSEs [equalityE, mem_irrefl]
  47.132          addSDs [singleton_subsetD]) 1);
  47.133  qed "HH_subset_imp_eq";
  47.134  
  47.135 @@ -194,8 +194,8 @@
  47.136  by (dtac apply_type 1);
  47.137  by (resolve_tac [Diff_subset RS PowI RS DiffI] 1);
  47.138  by (fast_tac 
  47.139 -    (!claset addSDs [HH_subset_x_imp_subset_Diff_UN RS not_emptyI2]) 1);
  47.140 -by (fast_tac (!claset addss (!simpset)) 1);
  47.141 +    (claset() addSDs [HH_subset_x_imp_subset_Diff_UN RS not_emptyI2]) 1);
  47.142 +by (fast_tac (claset() addss (simpset())) 1);
  47.143  qed "f_sing_imp_HH_sing";
  47.144  
  47.145  goalw thy [bij_def] 
  47.146 @@ -203,7 +203,7 @@
  47.147  \       f : (Pow(x)-{0}) -> {{z}. z:x} |]  \
  47.148  \       ==> (lam a:(LEAST i. HH(f,x,i)={x}). HH(f,x,a))  \
  47.149  \                       : bij(LEAST i. HH(f,x,i)={x}, {{y}. y:x})";
  47.150 -by (fast_tac (!claset addSIs [lam_Least_HH_inj, lam_surj_sing,
  47.151 +by (fast_tac (claset() addSIs [lam_Least_HH_inj, lam_surj_sing,
  47.152                                f_sing_imp_HH_sing]) 1);
  47.153  qed "f_sing_lam_bij";
  47.154  
    48.1 --- a/src/ZF/AC/Hartog.ML	Mon Nov 03 12:22:43 1997 +0100
    48.2 +++ b/src/ZF/AC/Hartog.ML	Mon Nov 03 12:24:13 1997 +0100
    48.3 @@ -44,7 +44,7 @@
    48.4  by (REPEAT (eresolve_tac [allE, impE] 1));
    48.5  by (assume_tac 1);
    48.6  by (dtac Ord_lepoll_imp_eq_ordertype 1 THEN (assume_tac 1));
    48.7 -by (fast_tac (!claset addSIs [ReplaceI] addEs [sym]) 1);
    48.8 +by (fast_tac (claset() addSIs [ReplaceI] addEs [sym]) 1);
    48.9  qed "Ords_lepoll_set_lemma";
   48.10  
   48.11  goal thy "!!X. ALL a. Ord(a) --> a lepoll X ==> P";
   48.12 @@ -71,14 +71,14 @@
   48.13  qed "Ord_Hartog";
   48.14  
   48.15  goalw thy [Hartog_def] "!!i. [| i < Hartog(A); ~ i lepoll A |] ==> P";
   48.16 -by (fast_tac (!claset addEs [less_LeastE]) 1);
   48.17 +by (fast_tac (claset() addEs [less_LeastE]) 1);
   48.18  qed "less_HartogE1";
   48.19  
   48.20  goal thy "!!i. [| i < Hartog(A); i eqpoll Hartog(A) |] ==> P";
   48.21 -by (fast_tac (!claset addEs [less_HartogE1, eqpoll_sym RS eqpoll_imp_lepoll
   48.22 +by (fast_tac (claset() addEs [less_HartogE1, eqpoll_sym RS eqpoll_imp_lepoll
   48.23                  RS lepoll_trans RS HartogE]) 1);
   48.24  qed "less_HartogE";
   48.25  
   48.26  goal thy "Card(Hartog(A))";
   48.27 -by (fast_tac (!claset addSIs [CardI, Ord_Hartog] addEs [less_HartogE]) 1);
   48.28 +by (fast_tac (claset() addSIs [CardI, Ord_Hartog] addEs [less_HartogE]) 1);
   48.29  qed "Card_Hartog";
    49.1 --- a/src/ZF/AC/WO1_AC.ML	Mon Nov 03 12:22:43 1997 +0100
    49.2 +++ b/src/ZF/AC/WO1_AC.ML	Mon Nov 03 12:24:13 1997 +0100
    49.3 @@ -32,7 +32,7 @@
    49.4  (* ********************************************************************** *)
    49.5  
    49.6  goalw thy [AC1_def, WO1_def] "!!Z. WO1 ==> AC1";
    49.7 -by (fast_tac (!claset addSEs [ex_choice_fun]) 1);
    49.8 +by (fast_tac (claset() addSEs [ex_choice_fun]) 1);
    49.9  qed "WO1_AC1";
   49.10  
   49.11  (* ********************************************************************** *)
   49.12 @@ -44,19 +44,19 @@
   49.13  by (eres_inst_tac [("x","Union({{C:D(B). P(C,B)}. B:A})")] allE 1);
   49.14  by (etac exE 1);
   49.15  by (dtac ex_choice_fun 1);
   49.16 -by (fast_tac (!claset addEs [RepFunE, sym RS equals0D]) 1);
   49.17 +by (fast_tac (claset() addEs [RepFunE, sym RS equals0D]) 1);
   49.18  by (etac exE 1);
   49.19  by (res_inst_tac [("x","lam x:A. f`{C:D(x). P(C,x)}")] exI 1);
   49.20  by (Asm_full_simp_tac 1);
   49.21 -by (fast_tac (!claset addSDs [RepFunI RSN (2, apply_type)]
   49.22 +by (fast_tac (claset() addSDs [RepFunI RSN (2, apply_type)]
   49.23                  addSEs [CollectD2]) 1);
   49.24  val lemma1 = result();
   49.25  
   49.26  goalw thy [WO1_def] "!!A. [| ~Finite(B); WO1 |] ==> |B| + |B| eqpoll  B";
   49.27  by (rtac eqpoll_trans 1);
   49.28 -by (fast_tac (!claset addSEs [well_ord_cardinal_eqpoll]) 2);
   49.29 +by (fast_tac (claset() addSEs [well_ord_cardinal_eqpoll]) 2);
   49.30  by (resolve_tac [eqpoll_sym RS eqpoll_trans] 1);
   49.31 -by (fast_tac (!claset addSEs [well_ord_cardinal_eqpoll]) 1);
   49.32 +by (fast_tac (claset() addSEs [well_ord_cardinal_eqpoll]) 1);
   49.33  by (resolve_tac [cadd_def RS def_imp_eq RS subst] 1);
   49.34  by (resolve_tac [Card_cardinal RSN (2, Inf_Card_is_InfCard) RS 
   49.35                          InfCard_cdouble_eq RS ssubst] 1);
   49.36 @@ -65,23 +65,23 @@
   49.37  by (etac notE 1);
   49.38  by (resolve_tac [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_Finite] 1
   49.39          THEN (assume_tac 2));
   49.40 -by (fast_tac (!claset addSEs [well_ord_cardinal_eqpoll]) 1);
   49.41 +by (fast_tac (claset() addSEs [well_ord_cardinal_eqpoll]) 1);
   49.42  val lemma2_1 = result();
   49.43  
   49.44  goal thy "!!f. f : bij(D+D, B) ==> {{f`Inl(i), f`Inr(i)}. i:D} : Pow(Pow(B))";
   49.45 -by (fast_tac (!claset addSIs [InlI, InrI]
   49.46 +by (fast_tac (claset() addSIs [InlI, InrI]
   49.47                  addSEs [RepFunE, bij_is_fun RS apply_type]) 1);
   49.48  val lemma2_2 = result();
   49.49  
   49.50  goal thy "!!f. [| f:inj(A,B); f`a = f`b; a:A; b:A |] ==> a=b";
   49.51  by (rtac inj_equality 1);
   49.52 -by (TRYALL (fast_tac (!claset addSEs [inj_is_fun RS apply_Pair] addEs [subst])));
   49.53 +by (TRYALL (fast_tac (claset() addSEs [inj_is_fun RS apply_Pair] addEs [subst])));
   49.54  val lemma = result();
   49.55  
   49.56  goalw thy AC_aux_defs
   49.57          "!!f. f : bij(D+D, B) ==>  \
   49.58  \               pairwise_disjoint({{f`Inl(i), f`Inr(i)}. i:D})";
   49.59 -by (fast_tac (!claset addSEs [RepFunE, not_emptyE] 
   49.60 +by (fast_tac (claset() addSEs [RepFunE, not_emptyE] 
   49.61          addDs [bij_is_inj RS lemma, Inl_iff RS iffD1,
   49.62                  Inr_iff RS iffD1, Inl_Inr_iff RS iffD1 RS FalseE,
   49.63                  Inr_Inl_iff RS iffD1 RS FalseE]
   49.64 @@ -92,7 +92,7 @@
   49.65          "[| f : bij(D+D, B); 1 le n |] ==>  \
   49.66  \       sets_of_size_between({{f`Inl(i), f`Inr(i)}. i:D}, 2, succ(n))";
   49.67  by (rewtac succ_def);
   49.68 -by (fast_tac (!claset addSIs [cons_lepoll_cong, minor, lepoll_refl, InlI, InrI] 
   49.69 +by (fast_tac (claset() addSIs [cons_lepoll_cong, minor, lepoll_refl, InlI, InrI] 
   49.70          addIs [singleton_eqpoll_1 RS eqpoll_imp_lepoll RS lepoll_trans,
   49.71                  le_imp_subset RS subset_imp_lepoll]
   49.72          addDs [major RS bij_is_inj RS lemma, Inl_Inr_iff RS iffD1 RS FalseE]
   49.73 @@ -101,7 +101,7 @@
   49.74  
   49.75  goalw thy [bij_def, surj_def]
   49.76          "!!f. f : bij(D+D, B) ==> Union({{f`Inl(i), f`Inr(i)}. i:D})=B";
   49.77 -by (fast_tac (!claset addSEs [inj_is_fun RS apply_type]) 1);
   49.78 +by (fast_tac (claset() addSEs [inj_is_fun RS apply_type]) 1);
   49.79  val lemma2_5 = result();
   49.80  
   49.81  goal thy "!!A. [| WO1; ~Finite(B); 1 le n  |]  \
   49.82 @@ -115,5 +115,5 @@
   49.83  val lemma2 = result();
   49.84  
   49.85  goalw thy AC_defs "!!n. [| WO1; 1 le n |] ==> AC10(n)";
   49.86 -by (fast_tac (!claset addSIs [lemma1] addSEs [lemma2]) 1);
   49.87 +by (fast_tac (claset() addSIs [lemma1] addSEs [lemma2]) 1);
   49.88  qed "WO1_AC10";
    50.1 --- a/src/ZF/AC/WO1_WO6.ML	Mon Nov 03 12:22:43 1997 +0100
    50.2 +++ b/src/ZF/AC/WO1_WO6.ML	Mon Nov 03 12:24:13 1997 +0100
    50.3 @@ -20,28 +20,28 @@
    50.4  (* ********************************************************************** *)
    50.5  
    50.6  goalw thy (eqpoll_def::WO_defs) "!!Z. WO3 ==> WO1";
    50.7 -by (fast_tac (!claset addSEs [bij_is_inj RS well_ord_rvimage, 
    50.8 +by (fast_tac (claset() addSEs [bij_is_inj RS well_ord_rvimage, 
    50.9  			      well_ord_Memrel RS well_ord_subset]) 1);
   50.10  qed "WO3_WO1";
   50.11  
   50.12  (* ********************************************************************** *)
   50.13  
   50.14  goalw thy (eqpoll_def::WO_defs) "!!Z. WO1 ==> WO2";
   50.15 -by (fast_tac (!claset addSIs [Ord_ordertype, ordermap_bij]) 1);
   50.16 +by (fast_tac (claset() addSIs [Ord_ordertype, ordermap_bij]) 1);
   50.17  qed "WO1_WO2";
   50.18  
   50.19  (* ********************************************************************** *)
   50.20  
   50.21  goal thy "!!f. f: A->B ==> (lam x:A. {f`x}): A -> {{b}. b:B}";
   50.22 -by (fast_tac (!claset addSIs [lam_type, apply_type]) 1);
   50.23 +by (fast_tac (claset() addSIs [lam_type, apply_type]) 1);
   50.24  qed "lam_sets";
   50.25  
   50.26  goalw thy [surj_def] "!!f. f:surj(A,B) ==> (UN a:A. {f`a}) = B";
   50.27 -by (fast_tac (!claset addSEs [apply_type]) 1);
   50.28 +by (fast_tac (claset() addSEs [apply_type]) 1);
   50.29  qed "surj_imp_eq_";
   50.30  
   50.31  goal thy "!!f. [| f:surj(A,B); Ord(A) |] ==> (UN a<A. {f`a}) = B";
   50.32 -by (fast_tac (!claset addSDs [surj_imp_eq_]
   50.33 +by (fast_tac (claset() addSDs [surj_imp_eq_]
   50.34                  addSIs [ltI] addSEs [ltE]) 1);
   50.35  qed "surj_imp_eq";
   50.36  
   50.37 @@ -54,7 +54,7 @@
   50.38  by (rtac conjI 1);
   50.39  by (eresolve_tac [ordermap_bij RS bij_converse_bij RS bij_is_fun RS
   50.40                  lam_sets RS domain_of_fun] 1);
   50.41 -by (asm_simp_tac (!simpset addsimps [singleton_eqpoll_1 RS eqpoll_imp_lepoll,
   50.42 +by (asm_simp_tac (simpset() addsimps [singleton_eqpoll_1 RS eqpoll_imp_lepoll,
   50.43                    Ord_ordertype RSN (2, ordermap_bij RS bij_converse_bij RS
   50.44                          bij_is_surj RS surj_imp_eq)]) 1);
   50.45  qed "WO1_WO4";
   50.46 @@ -62,7 +62,7 @@
   50.47  (* ********************************************************************** *)
   50.48  
   50.49  goalw thy WO_defs "!!Z. [| m:nat; n:nat; m le n; WO4(m) |] ==> WO4(n)";
   50.50 -by (fast_tac (!claset addIs [nat_le_imp_lepoll RSN (2, lepoll_trans)]) 1);
   50.51 +by (fast_tac (claset() addIs [nat_le_imp_lepoll RSN (2, lepoll_trans)]) 1);
   50.52  qed "WO4_mono";
   50.53  
   50.54  (* ********************************************************************** *)
    51.1 --- a/src/ZF/AC/WO1_WO7.ML	Mon Nov 03 12:22:43 1997 +0100
    51.2 +++ b/src/ZF/AC/WO1_WO7.ML	Mon Nov 03 12:24:13 1997 +0100
    51.3 @@ -12,7 +12,7 @@
    51.4  
    51.5  goalw thy [WO7_def] "WO7 <-> (ALL X. ~Finite(X) -->  \
    51.6  \                       (EX R. well_ord(X,R) & ~well_ord(X,converse(R))))";
    51.7 -by (fast_tac (!claset addSEs [Finite_well_ord_converse]) 1);
    51.8 +by (fast_tac (claset() addSEs [Finite_well_ord_converse]) 1);
    51.9  qed "WO7_iff_LEMMA";
   51.10  
   51.11  (* ********************************************************************** *)
   51.12 @@ -26,7 +26,7 @@
   51.13  by (excluded_middle_tac "Finite(A)" 1);
   51.14  by (Fast_tac 1);
   51.15  by (rewrite_goals_tac [Finite_def, eqpoll_def]);
   51.16 -by (fast_tac (!claset addSIs [[bij_is_inj, nat_implies_well_ord] MRS
   51.17 +by (fast_tac (claset() addSIs [[bij_is_inj, nat_implies_well_ord] MRS
   51.18                                   well_ord_rvimage]) 1);
   51.19  qed "LEMMA_imp_WO1";
   51.20  
   51.21 @@ -50,16 +50,16 @@
   51.22  by (rtac notI 1);
   51.23  by (eres_inst_tac [("x","nat")] allE 1);
   51.24  by (etac disjE 1);
   51.25 -by (fast_tac (!claset addSDs [nat_0I RSN (2,equals0D)]) 1);
   51.26 +by (fast_tac (claset() addSDs [nat_0I RSN (2,equals0D)]) 1);
   51.27  by (etac bexE 1);
   51.28  by (eres_inst_tac [("x","succ(x)")] allE 1);
   51.29 -by (fast_tac (!claset addSIs [nat_succI, converseI, MemrelI, 
   51.30 +by (fast_tac (claset() addSIs [nat_succI, converseI, MemrelI, 
   51.31                              nat_succI RSN (2, subsetD)]) 1);
   51.32  qed "converse_Memrel_not_wf_on";
   51.33  
   51.34  goalw thy [well_ord_def] 
   51.35      "!!a. [| Ord(a); ~Finite(a) |] ==> ~well_ord(a,converse(Memrel(a)))";
   51.36 -by (fast_tac (!claset addSDs [converse_Memrel_not_wf_on]) 1);
   51.37 +by (fast_tac (claset() addSDs [converse_Memrel_not_wf_on]) 1);
   51.38  qed "converse_Memrel_not_well_ord";
   51.39  
   51.40  goal thy "!!A. [| well_ord(A,r); well_ord(A,converse(r)) |]  \
    52.1 --- a/src/ZF/AC/WO1_WO8.ML	Mon Nov 03 12:22:43 1997 +0100
    52.2 +++ b/src/ZF/AC/WO1_WO8.ML	Mon Nov 03 12:24:13 1997 +0100
    52.3 @@ -21,9 +21,9 @@
    52.4  by (rtac allI 1);
    52.5  by (eres_inst_tac [("x","{{x}. x:A}")] allE 1);
    52.6  by (etac impE 1);
    52.7 -by (fast_tac (!claset addSEs [lam_sing_bij RS bij_is_inj RS
    52.8 +by (fast_tac (claset() addSEs [lam_sing_bij RS bij_is_inj RS
    52.9                          well_ord_rvimage]) 2);
   52.10  by (res_inst_tac [("x","lam a:{{x}. x:A}. THE x. a={x}")] exI 1);
   52.11 -by (fast_tac (!claset addSIs [lam_type]
   52.12 -                addss (!simpset addsimps [singleton_eq_iff, the_equality])) 1);
   52.13 +by (fast_tac (claset() addSIs [lam_type]
   52.14 +                addss (simpset() addsimps [singleton_eq_iff, the_equality])) 1);
   52.15  qed "WO8_WO1";
    53.1 --- a/src/ZF/AC/WO2_AC16.ML	Mon Nov 03 12:22:43 1997 +0100
    53.2 +++ b/src/ZF/AC/WO2_AC16.ML	Mon Nov 03 12:24:13 1997 +0100
    53.3 @@ -117,9 +117,9 @@
    53.4  by (dresolve_tac [nat_le_infinite_Ord RS le_imp_lepoll] 1
    53.5          THEN (assume_tac 1));
    53.6  by (rewtac Finite_def);
    53.7 -by (fast_tac (!claset addSEs [eqpoll_sym RS eqpoll_trans]) 2);
    53.8 +by (fast_tac (claset() addSEs [eqpoll_sym RS eqpoll_trans]) 2);
    53.9  by (rtac lepoll_trans 1 THEN (assume_tac 2));
   53.10 -by (fast_tac (!claset addSEs [Ord_nat RSN (2, ltI) RS leI RS le_imp_subset RS 
   53.11 +by (fast_tac (claset() addSEs [Ord_nat RSN (2, ltI) RS leI RS le_imp_subset RS 
   53.12          subset_imp_lepoll RSN (2, eqpoll_imp_lepoll RS lepoll_trans)]) 1);
   53.13  qed "Finite_lesspoll_infinite_Ord";
   53.14  
   53.15 @@ -130,15 +130,15 @@
   53.16  goal thy "!!n. n:nat ==> ALL X. X eqpoll n --> (ALL x:X. Finite(x))  \
   53.17  \       --> Finite(Union(X))";
   53.18  by (etac nat_induct 1);
   53.19 -by (fast_tac (!claset addSDs [eqpoll_imp_lepoll RS lepoll_0_is_0]
   53.20 -        addSIs [nat_0I RS nat_into_Finite] addss (!simpset)) 1);
   53.21 +by (fast_tac (claset() addSDs [eqpoll_imp_lepoll RS lepoll_0_is_0]
   53.22 +        addSIs [nat_0I RS nat_into_Finite] addss (simpset())) 1);
   53.23  by (REPEAT (resolve_tac [allI, impI] 1));
   53.24  by (resolve_tac [eqpoll_succ_imp_not_empty RS not_emptyE] 1 THEN (assume_tac 1));
   53.25  by (res_inst_tac [("P","%z. Finite(z)")] (Union_eq_Un_Diff RS ssubst) 1
   53.26          THEN (assume_tac 1));
   53.27  by (rtac Finite_Un 1);
   53.28  by (Fast_tac 2);
   53.29 -by (fast_tac (!claset addSIs [Diff_sing_eqpoll]) 1);
   53.30 +by (fast_tac (claset() addSIs [Diff_sing_eqpoll]) 1);
   53.31  qed "Finite_Union_lemma";
   53.32  
   53.33  goal thy "!!X. [| ALL x:X. Finite(x); Finite(X) |] ==> Finite(Union(X))";
   53.34 @@ -148,7 +148,7 @@
   53.35  qed "Finite_Union";
   53.36  
   53.37  goalw thy [Finite_def] "!!x. [| x lepoll n; n:nat |] ==> Finite(x)";
   53.38 -by (fast_tac (!claset
   53.39 +by (fast_tac (claset()
   53.40          addEs [nat_into_Ord RSN (2, lepoll_imp_ex_le_eqpoll) RS exE,
   53.41          Ord_nat RSN (2, ltI) RSN (2, lt_trans1) RS ltD]) 1);
   53.42  qed "lepoll_nat_num_imp_Finite";
   53.43 @@ -159,7 +159,7 @@
   53.44  by (excluded_middle_tac "Finite(X)" 1);
   53.45  by (resolve_tac [Card_is_Ord RSN (3, Finite_lesspoll_infinite_Ord)] 2
   53.46          THEN (REPEAT (assume_tac 3)));
   53.47 -by (fast_tac (!claset addSEs [lepoll_nat_num_imp_Finite]
   53.48 +by (fast_tac (claset() addSEs [lepoll_nat_num_imp_Finite]
   53.49                  addSIs [Finite_Union]) 2);
   53.50  by (dresolve_tac [lt_Ord RSN (2, lepoll_imp_ex_le_eqpoll)] 1 THEN (assume_tac 1));
   53.51  by (REPEAT (eresolve_tac [exE, conjE] 1));
   53.52 @@ -174,7 +174,7 @@
   53.53  by (eresolve_tac [lt_trans1 RSN (2, lt_Card_imp_lesspoll)] 1
   53.54          THEN REPEAT (assume_tac 1));
   53.55  by (rtac UN_lepoll 1
   53.56 -        THEN (TRYALL (fast_tac (!claset addSEs [lt_Ord]))));
   53.57 +        THEN (TRYALL (fast_tac (claset() addSEs [lt_Ord]))));
   53.58  qed "Union_lesspoll";
   53.59  
   53.60  (* ********************************************************************** *)
   53.61 @@ -186,36 +186,36 @@
   53.62  qed "Un_sing_eq_cons";
   53.63  
   53.64  goal thy "!!A. A lepoll B ==> A Un {a} lepoll succ(B)";
   53.65 -by (asm_simp_tac (!simpset addsimps [Un_sing_eq_cons, succ_def]) 1);
   53.66 +by (asm_simp_tac (simpset() addsimps [Un_sing_eq_cons, succ_def]) 1);
   53.67  by (eresolve_tac [mem_not_refl RSN (2, cons_lepoll_cong)] 1);
   53.68  qed "Un_lepoll_succ";
   53.69  
   53.70  goal thy "!!a. Ord(a) ==> F(a) - (UN b<succ(a). F(b)) = 0";
   53.71 -by (fast_tac (!claset addSIs [OUN_I, le_refl]) 1);
   53.72 +by (fast_tac (claset() addSIs [OUN_I, le_refl]) 1);
   53.73  qed "Diff_UN_succ_empty";
   53.74  
   53.75  goal thy "!!a. Ord(a) ==> F(a) Un X - (UN b<succ(a). F(b)) <= X";
   53.76 -by (fast_tac (!claset addSIs [OUN_I, le_refl]) 1);
   53.77 +by (fast_tac (claset() addSIs [OUN_I, le_refl]) 1);
   53.78  qed "Diff_UN_succ_subset";
   53.79  
   53.80  goal thy "!!x. Ord(x) ==>  \
   53.81  \       recfunAC16(f, g, x, a) - (UN i<x. recfunAC16(f, g, i, a)) lepoll 1";
   53.82  by (etac Ord_cases 1);
   53.83 -by (asm_simp_tac (!simpset addsimps [recfunAC16_0,
   53.84 +by (asm_simp_tac (simpset() addsimps [recfunAC16_0,
   53.85                  empty_subsetI RS subset_imp_lepoll]) 1);
   53.86 -by (asm_simp_tac (!simpset addsimps [recfunAC16_Limit,
   53.87 +by (asm_simp_tac (simpset() addsimps [recfunAC16_Limit,
   53.88                  Diff_cancel, empty_subsetI RS subset_imp_lepoll]) 2);
   53.89 -by (asm_simp_tac (!simpset addsimps [recfunAC16_succ]) 1);
   53.90 +by (asm_simp_tac (simpset() addsimps [recfunAC16_succ]) 1);
   53.91  by (resolve_tac [conjI RS (expand_if RS iffD2)] 1);
   53.92 -by (fast_tac (!claset addSIs [empty_subsetI RS subset_imp_lepoll]
   53.93 +by (fast_tac (claset() addSIs [empty_subsetI RS subset_imp_lepoll]
   53.94                  addSEs [Diff_UN_succ_empty RS ssubst]) 1);
   53.95 -by (fast_tac (!claset addSEs [Diff_UN_succ_subset RS subset_imp_lepoll RS
   53.96 +by (fast_tac (claset() addSEs [Diff_UN_succ_subset RS subset_imp_lepoll RS
   53.97          (singleton_eqpoll_1 RS eqpoll_imp_lepoll RSN (2, lepoll_trans))]) 1);
   53.98  qed "recfunAC16_Diff_lepoll_1";
   53.99  
  53.100  goal thy "!!z. [| z : F(x); Ord(x) |]  \
  53.101  \       ==> z:F(LEAST i. z:F(i)) - (UN j<(LEAST i. z:F(i)). F(j))";
  53.102 -by (fast_tac (!claset addEs [less_LeastE] addSEs [OUN_E, LeastI]) 1);
  53.103 +by (fast_tac (claset() addEs [less_LeastE] addSEs [OUN_E, LeastI]) 1);
  53.104  qed "in_Least_Diff";
  53.105  
  53.106  goal thy "!!w. [| (LEAST i. w:F(i)) = (LEAST i. z:F(i));  \
  53.107 @@ -232,7 +232,7 @@
  53.108  qed "Least_eq_imp_ex";
  53.109  
  53.110  goal thy "!!A. [| A lepoll 1; a:A; b:A |] ==> a=b";
  53.111 -by (fast_tac (!claset addSDs [lepoll_1_is_sing]) 1);
  53.112 +by (fast_tac (claset() addSDs [lepoll_1_is_sing]) 1);
  53.113  qed "two_in_lepoll_1";
  53.114  
  53.115  goal thy "!!a. [| ALL i<a. F(i)-(UN j<i. F(j)) lepoll 1; Limit(a) |]  \
  53.116 @@ -251,20 +251,20 @@
  53.117  by (Asm_simp_tac 1);
  53.118  by (rtac impI 1);
  53.119  by (dtac Least_eq_imp_ex 1 THEN (REPEAT (assume_tac 1)));
  53.120 -by (fast_tac (!claset addSEs [two_in_lepoll_1]) 1);
  53.121 +by (fast_tac (claset() addSEs [two_in_lepoll_1]) 1);
  53.122  qed "UN_lepoll_index";
  53.123  
  53.124  goal thy "!!y. Ord(y) ==> recfunAC16(f, fa, y, a) lepoll y";
  53.125  by (etac trans_induct 1);
  53.126  by (etac Ord_cases 1);
  53.127 -by (asm_simp_tac (!simpset addsimps [recfunAC16_0, lepoll_refl]) 1);
  53.128 -by (asm_simp_tac (!simpset addsimps [recfunAC16_succ]) 1);
  53.129 -by (fast_tac (!claset addIs [conjI RS (expand_if RS iffD2)]
  53.130 +by (asm_simp_tac (simpset() addsimps [recfunAC16_0, lepoll_refl]) 1);
  53.131 +by (asm_simp_tac (simpset() addsimps [recfunAC16_succ]) 1);
  53.132 +by (fast_tac (claset() addIs [conjI RS (expand_if RS iffD2)]
  53.133          addSDs [succI1 RSN (2, bspec)]
  53.134          addSEs [subset_succI RS subset_imp_lepoll RSN (2, lepoll_trans),
  53.135                  Un_lepoll_succ]) 1);
  53.136 -by (asm_simp_tac (!simpset addsimps [recfunAC16_Limit]) 1);
  53.137 -by (fast_tac (!claset addSEs [lt_Ord RS recfunAC16_Diff_lepoll_1]
  53.138 +by (asm_simp_tac (simpset() addsimps [recfunAC16_Limit]) 1);
  53.139 +by (fast_tac (claset() addSEs [lt_Ord RS recfunAC16_Diff_lepoll_1]
  53.140          addSIs [UN_lepoll_index]) 1);
  53.141  qed "recfunAC16_lepoll_index";
  53.142  
  53.143 @@ -276,7 +276,7 @@
  53.144  by (eresolve_tac [lt_Ord RS recfunAC16_lepoll_index] 3);
  53.145  by (eresolve_tac [[bij_is_inj, Card_is_Ord RS well_ord_Memrel] MRS
  53.146          well_ord_rvimage] 2 THEN (assume_tac 2));
  53.147 -by (fast_tac (!claset addSEs [eqpoll_imp_lepoll]) 1);
  53.148 +by (fast_tac (claset() addSEs [eqpoll_imp_lepoll]) 1);
  53.149  qed "Union_recfunAC16_lesspoll";
  53.150  
  53.151  goal thy
  53.152 @@ -306,11 +306,11 @@
  53.153  \       fa : bij(a, {x: Pow(A) . x eqpoll k}); i<a; k:nat; m:nat |]  \
  53.154  \       ==> fa ` i Un x : {x: Pow(A) . x eqpoll k #+ m}";
  53.155  by (rtac CollectI 1);
  53.156 -by (fast_tac (!claset addSIs [PowD RS (PowD RSN (2, Un_least RS PowI))] 
  53.157 +by (fast_tac (claset() addSIs [PowD RS (PowD RSN (2, Un_least RS PowI))] 
  53.158          addSEs [ltD RSN (2, bij_is_fun RS apply_type RS CollectE)]) 1);
  53.159  by (rtac disj_Un_eqpoll_nat_sum 1
  53.160          THEN (TRYALL assume_tac));
  53.161 -by (fast_tac (!claset addSIs [equals0I]) 1);
  53.162 +by (fast_tac (claset() addSIs [equals0I]) 1);
  53.163  by (eresolve_tac [ltD RSN (2, bij_is_fun RS apply_type RS CollectE)] 1
  53.164          THEN (REPEAT (assume_tac 1)));
  53.165  qed "Un_in_Collect";
  53.166 @@ -329,7 +329,7 @@
  53.167  
  53.168  goal thy "!!j. [| F(j)<=X; (ALL x<a. x<j | P(x,j) --> Q(x,j)); succ(j)<a |]  \
  53.169  \       ==> P(j,j) --> F(j) <= X & (ALL x<a. x le j | P(x,j) --> Q(x,j))";
  53.170 -by (fast_tac (!claset addSEs [leE]) 1);
  53.171 +by (fast_tac (claset() addSEs [leE]) 1);
  53.172  val lemma7 = result();
  53.173  
  53.174  (* ********************************************************************** *)
  53.175 @@ -345,15 +345,15 @@
  53.176                  ((eqpoll_sym RS eqpoll_imp_lepoll) RSN (2, lepoll_trans)) RS 
  53.177                  lepoll_imp_eqpoll_subset RS exE] 1 
  53.178          THEN REPEAT (assume_tac 1));
  53.179 -by (fast_tac (!claset addSEs [eqpoll_sym]) 1);
  53.180 +by (fast_tac (claset() addSEs [eqpoll_sym]) 1);
  53.181  qed "ex_subset_eqpoll";
  53.182  
  53.183  goal thy "!!A. [| A <= B Un C; A Int C = 0 |] ==> A <= B";
  53.184 -by (fast_tac (!claset addDs [equals0D]) 1);
  53.185 +by (fast_tac (claset() addDs [equals0D]) 1);
  53.186  qed "subset_Un_disjoint";
  53.187  
  53.188  goal thy "!!F. [| X:Pow(A - Union(B) -C); T:B; F<=T |] ==> F Int X = 0";
  53.189 -by (fast_tac (!claset addSIs [equals0I]) 1);
  53.190 +by (fast_tac (claset() addSIs [equals0I]) 1);
  53.191  qed "Int_empty";
  53.192  
  53.193  (* ********************************************************************** *)
  53.194 @@ -361,12 +361,12 @@
  53.195  (* ********************************************************************** *)
  53.196  
  53.197  goal thy "!!A. [| A <= B; a : A; A - {a} = B - {a} |] ==> A = B";
  53.198 -by (fast_tac (!claset addSEs [equalityE]) 1);
  53.199 +by (fast_tac (claset() addSEs [equalityE]) 1);
  53.200  qed "Diffs_eq_imp_eq";
  53.201  
  53.202  goal thy "!!A. m:nat ==> ALL A B. A <= B & m lepoll A & B lepoll m --> A=B";
  53.203  by (etac nat_induct 1);
  53.204 -by (fast_tac (!claset addSDs [lepoll_0_is_0]) 1);
  53.205 +by (fast_tac (claset() addSDs [lepoll_0_is_0]) 1);
  53.206  by (REPEAT (resolve_tac [allI, impI] 1));
  53.207  by (REPEAT (etac conjE 1));
  53.208  by (resolve_tac [succ_lepoll_imp_not_empty RS not_emptyE] 1
  53.209 @@ -390,12 +390,12 @@
  53.210  \       y<a |] ==> b=y";
  53.211  by (dtac subset_imp_eq 1);
  53.212  by (etac nat_succI 3);
  53.213 -by (fast_tac (!claset addSEs [bij_is_fun RS (ltD RSN (2, apply_type)) RS
  53.214 +by (fast_tac (claset() addSEs [bij_is_fun RS (ltD RSN (2, apply_type)) RS
  53.215                  CollectE, eqpoll_sym RS eqpoll_imp_lepoll]) 1);
  53.216 -by (fast_tac (!claset addSEs [bij_is_fun RS (ltD RSN (2, apply_type)) RS
  53.217 +by (fast_tac (claset() addSEs [bij_is_fun RS (ltD RSN (2, apply_type)) RS
  53.218          CollectE, eqpoll_imp_lepoll]) 1);
  53.219  by (rewrite_goals_tac [bij_def, inj_def]);
  53.220 -by (fast_tac (!claset addSDs [ltD]) 1);
  53.221 +by (fast_tac (claset() addSDs [ltD]) 1);
  53.222  qed "bij_imp_arg_eq";
  53.223  
  53.224  goal thy
  53.225 @@ -467,7 +467,7 @@
  53.226  \       (ALL x<a. x le j | (EX xa: (F(j) Un {L}). P(x, xa)) -->  \
  53.227  \               (EX! Y. Y: (F(j) Un {L}) & P(x, Y)))";
  53.228  by (rtac conjI 1);
  53.229 -by (fast_tac (!claset addSIs [singleton_subsetI]) 1);
  53.230 +by (fast_tac (claset() addSIs [singleton_subsetI]) 1);
  53.231  by (rtac oallI 1);
  53.232  by (etac oallE 1 THEN (contr_tac 2));
  53.233  by (rtac impI 1);
  53.234 @@ -480,7 +480,7 @@
  53.235  by (Deepen_tac 2 1);
  53.236  by (etac bexE 1);
  53.237  by (etac UnE 1);
  53.238 -by (fast_tac (!claset delrules [ex_ex1I] addSIs [ex1_in_Un_sing]) 1);
  53.239 +by (fast_tac (claset() delrules [ex_ex1I] addSIs [ex1_in_Un_sing]) 1);
  53.240  by (Deepen_tac 2 1);
  53.241  val lemma8 = result();
  53.242  
  53.243 @@ -500,15 +500,15 @@
  53.244  by (forward_tac [lt_Ord] 1);
  53.245  by (etac Ord_cases 1);
  53.246  (* case 0 *)
  53.247 -by (asm_simp_tac (!simpset addsimps [recfunAC16_0]) 1);
  53.248 +by (asm_simp_tac (simpset() addsimps [recfunAC16_0]) 1);
  53.249  (* case Limit *)
  53.250 -by (asm_simp_tac (!simpset addsimps [recfunAC16_Limit]) 2);
  53.251 +by (asm_simp_tac (simpset() addsimps [recfunAC16_Limit]) 2);
  53.252  by (rtac lemma5 2 THEN (REPEAT (assume_tac 2)));
  53.253  by (fast_tac (FOL_cs addSEs [recfunAC16_mono]) 2);
  53.254  (* case succ *)
  53.255  by (hyp_subst_tac 1);
  53.256  by (eresolve_tac [lemma6 RS conjE] 1 THEN (assume_tac 1));
  53.257 -by (asm_simp_tac (!simpset addsimps [recfunAC16_succ]) 1);
  53.258 +by (asm_simp_tac (simpset() addsimps [recfunAC16_succ]) 1);
  53.259  by (resolve_tac [conjI RS (expand_if RS iffD2)] 1);
  53.260  by (etac lemma7 1 THEN (REPEAT (assume_tac 1)));
  53.261  by (rtac impI 1);
  53.262 @@ -548,12 +548,12 @@
  53.263  (** LEVEL 10 **)
  53.264  by (dresolve_tac [leI RS succ_leE RSN (2, ospec)] 1 THEN (assume_tac 1));
  53.265  by (etac impE 1);
  53.266 -by (fast_tac (!claset addSEs [leI RS succ_leE RS lt_Ord RS le_refl]) 1);
  53.267 +by (fast_tac (claset() addSEs [leI RS succ_leE RS lt_Ord RS le_refl]) 1);
  53.268  by (dresolve_tac [prem2 RSN (2, apply_equality)] 1);
  53.269  by (REPEAT (eresolve_tac [conjE, ex1E] 1));
  53.270  (** LEVEL 15 **)
  53.271  by (rtac ex1I 1);
  53.272 -by (fast_tac (!claset addSIs [OUN_I]) 1);
  53.273 +by (fast_tac (claset() addSIs [OUN_I]) 1);
  53.274  by (REPEAT (eresolve_tac [conjE, OUN_E] 1));
  53.275  by (eresolve_tac [lt_Ord RSN (2, lt_Ord RS Ord_linear_le)] 1 THEN (assume_tac 1));
  53.276  by (dresolve_tac [prem4 RS subsetD] 2 THEN (assume_tac 2));
    54.1 --- a/src/ZF/AC/WO6_WO1.ML	Mon Nov 03 12:22:43 1997 +0100
    54.2 +++ b/src/ZF/AC/WO6_WO1.ML	Mon Nov 03 12:24:13 1997 +0100
    54.3 @@ -16,12 +16,12 @@
    54.4  by (res_inst_tac [("i","k"),("j","i")] Ord_linear2 1);
    54.5  by (dtac odiff_lt_mono2 4 THEN assume_tac 4);
    54.6  by (asm_full_simp_tac
    54.7 -    (!simpset addsimps [oadd_odiff_inverse, odiff_oadd_inverse]) 4);
    54.8 -by (safe_tac (!claset addSEs [lt_Ord]));
    54.9 +    (simpset() addsimps [oadd_odiff_inverse, odiff_oadd_inverse]) 4);
   54.10 +by (safe_tac (claset() addSEs [lt_Ord]));
   54.11  qed "lt_oadd_odiff_disj";
   54.12  
   54.13  (*The corresponding elimination rule*)
   54.14 -val lt_oadd_odiff_cases = rule_by_tactic (safe_tac (!claset))
   54.15 +val lt_oadd_odiff_cases = rule_by_tactic (safe_tac (claset()))
   54.16                                           (lt_oadd_odiff_disj RS disjE);
   54.17  
   54.18  (* ********************************************************************** *)
   54.19 @@ -38,7 +38,7 @@
   54.20  
   54.21  goal thy "!! a. ALL b<a. f`b lepoll m ==> \
   54.22  \               ALL b<a. ALL g<a. ALL d<a. domain(uu(f,b,g,d)) lepoll m";
   54.23 -by (fast_tac (!claset addSEs
   54.24 +by (fast_tac (claset() addSEs
   54.25          [domain_uu_subset RS subset_imp_lepoll RS lepoll_trans]) 1);
   54.26  qed "quant_domain_uu_lepoll_m";
   54.27  
   54.28 @@ -51,7 +51,7 @@
   54.29  qed "uu_subset2";
   54.30  
   54.31  goal thy "!! a. [| ALL b<a. f`b lepoll m;  d<a |] ==> uu(f,b,g,d) lepoll m";
   54.32 -by (fast_tac (!claset
   54.33 +by (fast_tac (claset()
   54.34          addSEs [uu_subset2 RS subset_imp_lepoll RS lepoll_trans]) 1);
   54.35  qed "uu_lepoll_m";
   54.36  
   54.37 @@ -65,14 +65,14 @@
   54.38  \            (EX b<a. f`b ~= 0 & (ALL g<a. ALL d<a. u(f,b,g,d) ~= 0 -->  \
   54.39  \                                       u(f,b,g,d) eqpoll m))";
   54.40  by (Asm_simp_tac 1);
   54.41 -by (blast_tac (!claset delrules [equalityI]) 1);
   54.42 +by (blast_tac (claset() delrules [equalityI]) 1);
   54.43  qed "cases";
   54.44  
   54.45  (* ********************************************************************** *)
   54.46  (* Lemmas used in both cases                                              *)
   54.47  (* ********************************************************************** *)
   54.48  goal thy "!!a C. Ord(a) ==> (UN b<a++a. C(b)) = (UN b<a. C(b) Un C(a++b))";
   54.49 -by (fast_tac (!claset addSIs [equalityI] addIs [ltI] 
   54.50 +by (fast_tac (claset() addSIs [equalityI] addIs [ltI] 
   54.51                      addSDs [lt_oadd_disj]
   54.52                      addSEs [lt_oadd1, oadd_lt_mono2]) 1);
   54.53  qed "UN_oadd";
   54.54 @@ -85,7 +85,7 @@
   54.55  goalw thy [vv1_def] "vv1(f,m,b) <= f`b";
   54.56  by (rtac (LetI RS LetI) 1);
   54.57  by (split_tac [expand_if] 1);
   54.58 -by (simp_tac (!simpset addsimps [domain_uu_subset]) 1);
   54.59 +by (simp_tac (simpset() addsimps [domain_uu_subset]) 1);
   54.60  qed "vv1_subset";
   54.61  
   54.62  (* ********************************************************************** *)
   54.63 @@ -95,14 +95,14 @@
   54.64    "!! a f y. [| Ord(a);  m:nat |] ==>   \
   54.65  \            (UN b<a++a. gg1(f,a,m)`b) = (UN b<a. f`b)";
   54.66  by (asm_simp_tac
   54.67 -    (!simpset addsimps [UN_oadd, lt_oadd1,
   54.68 +    (simpset() addsimps [UN_oadd, lt_oadd1,
   54.69                             oadd_le_self RS le_imp_not_lt, lt_Ord,
   54.70                             odiff_oadd_inverse, ltD,
   54.71                             vv1_subset RS Diff_partition, ww1_def]) 1);
   54.72  qed "UN_gg1_eq";
   54.73  
   54.74  goal thy "domain(gg1(f,a,m)) = a++a";
   54.75 -by (simp_tac (!simpset addsimps [lam_funtype RS domain_of_fun, gg1_def]) 1);
   54.76 +by (simp_tac (simpset() addsimps [lam_funtype RS domain_of_fun, gg1_def]) 1);
   54.77  qed "domain_gg1";
   54.78  
   54.79  (* ********************************************************************** *)
   54.80 @@ -113,7 +113,7 @@
   54.81  \               ==> P(Least_a, LEAST b. P(Least_a, b))";
   54.82  by (etac ssubst 1);
   54.83  by (res_inst_tac [("Q","%z. P(z, LEAST b. P(z, b))")] LeastI2 1);
   54.84 -by (REPEAT (fast_tac (!claset addSEs [LeastI]) 1));
   54.85 +by (REPEAT (fast_tac (claset() addSEs [LeastI]) 1));
   54.86  qed "nested_LeastI";
   54.87  
   54.88  val nested_Least_instance = 
   54.89 @@ -130,23 +130,23 @@
   54.90  \            ALL b<a. f`b lepoll succ(m);  b<a++a                       \
   54.91  \         |] ==> gg1(f,a,m)`b lepoll m";
   54.92  by (Asm_simp_tac 1);
   54.93 -by (safe_tac (!claset addSEs [lt_oadd_odiff_cases]));
   54.94 +by (safe_tac (claset() addSEs [lt_oadd_odiff_cases]));
   54.95  (*Case b<a   : show vv1(f,m,b) lepoll m *)
   54.96 -by (asm_simp_tac (!simpset addsimps [vv1_def, Let_def] 
   54.97 +by (asm_simp_tac (simpset() addsimps [vv1_def, Let_def] 
   54.98                          setloop split_tac [expand_if]) 1);
   54.99 -by (fast_tac (!claset addIs [nested_Least_instance RS conjunct2]
  54.100 +by (fast_tac (claset() addIs [nested_Least_instance RS conjunct2]
  54.101                  addSEs [lt_Ord]
  54.102                  addSIs [empty_lepollI]) 1);
  54.103  (*Case a le b: show ww1(f,m,b--a) lepoll m *)
  54.104 -by (asm_simp_tac (!simpset addsimps [ww1_def]) 1);
  54.105 +by (asm_simp_tac (simpset() addsimps [ww1_def]) 1);
  54.106  by (excluded_middle_tac "f`(b--a) = 0" 1);
  54.107 -by (asm_simp_tac (!simpset addsimps [empty_lepollI]) 2);
  54.108 +by (asm_simp_tac (simpset() addsimps [empty_lepollI]) 2);
  54.109  by (rtac Diff_lepoll 1);
  54.110  by (Blast_tac 1);
  54.111  by (rtac vv1_subset 1);
  54.112  by (dtac (ospec RS mp) 1);
  54.113  by (REPEAT (eresolve_tac [asm_rl, oexE] 1));
  54.114 -by (asm_simp_tac (!simpset
  54.115 +by (asm_simp_tac (simpset()
  54.116          addsimps [vv1_def, Let_def, lt_Ord, 
  54.117                    nested_Least_instance RS conjunct1]) 1);
  54.118  qed "gg1_lepoll_m";
  54.119 @@ -162,7 +162,7 @@
  54.120  goalw thy [uu_def] "!!f. [| b<a;  g<a;  f`b~=0;  f`g~=0;        \
  54.121  \                           y*y <= y;  (UN b<a. f`b)=y          \
  54.122  \                        |] ==> EX d<a. uu(f,b,g,d) ~= 0";
  54.123 -by (fast_tac (!claset addSIs [not_emptyI] 
  54.124 +by (fast_tac (claset() addSIs [not_emptyI] 
  54.125                      addSDs [SigmaI RSN (2, subsetD)]
  54.126                      addSEs [not_emptyE]) 1);
  54.127  qed "ex_d_uu_not_empty";
  54.128 @@ -171,7 +171,7 @@
  54.129  \                       y*y<=y; (UN b<a. f`b)=y |]  \
  54.130  \               ==> uu(f,b,g,LEAST d. (uu(f,b,g,d) ~= 0)) ~= 0";
  54.131  by (dtac ex_d_uu_not_empty 1 THEN REPEAT (assume_tac 1));
  54.132 -by (fast_tac (!claset addSEs [LeastI, lt_Ord]) 1);
  54.133 +by (fast_tac (claset() addSEs [LeastI, lt_Ord]) 1);
  54.134  qed "uu_not_empty";
  54.135  
  54.136  goal ZF.thy "!!r. [| r<=A*B; r~=0 |] ==> domain(r)~=0";
  54.137 @@ -195,7 +195,7 @@
  54.138  (*Could this be proved more directly?*)
  54.139  goal thy "!!A B. [| A lepoll m; m lepoll B; B <= A; m:nat |] ==> A=B";
  54.140  by (etac natE 1);
  54.141 -by (fast_tac (!claset addSDs [lepoll_0_is_0] addSIs [equalityI]) 1);
  54.142 +by (fast_tac (claset() addSDs [lepoll_0_is_0] addSIs [equalityI]) 1);
  54.143  by (hyp_subst_tac 1);
  54.144  by (rtac equalityI 1);
  54.145  by (assume_tac 2);
  54.146 @@ -222,7 +222,7 @@
  54.147          uu_subset1 RSN (4, rel_is_fun)))] 1
  54.148          THEN TRYALL assume_tac);
  54.149  by (rtac (eqpoll_sym RS eqpoll_imp_lepoll RSN (2, supset_lepoll_imp_eq)) 1);
  54.150 -by (REPEAT (fast_tac (!claset addSIs [domain_uu_subset, nat_succI]) 1));
  54.151 +by (REPEAT (fast_tac (claset() addSIs [domain_uu_subset, nat_succI]) 1));
  54.152  qed "uu_Least_is_fun";
  54.153  
  54.154  goalw thy [vv2_def]
  54.155 @@ -234,7 +234,7 @@
  54.156  by (split_tac [expand_if] 1);
  54.157  by Safe_tac;
  54.158  by (etac (uu_Least_is_fun RS apply_type) 1);
  54.159 -by (REPEAT_SOME (fast_tac (!claset addSIs [not_emptyI, singleton_subsetI])));
  54.160 +by (REPEAT_SOME (fast_tac (claset() addSIs [not_emptyI, singleton_subsetI])));
  54.161  qed "vv2_subset";
  54.162  
  54.163  (* ********************************************************************** *)
  54.164 @@ -248,14 +248,14 @@
  54.165  \         |] ==> (UN g<a++a. gg2(f,a,b,s) ` g) = y";
  54.166  by (dtac sym 1);
  54.167  by (asm_simp_tac
  54.168 -    (!simpset addsimps [UN_oadd, lt_oadd1,
  54.169 +    (simpset() addsimps [UN_oadd, lt_oadd1,
  54.170                             oadd_le_self RS le_imp_not_lt, lt_Ord,
  54.171                             odiff_oadd_inverse, ww2_def,
  54.172                             vv2_subset RS Diff_partition]) 1);
  54.173  qed "UN_gg2_eq";
  54.174  
  54.175  goal thy "domain(gg2(f,a,b,s)) = a++a";
  54.176 -by (simp_tac (!simpset addsimps [lam_funtype RS domain_of_fun, gg2_def]) 1);
  54.177 +by (simp_tac (simpset() addsimps [lam_funtype RS domain_of_fun, gg2_def]) 1);
  54.178  qed "domain_gg2";
  54.179  
  54.180  (* ********************************************************************** *)
  54.181 @@ -264,9 +264,9 @@
  54.182  
  54.183  goalw thy [vv2_def]
  54.184      "!!m. [| m:nat; m~=0 |] ==> vv2(f,b,g,s) lepoll m";
  54.185 -by (asm_simp_tac (!simpset addsimps [empty_lepollI]
  54.186 +by (asm_simp_tac (simpset() addsimps [empty_lepollI]
  54.187                                setloop split_tac [expand_if]) 1);
  54.188 -by (fast_tac (!claset
  54.189 +by (fast_tac (claset()
  54.190          addSDs [le_imp_subset RS subset_imp_lepoll RS lepoll_0_is_0]
  54.191          addSIs [singleton_eqpoll_1 RS eqpoll_imp_lepoll RS lepoll_trans,
  54.192                  not_lt_imp_le RS le_imp_subset RS subset_imp_lepoll,
  54.193 @@ -277,11 +277,11 @@
  54.194      "!!m. [| ALL b<a. f`b lepoll succ(m);  g<a;  m:nat;  vv2(f,b,g,d) <= f`g  \
  54.195  \         |] ==> ww2(f,b,g,d) lepoll m";
  54.196  by (excluded_middle_tac "f`g = 0" 1);
  54.197 -by (asm_simp_tac (!simpset addsimps [empty_lepollI]) 2);
  54.198 +by (asm_simp_tac (simpset() addsimps [empty_lepollI]) 2);
  54.199  by (dtac ospec 1 THEN (assume_tac 1));
  54.200  by (rtac Diff_lepoll 1
  54.201          THEN (TRYALL assume_tac));
  54.202 -by (asm_simp_tac (!simpset addsimps [vv2_def, expand_if, not_emptyI]) 1);
  54.203 +by (asm_simp_tac (simpset() addsimps [vv2_def, expand_if, not_emptyI]) 1);
  54.204  qed "ww2_lepoll";
  54.205  
  54.206  goalw thy [gg2_def]
  54.207 @@ -291,9 +291,9 @@
  54.208  \            (UN b<a. f`b)=y;  b<a;  s:f`b;  m:nat;  m~= 0;  g<a++a     \
  54.209  \         |] ==> gg2(f,a,b,s) ` g lepoll m";
  54.210  by (Asm_simp_tac 1);
  54.211 -by (safe_tac (!claset addSEs [lt_oadd_odiff_cases, lt_Ord2]));
  54.212 -by (asm_simp_tac (!simpset addsimps [vv2_lepoll]) 1);
  54.213 -by (asm_simp_tac (!simpset addsimps [ww2_lepoll, vv2_subset]) 1);
  54.214 +by (safe_tac (claset() addSEs [lt_oadd_odiff_cases, lt_Ord2]));
  54.215 +by (asm_simp_tac (simpset() addsimps [vv2_lepoll]) 1);
  54.216 +by (asm_simp_tac (simpset() addsimps [ww2_lepoll, vv2_subset]) 1);
  54.217  qed "gg2_lepoll_m";
  54.218  
  54.219  (* ********************************************************************** *)
  54.220 @@ -305,9 +305,9 @@
  54.221  by (resolve_tac [quant_domain_uu_lepoll_m RS cases RS disjE] 1
  54.222      THEN (assume_tac 1));
  54.223  (* case 1 *)
  54.224 -by (asm_full_simp_tac (!simpset addsimps [lesspoll_succ_iff]) 1);
  54.225 +by (asm_full_simp_tac (simpset() addsimps [lesspoll_succ_iff]) 1);
  54.226  by (res_inst_tac [("x","a++a")] exI 1);
  54.227 -by (fast_tac (!claset addSIs [Ord_oadd, domain_gg1, UN_gg1_eq, 
  54.228 +by (fast_tac (claset() addSIs [Ord_oadd, domain_gg1, UN_gg1_eq, 
  54.229                                    gg1_lepoll_m]) 1);
  54.230  (* case 2 *)
  54.231  by (REPEAT (eresolve_tac [oexE, conjE] 1));
  54.232 @@ -318,7 +318,7 @@
  54.233  by (res_inst_tac [("x","gg2(f,a,b,x)")] exI 1);
  54.234  (*Calling fast_tac might get rid of the res_inst_tac calls, but it
  54.235    is just too slow.*)
  54.236 -by (asm_simp_tac (!simpset addsimps 
  54.237 +by (asm_simp_tac (simpset() addsimps 
  54.238                    [Ord_oadd, domain_gg2, UN_gg2_eq, gg2_lepoll_m]) 1);
  54.239  qed "lemma_ii";
  54.240  
  54.241 @@ -333,7 +333,7 @@
  54.242  
  54.243  goal thy "ALL n:nat. rec(n, x, %k r. r Un r*r) <=  \
  54.244  \                    rec(succ(n), x, %k r. r Un r*r)";
  54.245 -by (fast_tac (!claset addIs [rec_succ RS ssubst]) 1);
  54.246 +by (fast_tac (claset() addIs [rec_succ RS ssubst]) 1);
  54.247  qed "z_n_subset_z_succ_n";
  54.248  
  54.249  goal thy "!!n. [| ALL n:nat. f(n)<=f(succ(n)); n le m; n : nat; m: nat |]  \
  54.250 @@ -353,14 +353,14 @@
  54.251  
  54.252  goal thy "EX y. x Un y*y <= y";
  54.253  by (res_inst_tac [("x","UN n:nat. rec(n, x, %k r. r Un r*r)")] exI 1);
  54.254 -by (safe_tac (!claset));
  54.255 +by (safe_tac (claset()));
  54.256  by (rtac (nat_0I RS UN_I) 1);
  54.257  by (Asm_simp_tac 1);
  54.258  by (res_inst_tac [("a","succ(n Un na)")] UN_I 1);
  54.259  by (eresolve_tac [Un_nat_type RS nat_succI] 1 THEN (assume_tac 1));
  54.260  by (fast_tac (ZF_cs addIs [le_imp_rec_subset RS subsetD]
  54.261                  addSIs [Un_upper1_le, Un_upper2_le, Un_nat_type]
  54.262 -                addSEs [nat_into_Ord] addss (!simpset)) 1);
  54.263 +                addSEs [nat_into_Ord] addss (simpset())) 1);
  54.264  qed "lemma_iv";
  54.265  
  54.266  (* ********************************************************************** *)
  54.267 @@ -388,13 +388,13 @@
  54.268  
  54.269  goal thy "!!f. [| (UN b<a. f`b)=y; x:y; ALL b<a. f`b lepoll 1; Ord(a) |]  \
  54.270  \               ==> EX c<a. f`c = {x}";
  54.271 -by (fast_tac (!claset addSEs [lepoll_1_is_sing]) 1);
  54.272 +by (fast_tac (claset() addSEs [lepoll_1_is_sing]) 1);
  54.273  val lemma1 = result();
  54.274  
  54.275  goal thy "!!f. [| (UN b<a. f`b)=y; x:y; ALL b<a. f`b lepoll 1; Ord(a) |]  \
  54.276  \               ==> f` (LEAST i. f`i = {x}) = {x}";
  54.277  by (dtac lemma1 1 THEN REPEAT (assume_tac 1));
  54.278 -by (fast_tac (!claset addSEs [lt_Ord] addIs [LeastI]) 1);
  54.279 +by (fast_tac (claset() addSEs [lt_Ord] addIs [LeastI]) 1);
  54.280  val lemma2 = result();
  54.281  
  54.282  goalw thy [NN_def] "!!y. 1 : NN(y) ==> EX a f. Ord(a) & f:inj(y, a)";
  54.283 @@ -405,14 +405,14 @@
  54.284  by (rtac conjI 1 THEN (assume_tac 1));
  54.285  by (res_inst_tac [("d","%i. THE x. x:f`i")] lam_injective 1);
  54.286  by (dtac lemma1 1 THEN REPEAT (assume_tac 1));
  54.287 -by (fast_tac (!claset addSEs [Least_le RS lt_trans1 RS ltD, lt_Ord]) 1);
  54.288 +by (fast_tac (claset() addSEs [Least_le RS lt_trans1 RS ltD, lt_Ord]) 1);
  54.289  by (resolve_tac [lemma2 RS ssubst] 1 THEN REPEAT (assume_tac 1));
  54.290 -by (fast_tac (!claset addSIs [the_equality]) 1);
  54.291 +by (fast_tac (claset() addSIs [the_equality]) 1);
  54.292  qed "NN_imp_ex_inj";
  54.293  
  54.294  goal thy "!!y. [| y*y <= y; 1 : NN(y) |] ==> EX r. well_ord(y, r)";
  54.295  by (dtac NN_imp_ex_inj 1);
  54.296 -by (fast_tac (!claset addSEs [well_ord_Memrel RSN (2,  well_ord_rvimage)]) 1);
  54.297 +by (fast_tac (claset() addSEs [well_ord_Memrel RSN (2,  well_ord_rvimage)]) 1);
  54.298  qed "y_well_ord";
  54.299  
  54.300  (* ********************************************************************** *)
  54.301 @@ -427,7 +427,7 @@
  54.302  by (Blast_tac 1);
  54.303  by (excluded_middle_tac "x=0" 1);
  54.304  by (Blast_tac 2);
  54.305 -by (fast_tac (!claset addSIs [prem2]) 1);
  54.306 +by (fast_tac (claset() addSIs [prem2]) 1);
  54.307  qed "rev_induct_lemma";
  54.308  
  54.309  val prems = goal thy
  54.310 @@ -454,21 +454,21 @@
  54.311  
  54.312  (* another helpful lemma *)
  54.313  goalw thy [NN_def] "!!y. 0:NN(y) ==> y=0";
  54.314 -by (fast_tac (!claset addSIs [equalityI] 
  54.315 +by (fast_tac (claset() addSIs [equalityI] 
  54.316                      addSDs [lepoll_0_is_0] addEs [subst]) 1);
  54.317  qed "NN_y_0";
  54.318  
  54.319  goalw thy [WO1_def] "!!Z. WO6 ==> WO1";
  54.320  by (rtac allI 1);
  54.321  by (excluded_middle_tac "A=0" 1);
  54.322 -by (fast_tac (!claset addSIs [well_ord_Memrel, nat_0I RS nat_into_Ord]) 2);
  54.323 +by (fast_tac (claset() addSIs [well_ord_Memrel, nat_0I RS nat_into_Ord]) 2);
  54.324  by (res_inst_tac [("x1","A")] (lemma_iv RS revcut_rl) 1);
  54.325  by (etac exE 1);
  54.326  by (dtac WO6_imp_NN_not_empty 1);
  54.327  by (eresolve_tac [Un_subset_iff RS iffD1 RS conjE] 1);
  54.328  by (eres_inst_tac [("A","NN(y)")] not_emptyE 1);
  54.329  by (forward_tac [y_well_ord] 1);
  54.330 -by (fast_tac (!claset addEs [well_ord_subset]) 2);
  54.331 -by (fast_tac (!claset addSIs [lemma3] addSDs [NN_y_0] addSEs [not_emptyE]) 1);
  54.332 +by (fast_tac (claset() addEs [well_ord_subset]) 2);
  54.333 +by (fast_tac (claset() addSIs [lemma3] addSDs [NN_y_0] addSEs [not_emptyE]) 1);
  54.334  qed "WO6_imp_WO1";
  54.335  
    55.1 --- a/src/ZF/AC/WO_AC.ML	Mon Nov 03 12:22:43 1997 +0100
    55.2 +++ b/src/ZF/AC/WO_AC.ML	Mon Nov 03 12:24:13 1997 +0100
    55.3 @@ -9,14 +9,14 @@
    55.4  
    55.5  goal thy "!!A. [| well_ord(Union(A),r); 0~:A; B:A |]  \
    55.6  \               ==> (THE b. first(b,B,r)) : B";
    55.7 -by (fast_tac (!claset addSEs [well_ord_imp_ex1_first RS theI RS
    55.8 +by (fast_tac (claset() addSEs [well_ord_imp_ex1_first RS theI RS
    55.9                  (first_def RS def_imp_iff RS iffD1 RS conjunct1)]) 1);
   55.10  qed "first_in_B";
   55.11  
   55.12  goal thy "!!A. [| well_ord(Union(A), R); 0~:A |] ==> EX f. f:(PROD X:A. X)";
   55.13 -by (fast_tac (!claset addSEs [first_in_B] addSIs [lam_type]) 1);
   55.14 +by (fast_tac (claset() addSEs [first_in_B] addSIs [lam_type]) 1);
   55.15  qed "ex_choice_fun";
   55.16  
   55.17  goal thy "!!A. well_ord(A, R) ==> EX f. f:(PROD X: Pow(A)-{0}. X)";
   55.18 -by (fast_tac (!claset addSEs [well_ord_subset RS ex_choice_fun]) 1);
   55.19 +by (fast_tac (claset() addSEs [well_ord_subset RS ex_choice_fun]) 1);
   55.20  qed "ex_choice_fun_Pow";
    56.1 --- a/src/ZF/AC/recfunAC16.ML	Mon Nov 03 12:22:43 1997 +0100
    56.2 +++ b/src/ZF/AC/recfunAC16.ML	Mon Nov 03 12:24:13 1997 +0100
    56.3 @@ -41,7 +41,7 @@
    56.4  by (Asm_simp_tac 1);
    56.5  by (fast_tac (FOL_cs addSIs [succI1, prem1]
    56.6          addSEs [ballE, leE, prem1 RSN (2, subset_trans)]) 1);
    56.7 -by (fast_tac (!claset addIs [OUN_I, ltI]
    56.8 +by (fast_tac (claset() addIs [OUN_I, ltI]
    56.9          addSEs [Limit_has_succ RS ltE, succI1 RSN (2, Ord_in_Ord) RS le_refl,
   56.10                  transrec2_Limit RS ssubst]) 1);
   56.11  qed "transrec2_mono_lemma";
   56.12 @@ -50,7 +50,7 @@
   56.13  \       ==> transrec2(j, 0, B) <= transrec2(i, 0, B)";
   56.14  by (resolve_tac [prem2 RS leE] 1);
   56.15  by (resolve_tac [transrec2_mono_lemma RS impE] 1);
   56.16 -by (TRYALL (fast_tac (!claset addSIs [prem1, prem2, lt_Ord2])));
   56.17 +by (TRYALL (fast_tac (claset() addSIs [prem1, prem2, lt_Ord2])));
   56.18  qed "transrec2_mono";
   56.19  
   56.20  (* ********************************************************************** *)
   56.21 @@ -60,6 +60,6 @@
   56.22  goalw thy [recfunAC16_def]
   56.23          "!!i. i le j ==> recfunAC16(f, g, i, a) <= recfunAC16(f, g, j, a)";
   56.24  by (rtac transrec2_mono 1);
   56.25 -by (REPEAT (fast_tac (!claset addIs [expand_if RS iffD2]) 1));
   56.26 +by (REPEAT (fast_tac (claset() addIs [expand_if RS iffD2]) 1));
   56.27  qed "recfunAC16_mono";
   56.28  
    57.1 --- a/src/ZF/AC/rel_is_fun.ML	Mon Nov 03 12:22:43 1997 +0100
    57.2 +++ b/src/ZF/AC/rel_is_fun.ML	Mon Nov 03 12:24:13 1997 +0100
    57.3 @@ -15,21 +15,21 @@
    57.4  by (res_inst_tac [("x",
    57.5          "lam x:domain(u). LEAST i. EX y. <x,y> : u & f`<x,y> = i")] exI 1);
    57.6  by (res_inst_tac [("d","%y. fst(converse(f)`y)")] lam_injective 1);
    57.7 -by (fast_tac (!claset addIs [LeastI2, nat_into_Ord RS Ord_in_Ord,
    57.8 +by (fast_tac (claset() addIs [LeastI2, nat_into_Ord RS Ord_in_Ord,
    57.9                          inj_is_fun RS apply_type]) 1);
   57.10  by (etac domainE 1);
   57.11  by (forward_tac [inj_is_fun RS apply_type] 1 THEN (atac 1));
   57.12  by (rtac LeastI2 1);
   57.13 -by (REPEAT (fast_tac (!claset addSEs [nat_into_Ord RS Ord_in_Ord]
   57.14 -              addss (!simpset addsimps [left_inverse])) 1));
   57.15 +by (REPEAT (fast_tac (claset() addSEs [nat_into_Ord RS Ord_in_Ord]
   57.16 +              addss (simpset() addsimps [left_inverse])) 1));
   57.17  qed "lepoll_m_imp_domain_lepoll_m";
   57.18  
   57.19  goalw Cardinal.thy [function_def]
   57.20      "!!r. [| succ(m) lepoll domain(r); r lepoll succ(m); m:nat |] ==> \
   57.21  \         function(r)";
   57.22 -by (safe_tac (!claset));
   57.23 +by (safe_tac (claset()));
   57.24  by (resolve_tac [excluded_middle RS disjE] 1 THEN (atac 2));
   57.25 -by (fast_tac (!claset addSEs [lepoll_trans RS succ_lepoll_natE, 
   57.26 +by (fast_tac (claset() addSEs [lepoll_trans RS succ_lepoll_natE, 
   57.27                          Diff_sing_lepoll RSN (2, lepoll_m_imp_domain_lepoll_m)]
   57.28                  addEs [not_sym RSN (2, domain_Diff_eq) RS subst]) 1);
   57.29  qed "rel_domain_ex1";
   57.30 @@ -38,5 +38,5 @@
   57.31      "!!r. [| succ(m) lepoll domain(r);  r lepoll succ(m);  m:nat;  \
   57.32  \            r<=A*B; A=domain(r) |] ==> r: A->B";
   57.33  by (hyp_subst_tac 1);
   57.34 -by (asm_simp_tac (!simpset addsimps [Pi_iff, rel_domain_ex1]) 1);
   57.35 +by (asm_simp_tac (simpset() addsimps [Pi_iff, rel_domain_ex1]) 1);
   57.36  qed "rel_is_fun";
    58.1 --- a/src/ZF/Arith.ML	Mon Nov 03 12:22:43 1997 +0100
    58.2 +++ b/src/ZF/Arith.ML	Mon Nov 03 12:24:13 1997 +0100
    58.3 @@ -41,7 +41,7 @@
    58.4  \    |] ==> rec(n,a,b) : C(n)";
    58.5  by (rtac (major RS nat_induct) 1);
    58.6  by (ALLGOALS
    58.7 -    (asm_simp_tac (!simpset addsimps prems)));
    58.8 +    (asm_simp_tac (simpset() addsimps prems)));
    58.9  qed "rec_type";
   58.10  
   58.11  Addsimps [rec_type, nat_0_le, nat_le_refl];
   58.12 @@ -112,9 +112,9 @@
   58.13  qed_goalw "diff_succ_succ" Arith.thy [diff_def]
   58.14      "[| m:nat;  n:nat |] ==> succ(m) #- succ(n) = m #- n"
   58.15   (fn prems=>
   58.16 -  [ (asm_simp_tac (!simpset addsimps prems) 1),
   58.17 +  [ (asm_simp_tac (simpset() addsimps prems) 1),
   58.18      (nat_ind_tac "n" prems 1),
   58.19 -    (ALLGOALS (asm_simp_tac (!simpset addsimps prems))) ]);
   58.20 +    (ALLGOALS (asm_simp_tac (simpset() addsimps prems))) ]);
   58.21  
   58.22  Addsimps [diff_0, diff_0_eq_0, diff_succ_succ];
   58.23  
   58.24 @@ -123,7 +123,7 @@
   58.25  by (rtac (prems MRS diff_induct) 1);
   58.26  by (etac leE 3);
   58.27  by (ALLGOALS
   58.28 -    (asm_simp_tac (!simpset addsimps (prems @ [le_iff, nat_into_Ord]))));
   58.29 +    (asm_simp_tac (simpset() addsimps (prems @ [le_iff, nat_into_Ord]))));
   58.30  qed "diff_le_self";
   58.31  
   58.32  (*** Simplification over add, mult, diff ***)
   58.33 @@ -139,7 +139,7 @@
   58.34      "m:nat ==> (m #+ n) #+ k = m #+ (n #+ k)"
   58.35   (fn prems=>
   58.36    [ (nat_ind_tac "m" prems 1),
   58.37 -    (ALLGOALS (asm_simp_tac (!simpset addsimps prems))) ]);
   58.38 +    (ALLGOALS (asm_simp_tac (simpset() addsimps prems))) ]);
   58.39  
   58.40  (*The following two lemmas are used for add_commute and sometimes
   58.41    elsewhere, since they are safe for rewriting.*)
   58.42 @@ -147,13 +147,13 @@
   58.43      "m:nat ==> m #+ 0 = m"
   58.44   (fn prems=>
   58.45    [ (nat_ind_tac "m" prems 1),
   58.46 -    (ALLGOALS (asm_simp_tac (!simpset addsimps prems))) ]); 
   58.47 +    (ALLGOALS (asm_simp_tac (simpset() addsimps prems))) ]); 
   58.48  
   58.49  qed_goal "add_succ_right" Arith.thy
   58.50      "m:nat ==> m #+ succ(n) = succ(m #+ n)"
   58.51   (fn prems=>
   58.52    [ (nat_ind_tac "m" prems 1),
   58.53 -    (ALLGOALS (asm_simp_tac (!simpset addsimps prems))) ]); 
   58.54 +    (ALLGOALS (asm_simp_tac (simpset() addsimps prems))) ]); 
   58.55  
   58.56  Addsimps [add_0_right, add_succ_right];
   58.57  
   58.58 @@ -167,7 +167,7 @@
   58.59  (*for a/c rewriting*)
   58.60  qed_goal "add_left_commute" Arith.thy
   58.61      "!!m n k. [| m:nat;  n:nat |] ==> m#+(n#+k)=n#+(m#+k)"
   58.62 - (fn _ => [asm_simp_tac(!simpset addsimps [add_assoc RS sym, add_commute]) 1]);
   58.63 + (fn _ => [asm_simp_tac(simpset() addsimps [add_assoc RS sym, add_commute]) 1]);
   58.64  
   58.65  (*Addition is an AC-operator*)
   58.66  val add_ac = [add_assoc, add_commute, add_left_commute];
   58.67 @@ -194,7 +194,7 @@
   58.68      "!!m n. [| m:nat;  n:nat |] ==> m #* succ(n) = m #+ (m #* n)"
   58.69   (fn _ =>
   58.70    [ (nat_ind_tac "m" [] 1),
   58.71 -    (ALLGOALS (asm_simp_tac (!simpset addsimps add_ac))) ]);
   58.72 +    (ALLGOALS (asm_simp_tac (simpset() addsimps add_ac))) ]);
   58.73  
   58.74  Addsimps [mult_0_right, mult_succ_right];
   58.75  
   58.76 @@ -218,7 +218,7 @@
   58.77      "!!m n. [| m:nat;  k:nat |] ==> (m #+ n) #* k = (m #* k) #+ (n #* k)"
   58.78   (fn _=>
   58.79    [ (etac nat_induct 1),
   58.80 -    (ALLGOALS (asm_simp_tac (!simpset addsimps [add_assoc RS sym]))) ]);
   58.81 +    (ALLGOALS (asm_simp_tac (simpset() addsimps [add_assoc RS sym]))) ]);
   58.82  
   58.83  (*Distributive law on the left; requires an extra typing premise*)
   58.84  qed_goal "add_mult_distrib_left" Arith.thy 
   58.85 @@ -226,14 +226,14 @@
   58.86   (fn prems=>
   58.87    [ (nat_ind_tac "m" [] 1),
   58.88      (Asm_simp_tac 1),
   58.89 -    (asm_simp_tac (!simpset addsimps add_ac) 1) ]);
   58.90 +    (asm_simp_tac (simpset() addsimps add_ac) 1) ]);
   58.91  
   58.92  (*Associative law for multiplication*)
   58.93  qed_goal "mult_assoc" Arith.thy 
   58.94      "!!m n k. [| m:nat;  n:nat;  k:nat |] ==> (m #* n) #* k = m #* (n #* k)"
   58.95   (fn _=>
   58.96    [ (etac nat_induct 1),
   58.97 -    (ALLGOALS (asm_simp_tac (!simpset addsimps [add_mult_distrib]))) ]);
   58.98 +    (ALLGOALS (asm_simp_tac (simpset() addsimps [add_mult_distrib]))) ]);
   58.99  
  58.100  (*for a/c rewriting*)
  58.101  qed_goal "mult_left_commute" Arith.thy 
  58.102 @@ -252,7 +252,7 @@
  58.103      "m:nat ==> m #- m = 0"
  58.104   (fn prems=>
  58.105    [ (nat_ind_tac "m" prems 1),
  58.106 -    (ALLGOALS (asm_simp_tac (!simpset addsimps prems))) ]);
  58.107 +    (ALLGOALS (asm_simp_tac (simpset() addsimps prems))) ]);
  58.108  
  58.109  (*Addition is the inverse of subtraction*)
  58.110  goal Arith.thy "!!m n. [| n le m;  m:nat |] ==> n #+ (m#-n) = m";
  58.111 @@ -277,7 +277,7 @@
  58.112  val [mnat,nnat] = goal Arith.thy
  58.113      "[| m:nat;  n:nat |] ==> (n#+m) #- n = m";
  58.114  by (rtac (nnat RS nat_induct) 1);
  58.115 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [mnat])));
  58.116 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [mnat])));
  58.117  qed "diff_add_inverse";
  58.118  
  58.119  goal Arith.thy
  58.120 @@ -295,13 +295,13 @@
  58.121  goal Arith.thy
  58.122      "!!n. [| k:nat; m: nat; n: nat |] ==> (m#+k) #- (n#+k) = m #- n";
  58.123  val add_commute_k = read_instantiate [("n","k")] add_commute;
  58.124 -by (asm_simp_tac (!simpset addsimps [add_commute_k, diff_cancel]) 1);
  58.125 +by (asm_simp_tac (simpset() addsimps [add_commute_k, diff_cancel]) 1);
  58.126  qed "diff_cancel2";
  58.127  
  58.128  val [mnat,nnat] = goal Arith.thy
  58.129      "[| m:nat;  n:nat |] ==> n #- (n#+m) = 0";
  58.130  by (rtac (nnat RS nat_induct) 1);
  58.131 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [mnat])));
  58.132 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [mnat])));
  58.133  qed "diff_add_0";
  58.134  
  58.135  (** Difference distributes over multiplication **)
  58.136 @@ -309,13 +309,13 @@
  58.137  goal Arith.thy 
  58.138    "!!m n. [| m:nat; n: nat; k:nat |] ==> (m #- n) #* k = (m #* k) #- (n #* k)";
  58.139  by (res_inst_tac [("m","m"),("n","n")] diff_induct 1);
  58.140 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [diff_cancel])));
  58.141 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [diff_cancel])));
  58.142  qed "diff_mult_distrib" ;
  58.143  
  58.144  goal Arith.thy 
  58.145    "!!m. [| m:nat; n: nat; k:nat |] ==> k #* (m #- n) = (k #* m) #- (k #* n)";
  58.146  val mult_commute_k = read_instantiate [("m","k")] mult_commute;
  58.147 -by (asm_simp_tac (!simpset addsimps 
  58.148 +by (asm_simp_tac (simpset() addsimps 
  58.149                    [mult_commute_k, diff_mult_distrib]) 1);
  58.150  qed "diff_mult_distrib2" ;
  58.151  
  58.152 @@ -326,7 +326,7 @@
  58.153  by (etac rev_mp 1);
  58.154  by (etac rev_mp 1);
  58.155  by (res_inst_tac [("m","m"),("n","n")] diff_induct 1);
  58.156 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [diff_le_self,diff_succ_succ])));
  58.157 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [diff_le_self,diff_succ_succ])));
  58.158  qed "div_termination";
  58.159  
  58.160  val div_rls =   (*for mod and div*)
  58.161 @@ -334,7 +334,7 @@
  58.162      [Ord_transrec_type, apply_type, div_termination RS ltD, if_type,
  58.163       nat_into_Ord, not_lt_iff_le RS iffD1];
  58.164  
  58.165 -val div_ss = (!simpset) addsimps [nat_into_Ord, div_termination RS ltD,
  58.166 +val div_ss = (simpset()) addsimps [nat_into_Ord, div_termination RS ltD,
  58.167                                    not_lt_iff_le RS iffD2];
  58.168  
  58.169  (*Type checking depends upon termination!*)
  58.170 @@ -386,7 +386,7 @@
  58.171  by (Asm_simp_tac 2);
  58.172  (*case n le x*)
  58.173  by (asm_full_simp_tac
  58.174 -     (!simpset addsimps [not_lt_iff_le, nat_into_Ord, add_assoc,
  58.175 +     (simpset() addsimps [not_lt_iff_le, nat_into_Ord, add_assoc,
  58.176                           div_termination RS ltD, add_diff_inverse]) 1);
  58.177  qed "mod_div_equality";
  58.178  
  58.179 @@ -398,26 +398,26 @@
  58.180  by (etac complete_induct 1);
  58.181  by (excluded_middle_tac "succ(x)<n" 1);
  58.182  (* case succ(x) < n *)
  58.183 -by (asm_simp_tac (!simpset addsimps [mod_less, nat_le_refl RS lt_trans,
  58.184 +by (asm_simp_tac (simpset() addsimps [mod_less, nat_le_refl RS lt_trans,
  58.185                                       succ_neq_self]) 2);
  58.186 -by (asm_simp_tac (!simpset addsimps [ltD RS mem_imp_not_eq]) 2);
  58.187 +by (asm_simp_tac (simpset() addsimps [ltD RS mem_imp_not_eq]) 2);
  58.188  (* case n le succ(x) *)
  58.189  by (asm_full_simp_tac
  58.190 -     (!simpset addsimps [not_lt_iff_le, nat_into_Ord, mod_geq]) 1);
  58.191 +     (simpset() addsimps [not_lt_iff_le, nat_into_Ord, mod_geq]) 1);
  58.192  by (etac leE 1);
  58.193 -by (asm_simp_tac (!simpset addsimps [div_termination RS ltD, diff_succ, 
  58.194 +by (asm_simp_tac (simpset() addsimps [div_termination RS ltD, diff_succ, 
  58.195                                       mod_geq]) 1);
  58.196 -by (asm_simp_tac (!simpset addsimps [mod_less, diff_self_eq_0]) 1);
  58.197 +by (asm_simp_tac (simpset() addsimps [mod_less, diff_self_eq_0]) 1);
  58.198  qed "mod_succ";
  58.199  
  58.200  goal Arith.thy "!!m n. [| 0<n;  m:nat;  n:nat |] ==> m mod n < n";
  58.201  by (etac complete_induct 1);
  58.202  by (excluded_middle_tac "x<n" 1);
  58.203  (*case x<n*)
  58.204 -by (asm_simp_tac (!simpset addsimps [mod_less]) 2);
  58.205 +by (asm_simp_tac (simpset() addsimps [mod_less]) 2);
  58.206  (*case n le x*)
  58.207  by (asm_full_simp_tac
  58.208 -     (!simpset addsimps [not_lt_iff_le, nat_into_Ord,
  58.209 +     (simpset() addsimps [not_lt_iff_le, nat_into_Ord,
  58.210                           mod_geq, div_termination RS ltD]) 1);
  58.211  qed "mod_less_divisor";
  58.212  
  58.213 @@ -425,22 +425,22 @@
  58.214  goal Arith.thy
  58.215      "!!k b. [| k: nat; b<2 |] ==> k mod 2 = b | k mod 2 = if(b=1,0,1)";
  58.216  by (subgoal_tac "k mod 2: 2" 1);
  58.217 -by (asm_simp_tac (!simpset addsimps [mod_less_divisor RS ltD]) 2);
  58.218 +by (asm_simp_tac (simpset() addsimps [mod_less_divisor RS ltD]) 2);
  58.219  by (dtac ltD 1);
  58.220 -by (asm_simp_tac (!simpset setloop split_tac [expand_if]) 1);
  58.221 +by (asm_simp_tac (simpset() setloop split_tac [expand_if]) 1);
  58.222  by (Blast_tac 1);
  58.223  qed "mod2_cases";
  58.224  
  58.225  goal Arith.thy "!!m. m:nat ==> succ(succ(m)) mod 2 = m mod 2";
  58.226  by (subgoal_tac "m mod 2: 2" 1);
  58.227 -by (asm_simp_tac (!simpset addsimps [mod_less_divisor RS ltD]) 2);
  58.228 -by (asm_simp_tac (!simpset addsimps [mod_succ] setloop Step_tac) 1);
  58.229 +by (asm_simp_tac (simpset() addsimps [mod_less_divisor RS ltD]) 2);
  58.230 +by (asm_simp_tac (simpset() addsimps [mod_succ] setloop Step_tac) 1);
  58.231  qed "mod2_succ_succ";
  58.232  
  58.233  goal Arith.thy "!!m. m:nat ==> (m#+m) mod 2 = 0";
  58.234  by (etac nat_induct 1);
  58.235 -by (simp_tac (!simpset addsimps [mod_less]) 1);
  58.236 -by (asm_simp_tac (!simpset addsimps [mod2_succ_succ, add_succ_right]) 1);
  58.237 +by (simp_tac (simpset() addsimps [mod_less]) 1);
  58.238 +by (asm_simp_tac (simpset() addsimps [mod2_succ_succ, add_succ_right]) 1);
  58.239  qed "mod2_add_self";
  58.240  
  58.241  
  58.242 @@ -463,7 +463,7 @@
  58.243  by (forward_tac [lt_nat_in_nat] 1);
  58.244  by (assume_tac 1);
  58.245  by (etac succ_lt_induct 1);
  58.246 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [leI])));
  58.247 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [leI])));
  58.248  qed "add_lt_mono1";
  58.249  
  58.250  (*strict, in both arguments*)
  58.251 @@ -509,7 +509,7 @@
  58.252  goal Arith.thy "!!i j k. [| i le j; j:nat; k:nat |] ==> i#*k le j#*k";
  58.253  by (forward_tac [lt_nat_in_nat] 1);
  58.254  by (nat_ind_tac "k" [] 2);
  58.255 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [add_le_mono])));
  58.256 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [add_le_mono])));
  58.257  qed "mult_le_mono1";
  58.258  
  58.259  (* le monotonicity, BOTH arguments*)
  58.260 @@ -529,15 +529,15 @@
  58.261  by (forward_tac [lt_nat_in_nat] 2);
  58.262  by (ALLGOALS Asm_simp_tac);
  58.263  by (nat_ind_tac "x" [] 1);
  58.264 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [add_lt_mono])));
  58.265 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [add_lt_mono])));
  58.266  qed "mult_lt_mono2";
  58.267  
  58.268  goal Arith.thy "!!k. [| m: nat; n: nat |] ==> 0 < m#*n <-> 0<m & 0<n";
  58.269 -by (best_tac (!claset addEs [natE] addss (!simpset)) 1);
  58.270 +by (best_tac (claset() addEs [natE] addss (simpset())) 1);
  58.271  qed "zero_lt_mult_iff";
  58.272  
  58.273  goal Arith.thy "!!k. [| m: nat; n: nat |] ==> m#*n = 1 <-> m=1 & n=1";
  58.274 -by (best_tac (!claset addEs [natE] addss (!simpset)) 1);
  58.275 +by (best_tac (claset() addEs [natE] addss (simpset())) 1);
  58.276  qed "mult_eq_1_iff";
  58.277  
  58.278  (*Cancellation law for division*)
  58.279 @@ -545,10 +545,10 @@
  58.280     "!!k. [| 0<n; 0<k; k:nat; m:nat; n:nat |] ==> (k#*m) div (k#*n) = m div n";
  58.281  by (eres_inst_tac [("i","m")] complete_induct 1);
  58.282  by (excluded_middle_tac "x<n" 1);
  58.283 -by (asm_simp_tac (!simpset addsimps [div_less, zero_lt_mult_iff, 
  58.284 +by (asm_simp_tac (simpset() addsimps [div_less, zero_lt_mult_iff, 
  58.285                                       mult_lt_mono2]) 2);
  58.286  by (asm_full_simp_tac
  58.287 -     (!simpset addsimps [not_lt_iff_le, nat_into_Ord,
  58.288 +     (simpset() addsimps [not_lt_iff_le, nat_into_Ord,
  58.289                           zero_lt_mult_iff, le_refl RS mult_le_mono, div_geq,
  58.290                           diff_mult_distrib2 RS sym,
  58.291                           div_termination RS ltD]) 1);
  58.292 @@ -559,10 +559,10 @@
  58.293  \        (k#*m) mod (k#*n) = k #* (m mod n)";
  58.294  by (eres_inst_tac [("i","m")] complete_induct 1);
  58.295  by (excluded_middle_tac "x<n" 1);
  58.296 -by (asm_simp_tac (!simpset addsimps [mod_less, zero_lt_mult_iff, 
  58.297 +by (asm_simp_tac (simpset() addsimps [mod_less, zero_lt_mult_iff, 
  58.298                                       mult_lt_mono2]) 2);
  58.299  by (asm_full_simp_tac
  58.300 -     (!simpset addsimps [not_lt_iff_le, nat_into_Ord,
  58.301 +     (simpset() addsimps [not_lt_iff_le, nat_into_Ord,
  58.302                           zero_lt_mult_iff, le_refl RS mult_le_mono, mod_geq,
  58.303                           diff_mult_distrib2 RS sym,
  58.304                           div_termination RS ltD]) 1);
  58.305 @@ -576,9 +576,9 @@
  58.306  by (rtac disjCI 1);
  58.307  by (dtac sym 1);
  58.308  by (rtac Ord_linear_lt 1 THEN REPEAT_SOME (ares_tac [nat_into_Ord,nat_1I]));
  58.309 -by (fast_tac (!claset addss (!simpset)) 1);
  58.310 +by (fast_tac (claset() addss (simpset())) 1);
  58.311  by (fast_tac (le_cs addDs [mono_lemma] 
  58.312 -                    addss (!simpset addsimps [mult_1_right])) 1);
  58.313 +                    addss (simpset() addsimps [mult_1_right])) 1);
  58.314  qed "mult_eq_self_implies_10";
  58.315  
  58.316  
  58.317 @@ -589,11 +589,11 @@
  58.318  by (eres_inst_tac [("n","n")] nat_induct 1);
  58.319  by (Asm_simp_tac 1);
  58.320  by Safe_tac;
  58.321 -by (asm_full_simp_tac (!simpset addsimps [not_le_iff_lt,nat_into_Ord]) 1);
  58.322 +by (asm_full_simp_tac (simpset() addsimps [not_le_iff_lt,nat_into_Ord]) 1);
  58.323  by (etac lt_asym 1);
  58.324  by (assume_tac 1);
  58.325  by (Asm_full_simp_tac 1);
  58.326 -by (asm_full_simp_tac (!simpset addsimps [le_iff, nat_into_Ord]) 1);
  58.327 +by (asm_full_simp_tac (simpset() addsimps [le_iff, nat_into_Ord]) 1);
  58.328  by (Blast_tac 1);
  58.329  qed "add_le_elim1";
  58.330  
    59.1 --- a/src/ZF/Bool.ML	Mon Nov 03 12:22:43 1997 +0100
    59.2 +++ b/src/ZF/Bool.ML	Mon Nov 03 12:24:13 1997 +0100
    59.3 @@ -51,7 +51,7 @@
    59.4  
    59.5  Addsimps [cond_1, cond_0];
    59.6  
    59.7 -fun bool_tac i = fast_tac (!claset addSEs [boolE] addss (!simpset)) i;
    59.8 +fun bool_tac i = fast_tac (claset() addSEs [boolE] addss (simpset())) i;
    59.9  
   59.10  
   59.11  goal Bool.thy 
    60.1 --- a/src/ZF/Cardinal.ML	Mon Nov 03 12:22:43 1997 +0100
    60.2 +++ b/src/ZF/Cardinal.ML	Mon Nov 03 12:24:13 1997 +0100
    60.3 @@ -25,7 +25,7 @@
    60.4  \    X - lfp(X, %W. X - g``(Y - f``W)) ";
    60.5  by (res_inst_tac [("P", "%u. ?v = X-u")] 
    60.6       (decomp_bnd_mono RS lfp_Tarski RS ssubst) 1);
    60.7 -by (simp_tac (!simpset addsimps [subset_refl, double_complement,
    60.8 +by (simp_tac (simpset() addsimps [subset_refl, double_complement,
    60.9                               gfun RS fun_is_rel RS image_subset]) 1);
   60.10  qed "Banach_last_equation";
   60.11  
   60.12 @@ -45,7 +45,7 @@
   60.13      "[| f: inj(X,Y);  g: inj(Y,X) |] ==> EX h. h: bij(X,Y)";
   60.14  by (cut_facts_tac prems 1);
   60.15  by (cut_facts_tac [(prems RL [inj_is_fun]) MRS decomposition] 1);
   60.16 -by (blast_tac (!claset addSIs [restrict_bij,bij_disjoint_Un]
   60.17 +by (blast_tac (claset() addSIs [restrict_bij,bij_disjoint_Un]
   60.18                      addIs [bij_converse_bij]) 1);
   60.19  (* The instantiation of exI to "restrict(f,XA) Un converse(restrict(g,YB))"
   60.20     is forced by the context!! *)
   60.21 @@ -62,12 +62,12 @@
   60.22  bind_thm ("eqpoll_refl", id_bij RS bij_imp_eqpoll);
   60.23  
   60.24  goalw Cardinal.thy [eqpoll_def] "!!X Y. X eqpoll Y ==> Y eqpoll X";
   60.25 -by (blast_tac (!claset addIs [bij_converse_bij]) 1);
   60.26 +by (blast_tac (claset() addIs [bij_converse_bij]) 1);
   60.27  qed "eqpoll_sym";
   60.28  
   60.29  goalw Cardinal.thy [eqpoll_def]
   60.30      "!!X Y. [| X eqpoll Y;  Y eqpoll Z |] ==> X eqpoll Z";
   60.31 -by (blast_tac (!claset addIs [comp_bij]) 1);
   60.32 +by (blast_tac (claset() addIs [comp_bij]) 1);
   60.33  qed "eqpoll_trans";
   60.34  
   60.35  (** Le-pollence is a partial ordering **)
   60.36 @@ -88,7 +88,7 @@
   60.37  
   60.38  goalw Cardinal.thy [lepoll_def]
   60.39      "!!X Y. [| X lepoll Y;  Y lepoll Z |] ==> X lepoll Z";
   60.40 -by (blast_tac (!claset addIs [comp_inj]) 1);
   60.41 +by (blast_tac (claset() addIs [comp_inj]) 1);
   60.42  qed "lepoll_trans";
   60.43  
   60.44  (*Asymmetry law*)
   60.45 @@ -106,36 +106,36 @@
   60.46  qed "eqpollE";
   60.47  
   60.48  goal Cardinal.thy "X eqpoll Y <-> X lepoll Y & Y lepoll X";
   60.49 -by (blast_tac (!claset addIs [eqpollI] addSEs [eqpollE]) 1);
   60.50 +by (blast_tac (claset() addIs [eqpollI] addSEs [eqpollE]) 1);
   60.51  qed "eqpoll_iff";
   60.52  
   60.53  goalw Cardinal.thy [lepoll_def, inj_def] "!!A. A lepoll 0 ==> A = 0";
   60.54 -by (blast_tac (!claset addDs [apply_type]) 1);
   60.55 +by (blast_tac (claset() addDs [apply_type]) 1);
   60.56  qed "lepoll_0_is_0";
   60.57  
   60.58  (*0 lepoll Y*)
   60.59  bind_thm ("empty_lepollI", empty_subsetI RS subset_imp_lepoll);
   60.60  
   60.61  goal Cardinal.thy "A lepoll 0 <-> A=0";
   60.62 -by (blast_tac (!claset addIs [lepoll_0_is_0, lepoll_refl]) 1);
   60.63 +by (blast_tac (claset() addIs [lepoll_0_is_0, lepoll_refl]) 1);
   60.64  qed "lepoll_0_iff";
   60.65  
   60.66  goalw Cardinal.thy [lepoll_def] 
   60.67      "!!A. [| A lepoll B; C lepoll D; B Int D = 0 |] ==> A Un C lepoll B Un D";
   60.68 -by (blast_tac (!claset addIs [inj_disjoint_Un]) 1);
   60.69 +by (blast_tac (claset() addIs [inj_disjoint_Un]) 1);
   60.70  qed "Un_lepoll_Un";
   60.71  
   60.72  (*A eqpoll 0 ==> A=0*)
   60.73  bind_thm ("eqpoll_0_is_0",  eqpoll_imp_lepoll RS lepoll_0_is_0);
   60.74  
   60.75  goal Cardinal.thy "A eqpoll 0 <-> A=0";
   60.76 -by (blast_tac (!claset addIs [eqpoll_0_is_0, eqpoll_refl]) 1);
   60.77 +by (blast_tac (claset() addIs [eqpoll_0_is_0, eqpoll_refl]) 1);
   60.78  qed "eqpoll_0_iff";
   60.79  
   60.80  goalw Cardinal.thy [eqpoll_def] 
   60.81      "!!A. [| A eqpoll B;  C eqpoll D;  A Int C = 0;  B Int D = 0 |] ==> \
   60.82  \         A Un C eqpoll B Un D";
   60.83 -by (blast_tac (!claset addIs [bij_disjoint_Un]) 1);
   60.84 +by (blast_tac (claset() addIs [bij_disjoint_Un]) 1);
   60.85  qed "eqpoll_disjoint_Un";
   60.86  
   60.87  
   60.88 @@ -147,40 +147,40 @@
   60.89  
   60.90  goalw Cardinal.thy [lepoll_def]
   60.91          "!!A. [| A lepoll B; well_ord(B,r) |] ==> EX s. well_ord(A,s)";
   60.92 -by (blast_tac (!claset addIs [well_ord_rvimage]) 1);
   60.93 +by (blast_tac (claset() addIs [well_ord_rvimage]) 1);
   60.94  qed "lepoll_well_ord";
   60.95  
   60.96  goalw Cardinal.thy [lesspoll_def] "A lepoll B <-> A lesspoll B | A eqpoll B";
   60.97 -by (blast_tac (!claset addSIs [eqpollI] addSEs [eqpollE]) 1);
   60.98 +by (blast_tac (claset() addSIs [eqpollI] addSEs [eqpollE]) 1);
   60.99  qed "lepoll_iff_leqpoll";
  60.100  
  60.101  goalw Cardinal.thy [inj_def, surj_def] 
  60.102    "!!f. [| f : inj(A, succ(m)); f ~: surj(A, succ(m)) |] ==> EX f. f:inj(A,m)";
  60.103 -by (safe_tac (claset_of"ZF"));
  60.104 +by (safe_tac (claset_of ZF.thy));
  60.105  by (swap_res_tac [exI] 1);
  60.106  by (res_inst_tac [("a", "lam z:A. if(f`z=m, y, f`z)")] CollectI 1);
  60.107 -by (best_tac (!claset addSIs [if_type RS lam_type]
  60.108 +by (best_tac (claset() addSIs [if_type RS lam_type]
  60.109                         addEs [apply_funtype RS succE]) 1);
  60.110  (*Proving it's injective*)
  60.111 -by (asm_simp_tac (!simpset setloop split_tac [expand_if]) 1);
  60.112 -by (blast_tac (!claset delrules [equalityI]) 1);
  60.113 +by (asm_simp_tac (simpset() setloop split_tac [expand_if]) 1);
  60.114 +by (blast_tac (claset() delrules [equalityI]) 1);
  60.115  qed "inj_not_surj_succ";
  60.116  
  60.117  (** Variations on transitivity **)
  60.118  
  60.119  goalw Cardinal.thy [lesspoll_def]
  60.120        "!!X. [| X lesspoll Y; Y lesspoll Z |] ==> X lesspoll Z";
  60.121 -by (blast_tac (!claset addSEs [eqpollE] addIs [eqpollI, lepoll_trans]) 1);
  60.122 +by (blast_tac (claset() addSEs [eqpollE] addIs [eqpollI, lepoll_trans]) 1);
  60.123  qed "lesspoll_trans";
  60.124  
  60.125  goalw Cardinal.thy [lesspoll_def]
  60.126        "!!X. [| X lesspoll Y; Y lepoll Z |] ==> X lesspoll Z";
  60.127 -by (blast_tac (!claset addSEs [eqpollE] addIs [eqpollI, lepoll_trans]) 1);
  60.128 +by (blast_tac (claset() addSEs [eqpollE] addIs [eqpollI, lepoll_trans]) 1);
  60.129  qed "lesspoll_lepoll_lesspoll";
  60.130  
  60.131  goalw Cardinal.thy [lesspoll_def] 
  60.132        "!!X. [| X lesspoll Y; Z lepoll X |] ==> Z lesspoll Y";
  60.133 -by (blast_tac (!claset addSEs [eqpollE] addIs [eqpollI, lepoll_trans]) 1);
  60.134 +by (blast_tac (claset() addSEs [eqpollE] addIs [eqpollI, lepoll_trans]) 1);
  60.135  qed "lepoll_lesspoll_lesspoll";
  60.136  
  60.137  
  60.138 @@ -189,10 +189,10 @@
  60.139  val [premP,premOrd,premNot] = goalw Cardinal.thy [Least_def]
  60.140      "[| P(i);  Ord(i);  !!x. x<i ==> ~P(x) |] ==> (LEAST x. P(x)) = i";
  60.141  by (rtac the_equality 1);
  60.142 -by (blast_tac (!claset addSIs [premP,premOrd,premNot]) 1);
  60.143 +by (blast_tac (claset() addSIs [premP,premOrd,premNot]) 1);
  60.144  by (REPEAT (etac conjE 1));
  60.145  by (etac (premOrd RS Ord_linear_lt) 1);
  60.146 -by (ALLGOALS (blast_tac (!claset addSIs [premP] addSDs [premNot])));
  60.147 +by (ALLGOALS (blast_tac (claset() addSIs [premP] addSDs [premNot])));
  60.148  qed "Least_equality";
  60.149  
  60.150  goal Cardinal.thy "!!i. [| P(i);  Ord(i) |] ==> P(LEAST x. P(x))";
  60.151 @@ -202,7 +202,7 @@
  60.152  by (rtac classical 1);
  60.153  by (EVERY1 [stac Least_equality, assume_tac, assume_tac]);
  60.154  by (assume_tac 2);
  60.155 -by (blast_tac (!claset addSEs [ltE]) 1);
  60.156 +by (blast_tac (claset() addSEs [ltE]) 1);
  60.157  qed "LeastI";
  60.158  
  60.159  (*Proof is almost identical to the one above!*)
  60.160 @@ -213,7 +213,7 @@
  60.161  by (rtac classical 1);
  60.162  by (EVERY1 [stac Least_equality, assume_tac, assume_tac]);
  60.163  by (etac le_refl 2);
  60.164 -by (blast_tac (!claset addEs [ltE] addIs [leI, ltI, lt_trans1]) 1);
  60.165 +by (blast_tac (claset() addEs [ltE] addIs [leI, ltI, lt_trans1]) 1);
  60.166  qed "Least_le";
  60.167  
  60.168  (*LEAST really is the smallest*)
  60.169 @@ -239,7 +239,7 @@
  60.170  
  60.171  goal Cardinal.thy "Ord(LEAST x. P(x))";
  60.172  by (excluded_middle_tac "EX i. Ord(i) & P(i)" 1);
  60.173 -by (safe_tac (!claset));
  60.174 +by (safe_tac (claset()));
  60.175  by (rtac (Least_le RS ltE) 2);
  60.176  by (REPEAT_SOME assume_tac);
  60.177  by (etac (Least_0 RS ssubst) 1);
  60.178 @@ -252,14 +252,14 @@
  60.179  (*Not needed for simplification, but helpful below*)
  60.180  val prems = goal Cardinal.thy
  60.181      "[| !!y. P(y) <-> Q(y) |] ==> (LEAST x. P(x)) = (LEAST x. Q(x))";
  60.182 -by (simp_tac (!simpset addsimps prems) 1);
  60.183 +by (simp_tac (simpset() addsimps prems) 1);
  60.184  qed "Least_cong";
  60.185  
  60.186  (*Need AC to get X lepoll Y ==> |X| le |Y|;  see well_ord_lepoll_imp_Card_le
  60.187    Converse also requires AC, but see well_ord_cardinal_eqE*)
  60.188  goalw Cardinal.thy [eqpoll_def,cardinal_def] "!!X Y. X eqpoll Y ==> |X| = |Y|";
  60.189  by (rtac Least_cong 1);
  60.190 -by (blast_tac (!claset addIs [comp_bij, bij_converse_bij]) 1);
  60.191 +by (blast_tac (claset() addIs [comp_bij, bij_converse_bij]) 1);
  60.192  qed "cardinal_cong";
  60.193  
  60.194  (*Under AC, the premise becomes trivial; one consequence is ||A|| = |A|*)
  60.195 @@ -277,12 +277,12 @@
  60.196      "!!X Y. [| well_ord(X,r);  well_ord(Y,s);  |X| = |Y| |] ==> X eqpoll Y";
  60.197  by (rtac (eqpoll_sym RS eqpoll_trans) 1);
  60.198  by (etac well_ord_cardinal_eqpoll 1);
  60.199 -by (asm_simp_tac (!simpset addsimps [well_ord_cardinal_eqpoll]) 1);
  60.200 +by (asm_simp_tac (simpset() addsimps [well_ord_cardinal_eqpoll]) 1);
  60.201  qed "well_ord_cardinal_eqE";
  60.202  
  60.203  goal Cardinal.thy
  60.204      "!!X Y. [| well_ord(X,r);  well_ord(Y,s) |] ==> |X| = |Y| <-> X eqpoll Y";
  60.205 -by (blast_tac (!claset addIs [cardinal_cong, well_ord_cardinal_eqE]) 1);
  60.206 +by (blast_tac (claset() addIs [cardinal_cong, well_ord_cardinal_eqE]) 1);
  60.207  qed "well_ord_cardinal_eqpoll_iff";
  60.208  
  60.209  
  60.210 @@ -309,7 +309,7 @@
  60.211  qed "Card_is_Ord";
  60.212  
  60.213  goal Cardinal.thy "!!K. Card(K) ==> K le |K|";
  60.214 -by (asm_simp_tac (!simpset addsimps [le_refl, Card_is_Ord, Card_cardinal_eq]) 1);
  60.215 +by (asm_simp_tac (simpset() addsimps [le_refl, Card_is_Ord, Card_cardinal_eq]) 1);
  60.216  qed "Card_cardinal_le";
  60.217  
  60.218  goalw Cardinal.thy [cardinal_def] "Ord(|A|)";
  60.219 @@ -318,7 +318,7 @@
  60.220  
  60.221  (*The cardinals are the initial ordinals*)
  60.222  goal Cardinal.thy "Card(K) <-> Ord(K) & (ALL j. j<K --> ~ j eqpoll K)";
  60.223 -by (safe_tac (!claset addSIs [CardI, Card_is_Ord]));
  60.224 +by (safe_tac (claset() addSIs [CardI, Card_is_Ord]));
  60.225  by (Blast_tac 2);
  60.226  by (rewrite_goals_tac [Card_def, cardinal_def]);
  60.227  by (rtac less_LeastE 1);
  60.228 @@ -328,21 +328,21 @@
  60.229  
  60.230  goalw Cardinal.thy [lesspoll_def] "!!a. [| Card(a); i<a |] ==> i lesspoll a";
  60.231  by (dresolve_tac [Card_iff_initial RS iffD1] 1);
  60.232 -by (blast_tac (!claset addSIs [leI RS le_imp_lepoll]) 1);
  60.233 +by (blast_tac (claset() addSIs [leI RS le_imp_lepoll]) 1);
  60.234  qed "lt_Card_imp_lesspoll";
  60.235  
  60.236  goal Cardinal.thy "Card(0)";
  60.237  by (rtac (Ord_0 RS CardI) 1);
  60.238 -by (blast_tac (!claset addSEs [ltE]) 1);
  60.239 +by (blast_tac (claset() addSEs [ltE]) 1);
  60.240  qed "Card_0";
  60.241  
  60.242  val [premK,premL] = goal Cardinal.thy
  60.243      "[| Card(K);  Card(L) |] ==> Card(K Un L)";
  60.244  by (rtac ([premK RS Card_is_Ord, premL RS Card_is_Ord] MRS Ord_linear_le) 1);
  60.245  by (asm_simp_tac 
  60.246 -    (!simpset addsimps [premL, le_imp_subset, subset_Un_iff RS iffD1]) 1);
  60.247 +    (simpset() addsimps [premL, le_imp_subset, subset_Un_iff RS iffD1]) 1);
  60.248  by (asm_simp_tac
  60.249 -    (!simpset addsimps [premK, le_imp_subset, subset_Un_iff2 RS iffD1]) 1);
  60.250 +    (simpset() addsimps [premK, le_imp_subset, subset_Un_iff2 RS iffD1]) 1);
  60.251  qed "Card_Un";
  60.252  
  60.253  (*Infinite unions of cardinals?  See Devlin, Lemma 6.7, page 98*)
  60.254 @@ -351,7 +351,7 @@
  60.255  by (excluded_middle_tac "EX i. Ord(i) & i eqpoll A" 1);
  60.256  by (etac (Least_0 RS ssubst) 1 THEN rtac Card_0 1);
  60.257  by (rtac (Ord_Least RS CardI) 1);
  60.258 -by (safe_tac (!claset));
  60.259 +by (safe_tac (claset()));
  60.260  by (rtac less_LeastE 1);
  60.261  by (assume_tac 2);
  60.262  by (etac eqpoll_trans 1);
  60.263 @@ -388,16 +388,16 @@
  60.264  qed "cardinal_lt_imp_lt";
  60.265  
  60.266  goal Cardinal.thy "!!i j. [| |i| < K;  Ord(i);  Card(K) |] ==> i < K";
  60.267 -by (asm_simp_tac (!simpset addsimps 
  60.268 +by (asm_simp_tac (simpset() addsimps 
  60.269                    [cardinal_lt_imp_lt, Card_is_Ord, Card_cardinal_eq]) 1);
  60.270  qed "Card_lt_imp_lt";
  60.271  
  60.272  goal Cardinal.thy "!!i j. [| Ord(i);  Card(K) |] ==> (|i| < K) <-> (i < K)";
  60.273 -by (blast_tac (!claset addIs [Card_lt_imp_lt, Ord_cardinal_le RS lt_trans1]) 1);
  60.274 +by (blast_tac (claset() addIs [Card_lt_imp_lt, Ord_cardinal_le RS lt_trans1]) 1);
  60.275  qed "Card_lt_iff";
  60.276  
  60.277  goal Cardinal.thy "!!i j. [| Ord(i);  Card(K) |] ==> (K le |i|) <-> (K le i)";
  60.278 -by (asm_simp_tac (!simpset addsimps 
  60.279 +by (asm_simp_tac (simpset() addsimps 
  60.280                    [Card_lt_iff, Card_is_Ord, Ord_cardinal, 
  60.281                     not_lt_iff_le RS iff_sym]) 1);
  60.282  qed "Card_le_iff";
  60.283 @@ -433,22 +433,22 @@
  60.284  
  60.285  goalw Cardinal.thy [lepoll_def, inj_def]
  60.286   "!!A B. [| cons(u,A) lepoll cons(v,B);  u~:A;  v~:B |] ==> A lepoll B";
  60.287 -by (safe_tac (!claset));
  60.288 +by (safe_tac (claset()));
  60.289  by (res_inst_tac [("x", "lam x:A. if(f`x=v, f`u, f`x)")] exI 1);
  60.290  by (rtac CollectI 1);
  60.291  (*Proving it's in the function space A->B*)
  60.292  by (rtac (if_type RS lam_type) 1);
  60.293 -by (blast_tac (!claset addEs [apply_funtype RS consE]) 1);
  60.294 -by (blast_tac (!claset addSEs [mem_irrefl] addEs [apply_funtype RS consE]) 1);
  60.295 +by (blast_tac (claset() addEs [apply_funtype RS consE]) 1);
  60.296 +by (blast_tac (claset() addSEs [mem_irrefl] addEs [apply_funtype RS consE]) 1);
  60.297  (*Proving it's injective*)
  60.298 -by (asm_simp_tac (!simpset setloop split_tac [expand_if]) 1);
  60.299 +by (asm_simp_tac (simpset() setloop split_tac [expand_if]) 1);
  60.300  by (Blast_tac 1);
  60.301  qed "cons_lepoll_consD";
  60.302  
  60.303  goal Cardinal.thy
  60.304   "!!A B. [| cons(u,A) eqpoll cons(v,B);  u~:A;  v~:B |] ==> A eqpoll B";
  60.305 -by (asm_full_simp_tac (!simpset addsimps [eqpoll_iff]) 1);
  60.306 -by (blast_tac (!claset addIs [cons_lepoll_consD]) 1);
  60.307 +by (asm_full_simp_tac (simpset() addsimps [eqpoll_iff]) 1);
  60.308 +by (blast_tac (claset() addIs [cons_lepoll_consD]) 1);
  60.309  qed "cons_eqpoll_consD";
  60.310  
  60.311  (*Lemma suggested by Mike Fourman*)
  60.312 @@ -460,12 +460,12 @@
  60.313  val [prem] = goal Cardinal.thy
  60.314      "m:nat ==> ALL n: nat. m lepoll n --> m le n";
  60.315  by (nat_ind_tac "m" [prem] 1);
  60.316 -by (blast_tac (!claset addSIs [nat_0_le]) 1);
  60.317 +by (blast_tac (claset() addSIs [nat_0_le]) 1);
  60.318  by (rtac ballI 1);
  60.319  by (eres_inst_tac [("n","n")] natE 1);
  60.320 -by (asm_simp_tac (!simpset addsimps [lepoll_def, inj_def, 
  60.321 +by (asm_simp_tac (simpset() addsimps [lepoll_def, inj_def, 
  60.322                                    succI1 RS Pi_empty2]) 1);
  60.323 -by (blast_tac (!claset addSIs [succ_leI] addSDs [succ_lepoll_succD]) 1);
  60.324 +by (blast_tac (claset() addSIs [succ_leI] addSDs [succ_lepoll_succD]) 1);
  60.325  qed "nat_lepoll_imp_le_lemma";
  60.326  
  60.327  bind_thm ("nat_lepoll_imp_le", nat_lepoll_imp_le_lemma RS bspec RS mp);
  60.328 @@ -473,8 +473,8 @@
  60.329  goal Cardinal.thy
  60.330      "!!m n. [| m:nat; n: nat |] ==> m eqpoll n <-> m = n";
  60.331  by (rtac iffI 1);
  60.332 -by (asm_simp_tac (!simpset addsimps [eqpoll_refl]) 2);
  60.333 -by (blast_tac (!claset addIs [nat_lepoll_imp_le, le_anti_sym] 
  60.334 +by (asm_simp_tac (simpset() addsimps [eqpoll_refl]) 2);
  60.335 +by (blast_tac (claset() addIs [nat_lepoll_imp_le, le_anti_sym] 
  60.336                      addSEs [eqpollE]) 1);
  60.337  qed "nat_eqpoll_iff";
  60.338  
  60.339 @@ -483,8 +483,8 @@
  60.340      "!!n. n: nat ==> Card(n)";
  60.341  by (stac Least_equality 1);
  60.342  by (REPEAT_FIRST (ares_tac [eqpoll_refl, nat_into_Ord, refl]));
  60.343 -by (asm_simp_tac (!simpset addsimps [lt_nat_in_nat RS nat_eqpoll_iff]) 1);
  60.344 -by (blast_tac (!claset addSEs [lt_irrefl]) 1);
  60.345 +by (asm_simp_tac (simpset() addsimps [lt_nat_in_nat RS nat_eqpoll_iff]) 1);
  60.346 +by (blast_tac (claset() addSEs [lt_irrefl]) 1);
  60.347  qed "nat_into_Card";
  60.348  
  60.349  (*Part of Kunen's Lemma 10.6*)
  60.350 @@ -499,7 +499,7 @@
  60.351  goalw Cardinal.thy [lesspoll_def]
  60.352        "!!m. [| A lepoll m; m:nat |] ==> A lesspoll succ(m)";
  60.353  by (rtac conjI 1);
  60.354 -by (blast_tac (!claset addIs [subset_imp_lepoll RSN (2,lepoll_trans)]) 1);
  60.355 +by (blast_tac (claset() addIs [subset_imp_lepoll RSN (2,lepoll_trans)]) 1);
  60.356  by (rtac notI 1);
  60.357  by (dresolve_tac [eqpoll_sym RS eqpoll_imp_lepoll] 1);
  60.358  by (dtac lepoll_trans 1 THEN assume_tac 1);
  60.359 @@ -509,11 +509,11 @@
  60.360  goalw Cardinal.thy [lesspoll_def, lepoll_def, eqpoll_def, bij_def]
  60.361        "!!m. [| A lesspoll succ(m); m:nat |] ==> A lepoll m";
  60.362  by (Clarify_tac 1);
  60.363 -by (blast_tac (!claset addSIs [inj_not_surj_succ]) 1);
  60.364 +by (blast_tac (claset() addSIs [inj_not_surj_succ]) 1);
  60.365  qed "lesspoll_succ_imp_lepoll";
  60.366  
  60.367  goal Cardinal.thy "!!m. m:nat ==> A lesspoll succ(m) <-> A lepoll m";
  60.368 -by (blast_tac (!claset addSIs [lepoll_imp_lesspoll_succ, 
  60.369 +by (blast_tac (claset() addSIs [lepoll_imp_lesspoll_succ, 
  60.370                              lesspoll_succ_imp_lepoll]) 1);
  60.371  qed "lesspoll_succ_iff";
  60.372  
  60.373 @@ -522,7 +522,7 @@
  60.374  by (rtac disjCI 1);
  60.375  by (rtac lesspoll_succ_imp_lepoll 1);
  60.376  by (assume_tac 2);
  60.377 -by (asm_simp_tac (!simpset addsimps [lesspoll_def]) 1);
  60.378 +by (asm_simp_tac (simpset() addsimps [lesspoll_def]) 1);
  60.379  qed "lepoll_succ_disj";
  60.380  
  60.381  
  60.382 @@ -539,7 +539,7 @@
  60.383  
  60.384  goal Cardinal.thy "!!i n. [| Ord(i);  n:nat |] ==> i eqpoll n <-> i=n";
  60.385  by (rtac iffI 1);
  60.386 -by (asm_simp_tac (!simpset addsimps [eqpoll_refl]) 2);
  60.387 +by (asm_simp_tac (simpset() addsimps [eqpoll_refl]) 2);
  60.388  by (rtac Ord_linear_lt 1);
  60.389  by (REPEAT_SOME (eresolve_tac [asm_rl, nat_into_Ord]));
  60.390  by (etac (lt_nat_in_nat RS nat_eqpoll_iff RS iffD1) 1 THEN
  60.391 @@ -552,7 +552,7 @@
  60.392  by (stac Least_equality 1);
  60.393  by (REPEAT_FIRST (ares_tac [eqpoll_refl, Ord_nat, refl]));
  60.394  by (etac ltE 1);
  60.395 -by (asm_simp_tac (!simpset addsimps [eqpoll_iff, lt_not_lepoll, ltI]) 1);
  60.396 +by (asm_simp_tac (simpset() addsimps [eqpoll_iff, lt_not_lepoll, ltI]) 1);
  60.397  qed "Card_nat";
  60.398  
  60.399  (*Allows showing that |i| is a limit cardinal*)
  60.400 @@ -568,40 +568,40 @@
  60.401  (*Congruence law for  cons  under equipollence*)
  60.402  goalw Cardinal.thy [lepoll_def]
  60.403      "!!A B. [| A lepoll B;  b ~: B |] ==> cons(a,A) lepoll cons(b,B)";
  60.404 -by (safe_tac (!claset));
  60.405 +by (safe_tac (claset()));
  60.406  by (res_inst_tac [("x", "lam y: cons(a,A).if(y=a, b, f`y)")] exI 1);
  60.407  by (res_inst_tac [("d","%z. if(z:B, converse(f)`z, a)")] 
  60.408      lam_injective 1);
  60.409 -by (asm_simp_tac (!simpset addsimps [inj_is_fun RS apply_type, cons_iff]
  60.410 +by (asm_simp_tac (simpset() addsimps [inj_is_fun RS apply_type, cons_iff]
  60.411                          setloop etac consE') 1);
  60.412 -by (asm_simp_tac (!simpset addsimps [inj_is_fun RS apply_type, left_inverse]
  60.413 +by (asm_simp_tac (simpset() addsimps [inj_is_fun RS apply_type, left_inverse]
  60.414                          setloop etac consE') 1);
  60.415  qed "cons_lepoll_cong";
  60.416  
  60.417  goal Cardinal.thy
  60.418      "!!A B. [| A eqpoll B;  a ~: A;  b ~: B |] ==> cons(a,A) eqpoll cons(b,B)";
  60.419 -by (asm_full_simp_tac (!simpset addsimps [eqpoll_iff, cons_lepoll_cong]) 1);
  60.420 +by (asm_full_simp_tac (simpset() addsimps [eqpoll_iff, cons_lepoll_cong]) 1);
  60.421  qed "cons_eqpoll_cong";
  60.422  
  60.423  goal Cardinal.thy
  60.424      "!!A B. [| a ~: A;  b ~: B |] ==> \
  60.425  \           cons(a,A) lepoll cons(b,B)  <->  A lepoll B";
  60.426 -by (blast_tac (!claset addIs [cons_lepoll_cong, cons_lepoll_consD]) 1);
  60.427 +by (blast_tac (claset() addIs [cons_lepoll_cong, cons_lepoll_consD]) 1);
  60.428  qed "cons_lepoll_cons_iff";
  60.429  
  60.430  goal Cardinal.thy
  60.431      "!!A B. [| a ~: A;  b ~: B |] ==> \
  60.432  \           cons(a,A) eqpoll cons(b,B)  <->  A eqpoll B";
  60.433 -by (blast_tac (!claset addIs [cons_eqpoll_cong, cons_eqpoll_consD]) 1);
  60.434 +by (blast_tac (claset() addIs [cons_eqpoll_cong, cons_eqpoll_consD]) 1);
  60.435  qed "cons_eqpoll_cons_iff";
  60.436  
  60.437  goalw Cardinal.thy [succ_def] "{a} eqpoll 1";
  60.438 -by (blast_tac (!claset addSIs [eqpoll_refl RS cons_eqpoll_cong]) 1);
  60.439 +by (blast_tac (claset() addSIs [eqpoll_refl RS cons_eqpoll_cong]) 1);
  60.440  qed "singleton_eqpoll_1";
  60.441  
  60.442  goal Cardinal.thy "|{a}| = 1";
  60.443  by (resolve_tac [singleton_eqpoll_1 RS cardinal_cong RS trans] 1);
  60.444 -by (simp_tac (!simpset addsimps [nat_into_Card RS Card_cardinal_eq]) 1);
  60.445 +by (simp_tac (simpset() addsimps [nat_into_Card RS Card_cardinal_eq]) 1);
  60.446  qed "cardinal_singleton";
  60.447  
  60.448  (*Congruence law for  succ  under equipollence*)
  60.449 @@ -613,13 +613,13 @@
  60.450  (*Congruence law for + under equipollence*)
  60.451  goalw Cardinal.thy [eqpoll_def]
  60.452      "!!A B C D. [| A eqpoll C;  B eqpoll D |] ==> A+B eqpoll C+D";
  60.453 -by (blast_tac (!claset addSIs [sum_bij]) 1);
  60.454 +by (blast_tac (claset() addSIs [sum_bij]) 1);
  60.455  qed "sum_eqpoll_cong";
  60.456  
  60.457  (*Congruence law for * under equipollence*)
  60.458  goalw Cardinal.thy [eqpoll_def]
  60.459      "!!A B C D. [| A eqpoll C;  B eqpoll D |] ==> A*B eqpoll C*D";
  60.460 -by (blast_tac (!claset addSIs [prod_bij]) 1);
  60.461 +by (blast_tac (claset() addSIs [prod_bij]) 1);
  60.462  qed "prod_eqpoll_cong";
  60.463  
  60.464  goalw Cardinal.thy [eqpoll_def]
  60.465 @@ -628,16 +628,16 @@
  60.466  by (res_inst_tac [("c", "%x. if(x:A, f`x, x)"),
  60.467                    ("d", "%y. if(y: range(f), converse(f)`y, y)")] 
  60.468      lam_bijective 1);
  60.469 -by (blast_tac (!claset addSIs [if_type, inj_is_fun RS apply_type]) 1);
  60.470 +by (blast_tac (claset() addSIs [if_type, inj_is_fun RS apply_type]) 1);
  60.471  by (asm_simp_tac 
  60.472 -    (!simpset addsimps [inj_converse_fun RS apply_funtype]
  60.473 +    (simpset() addsimps [inj_converse_fun RS apply_funtype]
  60.474             setloop split_tac [expand_if]) 1);
  60.475 -by (asm_simp_tac (!simpset addsimps [inj_is_fun RS apply_rangeI, left_inverse]
  60.476 +by (asm_simp_tac (simpset() addsimps [inj_is_fun RS apply_rangeI, left_inverse]
  60.477                          setloop etac UnE') 1);
  60.478  by (asm_simp_tac 
  60.479 -    (!simpset addsimps [inj_converse_fun RS apply_funtype, right_inverse]
  60.480 +    (simpset() addsimps [inj_converse_fun RS apply_funtype, right_inverse]
  60.481             setloop split_tac [expand_if]) 1);
  60.482 -by (blast_tac (!claset addEs [equals0D]) 1);
  60.483 +by (blast_tac (claset() addEs [equals0D]) 1);
  60.484  qed "inj_disjoint_eqpoll";
  60.485  
  60.486  
  60.487 @@ -650,7 +650,7 @@
  60.488  by (rtac cons_lepoll_consD 1);
  60.489  by (rtac mem_not_refl 3);
  60.490  by (eresolve_tac [cons_Diff RS ssubst] 1);
  60.491 -by (safe_tac (!claset));
  60.492 +by (safe_tac (claset()));
  60.493  qed "Diff_sing_lepoll";
  60.494  
  60.495  (*If A has at least n+1 elements then A-{a} has at least n.*)
  60.496 @@ -659,11 +659,11 @@
  60.497  by (rtac cons_lepoll_consD 1);
  60.498  by (rtac mem_not_refl 2);
  60.499  by (Blast_tac 2);
  60.500 -by (blast_tac (!claset addIs [subset_imp_lepoll RSN (2, lepoll_trans)]) 1);
  60.501 +by (blast_tac (claset() addIs [subset_imp_lepoll RSN (2, lepoll_trans)]) 1);
  60.502  qed "lepoll_Diff_sing";
  60.503  
  60.504  goal Cardinal.thy "!!A a n. [| a:A; A eqpoll succ(n) |] ==> A - {a} eqpoll n";
  60.505 -by (blast_tac (!claset addSIs [eqpollI] addSEs [eqpollE] 
  60.506 +by (blast_tac (claset() addSIs [eqpollI] addSEs [eqpollE] 
  60.507                      addIs [Diff_sing_lepoll,lepoll_Diff_sing]) 1);
  60.508  qed "Diff_sing_eqpoll";
  60.509  
  60.510 @@ -671,15 +671,15 @@
  60.511  by (forward_tac [Diff_sing_lepoll] 1);
  60.512  by (assume_tac 1);
  60.513  by (dtac lepoll_0_is_0 1);
  60.514 -by (blast_tac (!claset addEs [equalityE]) 1);
  60.515 +by (blast_tac (claset() addEs [equalityE]) 1);
  60.516  qed "lepoll_1_is_sing";
  60.517  
  60.518  goalw Cardinal.thy [lepoll_def] "A Un B lepoll A+B";
  60.519  by (res_inst_tac [("x","lam x: A Un B. if (x:A,Inl(x),Inr(x))")] exI 1);
  60.520  by (res_inst_tac [("d","%z. snd(z)")] lam_injective 1);
  60.521  by (split_tac [expand_if] 1);
  60.522 -by (blast_tac (!claset addSIs [InlI, InrI]) 1);
  60.523 -by (asm_full_simp_tac (!simpset addsimps [Inl_def, Inr_def]
  60.524 +by (blast_tac (claset() addSIs [InlI, InrI]) 1);
  60.525 +by (asm_full_simp_tac (simpset() addsimps [Inl_def, Inr_def]
  60.526                         setloop split_tac [expand_if]) 1);
  60.527  qed "Un_lepoll_sum";
  60.528  
  60.529 @@ -687,21 +687,21 @@
  60.530  (*** Finite and infinite sets ***)
  60.531  
  60.532  goalw Cardinal.thy [Finite_def] "Finite(0)";
  60.533 -by (blast_tac (!claset addSIs [eqpoll_refl, nat_0I]) 1);
  60.534 +by (blast_tac (claset() addSIs [eqpoll_refl, nat_0I]) 1);
  60.535  qed "Finite_0";
  60.536  
  60.537  goalw Cardinal.thy [Finite_def]
  60.538      "!!A. [| A lepoll n;  n:nat |] ==> Finite(A)";
  60.539  by (etac rev_mp 1);
  60.540  by (etac nat_induct 1);
  60.541 -by (blast_tac (!claset addSDs [lepoll_0_is_0] addSIs [eqpoll_refl,nat_0I]) 1);
  60.542 -by (blast_tac (!claset addSDs [lepoll_succ_disj] addSIs [nat_succI]) 1);
  60.543 +by (blast_tac (claset() addSDs [lepoll_0_is_0] addSIs [eqpoll_refl,nat_0I]) 1);
  60.544 +by (blast_tac (claset() addSDs [lepoll_succ_disj] addSIs [nat_succI]) 1);
  60.545  qed "lepoll_nat_imp_Finite";
  60.546  
  60.547  goalw Cardinal.thy [Finite_def]
  60.548       "!!X. [| Y lepoll X;  Finite(X) |] ==> Finite(Y)";
  60.549  by (blast_tac 
  60.550 -    (!claset addSEs [eqpollE] 
  60.551 +    (claset() addSEs [eqpollE] 
  60.552               addIs [lepoll_trans RS 
  60.553  		    rewrite_rule [Finite_def] lepoll_nat_imp_Finite]) 1);
  60.554  qed "lepoll_Finite";
  60.555 @@ -712,12 +712,12 @@
  60.556  
  60.557  goalw Cardinal.thy [Finite_def] "!!x. Finite(x) ==> Finite(cons(y,x))";
  60.558  by (excluded_middle_tac "y:x" 1);
  60.559 -by (asm_simp_tac (!simpset addsimps [cons_absorb]) 2);
  60.560 +by (asm_simp_tac (simpset() addsimps [cons_absorb]) 2);
  60.561  by (etac bexE 1);
  60.562  by (rtac bexI 1);
  60.563  by (etac nat_succI 2);
  60.564  by (asm_simp_tac 
  60.565 -    (!simpset addsimps [succ_def, cons_eqpoll_cong, mem_not_refl]) 1);
  60.566 +    (simpset() addsimps [succ_def, cons_eqpoll_cong, mem_not_refl]) 1);
  60.567  qed "Finite_cons";
  60.568  
  60.569  goalw Cardinal.thy [succ_def] "!!x. Finite(x) ==> Finite(succ(x))";
  60.570 @@ -728,12 +728,12 @@
  60.571        "!!i. [| Ord(i);  ~ Finite(i) |] ==> nat le i";
  60.572  by (eresolve_tac [Ord_nat RSN (2,Ord_linear2)] 1);
  60.573  by (assume_tac 2);
  60.574 -by (blast_tac (!claset addSIs [eqpoll_refl] addSEs [ltE]) 1);
  60.575 +by (blast_tac (claset() addSIs [eqpoll_refl] addSEs [ltE]) 1);
  60.576  qed "nat_le_infinite_Ord";
  60.577  
  60.578  goalw Cardinal.thy [Finite_def, eqpoll_def]
  60.579      "!!A. Finite(A) ==> EX r. well_ord(A,r)";
  60.580 -by (blast_tac (!claset addIs [well_ord_rvimage, bij_is_inj, well_ord_Memrel, 
  60.581 +by (blast_tac (claset() addIs [well_ord_rvimage, bij_is_inj, well_ord_Memrel, 
  60.582  			      nat_into_Ord]) 1);
  60.583  qed "Finite_imp_well_ord";
  60.584  
  60.585 @@ -743,20 +743,20 @@
  60.586  
  60.587  goal Nat.thy "!!n. n:nat ==> wf[n](converse(Memrel(n)))";
  60.588  by (etac nat_induct 1);
  60.589 -by (blast_tac (!claset addIs [wf_onI]) 1);
  60.590 +by (blast_tac (claset() addIs [wf_onI]) 1);
  60.591  by (rtac wf_onI 1);
  60.592 -by (asm_full_simp_tac (!simpset addsimps [wf_on_def, wf_def, Memrel_iff]) 1);
  60.593 +by (asm_full_simp_tac (simpset() addsimps [wf_on_def, wf_def, Memrel_iff]) 1);
  60.594  by (excluded_middle_tac "x:Z" 1);
  60.595  by (dres_inst_tac [("x", "x")] bspec 2 THEN assume_tac 2);
  60.596 -by (blast_tac (!claset addEs [mem_irrefl, mem_asym]) 2);
  60.597 +by (blast_tac (claset() addEs [mem_irrefl, mem_asym]) 2);
  60.598  by (dres_inst_tac [("x", "Z")] spec 1);
  60.599 -by (Blast.depth_tac (!claset) 4 1);
  60.600 +by (Blast.depth_tac (claset()) 4 1);
  60.601  qed "nat_wf_on_converse_Memrel";
  60.602  
  60.603  goal Cardinal.thy "!!n. n:nat ==> well_ord(n,converse(Memrel(n)))";
  60.604  by (forward_tac [transfer thy Ord_nat RS Ord_in_Ord RS well_ord_Memrel] 1);
  60.605  by (rewtac well_ord_def);
  60.606 -by (blast_tac (!claset addSIs [tot_ord_converse, 
  60.607 +by (blast_tac (claset() addSIs [tot_ord_converse, 
  60.608  			       nat_wf_on_converse_Memrel]) 1);
  60.609  qed "nat_well_ord_converse_Memrel";
  60.610  
  60.611 @@ -768,7 +768,7 @@
  60.612  by (forward_tac [ordermap_bij RS bij_is_inj RS well_ord_rvimage] 1);
  60.613  by (assume_tac 1);
  60.614  by (asm_full_simp_tac
  60.615 -    (!simpset addsimps [rvimage_converse, converse_Int, converse_prod, 
  60.616 +    (simpset() addsimps [rvimage_converse, converse_Int, converse_prod, 
  60.617                       ordertype_ord_iso RS ord_iso_rvimage_eq]) 1);
  60.618  qed "well_ord_converse";
  60.619  
  60.620 @@ -778,12 +778,12 @@
  60.621      REPEAT (assume_tac 1));
  60.622  by (rtac eqpoll_trans 1 THEN assume_tac 2);
  60.623  by (rewtac eqpoll_def);
  60.624 -by (blast_tac (!claset addSIs [ordermap_bij RS bij_converse_bij]) 1);
  60.625 +by (blast_tac (claset() addSIs [ordermap_bij RS bij_converse_bij]) 1);
  60.626  qed "ordertype_eq_n";
  60.627  
  60.628  goalw Cardinal.thy [Finite_def]
  60.629      "!!A. [| Finite(A);  well_ord(A,r) |] ==> well_ord(A,converse(r))";
  60.630  by (rtac well_ord_converse 1 THEN assume_tac 1);
  60.631 -by (blast_tac (!claset addDs [ordertype_eq_n] 
  60.632 +by (blast_tac (claset() addDs [ordertype_eq_n] 
  60.633                         addSIs [nat_well_ord_converse_Memrel]) 1);
  60.634  qed "Finite_well_ord_converse";
    61.1 --- a/src/ZF/CardinalArith.ML	Mon Nov 03 12:22:43 1997 +0100
    61.2 +++ b/src/ZF/CardinalArith.ML	Mon Nov 03 12:24:13 1997 +0100
    61.3 @@ -21,7 +21,7 @@
    61.4  by (rtac exI 1);
    61.5  by (res_inst_tac [("c", "case(Inr, Inl)"), ("d", "case(Inr, Inl)")] 
    61.6      lam_bijective 1);
    61.7 -by (safe_tac (!claset addSEs [sumE]));
    61.8 +by (safe_tac (claset() addSEs [sumE]));
    61.9  by (ALLGOALS (Asm_simp_tac));
   61.10  qed "sum_commute_eqpoll";
   61.11  
   61.12 @@ -57,7 +57,7 @@
   61.13  qed "sum_0_eqpoll";
   61.14  
   61.15  goalw CardinalArith.thy [cadd_def] "!!K. Card(K) ==> 0 |+| K = K";
   61.16 -by (asm_simp_tac (!simpset addsimps [sum_0_eqpoll RS cardinal_cong, 
   61.17 +by (asm_simp_tac (simpset() addsimps [sum_0_eqpoll RS cardinal_cong, 
   61.18                                    Card_cardinal_eq]) 1);
   61.19  qed "cadd_0";
   61.20  
   61.21 @@ -65,7 +65,7 @@
   61.22  
   61.23  goalw CardinalArith.thy [lepoll_def, inj_def] "A lepoll A+B";
   61.24  by (res_inst_tac [("x", "lam x:A. Inl(x)")] exI 1);
   61.25 -by (asm_simp_tac (!simpset addsimps [lam_type]) 1);
   61.26 +by (asm_simp_tac (simpset() addsimps [lam_type]) 1);
   61.27  qed "sum_lepoll_self";
   61.28  
   61.29  (*Could probably weaken the premises to well_ord(K,r), or removing using AC*)
   61.30 @@ -88,12 +88,12 @@
   61.31        lam_injective 1);
   61.32  by (typechk_tac ([inj_is_fun, case_type, InlI, InrI] @ ZF_typechecks));
   61.33  by (etac sumE 1);
   61.34 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [left_inverse])));
   61.35 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [left_inverse])));
   61.36  qed "sum_lepoll_mono";
   61.37  
   61.38  goalw CardinalArith.thy [cadd_def]
   61.39      "!!K. [| K' le K;  L' le L |] ==> (K' |+| L') le (K |+| L)";
   61.40 -by (safe_tac (!claset addSDs [le_subset_iff RS iffD1]));
   61.41 +by (safe_tac (claset() addSDs [le_subset_iff RS iffD1]));
   61.42  by (rtac well_ord_lepoll_imp_Card_le 1);
   61.43  by (REPEAT (ares_tac [sum_lepoll_mono, subset_imp_lepoll] 2));
   61.44  by (REPEAT (ares_tac [well_ord_radd, well_ord_Memrel] 1));
   61.45 @@ -107,7 +107,7 @@
   61.46                    ("d", "%z. if(z=A+B,Inl(A),z)")] 
   61.47      lam_bijective 1);
   61.48  by (ALLGOALS
   61.49 -    (asm_simp_tac (!simpset addsimps [succI2, mem_imp_not_eq]
   61.50 +    (asm_simp_tac (simpset() addsimps [succI2, mem_imp_not_eq]
   61.51                             setloop eresolve_tac [sumE,succE])));
   61.52  qed "sum_succ_eqpoll";
   61.53  
   61.54 @@ -125,8 +125,8 @@
   61.55      "[| m: nat;  n: nat |] ==> m |+| n = m#+n";
   61.56  by (cut_facts_tac [nnat] 1);
   61.57  by (nat_ind_tac "m" [mnat] 1);
   61.58 -by (asm_simp_tac (!simpset addsimps [nat_into_Card RS cadd_0]) 1);
   61.59 -by (asm_simp_tac (!simpset addsimps [nat_into_Ord, cadd_succ_lemma,
   61.60 +by (asm_simp_tac (simpset() addsimps [nat_into_Card RS cadd_0]) 1);
   61.61 +by (asm_simp_tac (simpset() addsimps [nat_into_Ord, cadd_succ_lemma,
   61.62                                       nat_into_Card RS Card_cardinal_eq]) 1);
   61.63  qed "nat_cadd_eq_add";
   61.64  
   61.65 @@ -140,7 +140,7 @@
   61.66  by (rtac exI 1);
   61.67  by (res_inst_tac [("c", "%<x,y>.<y,x>"), ("d", "%<x,y>.<y,x>")] 
   61.68      lam_bijective 1);
   61.69 -by (safe_tac (!claset));
   61.70 +by (safe_tac (claset()));
   61.71  by (ALLGOALS (Asm_simp_tac));
   61.72  qed "prod_commute_eqpoll";
   61.73  
   61.74 @@ -192,11 +192,11 @@
   61.75  goalw CardinalArith.thy [eqpoll_def] "0*A eqpoll 0";
   61.76  by (rtac exI 1);
   61.77  by (rtac lam_bijective 1);
   61.78 -by (safe_tac (!claset));
   61.79 +by (safe_tac (claset()));
   61.80  qed "prod_0_eqpoll";
   61.81  
   61.82  goalw CardinalArith.thy [cmult_def] "0 |*| i = 0";
   61.83 -by (asm_simp_tac (!simpset addsimps [prod_0_eqpoll RS cardinal_cong, 
   61.84 +by (asm_simp_tac (simpset() addsimps [prod_0_eqpoll RS cardinal_cong, 
   61.85                                    Card_0 RS Card_cardinal_eq]) 1);
   61.86  qed "cmult_0";
   61.87  
   61.88 @@ -208,7 +208,7 @@
   61.89  qed "prod_singleton_eqpoll";
   61.90  
   61.91  goalw CardinalArith.thy [cmult_def, succ_def] "!!K. Card(K) ==> 1 |*| K = K";
   61.92 -by (asm_simp_tac (!simpset addsimps [prod_singleton_eqpoll RS cardinal_cong, 
   61.93 +by (asm_simp_tac (simpset() addsimps [prod_singleton_eqpoll RS cardinal_cong, 
   61.94                                    Card_cardinal_eq]) 1);
   61.95  qed "cmult_1";
   61.96  
   61.97 @@ -216,7 +216,7 @@
   61.98  
   61.99  goalw CardinalArith.thy [lepoll_def, inj_def] "A lepoll A*A";
  61.100  by (res_inst_tac [("x", "lam x:A. <x,x>")] exI 1);
  61.101 -by (simp_tac (!simpset addsimps [lam_type]) 1);
  61.102 +by (simp_tac (simpset() addsimps [lam_type]) 1);
  61.103  qed "prod_square_lepoll";
  61.104  
  61.105  (*Could probably weaken the premise to well_ord(K,r), or remove using AC*)
  61.106 @@ -225,14 +225,14 @@
  61.107  by (rtac well_ord_lepoll_imp_Card_le 2);
  61.108  by (rtac prod_square_lepoll 3);
  61.109  by (REPEAT (ares_tac [well_ord_rmult, well_ord_Memrel, Card_is_Ord] 2));
  61.110 -by (asm_simp_tac (!simpset addsimps [le_refl, Card_is_Ord, Card_cardinal_eq]) 1);
  61.111 +by (asm_simp_tac (simpset() addsimps [le_refl, Card_is_Ord, Card_cardinal_eq]) 1);
  61.112  qed "cmult_square_le";
  61.113  
  61.114  (** Multiplication by a non-zero cardinal **)
  61.115  
  61.116  goalw CardinalArith.thy [lepoll_def, inj_def] "!!b. b: B ==> A lepoll A*B";
  61.117  by (res_inst_tac [("x", "lam x:A. <x,b>")] exI 1);
  61.118 -by (asm_simp_tac (!simpset addsimps [lam_type]) 1);
  61.119 +by (asm_simp_tac (simpset() addsimps [lam_type]) 1);
  61.120  qed "prod_lepoll_self";
  61.121  
  61.122  (*Could probably weaken the premises to well_ord(K,r), or removing using AC*)
  61.123 @@ -253,12 +253,12 @@
  61.124                    lam_injective 1);
  61.125  by (typechk_tac (inj_is_fun::ZF_typechecks));
  61.126  by (etac SigmaE 1);
  61.127 -by (asm_simp_tac (!simpset addsimps [left_inverse]) 1);
  61.128 +by (asm_simp_tac (simpset() addsimps [left_inverse]) 1);
  61.129  qed "prod_lepoll_mono";
  61.130  
  61.131  goalw CardinalArith.thy [cmult_def]
  61.132      "!!K. [| K' le K;  L' le L |] ==> (K' |*| L') le (K |*| L)";
  61.133 -by (safe_tac (!claset addSDs [le_subset_iff RS iffD1]));
  61.134 +by (safe_tac (claset() addSDs [le_subset_iff RS iffD1]));
  61.135  by (rtac well_ord_lepoll_imp_Card_le 1);
  61.136  by (REPEAT (ares_tac [prod_lepoll_mono, subset_imp_lepoll] 2));
  61.137  by (REPEAT (ares_tac [well_ord_rmult, well_ord_Memrel] 1));
  61.138 @@ -271,9 +271,9 @@
  61.139  by (res_inst_tac [("c", "%<x,y>. if(x=A, Inl(y), Inr(<x,y>))"), 
  61.140                    ("d", "case(%y. <A,y>, %z. z)")] 
  61.141      lam_bijective 1);
  61.142 -by (safe_tac (!claset addSEs [sumE]));
  61.143 +by (safe_tac (claset() addSEs [sumE]));
  61.144  by (ALLGOALS
  61.145 -    (asm_simp_tac (!simpset addsimps [succI2, if_type, mem_imp_not_eq])));
  61.146 +    (asm_simp_tac (simpset() addsimps [succI2, if_type, mem_imp_not_eq])));
  61.147  qed "prod_succ_eqpoll";
  61.148  
  61.149  (*Unconditional version requires AC*)
  61.150 @@ -289,14 +289,14 @@
  61.151      "[| m: nat;  n: nat |] ==> m |*| n = m#*n";
  61.152  by (cut_facts_tac [nnat] 1);
  61.153  by (nat_ind_tac "m" [mnat] 1);
  61.154 -by (asm_simp_tac (!simpset addsimps [cmult_0]) 1);
  61.155 -by (asm_simp_tac (!simpset addsimps [nat_into_Ord, cmult_succ_lemma,
  61.156 +by (asm_simp_tac (simpset() addsimps [cmult_0]) 1);
  61.157 +by (asm_simp_tac (simpset() addsimps [nat_into_Ord, cmult_succ_lemma,
  61.158                                       nat_cadd_eq_add]) 1);
  61.159  qed "nat_cmult_eq_mult";
  61.160  
  61.161  goal CardinalArith.thy "!!m n. Card(n) ==> 2 |*| n = n |+| n";
  61.162  by (asm_simp_tac 
  61.163 -    (!simpset addsimps [Ord_0, Ord_succ, cmult_0, cmult_succ_lemma, 
  61.164 +    (simpset() addsimps [Ord_0, Ord_succ, cmult_0, cmult_succ_lemma, 
  61.165  			Card_is_Ord,
  61.166  			read_instantiate [("j","0")] cadd_commute, cadd_0]) 1);
  61.167  qed "cmult_2";
  61.168 @@ -317,10 +317,10 @@
  61.169  by (res_inst_tac [("d", "%y. if(y: range(f),    \
  61.170  \                               nat_case(u, %z. f`z, converse(f)`y), y)")] 
  61.171      lam_injective 1);
  61.172 -by (fast_tac (!claset addSIs [if_type, nat_succI, apply_type]
  61.173 +by (fast_tac (claset() addSIs [if_type, nat_succI, apply_type]
  61.174                        addIs  [inj_is_fun, inj_converse_fun]) 1);
  61.175  by (asm_simp_tac 
  61.176 -    (!simpset addsimps [inj_is_fun RS apply_rangeI,
  61.177 +    (simpset() addsimps [inj_is_fun RS apply_rangeI,
  61.178                       inj_converse_fun RS apply_rangeI,
  61.179                       inj_converse_fun RS apply_funtype,
  61.180                       left_inverse, right_inverse, nat_0I, nat_succI, 
  61.181 @@ -339,7 +339,7 @@
  61.182  qed "nat_succ_eqpoll";
  61.183  
  61.184  goalw CardinalArith.thy [InfCard_def] "InfCard(nat)";
  61.185 -by (blast_tac (!claset addIs [Card_nat, le_refl, Card_is_Ord]) 1);
  61.186 +by (blast_tac (claset() addIs [Card_nat, le_refl, Card_is_Ord]) 1);
  61.187  qed "InfCard_nat";
  61.188  
  61.189  goalw CardinalArith.thy [InfCard_def] "!!K. InfCard(K) ==> Card(K)";
  61.190 @@ -348,7 +348,7 @@
  61.191  
  61.192  goalw CardinalArith.thy [InfCard_def]
  61.193      "!!K L. [| InfCard(K);  Card(L) |] ==> InfCard(K Un L)";
  61.194 -by (asm_simp_tac (!simpset addsimps [Card_Un, Un_upper1_le RSN (2,le_trans), 
  61.195 +by (asm_simp_tac (simpset() addsimps [Card_Un, Un_upper1_le RSN (2,le_trans), 
  61.196                                    Card_is_Ord]) 1);
  61.197  qed "InfCard_Un";
  61.198  
  61.199 @@ -358,7 +358,7 @@
  61.200  by (forward_tac [Card_is_Ord] 1);
  61.201  by (rtac (ltI RS non_succ_LimitI) 1);
  61.202  by (etac ([asm_rl, nat_0I] MRS (le_imp_subset RS subsetD)) 1);
  61.203 -by (safe_tac (!claset addSDs [Limit_nat RS Limit_le_succD]));
  61.204 +by (safe_tac (claset() addSDs [Limit_nat RS Limit_le_succD]));
  61.205  by (rewtac Card_def);
  61.206  by (dtac trans 1);
  61.207  by (etac (le_imp_subset RS nat_succ_eqpoll RS cardinal_cong) 1);
  61.208 @@ -373,7 +373,7 @@
  61.209  goalw Cardinal.thy [eqpoll_def]
  61.210      "!!A. [| well_ord(A,r);  x:A |] ==> ordermap(A,r)`x eqpoll pred(A,x,r)";
  61.211  by (rtac exI 1);
  61.212 -by (asm_simp_tac (!simpset addsimps [ordermap_eq_image, well_ord_is_wf]) 1);
  61.213 +by (asm_simp_tac (simpset() addsimps [ordermap_eq_image, well_ord_is_wf]) 1);
  61.214  by (etac (ordermap_bij RS bij_is_inj RS restrict_bij RS bij_converse_bij) 1);
  61.215  by (rtac pred_subset 1);
  61.216  qed "ordermap_eqpoll_pred";
  61.217 @@ -382,7 +382,7 @@
  61.218  
  61.219  goalw CardinalArith.thy [inj_def]
  61.220   "!!K. Ord(K) ==> (lam <x,y>:K*K. <x Un y, x, y>) : inj(K*K, K*K*K)";
  61.221 -by (fast_tac (!claset addss (!simpset)
  61.222 +by (fast_tac (claset() addss (simpset())
  61.223                      addIs [lam_type, Un_least_lt RS ltD, ltI]) 1);
  61.224  qed "csquare_lam_inj";
  61.225  
  61.226 @@ -398,16 +398,16 @@
  61.227   "!!K. [| x<K;  y<K;  z<K |] ==> \
  61.228  \      <<x,y>, <z,z>> : csquare_rel(K) --> x le z & y le z";
  61.229  by (REPEAT (etac ltE 1));
  61.230 -by (asm_simp_tac (!simpset addsimps [rvimage_iff, rmult_iff, Memrel_iff,
  61.231 +by (asm_simp_tac (simpset() addsimps [rvimage_iff, rmult_iff, Memrel_iff,
  61.232                                    Un_absorb, Un_least_mem_iff, ltD]) 1);
  61.233 -by (safe_tac (!claset addSEs [mem_irrefl] 
  61.234 +by (safe_tac (claset() addSEs [mem_irrefl] 
  61.235                      addSIs [Un_upper1_le, Un_upper2_le]));
  61.236 -by (ALLGOALS (asm_simp_tac (!simpset addsimps [lt_def, succI2, Ord_succ])));
  61.237 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [lt_def, succI2, Ord_succ])));
  61.238  qed_spec_mp "csquareD";
  61.239  
  61.240  goalw CardinalArith.thy [pred_def]
  61.241   "!!K. z<K ==> pred(K*K, <z,z>, csquare_rel(K)) <= succ(z)*succ(z)";
  61.242 -by (safe_tac (claset_of"ZF" addSEs [SigmaE]));  (*avoids using succCI,...*)
  61.243 +by (safe_tac (claset_of ZF.thy addSEs [SigmaE]));  (*avoids using succCI,...*)
  61.244  by (rtac (csquareD RS conjE) 1);
  61.245  by (rewtac lt_def);
  61.246  by (assume_tac 4);
  61.247 @@ -419,7 +419,7 @@
  61.248  by (subgoals_tac ["x<K", "y<K"] 1);
  61.249  by (REPEAT (eresolve_tac [asm_rl, lt_trans] 2));
  61.250  by (REPEAT (etac ltE 1));
  61.251 -by (asm_simp_tac (!simpset addsimps [rvimage_iff, rmult_iff, Memrel_iff,
  61.252 +by (asm_simp_tac (simpset() addsimps [rvimage_iff, rmult_iff, Memrel_iff,
  61.253                                       Un_absorb, Un_least_mem_iff, ltD]) 1);
  61.254  qed "csquare_ltI";
  61.255  
  61.256 @@ -430,11 +430,11 @@
  61.257  by (subgoals_tac ["x<K", "y<K"] 1);
  61.258  by (REPEAT (eresolve_tac [asm_rl, lt_trans1] 2));
  61.259  by (REPEAT (etac ltE 1));
  61.260 -by (asm_simp_tac (!simpset addsimps [rvimage_iff, rmult_iff, Memrel_iff,
  61.261 +by (asm_simp_tac (simpset() addsimps [rvimage_iff, rmult_iff, Memrel_iff,
  61.262                                    Un_absorb, Un_least_mem_iff, ltD]) 1);
  61.263  by (REPEAT_FIRST (etac succE));
  61.264  by (ALLGOALS
  61.265 -    (asm_simp_tac (!simpset addsimps [subset_Un_iff RS iff_sym, 
  61.266 +    (asm_simp_tac (simpset() addsimps [subset_Un_iff RS iff_sym, 
  61.267                                     subset_Un_iff2 RS iff_sym, OrdmemD])));
  61.268  qed "csquare_or_eqI";
  61.269  
  61.270 @@ -446,11 +446,11 @@
  61.271  \         ordermap(K*K, csquare_rel(K)) ` <z,z>";
  61.272  by (subgoals_tac ["z<K", "well_ord(K*K, csquare_rel(K))"] 1);
  61.273  by (etac (Limit_is_Ord RS well_ord_csquare) 2);
  61.274 -by (blast_tac (!claset addSIs [Un_least_lt, Limit_has_succ]) 2);
  61.275 +by (blast_tac (claset() addSIs [Un_least_lt, Limit_has_succ]) 2);
  61.276  by (rtac (csquare_ltI RS ordermap_mono RS ltI) 1);
  61.277  by (etac well_ord_is_wf 4);
  61.278  by (ALLGOALS 
  61.279 -    (blast_tac (!claset addSIs [Un_upper1_le, Un_upper2_le, Ord_ordermap] 
  61.280 +    (blast_tac (claset() addSIs [Un_upper1_le, Un_upper2_le, Ord_ordermap] 
  61.281                       addSEs [ltE])));
  61.282  qed "ordermap_z_lt";
  61.283  
  61.284 @@ -461,12 +461,12 @@
  61.285  by (rtac (well_ord_rmult RS well_ord_lepoll_imp_Card_le) 1);
  61.286  by (REPEAT (ares_tac [Ord_cardinal, well_ord_Memrel] 1));
  61.287  by (subgoals_tac ["z<K"] 1);
  61.288 -by (blast_tac (!claset addSIs [Un_least_lt, Limit_has_succ]) 2);
  61.289 +by (blast_tac (claset() addSIs [Un_least_lt, Limit_has_succ]) 2);
  61.290  by (rtac (ordermap_z_lt RS leI RS le_imp_lepoll RS lepoll_trans) 1);
  61.291  by (REPEAT_SOME assume_tac);
  61.292  by (rtac (ordermap_eqpoll_pred RS eqpoll_imp_lepoll RS lepoll_trans) 1);
  61.293  by (etac (Limit_is_Ord RS well_ord_csquare) 1);
  61.294 -by (blast_tac (!claset addIs [ltD]) 1);
  61.295 +by (blast_tac (claset() addIs [ltD]) 1);
  61.296  by (rtac (pred_csquare_subset RS subset_imp_lepoll RS lepoll_trans) 1 THEN
  61.297      assume_tac 1);
  61.298  by (REPEAT_FIRST (etac ltE));
  61.299 @@ -485,8 +485,8 @@
  61.300  by (rtac Card_lt_imp_lt 1);
  61.301  by (etac InfCard_is_Card 3);
  61.302  by (etac ltE 2 THEN assume_tac 2);
  61.303 -by (asm_full_simp_tac (!simpset addsimps [ordertype_unfold]) 1);
  61.304 -by (safe_tac (!claset addSEs [ltE]));
  61.305 +by (asm_full_simp_tac (simpset() addsimps [ordertype_unfold]) 1);
  61.306 +by (safe_tac (claset() addSEs [ltE]));
  61.307  by (subgoals_tac ["Ord(xb)", "Ord(y)"] 1);
  61.308  by (REPEAT (eresolve_tac [asm_rl, Ord_in_Ord] 2));
  61.309  by (rtac (InfCard_is_Limit RS ordermap_csquare_le RS lt_trans1) 1  THEN
  61.310 @@ -495,13 +495,13 @@
  61.311      REPEAT (ares_tac [Ord_Un, Ord_nat] 1));
  61.312  (*the finite case: xb Un y < nat *)
  61.313  by (res_inst_tac [("j", "nat")] lt_trans2 1);
  61.314 -by (asm_full_simp_tac (!simpset addsimps [InfCard_def]) 2);
  61.315 +by (asm_full_simp_tac (simpset() addsimps [InfCard_def]) 2);
  61.316  by (asm_full_simp_tac
  61.317 -    (!simpset addsimps [lt_def, nat_cmult_eq_mult, nat_succI, mult_type,
  61.318 +    (simpset() addsimps [lt_def, nat_cmult_eq_mult, nat_succI, mult_type,
  61.319                       nat_into_Card RS Card_cardinal_eq, Ord_nat]) 1);
  61.320  (*case nat le (xb Un y) *)
  61.321  by (asm_full_simp_tac
  61.322 -    (!simpset addsimps [le_imp_subset RS nat_succ_eqpoll RS cardinal_cong,
  61.323 +    (simpset() addsimps [le_imp_subset RS nat_succ_eqpoll RS cardinal_cong,
  61.324                       le_succ_iff, InfCard_def, Card_cardinal, Un_least_lt, 
  61.325                       Ord_Un, ltI, nat_le_cardinal,
  61.326                       Ord_cardinal_le RS lt_trans1 RS ltD]) 1);
  61.327 @@ -519,7 +519,7 @@
  61.328  by (assume_tac 2);
  61.329  by (assume_tac 2);
  61.330  by (asm_simp_tac 
  61.331 -    (!simpset addsimps [cmult_def, Ord_cardinal_le,
  61.332 +    (simpset() addsimps [cmult_def, Ord_cardinal_le,
  61.333                       well_ord_csquare RS ordermap_bij RS 
  61.334                            bij_imp_eqpoll RS cardinal_cong,
  61.335                       well_ord_csquare RS Ord_ordertype]) 1);
  61.336 @@ -532,7 +532,7 @@
  61.337  by (REPEAT (etac (well_ord_cardinal_eqpoll RS eqpoll_sym) 1));
  61.338  by (rtac well_ord_cardinal_eqE 1);
  61.339  by (REPEAT (ares_tac [Ord_cardinal, well_ord_rmult, well_ord_Memrel] 1));
  61.340 -by (asm_simp_tac (!simpset addsimps [symmetric cmult_def, InfCard_csquare_eq]) 1);
  61.341 +by (asm_simp_tac (simpset() addsimps [symmetric cmult_def, InfCard_csquare_eq]) 1);
  61.342  qed "well_ord_InfCard_square_eq";
  61.343  
  61.344  (** Toward's Kunen's Corollary 10.13 (1) **)
  61.345 @@ -543,7 +543,7 @@
  61.346      REPEAT (ares_tac [cmult_le_self, InfCard_is_Card] 2));
  61.347  by (forward_tac [InfCard_is_Card RS Card_is_Ord RS le_refl] 1);
  61.348  by (resolve_tac [cmult_le_mono RS le_trans] 1 THEN REPEAT (assume_tac 1));
  61.349 -by (asm_simp_tac (!simpset addsimps [InfCard_csquare_eq]) 1);
  61.350 +by (asm_simp_tac (simpset() addsimps [InfCard_csquare_eq]) 1);
  61.351  qed "InfCard_le_cmult_eq";
  61.352  
  61.353  (*Corollary 10.13 (1), for cardinal multiplication*)
  61.354 @@ -555,14 +555,14 @@
  61.355  by (resolve_tac [Un_commute RS ssubst] 1);
  61.356  by (ALLGOALS
  61.357      (asm_simp_tac 
  61.358 -     (!simpset addsimps [InfCard_is_Limit RS Limit_has_0, InfCard_le_cmult_eq,
  61.359 +     (simpset() addsimps [InfCard_is_Limit RS Limit_has_0, InfCard_le_cmult_eq,
  61.360                        subset_Un_iff2 RS iffD1, le_imp_subset])));
  61.361  qed "InfCard_cmult_eq";
  61.362  
  61.363  (*This proof appear to be the simplest!*)
  61.364  goal CardinalArith.thy "!!K. InfCard(K) ==> K |+| K = K";
  61.365  by (asm_simp_tac
  61.366 -    (!simpset addsimps [cmult_2 RS sym, InfCard_is_Card, cmult_commute]) 1);
  61.367 +    (simpset() addsimps [cmult_2 RS sym, InfCard_is_Card, cmult_commute]) 1);
  61.368  by (rtac InfCard_le_cmult_eq 1);
  61.369  by (typechk_tac [Ord_0, le_refl, leI]);
  61.370  by (typechk_tac [InfCard_is_Limit, Limit_has_0, Limit_has_succ]);
  61.371 @@ -575,7 +575,7 @@
  61.372      REPEAT (ares_tac [cadd_le_self, InfCard_is_Card] 2));
  61.373  by (forward_tac [InfCard_is_Card RS Card_is_Ord RS le_refl] 1);
  61.374  by (resolve_tac [cadd_le_mono RS le_trans] 1 THEN REPEAT (assume_tac 1));
  61.375 -by (asm_simp_tac (!simpset addsimps [InfCard_cdouble_eq]) 1);
  61.376 +by (asm_simp_tac (simpset() addsimps [InfCard_cdouble_eq]) 1);
  61.377  qed "InfCard_le_cadd_eq";
  61.378  
  61.379  goal CardinalArith.thy
  61.380 @@ -586,7 +586,7 @@
  61.381  by (resolve_tac [Un_commute RS ssubst] 1);
  61.382  by (ALLGOALS
  61.383      (asm_simp_tac 
  61.384 -     (!simpset addsimps [InfCard_le_cadd_eq,
  61.385 +     (simpset() addsimps [InfCard_le_cadd_eq,
  61.386                        subset_Un_iff2 RS iffD1, le_imp_subset])));
  61.387  qed "InfCard_cadd_eq";
  61.388  
  61.389 @@ -600,14 +600,14 @@
  61.390  
  61.391  goalw CardinalArith.thy [jump_cardinal_def] "Ord(jump_cardinal(K))";
  61.392  by (rtac (Ord_is_Transset RSN (2,OrdI)) 1);
  61.393 -by (blast_tac (!claset addSIs [Ord_ordertype]) 2);
  61.394 +by (blast_tac (claset() addSIs [Ord_ordertype]) 2);
  61.395  by (rewtac Transset_def);
  61.396  by (safe_tac subset_cs);
  61.397 -by (asm_full_simp_tac (!simpset addsimps [ordertype_pred_unfold]) 1);
  61.398 -by (safe_tac (!claset));
  61.399 +by (asm_full_simp_tac (simpset() addsimps [ordertype_pred_unfold]) 1);
  61.400 +by (safe_tac (claset()));
  61.401  by (rtac UN_I 1);
  61.402  by (rtac ReplaceI 2);
  61.403 -by (ALLGOALS (blast_tac (!claset addIs [well_ord_subset] addSEs [predE])));
  61.404 +by (ALLGOALS (blast_tac (claset() addIs [well_ord_subset] addSEs [predE])));
  61.405  qed "Ord_jump_cardinal";
  61.406  
  61.407  (*Allows selective unfolding.  Less work than deriving intro/elim rules*)
  61.408 @@ -623,8 +623,8 @@
  61.409  by (resolve_tac [jump_cardinal_iff RS iffD2] 1);
  61.410  by (REPEAT_FIRST (ares_tac [exI, conjI, well_ord_Memrel]));
  61.411  by (rtac subset_refl 2);
  61.412 -by (asm_simp_tac (!simpset addsimps [Memrel_def, subset_iff]) 1);
  61.413 -by (asm_simp_tac (!simpset addsimps [ordertype_Memrel]) 1);
  61.414 +by (asm_simp_tac (simpset() addsimps [Memrel_def, subset_iff]) 1);
  61.415 +by (asm_simp_tac (simpset() addsimps [ordertype_Memrel]) 1);
  61.416  qed "K_lt_jump_cardinal";
  61.417  
  61.418  (*The proof by contradiction: the bijection f yields a wellordering of X
  61.419 @@ -642,7 +642,7 @@
  61.420  by (etac (bij_is_inj RS well_ord_rvimage) 1);
  61.421  by (rtac (Ord_jump_cardinal RS well_ord_Memrel) 1);
  61.422  by (asm_simp_tac
  61.423 -    (!simpset addsimps [well_ord_Memrel RSN (2, bij_ordertype_vimage), 
  61.424 +    (simpset() addsimps [well_ord_Memrel RSN (2, bij_ordertype_vimage), 
  61.425                       ordertype_Memrel, Ord_jump_cardinal]) 1);
  61.426  qed "Card_jump_cardinal_lemma";
  61.427  
  61.428 @@ -650,7 +650,7 @@
  61.429  goal CardinalArith.thy "Card(jump_cardinal(K))";
  61.430  by (rtac (Ord_jump_cardinal RS CardI) 1);
  61.431  by (rewtac eqpoll_def);
  61.432 -by (safe_tac (!claset addSDs [ltD, jump_cardinal_iff RS iffD1]));
  61.433 +by (safe_tac (claset() addSDs [ltD, jump_cardinal_iff RS iffD1]));
  61.434  by (REPEAT (ares_tac [Card_jump_cardinal_lemma RS mem_irrefl] 1));
  61.435  qed "Card_jump_cardinal";
  61.436  
  61.437 @@ -695,12 +695,12 @@
  61.438  goal CardinalArith.thy
  61.439      "!!K' K. [| Card(K'); Card(K) |] ==> K' < csucc(K) <-> K' le K";
  61.440  by (asm_simp_tac 
  61.441 -    (!simpset addsimps [lt_csucc_iff, Card_cardinal_eq, Card_is_Ord]) 1);
  61.442 +    (simpset() addsimps [lt_csucc_iff, Card_cardinal_eq, Card_is_Ord]) 1);
  61.443  qed "Card_lt_csucc_iff";
  61.444  
  61.445  goalw CardinalArith.thy [InfCard_def]
  61.446      "!!K. InfCard(K) ==> InfCard(csucc(K))";
  61.447 -by (asm_simp_tac (!simpset addsimps [Card_csucc, Card_is_Ord, 
  61.448 +by (asm_simp_tac (simpset() addsimps [Card_csucc, Card_is_Ord, 
  61.449                                    lt_csucc RS leI RSN (2,le_trans)]) 1);
  61.450  qed "InfCard_csucc";
  61.451  
  61.452 @@ -710,7 +710,7 @@
  61.453  goal CardinalArith.thy
  61.454      "!!n. n: nat ==> ALL A. A eqpoll n --> A : Fin(A)";
  61.455  by (etac nat_induct 1);
  61.456 -by (simp_tac (!simpset addsimps (eqpoll_0_iff::Fin.intrs)) 1);
  61.457 +by (simp_tac (simpset() addsimps (eqpoll_0_iff::Fin.intrs)) 1);
  61.458  by (Clarify_tac 1);
  61.459  by (subgoal_tac "EX u. u:A" 1);
  61.460  by (etac exE 1);
  61.461 @@ -721,27 +721,27 @@
  61.462  by (assume_tac 1);
  61.463  by (resolve_tac [Fin.consI] 1);
  61.464  by (Blast_tac 1);
  61.465 -by (blast_tac (!claset addIs [subset_consI  RS Fin_mono RS subsetD]) 1); 
  61.466 +by (blast_tac (claset() addIs [subset_consI  RS Fin_mono RS subsetD]) 1); 
  61.467  (*Now for the lemma assumed above*)
  61.468  by (rewtac eqpoll_def);
  61.469 -by (blast_tac (!claset addIs [bij_converse_bij RS bij_is_fun RS apply_type]) 1);
  61.470 +by (blast_tac (claset() addIs [bij_converse_bij RS bij_is_fun RS apply_type]) 1);
  61.471  val lemma = result();
  61.472  
  61.473  goalw CardinalArith.thy [Finite_def] "!!A. Finite(A) ==> A : Fin(A)";
  61.474 -by (blast_tac (!claset addIs [lemma RS spec RS mp]) 1);
  61.475 +by (blast_tac (claset() addIs [lemma RS spec RS mp]) 1);
  61.476  qed "Finite_into_Fin";
  61.477  
  61.478  goal CardinalArith.thy "!!A. A : Fin(U) ==> Finite(A)";
  61.479 -by (fast_tac (!claset addSIs [Finite_0, Finite_cons] addEs [Fin.induct]) 1);
  61.480 +by (fast_tac (claset() addSIs [Finite_0, Finite_cons] addEs [Fin.induct]) 1);
  61.481  qed "Fin_into_Finite";
  61.482  
  61.483  goal CardinalArith.thy "Finite(A) <-> A : Fin(A)";
  61.484 -by (blast_tac (!claset addIs [Finite_into_Fin, Fin_into_Finite]) 1);
  61.485 +by (blast_tac (claset() addIs [Finite_into_Fin, Fin_into_Finite]) 1);
  61.486  qed "Finite_Fin_iff";
  61.487  
  61.488  goal CardinalArith.thy
  61.489      "!!A. [| Finite(A); Finite(B) |] ==> Finite(A Un B)";
  61.490 -by (blast_tac (!claset addSIs [Fin_into_Finite, Fin_UnI] 
  61.491 +by (blast_tac (claset() addSIs [Fin_into_Finite, Fin_UnI] 
  61.492                         addSDs [Finite_into_Fin]
  61.493                         addIs [Un_upper1 RS Fin_mono RS subsetD,
  61.494  			      Un_upper2 RS Fin_mono RS subsetD]) 1);
  61.495 @@ -753,10 +753,10 @@
  61.496  goal CardinalArith.thy
  61.497      "!!A. A: Fin(U) ==> x~:A --> ~ cons(x,A) lepoll A";
  61.498  by (etac Fin_induct 1);
  61.499 -by (simp_tac (!simpset addsimps [lepoll_0_iff]) 1);
  61.500 +by (simp_tac (simpset() addsimps [lepoll_0_iff]) 1);
  61.501  by (subgoal_tac "cons(x,cons(xa,y)) = cons(xa,cons(x,y))" 1);
  61.502  by (Asm_simp_tac 1);
  61.503 -by (blast_tac (!claset addSDs [cons_lepoll_consD]) 1);
  61.504 +by (blast_tac (claset() addSDs [cons_lepoll_consD]) 1);
  61.505  by (Blast_tac 1);
  61.506  qed "Fin_imp_not_cons_lepoll";
  61.507  
  61.508 @@ -765,18 +765,18 @@
  61.509  by (rewtac cardinal_def);
  61.510  by (rtac Least_equality 1);
  61.511  by (fold_tac [cardinal_def]);
  61.512 -by (simp_tac (!simpset addsimps [succ_def]) 1);
  61.513 -by (blast_tac (!claset addIs [cons_eqpoll_cong, well_ord_cardinal_eqpoll] 
  61.514 +by (simp_tac (simpset() addsimps [succ_def]) 1);
  61.515 +by (blast_tac (claset() addIs [cons_eqpoll_cong, well_ord_cardinal_eqpoll] 
  61.516                      addSEs [mem_irrefl]
  61.517                      addSDs [Finite_imp_well_ord]) 1);
  61.518 -by (blast_tac (!claset addIs [Ord_succ, Card_cardinal, Card_is_Ord]) 1);
  61.519 +by (blast_tac (claset() addIs [Ord_succ, Card_cardinal, Card_is_Ord]) 1);
  61.520  by (rtac notI 1);
  61.521  by (resolve_tac [Finite_into_Fin RS Fin_imp_not_cons_lepoll RS mp RS notE] 1);
  61.522  by (assume_tac 1);
  61.523  by (assume_tac 1);
  61.524  by (eresolve_tac [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_trans] 1);
  61.525  by (eresolve_tac [le_imp_lepoll RS lepoll_trans] 1);
  61.526 -by (blast_tac (!claset addIs [well_ord_cardinal_eqpoll RS eqpoll_imp_lepoll] 
  61.527 +by (blast_tac (claset() addIs [well_ord_cardinal_eqpoll RS eqpoll_imp_lepoll] 
  61.528                      addSDs [Finite_imp_well_ord]) 1);
  61.529  qed "Finite_imp_cardinal_cons";
  61.530  
  61.531 @@ -784,14 +784,14 @@
  61.532  goal CardinalArith.thy "!!a A. [| Finite(A);  a:A |] ==> succ(|A-{a}|) = |A|";
  61.533  by (res_inst_tac [("b", "A")] (cons_Diff RS subst) 1);
  61.534  by (assume_tac 1);
  61.535 -by (asm_simp_tac (!simpset addsimps [Finite_imp_cardinal_cons,
  61.536 +by (asm_simp_tac (simpset() addsimps [Finite_imp_cardinal_cons,
  61.537                                    Diff_subset RS subset_Finite]) 1);
  61.538 -by (asm_simp_tac (!simpset addsimps [cons_Diff]) 1);
  61.539 +by (asm_simp_tac (simpset() addsimps [cons_Diff]) 1);
  61.540  qed "Finite_imp_succ_cardinal_Diff";
  61.541  
  61.542  goal CardinalArith.thy "!!a A. [| Finite(A);  a:A |] ==> |A-{a}| < |A|";
  61.543  by (rtac succ_leE 1);
  61.544 -by (asm_simp_tac (!simpset addsimps [Finite_imp_succ_cardinal_Diff, 
  61.545 +by (asm_simp_tac (simpset() addsimps [Finite_imp_succ_cardinal_Diff, 
  61.546                                    Ord_cardinal RS le_refl]) 1);
  61.547  qed "Finite_imp_cardinal_Diff";
  61.548  
  61.549 @@ -808,11 +808,11 @@
  61.550                    well_ord_radd RS well_ord_cardinal_eqpoll)) RS eqpoll_sym] 1 
  61.551      THEN (assume_tac 1));
  61.552  by (eresolve_tac [nat_cadd_eq_add RS subst] 1 THEN (assume_tac 1));
  61.553 -by (asm_full_simp_tac (!simpset addsimps [cadd_def, eqpoll_refl]) 1);
  61.554 +by (asm_full_simp_tac (simpset() addsimps [cadd_def, eqpoll_refl]) 1);
  61.555  qed "nat_sum_eqpoll_sum";
  61.556  
  61.557  goal Nat.thy "!!m. [| m le n; n:nat |] ==> m:nat";
  61.558 -by (blast_tac (!claset addSDs [nat_succI RS (Ord_nat RSN (2, OrdmemD))]
  61.559 +by (blast_tac (claset() addSDs [nat_succI RS (Ord_nat RSN (2, OrdmemD))]
  61.560          addSEs [ltE]) 1);
  61.561  qed "le_in_nat";
  61.562  
    62.1 --- a/src/ZF/Cardinal_AC.ML	Mon Nov 03 12:22:43 1997 +0100
    62.2 +++ b/src/ZF/Cardinal_AC.ML	Mon Nov 03 12:24:13 1997 +0100
    62.3 @@ -27,13 +27,13 @@
    62.4  qed "cardinal_eqE";
    62.5  
    62.6  goal Cardinal_AC.thy "|X| = |Y| <-> X eqpoll Y";
    62.7 -by (blast_tac (!claset addIs [cardinal_cong, cardinal_eqE]) 1);
    62.8 +by (blast_tac (claset() addIs [cardinal_cong, cardinal_eqE]) 1);
    62.9  qed "cardinal_eqpoll_iff";
   62.10  
   62.11  goal Cardinal_AC.thy
   62.12      "!!A. [| |A|=|B|;  |C|=|D|;  A Int C = 0;  B Int D = 0 |] ==> \
   62.13  \         |A Un C| = |B Un D|";
   62.14 -by (asm_full_simp_tac (!simpset addsimps [cardinal_eqpoll_iff, 
   62.15 +by (asm_full_simp_tac (simpset() addsimps [cardinal_eqpoll_iff, 
   62.16                                         eqpoll_disjoint_Un]) 1);
   62.17  qed "cardinal_disjoint_Un";
   62.18  
   62.19 @@ -92,8 +92,8 @@
   62.20  goalw Cardinal_AC.thy [surj_def] "!!f. f: surj(X,Y) ==> EX g. g: inj(Y,X)";
   62.21  by (etac CollectE 1);
   62.22  by (res_inst_tac [("A1", "Y"), ("B1", "%y. f-``{y}")] (AC_Pi RS exE) 1);
   62.23 -by (fast_tac (!claset addSEs [apply_Pair]) 1);
   62.24 -by (blast_tac (!claset addDs [apply_type, Pi_memberD] 
   62.25 +by (fast_tac (claset() addSEs [apply_Pair]) 1);
   62.26 +by (blast_tac (claset() addDs [apply_type, Pi_memberD] 
   62.27                         addIs [apply_equality, Pi_type, f_imp_injective]) 1);
   62.28  qed "surj_implies_inj";
   62.29  
   62.30 @@ -108,10 +108,10 @@
   62.31  (*Kunen's Lemma 10.21*)
   62.32  goal Cardinal_AC.thy
   62.33      "!!K. [| InfCard(K);  ALL i:K. |X(i)| le K |] ==> |UN i:K. X(i)| le K";
   62.34 -by (asm_full_simp_tac (!simpset addsimps [InfCard_is_Card, le_Card_iff]) 1);
   62.35 +by (asm_full_simp_tac (simpset() addsimps [InfCard_is_Card, le_Card_iff]) 1);
   62.36  by (rtac lepoll_trans 1);
   62.37  by (resolve_tac [InfCard_square_eq RS eqpoll_imp_lepoll] 2);
   62.38 -by (asm_simp_tac (!simpset addsimps [InfCard_is_Card, Card_cardinal_eq]) 2);
   62.39 +by (asm_simp_tac (simpset() addsimps [InfCard_is_Card, Card_cardinal_eq]) 2);
   62.40  by (rewtac lepoll_def);
   62.41  by (forward_tac [InfCard_is_Card RS Card_is_Ord] 1);
   62.42  by (etac (AC_ball_Pi RS exE) 1);
   62.43 @@ -119,18 +119,18 @@
   62.44  (*Lemma needed in both subgoals, for a fixed z*)
   62.45  by (subgoal_tac
   62.46      "ALL z: (UN i:K. X(i)). z: X(LEAST i. z:X(i)) & (LEAST i. z:X(i)) : K" 1);
   62.47 -by (fast_tac (!claset addSIs [Least_le RS lt_trans1 RS ltD, ltI]
   62.48 +by (fast_tac (claset() addSIs [Least_le RS lt_trans1 RS ltD, ltI]
   62.49                        addSEs [LeastI, Ord_in_Ord]) 2);
   62.50  by (res_inst_tac [("c", "%z. <LEAST i. z:X(i), f ` (LEAST i. z:X(i)) ` z>"),
   62.51                    ("d", "%<i,j>. converse(f`i) ` j")] 
   62.52          lam_injective 1);
   62.53  (*Instantiate the lemma proved above*)
   62.54  by (ALLGOALS ball_tac);
   62.55 -by (blast_tac (!claset addIs [inj_is_fun RS apply_type]
   62.56 +by (blast_tac (claset() addIs [inj_is_fun RS apply_type]
   62.57                         addDs [apply_type]) 1);
   62.58  by (dtac apply_type 1);
   62.59  by (etac conjunct2 1);
   62.60 -by (asm_simp_tac (!simpset addsimps [left_inverse]) 1);
   62.61 +by (asm_simp_tac (simpset() addsimps [left_inverse]) 1);
   62.62  qed "cardinal_UN_le";
   62.63  
   62.64  (*The same again, using csucc*)
   62.65 @@ -138,7 +138,7 @@
   62.66      "!!K. [| InfCard(K);  ALL i:K. |X(i)| < csucc(K) |] ==> \
   62.67  \         |UN i:K. X(i)| < csucc(K)";
   62.68  by (asm_full_simp_tac 
   62.69 -    (!simpset addsimps [Card_lt_csucc_iff, cardinal_UN_le, 
   62.70 +    (simpset() addsimps [Card_lt_csucc_iff, cardinal_UN_le, 
   62.71                       InfCard_is_Card, Card_cardinal]) 1);
   62.72  qed "cardinal_UN_lt_csucc";
   62.73  
   62.74 @@ -149,8 +149,8 @@
   62.75  \         (UN i:K. j(i)) < csucc(K)";
   62.76  by (resolve_tac [cardinal_UN_lt_csucc RS Card_lt_imp_lt] 1);
   62.77  by (assume_tac 1);
   62.78 -by (blast_tac (!claset addIs [Ord_cardinal_le RS lt_trans1] addEs [ltE]) 1);
   62.79 -by (blast_tac (!claset addSIs [Ord_UN] addEs [ltE]) 1);
   62.80 +by (blast_tac (claset() addIs [Ord_cardinal_le RS lt_trans1] addEs [ltE]) 1);
   62.81 +by (blast_tac (claset() addSIs [Ord_UN] addEs [ltE]) 1);
   62.82  by (eresolve_tac [InfCard_is_Card RS Card_is_Ord RS Card_csucc] 1);
   62.83  qed "cardinal_UN_Ord_lt_csucc";
   62.84  
   62.85 @@ -173,7 +173,7 @@
   62.86  by (res_inst_tac [("x1", "f`x")] (UN_upper RSN (2,subset_trans)) 1);
   62.87  by (eresolve_tac [inj_is_fun RS apply_type] 2 THEN assume_tac 2);
   62.88  by (asm_simp_tac 
   62.89 -    (!simpset addsimps [inj_is_fun RS apply_rangeI, left_inverse]) 1);
   62.90 +    (simpset() addsimps [inj_is_fun RS apply_rangeI, left_inverse]) 1);
   62.91  val inj_UN_subset = result();
   62.92  
   62.93  (*Simpler to require |W|=K; we'd have a bijection; but the theorem would
   62.94 @@ -183,16 +183,16 @@
   62.95  \         (UN w:W. j(w)) < csucc(K)";
   62.96  by (excluded_middle_tac "W=0" 1);
   62.97  by (asm_simp_tac        (*solve the easy 0 case*)
   62.98 -    (!simpset addsimps [UN_0, InfCard_is_Card, Card_is_Ord RS Card_csucc, 
   62.99 +    (simpset() addsimps [UN_0, InfCard_is_Card, Card_is_Ord RS Card_csucc, 
  62.100                       Card_is_Ord, Ord_0_lt_csucc]) 2);
  62.101  by (asm_full_simp_tac
  62.102 -    (!simpset addsimps [InfCard_is_Card, le_Card_iff, lepoll_def]) 1);
  62.103 -by (safe_tac (!claset addSIs [equalityI]));
  62.104 +    (simpset() addsimps [InfCard_is_Card, le_Card_iff, lepoll_def]) 1);
  62.105 +by (safe_tac (claset() addSIs [equalityI]));
  62.106  by (swap_res_tac [[inj_UN_subset, cardinal_UN_Ord_lt_csucc] 
  62.107                    MRS lt_subset_trans] 1);
  62.108  by (REPEAT (assume_tac 1));
  62.109 -by (blast_tac (!claset addSIs [Ord_UN] addEs [ltE]) 2);
  62.110 -by (asm_simp_tac (!simpset addsimps [inj_converse_fun RS apply_type]
  62.111 +by (blast_tac (claset() addSIs [Ord_UN] addEs [ltE]) 2);
  62.112 +by (asm_simp_tac (simpset() addsimps [inj_converse_fun RS apply_type]
  62.113                          setloop split_tac [expand_if]) 1);
  62.114  qed "le_UN_Ord_lt_csucc";
  62.115  
    63.1 --- a/src/ZF/Coind/ECR.ML	Mon Nov 03 12:22:43 1997 +0100
    63.2 +++ b/src/ZF/Coind/ECR.ML	Mon Nov 03 12:24:13 1997 +0100
    63.3 @@ -16,7 +16,7 @@
    63.4  \ <v_clos(x, e, ve),t>:HasTyRel";
    63.5  by (rtac HasTyRel.coinduct 1);
    63.6  by (rtac singletonI 1);
    63.7 -by (fast_tac (!claset addIs Val_ValEnv.intrs) 1);
    63.8 +by (fast_tac (claset() addIs Val_ValEnv.intrs) 1);
    63.9  by (rtac disjI2 1);
   63.10  by (etac singletonE 1); 
   63.11  by (REPEAT_FIRST (resolve_tac [conjI,exI]));
   63.12 @@ -42,14 +42,14 @@
   63.13        addEs [htr_closE])
   63.14    end;
   63.15  
   63.16 -claset := mk_htr_cs (!claset);
   63.17 +claset_ref() := mk_htr_cs (claset());
   63.18  
   63.19  (* Properties of the pointwise extension to environments *)
   63.20  
   63.21  goalw ECR.thy [hastyenv_def]
   63.22    "!!ve.[| ve:ValEnv; te:TyEnv; hastyenv(ve,te); <v,t>:HasTyRel |] ==> \
   63.23  \   hastyenv(ve_owr(ve,x,v),te_owr(te,x,t))";
   63.24 -by (safe_tac (!claset));
   63.25 +by (safe_tac (claset()));
   63.26  by (stac ve_dom_owr 1);
   63.27  by (assume_tac 1);
   63.28  by (etac (HasTyRel.dom_subset RS subsetD RS SigmaD1 RS ValNEE) 1);
   63.29 @@ -64,15 +64,15 @@
   63.30  by (dtac (ve_dom_owr RS subst) 1);
   63.31  by (etac (HasTyRel.dom_subset RS subsetD RS SigmaD1 RS ValNEE) 1);
   63.32  by ((Fast_tac 1) THEN (Fast_tac 1));
   63.33 -by (asm_simp_tac (!simpset addsimps [ve_app_owr1,te_app_owr1]) 1);
   63.34 +by (asm_simp_tac (simpset() addsimps [ve_app_owr1,te_app_owr1]) 1);
   63.35  qed "hastyenv_owr";
   63.36  
   63.37  goalw ECR.thy  [isofenv_def,hastyenv_def]
   63.38    "!!ve.[| ve:ValEnv; te:TyEnv; isofenv(ve,te) |] ==> hastyenv(ve,te)";
   63.39 -by (safe_tac (!claset));
   63.40 +by (safe_tac (claset()));
   63.41  by (dtac bspec 1);
   63.42  by (assume_tac 1);
   63.43 -by (safe_tac (!claset));
   63.44 +by (safe_tac (claset()));
   63.45  by (dtac HasTyRel.htr_constI 1);
   63.46  by (assume_tac 2);
   63.47  by (etac te_appI 1);
    64.1 --- a/src/ZF/Coind/MT.ML	Mon Nov 03 12:22:43 1997 +0100
    64.2 +++ b/src/ZF/Coind/MT.ML	Mon Nov 03 12:24:13 1997 +0100
    64.3 @@ -51,7 +51,7 @@
    64.4  \  <cl,t>:HasTyRel";
    64.5  by (cut_facts_tac prems 1);
    64.6  by (etac elab_fixE 1);
    64.7 -by (safe_tac (!claset));
    64.8 +by (safe_tac (claset()));
    64.9  by (EVERY [forward_tac [subst] 1,atac 2,rtac htr_closCI 1]);
   64.10  by clean_tac;
   64.11  by (rtac ve_owrI 1);
   64.12 @@ -129,7 +129,7 @@
   64.13  by (etac htr_closE 1);
   64.14  by (etac elab_fnE 1);
   64.15  by (rewrite_tac Ty.con_defs);
   64.16 -by (safe_tac (!claset));
   64.17 +by (safe_tac (claset()));
   64.18  by (dtac (spec RS spec RS mp RS mp) 1);
   64.19  by (assume_tac 3);
   64.20  by (assume_tac 2);
   64.21 @@ -167,7 +167,7 @@
   64.22  by (cut_facts_tac prems 1);
   64.23  by (rtac (htr_constE) 1);
   64.24  by (dtac consistency 1);
   64.25 -by (fast_tac (!claset addSIs [basic_consistency_lem]) 1);
   64.26 +by (fast_tac (claset() addSIs [basic_consistency_lem]) 1);
   64.27  by (assume_tac 1);
   64.28  qed "basic_consistency";
   64.29  
    65.1 --- a/src/ZF/Coind/Map.ML	Mon Nov 03 12:22:43 1997 +0100
    65.2 +++ b/src/ZF/Coind/Map.ML	Mon Nov 03 12:24:13 1997 +0100
    65.3 @@ -38,7 +38,7 @@
    65.4  by (rtac ([Sigma_mono, product_univ] MRS subset_trans) 1);
    65.5  by (etac subset_trans 1);
    65.6  by (rtac (arg_subset_eclose RS univ_mono) 1);
    65.7 -by (simp_tac (!simpset addsimps [Union_Pow_eq]) 1);
    65.8 +by (simp_tac (simpset() addsimps [Union_Pow_eq]) 1);
    65.9  qed "MapQU_lemma";
   65.10  
   65.11  (* Theorems *)
   65.12 @@ -69,7 +69,7 @@
   65.13  (** map_emp **)
   65.14  
   65.15  goalw Map.thy [map_emp_def,PMap_def,TMap_def] "map_emp:PMap(A,B)";
   65.16 -by (safe_tac (!claset));
   65.17 +by (safe_tac (claset()));
   65.18  by (rtac image_02 1);
   65.19  qed "pmap_empI";
   65.20  
   65.21 @@ -79,7 +79,7 @@
   65.22  goalw Map.thy [map_owr_def,PMap_def,TMap_def] 
   65.23    "!! A.[| m:PMap(A,B); a:A; b:B |]  ==> map_owr(m,a,b):PMap(A,B)";
   65.24  by Safe_tac;
   65.25 -by (ALLGOALS (asm_full_simp_tac (!simpset addsimps [if_iff])));
   65.26 +by (ALLGOALS (asm_full_simp_tac (simpset() addsimps [if_iff])));
   65.27  by (Fast_tac 1);
   65.28  by (Fast_tac 1);
   65.29  by (Deepen_tac 2 1);
   65.30 @@ -88,8 +88,8 @@
   65.31  by (etac image_Sigma1 1);
   65.32  by (dres_inst_tac [("psi", "?uu ~: B")] asm_rl 1);
   65.33  by (asm_full_simp_tac
   65.34 -    (!simpset addsimps [qbeta] setloop split_tac [expand_if]) 1);
   65.35 -by (safe_tac (!claset));
   65.36 +    (simpset() addsimps [qbeta] setloop split_tac [expand_if]) 1);
   65.37 +by (safe_tac (claset()));
   65.38  by (dres_inst_tac [("psi", "?uu ~: B")] asm_rl 3);
   65.39  by (ALLGOALS Asm_full_simp_tac);
   65.40  by (Fast_tac 1);
   65.41 @@ -144,7 +144,7 @@
   65.42  qed "domain_UN";
   65.43  
   65.44  goal Map.thy  "domain(Sigma(A,B)) = {x:A. EX y. y:B(x)}";
   65.45 -by (simp_tac (!simpset addsimps [domain_UN,domain_0,domain_cons]) 1);
   65.46 +by (simp_tac (simpset() addsimps [domain_UN,domain_0,domain_cons]) 1);
   65.47  by (Fast_tac 1);
   65.48  qed "domain_Sigma";
   65.49  
   65.50 @@ -156,7 +156,7 @@
   65.51  
   65.52  goalw Map.thy [map_owr_def] 
   65.53    "!!a. b ~= 0 ==> domain(map_owr(f,a,b)) = {a} Un domain(f)";
   65.54 -by (simp_tac (!simpset addsimps [domain_Sigma]) 1);
   65.55 +by (simp_tac (simpset() addsimps [domain_Sigma]) 1);
   65.56  by (rtac equalityI 1);
   65.57  by (Fast_tac 1);
   65.58  by (rtac subsetI 1);
   65.59 @@ -166,7 +166,7 @@
   65.60  by (etac singletonE 1);
   65.61  by (Asm_simp_tac 1);
   65.62  by (Fast_tac 1);
   65.63 -by (fast_tac (!claset addss (!simpset)) 1);
   65.64 +by (fast_tac (claset() addss (simpset())) 1);
   65.65  qed "map_domain_owr";
   65.66  
   65.67  (** Application **)
    66.1 --- a/src/ZF/Coind/Static.ML	Mon Nov 03 12:22:43 1997 +0100
    66.2 +++ b/src/ZF/Coind/Static.ML	Mon Nov 03 12:24:13 1997 +0100
    66.3 @@ -22,7 +22,7 @@
    66.4    ElabRel.mk_cases Exp.con_defs "<te,e_app(e1,e2),t>:ElabRel";
    66.5  
    66.6  let open ElabRel in 
    66.7 -claset := !claset addSIs [elab_constI,elab_varI,elab_fnI,elab_fixI]
    66.8 +claset_ref() := claset() addSIs [elab_constI,elab_varI,elab_fnI,elab_fixI]
    66.9                    addSEs [elab_constE,elab_varE,elab_fixE]
   66.10  		  addIs [elab_appI]
   66.11  		  addEs [elab_appE,elab_fnE]
    67.1 --- a/src/ZF/Coind/Types.ML	Mon Nov 03 12:22:43 1997 +0100
    67.2 +++ b/src/ZF/Coind/Types.ML	Mon Nov 03 12:24:13 1997 +0100
    67.3 @@ -15,7 +15,7 @@
    67.4  
    67.5  goal Types.thy "te_rec(te_emp,c_te_emp,f_te_owr) = c_te_emp";
    67.6  by (rtac (te_rec_def RS def_Vrec RS trans) 1);
    67.7 -by (simp_tac (!simpset addsimps (rank_te_owr1::TyEnv.case_eqns)) 1);
    67.8 +by (simp_tac (simpset() addsimps (rank_te_owr1::TyEnv.case_eqns)) 1);
    67.9  qed "te_rec_emp";
   67.10  
   67.11  goal Types.thy 
   67.12 @@ -26,20 +26,20 @@
   67.13  qed "te_rec_owr";
   67.14  
   67.15  goalw Types.thy [te_dom_def] "te_dom(te_emp) = 0";
   67.16 -by (simp_tac (!simpset addsimps [te_rec_emp]) 1);
   67.17 +by (simp_tac (simpset() addsimps [te_rec_emp]) 1);
   67.18  qed "te_dom_emp";
   67.19  
   67.20  goalw Types.thy [te_dom_def] "te_dom(te_owr(te,x,v)) = te_dom(te) Un {x}";
   67.21 -by (simp_tac (!simpset addsimps [te_rec_owr]) 1);
   67.22 +by (simp_tac (simpset() addsimps [te_rec_owr]) 1);
   67.23  qed "te_dom_owr";
   67.24  
   67.25  goalw Types.thy [te_app_def] "te_app(te_owr(te,x,t),x) = t";
   67.26 -by (simp_tac (!simpset addsimps [te_rec_owr]) 1);
   67.27 +by (simp_tac (simpset() addsimps [te_rec_owr]) 1);
   67.28  qed "te_app_owr1";
   67.29  
   67.30  goalw Types.thy [te_app_def]
   67.31    "!!x y. x ~= y ==> te_app(te_owr(te,x,t),y) = te_app(te,y)";
   67.32 -by (asm_simp_tac (!simpset addsimps [te_rec_owr,(not_sym RS if_not_P)]) 1);
   67.33 +by (asm_simp_tac (simpset() addsimps [te_rec_owr,(not_sym RS if_not_P)]) 1);
   67.34  qed "te_app_owr2";
   67.35  
   67.36  goal Types.thy
   67.37 @@ -48,14 +48,14 @@
   67.38  by (assume_tac 2);
   67.39  by (assume_tac 2);
   67.40  by (etac TyEnv.induct 1);
   67.41 -by (simp_tac (!simpset addsimps [te_dom_emp]) 1);
   67.42 +by (simp_tac (simpset() addsimps [te_dom_emp]) 1);
   67.43  by (rtac impI 1);
   67.44  by (rtac (excluded_middle RS disjE) 1);
   67.45  by (stac te_app_owr2 1);
   67.46  by (assume_tac 1);
   67.47 -by (asm_full_simp_tac (!simpset addsimps [te_dom_owr]) 1);
   67.48 +by (asm_full_simp_tac (simpset() addsimps [te_dom_owr]) 1);
   67.49  by (Fast_tac 1);
   67.50 -by (asm_simp_tac (!simpset addsimps [te_app_owr1]) 1);
   67.51 +by (asm_simp_tac (simpset() addsimps [te_app_owr1]) 1);
   67.52  qed "te_appI";
   67.53  
   67.54  
    68.1 --- a/src/ZF/Coind/Values.ML	Mon Nov 03 12:22:43 1997 +0100
    68.2 +++ b/src/ZF/Coind/Values.ML	Mon Nov 03 12:24:13 1997 +0100
    68.3 @@ -88,7 +88,7 @@
    68.4    "[| ve:ValEnv; v ~=0 |] ==> ve_dom(ve_owr(ve,x,v)) = ve_dom(ve) Un {x}";
    68.5  by (cut_facts_tac prems 1);
    68.6  by (etac ValEnvE 1);
    68.7 -by (asm_full_simp_tac (!simpset addsimps Val_ValEnv.case_eqns) 1);
    68.8 +by (asm_full_simp_tac (simpset() addsimps Val_ValEnv.case_eqns) 1);
    68.9  by (stac map_domain_owr 1);
   68.10  by (assume_tac 1);
   68.11  by (rtac Un_commute 1);
   68.12 @@ -97,14 +97,14 @@
   68.13  goalw Values.thy [ve_app_def,ve_owr_def]
   68.14  "!!ve. ve:ValEnv ==> ve_app(ve_owr(ve,x,v),x) = v"; 
   68.15  by (etac ValEnvE 1);
   68.16 -by (asm_full_simp_tac (!simpset addsimps Val_ValEnv.case_eqns) 1);
   68.17 +by (asm_full_simp_tac (simpset() addsimps Val_ValEnv.case_eqns) 1);
   68.18  by (rtac map_app_owr1 1);
   68.19  qed "ve_app_owr1";
   68.20  
   68.21  goalw Values.thy [ve_app_def,ve_owr_def]
   68.22   "!!ve. ve:ValEnv ==> x ~= y ==> ve_app(ve_owr(ve,x,v),y) = ve_app(ve,y)";
   68.23  by (etac ValEnvE 1);
   68.24 -by (asm_full_simp_tac (!simpset addsimps Val_ValEnv.case_eqns) 1);
   68.25 +by (asm_full_simp_tac (simpset() addsimps Val_ValEnv.case_eqns) 1);
   68.26  by (rtac map_app_owr2 1);
   68.27  by (Fast_tac 1);
   68.28  qed "ve_app_owr2";
   68.29 @@ -115,7 +115,7 @@
   68.30    "!!ve.[| ve:ValEnv; x:ve_dom(ve) |] ==> ve_app(ve,x):Val";
   68.31  by (etac ValEnvE 1);
   68.32  by (hyp_subst_tac 1);
   68.33 -by (asm_full_simp_tac (!simpset addsimps Val_ValEnv.case_eqns) 1);
   68.34 +by (asm_full_simp_tac (simpset() addsimps Val_ValEnv.case_eqns) 1);
   68.35  by (rtac pmap_appI 1);
   68.36  by (assume_tac 1);
   68.37  by (assume_tac 1);
   68.38 @@ -125,7 +125,7 @@
   68.39    "!!ve.[| ve:ValEnv; x:ve_dom(ve) |] ==> x:ExVar";
   68.40  by (etac ValEnvE 1);
   68.41  by (hyp_subst_tac 1);
   68.42 -by (asm_full_simp_tac (!simpset addsimps Val_ValEnv.case_eqns) 1);
   68.43 +by (asm_full_simp_tac (simpset() addsimps Val_ValEnv.case_eqns) 1);
   68.44  by (rtac pmap_domainD 1);
   68.45  by (assume_tac 1);
   68.46  by (assume_tac 1);
   68.47 @@ -140,7 +140,7 @@
   68.48    "!!ve.[|ve:ValEnv; x:ExVar; v:Val |] ==> ve_owr(ve,x,v):ValEnv";
   68.49  by (etac ValEnvE 1);
   68.50  by (hyp_subst_tac 1);
   68.51 -by (asm_full_simp_tac (!simpset addsimps Val_ValEnv.case_eqns) 1);
   68.52 +by (asm_full_simp_tac (simpset() addsimps Val_ValEnv.case_eqns) 1);
   68.53  by (rtac Val_ValEnv.ve_mk_I 1);
   68.54  by (etac pmap_owrI 1);
   68.55  by (assume_tac 1);
    69.1 --- a/src/ZF/Epsilon.ML	Mon Nov 03 12:22:43 1997 +0100
    69.2 +++ b/src/ZF/Epsilon.ML	Mon Nov 03 12:24:13 1997 +0100
    69.3 @@ -64,8 +64,8 @@
    69.4      "!!X A n. [| Transset(X);  A<=X;  n: nat |] ==> \
    69.5  \             nat_rec(n, A, %m r. Union(r)) <= X";
    69.6  by (etac nat_induct 1);
    69.7 -by (asm_simp_tac (!simpset addsimps [nat_rec_0]) 1);
    69.8 -by (asm_simp_tac (!simpset addsimps [nat_rec_succ]) 1);
    69.9 +by (asm_simp_tac (simpset() addsimps [nat_rec_0]) 1);
   69.10 +by (asm_simp_tac (simpset() addsimps [nat_rec_succ]) 1);
   69.11  by (Blast_tac 1);
   69.12  qed "eclose_least_lemma";
   69.13  
   69.14 @@ -86,7 +86,7 @@
   69.15  by (etac (arg_subset_eclose RS subsetD) 2);
   69.16  by (etac base 2);
   69.17  by (rewtac Transset_def);
   69.18 -by (blast_tac (!claset addIs [step,ecloseD]) 1);
   69.19 +by (blast_tac (claset() addIs [step,ecloseD]) 1);
   69.20  qed "eclose_induct_down";
   69.21  
   69.22  goal Epsilon.thy "!!X. Transset(X) ==> eclose(X) = X";
   69.23 @@ -112,7 +112,7 @@
   69.24  
   69.25  goalw Epsilon.thy [Transset_def]
   69.26      "!!i j. [| Transset(i);  j:i |] ==> Memrel(i)-``{j} = j";
   69.27 -by (blast_tac (!claset addSIs [MemrelI] addSEs [MemrelE]) 1);
   69.28 +by (blast_tac (claset() addSIs [MemrelI] addSEs [MemrelE]) 1);
   69.29  qed "under_Memrel";