--- a/src/FOL/ex/If.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/FOL/ex/If.ML Mon Nov 03 12:24:13 1997 +0100
@@ -11,13 +11,13 @@
val prems = goalw If.thy [if_def]
"[| P ==> Q; ~P ==> R |] ==> if(P,Q,R)";
-by (blast_tac (!claset addIs prems) 1);
+by (blast_tac (claset() addIs prems) 1);
qed "ifI";
val major::prems = goalw If.thy [if_def]
"[| if(P,Q,R); [| P; Q |] ==> S; [| ~P; R |] ==> S |] ==> S";
by (cut_facts_tac [major] 1);
-by (blast_tac (!claset addIs prems) 1);
+by (blast_tac (claset() addIs prems) 1);
qed "ifE";
--- a/src/FOL/ex/Nat.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/FOL/ex/Nat.ML Mon Nov 03 12:24:13 1997 +0100
@@ -61,5 +61,5 @@
val prems = goal Nat.thy "(!!n. f(Suc(n)) = Suc(f(n))) ==> f(i+j) = i+f(j)";
by (res_inst_tac [("n","i")] induct 1);
by (Simp_tac 1);
-by (asm_simp_tac (!simpset addsimps prems) 1);
+by (asm_simp_tac (simpset() addsimps prems) 1);
result();
--- a/src/FOL/ex/Nat2.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/FOL/ex/Nat2.ML Mon Nov 03 12:24:13 1997 +0100
@@ -82,13 +82,13 @@
result();
goal Nat2.thy "m <= n --> m <= n+k";
-by (IND_TAC nat_ind (simp_tac (!simpset addsimps [le_imp_le_succ]))
+by (IND_TAC nat_ind (simp_tac (simpset() addsimps [le_imp_le_succ]))
"k" 1);
qed "le_plus";
goal Nat2.thy "succ(m) <= n --> m <= n";
by (res_inst_tac [("x","n")]spec 1);
-by (ALL_IND_TAC nat_exh (simp_tac (!simpset addsimps [le_imp_le_succ])) 1);
+by (ALL_IND_TAC nat_exh (simp_tac (simpset() addsimps [le_imp_le_succ])) 1);
qed "succ_le";
goal Nat2.thy "~m<n <-> n<=m";
@@ -98,7 +98,7 @@
qed "not_less";
goal Nat2.thy "n<=m --> ~m<n";
-by (simp_tac (!simpset addsimps [not_less]) 1);
+by (simp_tac (simpset() addsimps [not_less]) 1);
qed "le_imp_not_less";
goal Nat2.thy "m<n --> ~n<=m";
@@ -123,7 +123,7 @@
qed "not0";
goal Nat2.thy "a<=a' & b<=b' --> a+b<=a'+b'";
-by (IND_TAC nat_ind (simp_tac (!simpset addsimps [le_plus])) "b" 1);
+by (IND_TAC nat_ind (simp_tac (simpset() addsimps [le_plus])) "b" 1);
by (resolve_tac [impI RS allI] 1);
by (resolve_tac [allI RS allI] 1);
by (ALL_IND_TAC nat_exh Asm_simp_tac 1);
--- a/src/FOL/ex/NatClass.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/FOL/ex/NatClass.ML Mon Nov 03 12:24:13 1997 +0100
@@ -57,5 +57,5 @@
val [prem] = goal NatClass.thy "(!!n. f(Suc(n)) = Suc(f(n))) ==> f(i+j) = i+f(j)";
by (res_inst_tac [("n","i")] induct 1);
by (Simp_tac 1);
-by (asm_simp_tac (!simpset addsimps [prem]) 1);
+by (asm_simp_tac (simpset() addsimps [prem]) 1);
result();
--- a/src/FOL/ex/cla.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/FOL/ex/cla.ML Mon Nov 03 12:24:13 1997 +0100
@@ -470,7 +470,7 @@
writeln"Problem 58 NOT PROVED AUTOMATICALLY";
goal FOL.thy "(ALL x y. f(x)=g(y)) --> (ALL x y. f(f(x))=f(g(y)))";
-by (slow_tac (!claset addEs [subst_context]) 1);
+by (slow_tac (claset() addEs [subst_context]) 1);
result();
writeln"Problem 59";
@@ -512,7 +512,7 @@
\ ((C(y) & Q(w,y,y)) & OO(w,b) --> P(v,y) & OO(v,b))))) \
\ --> \
\ ~ (EX x. A(x) & (ALL y. C(y) --> (ALL z. D(x,y,z))))";
-by (Blast.depth_tac (!claset) 12 1);
+by (Blast.depth_tac (claset()) 12 1);
result();
@@ -539,7 +539,7 @@
\ (C(y) & ~P(y,y) --> P(u,y) & OO(u,b))))) \
\ --> \
\ ~ (EX x. A(x) & (ALL y. C(y) --> (ALL z. D(x,y,z))))";
-by (Blast.depth_tac(!claset) 7 1);
+by (Blast.depth_tac(claset()) 7 1);
result();
(* Challenge found on info-hol *)
--- a/src/HOL/Auth/Event.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/Event.ML Mon Nov 03 12:24:13 1997 +0100
@@ -42,11 +42,11 @@
qed "spies_Notes";
goal thy "spies evs <= spies (Says A B X # evs)";
-by (simp_tac (!simpset addsimps [subset_insertI]) 1);
+by (simp_tac (simpset() addsimps [subset_insertI]) 1);
qed "spies_subset_spies_Says";
goal thy "spies evs <= spies (Notes A X # evs)";
-by (simp_tac (!simpset addsplits [expand_if]) 1);
+by (simp_tac (simpset() addsplits [expand_if]) 1);
by (Fast_tac 1);
qed "spies_subset_spies_Notes";
@@ -54,14 +54,14 @@
goal thy "Says A B X : set evs --> X : spies evs";
by (induct_tac "evs" 1);
by (ALLGOALS (asm_simp_tac
- (!simpset addsplits [expand_event_case, expand_if])));
+ (simpset() addsplits [expand_event_case, expand_if])));
qed_spec_mp "Says_imp_spies";
(*Spy sees Notes of bad agents*)
goal thy "Notes A X : set evs --> A: bad --> X : spies evs";
by (induct_tac "evs" 1);
by (ALLGOALS (asm_simp_tac
- (!simpset addsplits [expand_event_case, expand_if])));
+ (simpset() addsplits [expand_event_case, expand_if])));
qed_spec_mp "Notes_imp_spies";
(*Use with addSEs to derive contradictions from old Says events containing
@@ -79,7 +79,7 @@
goal thy "parts (spies evs) <= used evs";
by (induct_tac "evs" 1);
by (ALLGOALS (asm_simp_tac
- (!simpset addsimps [parts_insert_spies]
+ (simpset() addsimps [parts_insert_spies]
addsplits [expand_event_case, expand_if])));
by (ALLGOALS Blast_tac);
qed "parts_spies_subset_used";
@@ -90,7 +90,7 @@
goal thy "parts (initState B) <= used evs";
by (induct_tac "evs" 1);
by (ALLGOALS (asm_simp_tac
- (!simpset addsimps [parts_insert_spies]
+ (simpset() addsimps [parts_insert_spies]
addsplits [expand_event_case, expand_if])));
by (ALLGOALS Blast_tac);
bind_thm ("initState_into_used", impOfSubs (result()));
@@ -107,7 +107,7 @@
goal thy "used [] <= used evs";
by (Simp_tac 1);
-by (blast_tac (!claset addIs [initState_into_used]) 1);
+by (blast_tac (claset() addIs [initState_into_used]) 1);
qed "used_nil_subset";
(**** NOTE REMOVAL--laws above are cleaner, as they don't involve "case" ****)
@@ -117,7 +117,7 @@
(*currently unused*)
goal thy "used evs <= used (evs@evs')";
by (induct_tac "evs" 1);
-by (simp_tac (!simpset addsimps [used_nil_subset]) 1);
+by (simp_tac (simpset() addsimps [used_nil_subset]) 1);
by (induct_tac "a" 1);
by (ALLGOALS Asm_simp_tac);
by (ALLGOALS Blast_tac);
--- a/src/HOL/Auth/Message.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/Message.ML Mon Nov 03 12:24:13 1997 +0100
@@ -177,8 +177,8 @@
(*TWO inserts to avoid looping. This rewrite is better than nothing.
Not suitable for Addsimps: its behaviour can be strange.*)
goal thy "parts (insert X (insert Y H)) = parts {X} Un parts {Y} Un parts H";
-by (simp_tac (!simpset addsimps [Un_assoc]) 1);
-by (simp_tac (!simpset addsimps [parts_insert RS sym]) 1);
+by (simp_tac (simpset() addsimps [Un_assoc]) 1);
+by (simp_tac (simpset() addsimps [parts_insert RS sym]) 1);
qed "parts_insert2";
goal thy "(UN x:A. parts(H x)) <= parts(UN x:A. H x)";
@@ -196,7 +196,7 @@
qed "parts_UN";
goal thy "parts(UN x. H x) = (UN x. parts(H x))";
-by (simp_tac (!simpset addsimps [UNION1_def, parts_UN]) 1);
+by (simp_tac (simpset() addsimps [UNION1_def, parts_UN]) 1);
qed "parts_UN1";
(*Added to simplify arguments to parts, analz and synth.
@@ -207,7 +207,7 @@
parts_UN1 RS equalityD1 RS subsetD RS UN1_E];
goal thy "insert X (parts H) <= parts(insert X H)";
-by (blast_tac (!claset addIs [impOfSubs parts_mono]) 1);
+by (blast_tac (claset() addIs [impOfSubs parts_mono]) 1);
qed "parts_insert_subset";
(** Idempotence and transitivity **)
@@ -236,9 +236,9 @@
qed "parts_cut";
goal thy "!!H. X: parts H ==> parts (insert X H) = parts H";
-by (fast_tac (!claset addSDs [parts_cut]
+by (fast_tac (claset() addSDs [parts_cut]
addIs [parts_insertI]
- addss (!simpset)) 1);
+ addss (simpset())) 1);
qed "parts_cut_eq";
Addsimps [parts_cut_eq];
@@ -278,7 +278,7 @@
by (etac parts.induct 1);
by (Auto_tac());
by (etac parts.induct 1);
-by (ALLGOALS (blast_tac (!claset addIs [parts.Body])));
+by (ALLGOALS (blast_tac (claset() addIs [parts.Body])));
qed "parts_insert_Crypt";
goal thy "parts (insert {|X,Y|} H) = \
@@ -288,7 +288,7 @@
by (etac parts.induct 1);
by (Auto_tac());
by (etac parts.induct 1);
-by (ALLGOALS (blast_tac (!claset addIs [parts.Fst, parts.Snd])));
+by (ALLGOALS (blast_tac (claset() addIs [parts.Fst, parts.Snd])));
qed "parts_insert_MPair";
Addsimps [parts_insert_Agent, parts_insert_Nonce,
@@ -308,12 +308,12 @@
goal thy "EX N. ALL n. N<=n --> Nonce n ~: parts {msg}";
by (induct_tac "msg" 1);
by (induct_tac "atomic" 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [exI, parts_insert2])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [exI, parts_insert2])));
(*MPair case: blast_tac works out the necessary sum itself!*)
-by (blast_tac (!claset addSEs [add_leE]) 2);
+by (blast_tac (claset() addSEs [add_leE]) 2);
(*Nonce case*)
by (res_inst_tac [("x","N + Suc nat")] exI 1);
-by (fast_tac (!claset addSEs [add_leE] addaltern trans_tac) 1);
+by (fast_tac (claset() addSEs [add_leE] addaltern trans_tac) 1);
qed "msg_Nonce_supply";
@@ -351,7 +351,7 @@
by (rtac equalityI 1);
by (rtac (analz_subset_parts RS parts_mono RS subset_trans) 1);
by (Simp_tac 1);
-by (blast_tac (!claset addIs [analz_increasing RS parts_mono RS subsetD]) 1);
+by (blast_tac (claset() addIs [analz_increasing RS parts_mono RS subsetD]) 1);
qed "parts_analz";
Addsimps [parts_analz];
@@ -386,7 +386,7 @@
qed "analz_Un";
goal thy "insert X (analz H) <= analz(insert X H)";
-by (blast_tac (!claset addIs [impOfSubs analz_mono]) 1);
+by (blast_tac (claset() addIs [impOfSubs analz_mono]) 1);
qed "analz_insert";
(** Rewrite rules for pulling out atomic messages **)
@@ -426,7 +426,7 @@
by (etac analz.induct 1);
by (Auto_tac());
by (etac analz.induct 1);
-by (ALLGOALS (blast_tac (!claset addIs [analz.Fst, analz.Snd])));
+by (ALLGOALS (blast_tac (claset() addIs [analz.Fst, analz.Snd])));
qed "analz_insert_MPair";
(*Can pull out enCrypted message if the Key is not known*)
@@ -450,7 +450,7 @@
by (Auto_tac());
by (eres_inst_tac [("za","x")] analz.induct 1);
by (Auto_tac());
-by (blast_tac (!claset addIs [analz_insertI, analz.Decrypt]) 1);
+by (blast_tac (claset() addIs [analz_insertI, analz.Decrypt]) 1);
val lemma2 = result();
goal thy "!!H. Key (invKey K) : analz H ==> \
@@ -468,7 +468,7 @@
\ then insert (Crypt K X) (analz (insert X H)) \
\ else insert (Crypt K X) (analz H))";
by (case_tac "Key (invKey K) : analz H " 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [analz_insert_Crypt,
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [analz_insert_Crypt,
analz_insert_Decrypt])));
qed "analz_Crypt_if";
@@ -526,7 +526,7 @@
the forwarding of unknown components (X). Without it, removing occurrences
of X can be very complicated. *)
goal thy "!!H. X: analz H ==> analz (insert X H) = analz H";
-by (blast_tac (!claset addIs [analz_cut, analz_insertI]) 1);
+by (blast_tac (claset() addIs [analz_cut, analz_insertI]) 1);
qed "analz_insert_eq";
@@ -536,7 +536,7 @@
\ |] ==> analz (G Un H) <= analz (G' Un H')";
by (Clarify_tac 1);
by (etac analz.induct 1);
-by (ALLGOALS (best_tac (!claset addIs [analz_mono RS subsetD])));
+by (ALLGOALS (best_tac (claset() addIs [analz_mono RS subsetD])));
qed "analz_subset_cong";
goal thy "!!H. [| analz G = analz G'; analz H = analz H' \
@@ -547,7 +547,7 @@
goal thy "!!H. analz H = analz H' ==> analz(insert X H) = analz(insert X H')";
-by (asm_simp_tac (!simpset addsimps [insert_def] delsimps [singleton_conv]
+by (asm_simp_tac (simpset() addsimps [insert_def] delsimps [singleton_conv]
setloop (rtac analz_cong)) 1);
qed "analz_insert_cong";
@@ -562,11 +562,11 @@
(*Helps to prove Fake cases*)
goal thy "!!X. X: analz (UN i. analz (H i)) ==> X: analz (UN i. H i)";
by (etac analz.induct 1);
-by (ALLGOALS (blast_tac (!claset addIs [impOfSubs analz_mono])));
+by (ALLGOALS (blast_tac (claset() addIs [impOfSubs analz_mono])));
val lemma = result();
goal thy "analz (UN i. analz (H i)) = analz (UN i. H i)";
-by (blast_tac (!claset addIs [lemma, impOfSubs analz_mono]) 1);
+by (blast_tac (claset() addIs [lemma, impOfSubs analz_mono]) 1);
qed "analz_UN_analz";
Addsimps [analz_UN_analz];
@@ -607,7 +607,7 @@
qed "synth_Un";
goal thy "insert X (synth H) <= synth(insert X H)";
-by (blast_tac (!claset addIs [impOfSubs synth_mono]) 1);
+by (blast_tac (claset() addIs [impOfSubs synth_mono]) 1);
qed "synth_insert";
(** Idempotence and transitivity **)
@@ -671,7 +671,7 @@
by (rtac subsetI 1);
by (etac parts.induct 1);
by (ALLGOALS
- (blast_tac (!claset addIs ((synth_increasing RS parts_mono RS subsetD)
+ (blast_tac (claset() addIs ((synth_increasing RS parts_mono RS subsetD)
::parts.intrs))));
qed "parts_synth";
Addsimps [parts_synth];
@@ -685,8 +685,8 @@
by (rtac equalityI 1);
by (rtac subsetI 1);
by (etac analz.induct 1);
-by (blast_tac (!claset addIs [impOfSubs analz_mono]) 5);
-by (ALLGOALS (blast_tac (!claset addIs analz.intrs)));
+by (blast_tac (claset() addIs [impOfSubs analz_mono]) 5);
+by (ALLGOALS (blast_tac (claset() addIs analz.intrs)));
qed "analz_synth_Un";
goal thy "analz (synth H) = analz H Un synth H";
@@ -717,25 +717,25 @@
\ ==> Crypt K Y : parts G Un parts H";
by (dtac (impOfSubs Fake_parts_insert) 1);
by (assume_tac 1);
-by (blast_tac (!claset addDs [impOfSubs analz_subset_parts]) 1);
+by (blast_tac (claset() addDs [impOfSubs analz_subset_parts]) 1);
qed "Crypt_Fake_parts_insert";
goal thy "!!H. X: synth (analz G) ==> \
\ analz (insert X H) <= synth (analz G) Un analz (G Un H)";
by (rtac subsetI 1);
by (subgoal_tac "x : analz (synth (analz G) Un H)" 1);
-by (blast_tac (!claset addIs [impOfSubs analz_mono,
+by (blast_tac (claset() addIs [impOfSubs analz_mono,
impOfSubs (analz_mono RS synth_mono)]) 2);
by (Full_simp_tac 1);
by (Blast_tac 1);
qed "Fake_analz_insert";
goal thy "(X: analz H & X: parts H) = (X: analz H)";
-by (blast_tac (!claset addIs [impOfSubs analz_subset_parts]) 1);
+by (blast_tac (claset() addIs [impOfSubs analz_subset_parts]) 1);
val analz_conj_parts = result();
goal thy "(X: analz H | X: parts H) = (X: parts H)";
-by (blast_tac (!claset addIs [impOfSubs analz_subset_parts]) 1);
+by (blast_tac (claset() addIs [impOfSubs analz_subset_parts]) 1);
val analz_disj_parts = result();
AddIffs [analz_conj_parts, analz_disj_parts];
@@ -868,11 +868,11 @@
concerns Crypt K X ~: Key``shrK``bad and cannot be proved by rewriting
alone.*)
fun prove_simple_subgoals_tac i =
- fast_tac (!claset addss (!simpset)) i THEN
+ fast_tac (claset() addss (simpset())) i THEN
ALLGOALS Asm_simp_tac;
fun Fake_parts_insert_tac i =
- blast_tac (!claset addDs [impOfSubs analz_subset_parts,
+ blast_tac (claset() addDs [impOfSubs analz_subset_parts,
impOfSubs Fake_parts_insert]) i;
(*Apply rules to break down assumptions of the form
@@ -899,13 +899,13 @@
(REPEAT o CHANGED)
(res_inst_tac [("x1","X")] (insert_commute RS ssubst) 1),
(*...allowing further simplifications*)
- simp_tac (!simpset addsplits [expand_if]) 1,
+ simp_tac (simpset() addsplits [expand_if]) 1,
REPEAT (FIRSTGOAL (resolve_tac [allI,impI,notI,conjI,iffI])),
DEPTH_SOLVE
(Fake_insert_simp_tac 1
THEN
IF_UNSOLVED (Blast.depth_tac
- (!claset addIs [analz_insertI,
+ (claset() addIs [analz_insertI,
impOfSubs analz_subset_parts]) 4 1))
]) i);
@@ -920,7 +920,7 @@
REPEAT o (mp_tac ORELSE' eresolve_tac [asm_rl,exE]),
(*Duplicate the assumption*)
forw_inst_tac [("psi", "ALL C.?P(C)")] asm_rl,
- Blast.depth_tac (!claset addSDs [spec]) 0];
+ Blast.depth_tac (claset() addSDs [spec]) 0];
(*Needed occasionally with spy_analz_tac, e.g. in analz_insert_Key_newK*)
--- a/src/HOL/Auth/NS_Public.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/NS_Public.ML Mon Nov 03 12:24:13 1997 +0100
@@ -59,13 +59,13 @@
goal thy
"!!A. evs: ns_public ==> (Key (priK A) : analz (spies evs)) = (A : bad)";
-by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
+by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
qed "Spy_analz_priK";
Addsimps [Spy_analz_priK];
goal thy "!!A. [| Key (priK A) : parts (spies evs); \
\ evs : ns_public |] ==> A:bad";
-by (blast_tac (!claset addDs [Spy_see_priK]) 1);
+by (blast_tac (claset() addDs [Spy_see_priK]) 1);
qed "Spy_see_priK_D";
bind_thm ("Spy_analz_priK_D", analz_subset_parts RS subsetD RS Spy_see_priK_D);
@@ -85,9 +85,9 @@
by (etac rev_mp 1);
by (parts_induct_tac 1);
(*NS3*)
-by (blast_tac (!claset addSEs partsEs) 3);
+by (blast_tac (claset() addSEs partsEs) 3);
(*NS2*)
-by (blast_tac (!claset addSEs partsEs) 2);
+by (blast_tac (claset() addSEs partsEs) 2);
by (Fake_parts_insert_tac 1);
qed "no_nonce_NS1_NS2";
@@ -101,9 +101,9 @@
by (etac rev_mp 1);
by (parts_induct_tac 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps [all_conj_distrib, parts_insert_spies])));
+ (asm_simp_tac (simpset() addsimps [all_conj_distrib, parts_insert_spies])));
(*NS1*)
-by (expand_case_tac "NA = ?y" 2 THEN blast_tac (!claset addSEs partsEs) 2);
+by (expand_case_tac "NA = ?y" 2 THEN blast_tac (claset() addSEs partsEs) 2);
(*Fake*)
by (Clarify_tac 1);
by (ex_strip_tac 1);
@@ -124,7 +124,7 @@
fun analz_induct_tac i =
etac ns_public.induct i THEN
ALLGOALS (asm_simp_tac
- (!simpset addsplits [expand_if]));
+ (simpset() addsplits [expand_if]));
(*Secrecy: Spy does not see the nonce sent in msg NS1 if A and B are secure*)
@@ -135,14 +135,14 @@
by (etac rev_mp 1);
by (analz_induct_tac 1);
(*NS3*)
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj]
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj]
addEs [no_nonce_NS1_NS2 RSN (2, rev_notE)]) 4);
(*NS2*)
-by (blast_tac (!claset addSEs [MPair_parts]
+by (blast_tac (claset() addSEs [MPair_parts]
addDs [Says_imp_spies RS parts.Inj,
parts.Body, unique_NA]) 3);
(*NS1*)
-by (blast_tac (!claset addSEs spies_partsEs
+by (blast_tac (claset() addSEs spies_partsEs
addIs [impOfSubs analz_subset_parts]) 2);
(*Fake*)
by (spy_analz_tac 1);
@@ -164,9 +164,9 @@
by (etac ns_public.induct 1);
by (ALLGOALS Asm_simp_tac);
(*NS1*)
-by (blast_tac (!claset addSEs spies_partsEs) 2);
+by (blast_tac (claset() addSEs spies_partsEs) 2);
(*Fake*)
-by (blast_tac (!claset addSDs [impOfSubs Fake_parts_insert]
+by (blast_tac (claset() addSDs [impOfSubs Fake_parts_insert]
addDs [Spy_not_see_NA,
impOfSubs analz_subset_parts]) 1);
qed "A_trusts_NS2";
@@ -198,9 +198,9 @@
by (etac rev_mp 1);
by (parts_induct_tac 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps [all_conj_distrib, parts_insert_spies])));
+ (asm_simp_tac (simpset() addsimps [all_conj_distrib, parts_insert_spies])));
(*NS2*)
-by (expand_case_tac "NB = ?y" 2 THEN blast_tac (!claset addSEs partsEs) 2);
+by (expand_case_tac "NB = ?y" 2 THEN blast_tac (claset() addSEs partsEs) 2);
(*Fake*)
by (Clarify_tac 1);
by (ex_strip_tac 1);
@@ -228,14 +228,14 @@
by (etac rev_mp 1);
by (analz_induct_tac 1);
(*NS3*)
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj, unique_NB]) 4);
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj, unique_NB]) 4);
(*NS2: by freshness and unicity of NB*)
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj]
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj]
addEs [no_nonce_NS1_NS2 RSN (2, rev_notE)]
addEs partsEs
addIs [impOfSubs analz_subset_parts]) 3);
(*NS1*)
-by (blast_tac (!claset addSEs spies_partsEs) 2);
+by (blast_tac (claset() addSEs spies_partsEs) 2);
(*Fake*)
by (spy_analz_tac 1);
qed "Spy_not_see_NB";
@@ -255,12 +255,12 @@
by (parts_induct_tac 1);
by (ALLGOALS Clarify_tac);
(*NS3: because NB determines A*)
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj,
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj,
Spy_not_see_NB, unique_NB]) 3);
(*NS1: by freshness*)
-by (blast_tac (!claset addSEs spies_partsEs) 2);
+by (blast_tac (claset() addSEs spies_partsEs) 2);
(*Fake*)
-by (blast_tac (!claset addSDs [impOfSubs Fake_parts_insert]
+by (blast_tac (claset() addSDs [impOfSubs Fake_parts_insert]
addDs [Spy_not_see_NB,
impOfSubs analz_subset_parts]) 1);
qed "B_trusts_NS3";
@@ -288,12 +288,12 @@
by (ALLGOALS Asm_simp_tac);
by (ALLGOALS Clarify_tac);
(*NS3: because NB determines A*)
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj,
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj,
Spy_not_see_NB, unique_NB]) 3);
(*NS1*)
-by (blast_tac (!claset addSEs spies_partsEs) 2);
+by (blast_tac (claset() addSEs spies_partsEs) 2);
(*Fake*)
-by (blast_tac (!claset addSDs [impOfSubs Fake_parts_insert]
+by (blast_tac (claset() addSDs [impOfSubs Fake_parts_insert]
addDs [Spy_not_see_NB,
impOfSubs analz_subset_parts]) 1);
qed "B_trusts_protocol";
--- a/src/HOL/Auth/NS_Public_Bad.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/NS_Public_Bad.ML Mon Nov 03 12:24:13 1997 +0100
@@ -63,13 +63,13 @@
goal thy
"!!A. evs: ns_public ==> (Key (priK A) : analz (spies evs)) = (A : bad)";
-by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
+by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
qed "Spy_analz_priK";
Addsimps [Spy_analz_priK];
goal thy "!!A. [| Key (priK A) : parts (spies evs); \
\ evs : ns_public |] ==> A:bad";
-by (blast_tac (!claset addDs [Spy_see_priK]) 1);
+by (blast_tac (claset() addDs [Spy_see_priK]) 1);
qed "Spy_see_priK_D";
bind_thm ("Spy_analz_priK_D", analz_subset_parts RS subsetD RS Spy_see_priK_D);
@@ -88,9 +88,9 @@
by (etac rev_mp 1);
by (parts_induct_tac 1);
(*NS3*)
-by (blast_tac (!claset addSEs partsEs) 3);
+by (blast_tac (claset() addSEs partsEs) 3);
(*NS2*)
-by (blast_tac (!claset addSEs partsEs) 2);
+by (blast_tac (claset() addSEs partsEs) 2);
by (Fake_parts_insert_tac 1);
qed "no_nonce_NS1_NS2";
@@ -104,9 +104,9 @@
by (etac rev_mp 1);
by (parts_induct_tac 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps [all_conj_distrib, parts_insert_spies])));
+ (asm_simp_tac (simpset() addsimps [all_conj_distrib, parts_insert_spies])));
(*NS1*)
-by (expand_case_tac "NA = ?y" 2 THEN blast_tac (!claset addSEs partsEs) 2);
+by (expand_case_tac "NA = ?y" 2 THEN blast_tac (claset() addSEs partsEs) 2);
(*Fake*)
by (Clarify_tac 1);
by (ex_strip_tac 1);
@@ -126,7 +126,7 @@
(*Tactic for proving secrecy theorems*)
fun analz_induct_tac i =
etac ns_public.induct i THEN
- ALLGOALS (asm_simp_tac (!simpset addsplits [expand_if]));
+ ALLGOALS (asm_simp_tac (simpset() addsplits [expand_if]));
(*Secrecy: Spy does not see the nonce sent in msg NS1 if A and B are secure*)
@@ -137,14 +137,14 @@
by (etac rev_mp 1);
by (analz_induct_tac 1);
(*NS3*)
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj]
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj]
addEs [no_nonce_NS1_NS2 RSN (2, rev_notE)]) 4);
(*NS2*)
-by (blast_tac (!claset addSEs [MPair_parts]
+by (blast_tac (claset() addSEs [MPair_parts]
addDs [Says_imp_spies RS parts.Inj,
parts.Body, unique_NA]) 3);
(*NS1*)
-by (blast_tac (!claset addSEs spies_partsEs
+by (blast_tac (claset() addSEs spies_partsEs
addIs [impOfSubs analz_subset_parts]) 2);
(*Fake*)
by (spy_analz_tac 1);
@@ -165,12 +165,12 @@
by (ALLGOALS Asm_simp_tac);
by (ALLGOALS Clarify_tac);
(*NS2*)
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj,
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj,
Spy_not_see_NA, unique_NA]) 3);
(*NS1*)
-by (blast_tac (!claset addSEs spies_partsEs) 2);
+by (blast_tac (claset() addSEs spies_partsEs) 2);
(*Fake*)
-by (blast_tac (!claset addSDs [impOfSubs Fake_parts_insert]
+by (blast_tac (claset() addSDs [impOfSubs Fake_parts_insert]
addDs [Spy_not_see_NA,
impOfSubs analz_subset_parts]) 1);
qed "A_trusts_NS2";
@@ -201,9 +201,9 @@
by (etac rev_mp 1);
by (parts_induct_tac 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps [all_conj_distrib, parts_insert_spies])));
+ (asm_simp_tac (simpset() addsimps [all_conj_distrib, parts_insert_spies])));
(*NS2*)
-by (expand_case_tac "NB = ?y" 2 THEN blast_tac (!claset addSEs partsEs) 2);
+by (expand_case_tac "NB = ?y" 2 THEN blast_tac (claset() addSEs partsEs) 2);
(*Fake*)
by (Clarify_tac 1);
by (ex_strip_tac 1);
@@ -229,17 +229,17 @@
by (etac rev_mp 1);
by (etac rev_mp 1);
by (analz_induct_tac 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
by (ALLGOALS Clarify_tac);
(*NS3: because NB determines A*)
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj, unique_NB]) 4);
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj, unique_NB]) 4);
(*NS2: by freshness and unicity of NB*)
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj]
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj]
addEs [no_nonce_NS1_NS2 RSN (2, rev_notE)]
addEs partsEs
addIs [impOfSubs analz_subset_parts]) 3);
(*NS1: by freshness*)
-by (blast_tac (!claset addSEs spies_partsEs) 2);
+by (blast_tac (claset() addSEs spies_partsEs) 2);
(*Fake*)
by (spy_analz_tac 1);
qed "Spy_not_see_NB";
@@ -257,15 +257,15 @@
(*prepare induction over Crypt (pubK B) NB : parts H*)
by (etac (Says_imp_spies RS parts.Inj RS rev_mp) 1);
by (parts_induct_tac 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [ex_disj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [ex_disj_distrib])));
by (ALLGOALS Clarify_tac);
(*NS3: because NB determines A*)
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj,
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj,
Spy_not_see_NB, unique_NB]) 3);
(*NS1: by freshness*)
-by (blast_tac (!claset addSEs spies_partsEs) 2);
+by (blast_tac (claset() addSEs spies_partsEs) 2);
(*Fake*)
-by (blast_tac (!claset addSDs [impOfSubs Fake_parts_insert]
+by (blast_tac (claset() addSDs [impOfSubs Fake_parts_insert]
addDs [Spy_not_see_NB,
impOfSubs analz_subset_parts]) 1);
qed "B_trusts_NS3";
@@ -279,12 +279,12 @@
by (analz_induct_tac 1);
by (ALLGOALS Clarify_tac);
(*NS2: by freshness and unicity of NB*)
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj]
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj]
addEs [no_nonce_NS1_NS2 RSN (2, rev_notE)]
addEs partsEs
addIs [impOfSubs analz_subset_parts]) 3);
(*NS1: by freshness*)
-by (blast_tac (!claset addSEs spies_partsEs) 2);
+by (blast_tac (claset() addSEs spies_partsEs) 2);
(*Fake*)
by (spy_analz_tac 1);
(*NS3: unicity of NB identifies A and NA, but not B*)
--- a/src/HOL/Auth/NS_Shared.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/NS_Shared.ML Mon Nov 03 12:24:13 1997 +0100
@@ -49,13 +49,13 @@
(*For reasoning about the encrypted portion of message NS3*)
goal thy "!!evs. Says S A (Crypt KA {|N, B, K, X|}) : set evs \
\ ==> X : parts (spies evs)";
-by (blast_tac (!claset addSEs spies_partsEs) 1);
+by (blast_tac (claset() addSEs spies_partsEs) 1);
qed "NS3_msg_in_parts_spies";
goal thy
"!!evs. Says Server A (Crypt (shrK A) {|NA, B, K, X|}) : set evs \
\ ==> K : parts (spies evs)";
-by (blast_tac (!claset addSEs spies_partsEs) 1);
+by (blast_tac (claset() addSEs spies_partsEs) 1);
qed "Oops_parts_spies";
(*For proving the easier theorems about X ~: parts (spies evs).*)
@@ -80,13 +80,13 @@
goal thy
"!!evs. evs : ns_shared ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
-by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
+by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
qed "Spy_analz_shrK";
Addsimps [Spy_analz_shrK];
goal thy "!!A. [| Key (shrK A) : parts (spies evs); \
\ evs : ns_shared |] ==> A:bad";
-by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
+by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
qed "Spy_see_shrK_D";
bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
@@ -99,12 +99,12 @@
by (parts_induct_tac 1);
(*Fake*)
by (best_tac
- (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
+ (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
addIs [impOfSubs analz_subset_parts]
addDs [impOfSubs (analz_subset_parts RS keysFor_mono)]
- addss (!simpset)) 1);
+ addss (simpset())) 1);
(*NS2, NS4, NS5*)
-by (ALLGOALS (blast_tac (!claset addSEs spies_partsEs)));
+by (ALLGOALS (blast_tac (claset() addSEs spies_partsEs)));
qed_spec_mp "new_keys_not_used";
bind_thm ("new_keys_not_analzd",
@@ -151,10 +151,10 @@
\ ==> (K ~: range shrK & X = (Crypt (shrK B) {|Key K, Agent A|})) \
\ | X : analz (spies evs)";
by (case_tac "A : bad" 1);
-by (fast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]
- addss (!simpset)) 1);
+by (fast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]
+ addss (simpset())) 1);
by (forward_tac [Says_imp_spies RS parts.Inj] 1);
-by (blast_tac (!claset addSDs [A_trusts_NS2, Says_Server_message_form]) 1);
+by (blast_tac (claset() addSDs [A_trusts_NS2, Says_Server_message_form]) 1);
qed "Says_S_message_form";
@@ -185,7 +185,7 @@
\ Key K : parts {X} --> Key K : parts (spies evs)";
by (parts_induct_tac 1);
(*Deals with Faked messages*)
-by (blast_tac (!claset addSEs partsEs
+by (blast_tac (claset() addSEs partsEs
addDs [impOfSubs parts_insert_subset_Un]) 1);
(*Base, NS4 and NS5*)
by (Auto_tac());
@@ -229,7 +229,7 @@
\ Says Server A (Crypt (shrK A) {|NA, Agent B, Key K, X|}) : set evs \
\ --> A=A' & NA=NA' & B=B' & X=X'";
by (etac ns_shared.induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
by Safe_tac;
(*NS3*)
by (ex_strip_tac 2);
@@ -237,7 +237,7 @@
(*NS2: it can't be a new key*)
by (expand_case_tac "K = ?y" 1);
by (REPEAT (ares_tac [refl,exI,impI,conjI] 2));
-by (blast_tac (!claset delrules [conjI] (*prevent split-up into 4 subgoals*)
+by (blast_tac (claset() delrules [conjI] (*prevent split-up into 4 subgoals*)
addSEs spies_partsEs) 1);
val lemma = result();
@@ -266,24 +266,24 @@
by analz_spies_tac;
by (ALLGOALS
(asm_simp_tac
- (!simpset addsimps ([analz_insert_eq, analz_insert_freshK] @
+ (simpset() addsimps ([analz_insert_eq, analz_insert_freshK] @
pushes @ expand_ifs))));
(*Oops*)
-by (blast_tac (!claset addDs [unique_session_keys]) 5);
+by (blast_tac (claset() addDs [unique_session_keys]) 5);
(*NS3, replay sub-case*)
by (Blast_tac 4);
(*NS2*)
-by (blast_tac (!claset addSEs spies_partsEs
+by (blast_tac (claset() addSEs spies_partsEs
addIs [parts_insertI, impOfSubs analz_subset_parts]) 2);
(*Fake*)
by (spy_analz_tac 1);
(*NS3, Server sub-case*) (**LEVEL 6 **)
-by (clarify_tac (!claset delrules [impCE]) 1);
+by (clarify_tac (claset() delrules [impCE]) 1);
by (forward_tac [Says_imp_spies RS parts.Inj RS A_trusts_NS2] 1);
by (assume_tac 2);
-by (blast_tac (!claset addDs [Says_imp_spies RS analz.Inj RS
+by (blast_tac (claset() addDs [Says_imp_spies RS analz.Inj RS
Crypt_Spy_analz_bad]) 1);
-by (blast_tac (!claset addDs [unique_session_keys]) 1);
+by (blast_tac (claset() addDs [unique_session_keys]) 1);
val lemma = result() RS mp RS mp RSN(2,rev_notE);
@@ -295,7 +295,7 @@
\ A ~: bad; B ~: bad; evs : ns_shared \
\ |] ==> Key K ~: analz (spies evs)";
by (forward_tac [Says_Server_message_form] 1 THEN assume_tac 1);
-by (blast_tac (!claset addSDs [lemma]) 1);
+by (blast_tac (claset() addSDs [lemma]) 1);
qed "Spy_not_see_encrypted_key";
@@ -334,9 +334,9 @@
by (TRYALL (rtac impI));
by (REPEAT_FIRST
(dtac (spies_subset_spies_Says RS analz_mono RS contra_subsetD)));
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
(**LEVEL 7**)
-by (blast_tac (!claset addSDs [Crypt_Fake_parts_insert]
+by (blast_tac (claset() addSDs [Crypt_Fake_parts_insert]
addDs [impOfSubs analz_subset_parts]) 1);
by (Blast_tac 2);
by (REPEAT_FIRST (rtac impI ORELSE' etac conjE ORELSE' hyp_subst_tac));
@@ -348,9 +348,9 @@
by (rtac disjI1 1);
by (thin_tac "?PP-->?QQ" 1);
by (case_tac "Ba : bad" 1);
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj RS B_trusts_NS3,
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj RS B_trusts_NS3,
unique_session_keys]) 2);
-by (blast_tac (!claset addDs [Says_imp_spies RS analz.Inj RS
+by (blast_tac (claset() addDs [Says_imp_spies RS analz.Inj RS
Crypt_Spy_analz_bad]) 1);
val lemma = result();
@@ -361,6 +361,6 @@
\ ALL NB. Says A Spy {|NA, NB, Key K|} ~: set evs; \
\ A ~: bad; B ~: bad; evs : ns_shared |] \
\ ==> Says B A (Crypt K (Nonce NB)) : set evs";
-by (blast_tac (!claset addSIs [lemma RS mp RS mp RS mp]
+by (blast_tac (claset() addSIs [lemma RS mp RS mp RS mp]
addSEs [Spy_not_see_encrypted_key RSN (2,rev_notE)]) 1);
qed "A_trusts_NS4";
--- a/src/HOL/Auth/OtwayRees.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/OtwayRees.ML Mon Nov 03 12:24:13 1997 +0100
@@ -45,17 +45,17 @@
goal thy "!!evs. Says A' B {|N, Agent A, Agent B, X|} : set evs \
\ ==> X : analz (spies evs)";
-by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
+by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
qed "OR2_analz_spies";
goal thy "!!evs. Says S' B {|N, X, Crypt (shrK B) X'|} : set evs \
\ ==> X : analz (spies evs)";
-by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
+by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
qed "OR4_analz_spies";
goal thy "!!evs. Says Server B {|NA, X, Crypt K' {|NB,K|}|} : set evs \
\ ==> K : parts (spies evs)";
-by (blast_tac (!claset addSEs spies_partsEs) 1);
+by (blast_tac (claset() addSEs spies_partsEs) 1);
qed "Oops_parts_spies";
(*OR2_analz... and OR4_analz... let us treat those cases using the same
@@ -92,12 +92,12 @@
goal thy
"!!evs. evs : otway ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
-by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
+by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
qed "Spy_analz_shrK";
Addsimps [Spy_analz_shrK];
goal thy "!!A. [| Key (shrK A) : parts (spies evs); evs : otway |] ==> A:bad";
-by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
+by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
qed "Spy_see_shrK_D";
bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
@@ -110,10 +110,10 @@
by (parts_induct_tac 1);
(*Fake*)
by (best_tac
- (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
+ (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
addIs [impOfSubs analz_subset_parts]
addDs [impOfSubs (analz_subset_parts RS keysFor_mono)]
- addss (!simpset)) 1);
+ addss (simpset())) 1);
by (ALLGOALS Blast_tac);
qed_spec_mp "new_keys_not_used";
@@ -195,7 +195,7 @@
\ Says Server B {|NA, X, Crypt (shrK B) {|NB, K|}|} : set evs --> \
\ B=B' & NA=NA' & NB=NB' & X=X'";
by (etac otway.induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
by (ALLGOALS Clarify_tac);
(*Remaining cases: OR3 and OR4*)
by (ex_strip_tac 2);
@@ -203,7 +203,7 @@
by (expand_case_tac "K = ?y" 1);
by (REPEAT (ares_tac [refl,exI,impI,conjI] 2));
(*...we assume X is a recent message, and handle this case by contradiction*)
-by (blast_tac (!claset addSEs spies_partsEs
+by (blast_tac (claset() addSEs spies_partsEs
delrules [conjI] (*no split-up into 4 subgoals*)) 1);
val lemma = result();
@@ -239,10 +239,10 @@
\ --> B = B'";
by (parts_induct_tac 1);
by (Fake_parts_insert_tac 1);
-by (simp_tac (!simpset addsimps [all_conj_distrib]) 1);
+by (simp_tac (simpset() addsimps [all_conj_distrib]) 1);
(*OR1: creation of new Nonce. Move assertion into global context*)
by (expand_case_tac "NA = ?y" 1);
-by (blast_tac (!claset addSEs spies_partsEs) 1);
+by (blast_tac (claset() addSEs spies_partsEs) 1);
val lemma = result();
goal thy
@@ -264,7 +264,7 @@
\ ~: parts (spies evs)";
by (parts_induct_tac 1);
by (Fake_parts_insert_tac 1);
-by (REPEAT (blast_tac (!claset addSEs spies_partsEs
+by (REPEAT (blast_tac (claset() addSEs spies_partsEs
addSDs [impOfSubs parts_insert_subset_Un]) 1));
qed_spec_mp"no_nonce_OR1_OR2";
@@ -285,20 +285,20 @@
by (parts_induct_tac 1);
by (Fake_parts_insert_tac 1);
(*OR1: it cannot be a new Nonce, contradiction.*)
-by (blast_tac (!claset addSIs [parts_insertI] addSEs spies_partsEs) 1);
+by (blast_tac (claset() addSIs [parts_insertI] addSEs spies_partsEs) 1);
(*OR3 and OR4*)
-by (asm_simp_tac (!simpset addsimps [ex_disj_distrib]) 1);
+by (asm_simp_tac (simpset() addsimps [ex_disj_distrib]) 1);
by (rtac conjI 1);
by (ALLGOALS Clarify_tac);
(*OR4*)
-by (blast_tac (!claset addSIs [Crypt_imp_OR1]
+by (blast_tac (claset() addSIs [Crypt_imp_OR1]
addEs spies_partsEs) 3);
(*OR3, two cases*) (** LEVEL 5 **)
-by (blast_tac (!claset addSEs [MPair_parts]
+by (blast_tac (claset() addSEs [MPair_parts]
addSDs [Says_imp_spies RS parts.Inj]
addEs [no_nonce_OR1_OR2 RSN (2, rev_notE)]
delrules [conjI] (*stop split-up into 4 subgoals*)) 2);
-by (blast_tac (!claset addSDs [Says_imp_spies RS parts.Inj]
+by (blast_tac (claset() addSDs [Says_imp_spies RS parts.Inj]
addSEs [MPair_parts]
addIs [unique_NA]) 1);
qed_spec_mp "NA_Crypt_imp_Server_msg";
@@ -318,7 +318,7 @@
\ Crypt (shrK A) {|NA, Key K|}, \
\ Crypt (shrK B) {|NB, Key K|}|} \
\ : set evs";
-by (blast_tac (!claset addSIs [NA_Crypt_imp_Server_msg]
+by (blast_tac (claset() addSIs [NA_Crypt_imp_Server_msg]
addEs spies_partsEs) 1);
qed "A_trusts_OR4";
@@ -337,15 +337,15 @@
by (etac otway.induct 1);
by analz_spies_tac;
by (ALLGOALS
- (asm_simp_tac (!simpset addcongs [conj_cong]
+ (asm_simp_tac (simpset() addcongs [conj_cong]
addsimps [analz_insert_eq, analz_insert_freshK]
addsimps (pushes@expand_ifs))));
(*Oops*)
-by (blast_tac (!claset addSDs [unique_session_keys]) 4);
+by (blast_tac (claset() addSDs [unique_session_keys]) 4);
(*OR4*)
by (Blast_tac 3);
(*OR3*)
-by (blast_tac (!claset addSEs spies_partsEs
+by (blast_tac (claset() addSEs spies_partsEs
addIs [impOfSubs analz_subset_parts]) 2);
(*Fake*)
by (spy_analz_tac 1);
@@ -359,7 +359,7 @@
\ A ~: bad; B ~: bad; evs : otway |] \
\ ==> Key K ~: analz (spies evs)";
by (forward_tac [Says_Server_message_form] 1 THEN assume_tac 1);
-by (blast_tac (!claset addSEs [lemma]) 1);
+by (blast_tac (claset() addSEs [lemma]) 1);
qed "Spy_not_see_encrypted_key";
@@ -390,10 +390,10 @@
\ --> NA = NA' & A = A'";
by (parts_induct_tac 1);
by (Fake_parts_insert_tac 1);
-by (simp_tac (!simpset addsimps [all_conj_distrib]) 1);
+by (simp_tac (simpset() addsimps [all_conj_distrib]) 1);
(*OR2: creation of new Nonce. Move assertion into global context*)
by (expand_case_tac "NB = ?y" 1);
-by (blast_tac (!claset addSEs spies_partsEs) 1);
+by (blast_tac (claset() addSEs spies_partsEs) 1);
val lemma = result();
goal thy
@@ -421,16 +421,16 @@
by (parts_induct_tac 1);
by (Fake_parts_insert_tac 1);
(*OR1: it cannot be a new Nonce, contradiction.*)
-by (blast_tac (!claset addSIs [parts_insertI] addSEs spies_partsEs) 1);
+by (blast_tac (claset() addSIs [parts_insertI] addSEs spies_partsEs) 1);
(*OR4*)
-by (blast_tac (!claset addSEs [MPair_parts, Crypt_imp_OR2]) 2);
+by (blast_tac (claset() addSEs [MPair_parts, Crypt_imp_OR2]) 2);
(*OR3*)
-by (safe_tac (!claset delrules [disjCI, impCE]));
-by (blast_tac (!claset delrules [conjI] (*stop split-up*)) 3);
-by (blast_tac (!claset addSDs [Says_imp_spies RS parts.Inj]
+by (safe_tac (claset() delrules [disjCI, impCE]));
+by (blast_tac (claset() delrules [conjI] (*stop split-up*)) 3);
+by (blast_tac (claset() addSDs [Says_imp_spies RS parts.Inj]
addSEs [MPair_parts]
addDs [unique_NB]) 2);
-by (blast_tac (!claset addSEs [MPair_parts, no_nonce_OR1_OR2 RSN (2, rev_notE)]
+by (blast_tac (claset() addSEs [MPair_parts, no_nonce_OR1_OR2 RSN (2, rev_notE)]
addSDs [Says_imp_spies RS parts.Inj]
delrules [conjI, impCE] (*stop split-up*)) 1);
qed_spec_mp "NB_Crypt_imp_Server_msg";
@@ -449,7 +449,7 @@
\ Crypt (shrK A) {|NA, Key K|}, \
\ Crypt (shrK B) {|NB, Key K|}|} \
\ : set evs";
-by (blast_tac (!claset addSIs [NB_Crypt_imp_Server_msg]
+by (blast_tac (claset() addSIs [NB_Crypt_imp_Server_msg]
addSEs spies_partsEs) 1);
qed "B_trusts_OR3";
@@ -467,7 +467,7 @@
\ : set evs)";
by (etac otway.induct 1);
by (ALLGOALS Asm_simp_tac);
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj]
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj]
addSEs [MPair_parts, Crypt_imp_OR2]) 3);
by (ALLGOALS Blast_tac);
bind_thm ("OR3_imp_OR2", result() RSN (2,rev_mp) RS exE);
@@ -484,6 +484,6 @@
\ ==> EX NB X. Says B Server {|NA, Agent A, Agent B, X, \
\ Crypt (shrK B) {|NA, NB, Agent A, Agent B|} |}\
\ : set evs";
-by (blast_tac (!claset addSDs [A_trusts_OR4]
+by (blast_tac (claset() addSDs [A_trusts_OR4]
addSEs [OR3_imp_OR2]) 1);
qed "A_auths_B";
--- a/src/HOL/Auth/OtwayRees_AN.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/OtwayRees_AN.ML Mon Nov 03 12:24:13 1997 +0100
@@ -45,12 +45,12 @@
goal thy "!!evs. Says S' B {|X, Crypt(shrK B) X'|} : set evs ==> \
\ X : analz (spies evs)";
-by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
+by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
qed "OR4_analz_spies";
goal thy "!!evs. Says Server B {|X, Crypt K' {|NB, a, Agent B, K|}|} \
\ : set evs ==> K : parts (spies evs)";
-by (blast_tac (!claset addSEs spies_partsEs) 1);
+by (blast_tac (claset() addSEs spies_partsEs) 1);
qed "Oops_parts_spies";
(*OR4_analz_spies lets us treat those cases using the same
@@ -82,12 +82,12 @@
goal thy
"!!evs. evs : otway ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
-by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
+by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
qed "Spy_analz_shrK";
Addsimps [Spy_analz_shrK];
goal thy "!!A. [| Key (shrK A) : parts (spies evs); evs : otway |] ==> A:bad";
-by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
+by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
qed "Spy_see_shrK_D";
bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
@@ -100,10 +100,10 @@
by (parts_induct_tac 1);
(*Fake*)
by (best_tac
- (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
+ (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
addIs [impOfSubs analz_subset_parts]
addDs [impOfSubs (analz_subset_parts RS keysFor_mono)]
- addss (!simpset)) 1);
+ addss (simpset())) 1);
(*OR3*)
by (Blast_tac 1);
qed_spec_mp "new_keys_not_used";
@@ -189,7 +189,7 @@
\ Crypt (shrK B) {|NB, Agent A, Agent B, K|}|} : set evs \
\ --> A=A' & B=B' & NA=NA' & NB=NB'";
by (etac otway.induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
by (ALLGOALS Clarify_tac);
(*Remaining cases: OR3 and OR4*)
by (ex_strip_tac 2);
@@ -197,7 +197,7 @@
by (expand_case_tac "K = ?y" 1);
by (REPEAT (ares_tac [refl,exI,impI,conjI] 2));
(*...we assume X is a recent message and handle this case by contradiction*)
-by (blast_tac (!claset addSEs spies_partsEs
+by (blast_tac (claset() addSEs spies_partsEs
delrules[conjI] (*prevent splitup into 4 subgoals*)) 1);
val lemma = result();
@@ -230,7 +230,7 @@
\ : set evs)";
by (parts_induct_tac 1);
by (Fake_parts_insert_tac 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [ex_disj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [ex_disj_distrib])));
(*OR3*)
by (Blast_tac 1);
qed_spec_mp "NA_Crypt_imp_Server_msg";
@@ -246,7 +246,7 @@
\ {|Crypt (shrK A) {|NA, Agent A, Agent B, Key K|}, \
\ Crypt (shrK B) {|NB, Agent A, Agent B, Key K|}|} \
\ : set evs";
-by (blast_tac (!claset addSIs [NA_Crypt_imp_Server_msg]
+by (blast_tac (claset() addSIs [NA_Crypt_imp_Server_msg]
addEs spies_partsEs) 1);
qed "A_trusts_OR4";
@@ -266,15 +266,15 @@
by (etac otway.induct 1);
by analz_spies_tac;
by (ALLGOALS
- (asm_simp_tac (!simpset addcongs [conj_cong, if_weak_cong]
+ (asm_simp_tac (simpset() addcongs [conj_cong, if_weak_cong]
addsimps [analz_insert_eq, analz_insert_freshK]
addsimps (pushes@expand_ifs))));
(*Oops*)
-by (blast_tac (!claset addSDs [unique_session_keys]) 4);
+by (blast_tac (claset() addSDs [unique_session_keys]) 4);
(*OR4*)
by (Blast_tac 3);
(*OR3*)
-by (blast_tac (!claset addSEs spies_partsEs
+by (blast_tac (claset() addSEs spies_partsEs
addIs [impOfSubs analz_subset_parts]) 2);
(*Fake*)
by (spy_analz_tac 1);
@@ -289,7 +289,7 @@
\ A ~: bad; B ~: bad; evs : otway |] \
\ ==> Key K ~: analz (spies evs)";
by (forward_tac [Says_Server_message_form] 1 THEN assume_tac 1);
-by (blast_tac (!claset addSEs [lemma]) 1);
+by (blast_tac (claset() addSEs [lemma]) 1);
qed "Spy_not_see_encrypted_key";
@@ -305,7 +305,7 @@
\ : set evs)";
by (parts_induct_tac 1);
by (Fake_parts_insert_tac 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [ex_disj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [ex_disj_distrib])));
(*OR3*)
by (Blast_tac 1);
qed_spec_mp "NB_Crypt_imp_Server_msg";
@@ -321,6 +321,6 @@
\ {|Crypt (shrK A) {|NA, Agent A, Agent B, Key K|}, \
\ Crypt (shrK B) {|NB, Agent A, Agent B, Key K|}|} \
\ : set evs";
-by (blast_tac (!claset addSIs [NB_Crypt_imp_Server_msg]
+by (blast_tac (claset() addSIs [NB_Crypt_imp_Server_msg]
addEs spies_partsEs) 1);
qed "B_trusts_OR3";
--- a/src/HOL/Auth/OtwayRees_Bad.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/OtwayRees_Bad.ML Mon Nov 03 12:24:13 1997 +0100
@@ -48,17 +48,17 @@
goal thy "!!evs. Says A' B {|N, Agent A, Agent B, X|} : set evs ==> \
\ X : analz (spies evs)";
-by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
+by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
qed "OR2_analz_spies";
goal thy "!!evs. Says S' B {|N, X, Crypt (shrK B) X'|} : set evs ==> \
\ X : analz (spies evs)";
-by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
+by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
qed "OR4_analz_spies";
goal thy "!!evs. Says Server B {|NA, X, Crypt K' {|NB,K|}|} : set evs \
\ ==> K : parts (spies evs)";
-by (blast_tac (!claset addSEs spies_partsEs) 1);
+by (blast_tac (claset() addSEs spies_partsEs) 1);
qed "Oops_parts_spies";
(*OR2_analz... and OR4_analz... let us treat those cases using the same
@@ -94,12 +94,12 @@
goal thy
"!!evs. evs : otway ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
-by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
+by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
qed "Spy_analz_shrK";
Addsimps [Spy_analz_shrK];
goal thy "!!A. [| Key (shrK A) : parts (spies evs); evs : otway |] ==> A:bad";
-by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
+by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
qed "Spy_see_shrK_D";
bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
@@ -112,10 +112,10 @@
by (parts_induct_tac 1);
(*Fake*)
by (best_tac
- (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
+ (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
addIs [impOfSubs analz_subset_parts]
addDs [impOfSubs (analz_subset_parts RS keysFor_mono)]
- addss (!simpset)) 1);
+ addss (simpset())) 1);
(*OR1-3*)
by (ALLGOALS Blast_tac);
qed_spec_mp "new_keys_not_used";
@@ -198,7 +198,7 @@
\ Says Server B {|NA, X, Crypt (shrK B) {|NB, K|}|} : set evs --> \
\ B=B' & NA=NA' & NB=NB' & X=X'";
by (etac otway.induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
by (ALLGOALS Clarify_tac);
(*Remaining cases: OR3 and OR4*)
by (ex_strip_tac 2);
@@ -206,7 +206,7 @@
by (expand_case_tac "K = ?y" 1);
by (REPEAT (ares_tac [refl,exI,impI,conjI] 2));
(*...we assume X is a recent message, and handle this case by contradiction*)
-by (blast_tac (!claset addSEs spies_partsEs
+by (blast_tac (claset() addSEs spies_partsEs
delrules [conjI] (*no split-up to 4 subgoals*)) 1);
val lemma = result();
@@ -229,15 +229,15 @@
by (etac otway.induct 1);
by analz_spies_tac;
by (ALLGOALS
- (asm_simp_tac (!simpset addcongs [conj_cong]
+ (asm_simp_tac (simpset() addcongs [conj_cong]
addsimps [analz_insert_eq, analz_insert_freshK]
addsimps (pushes@expand_ifs))));
(*Oops*)
-by (blast_tac (!claset addSDs [unique_session_keys]) 4);
+by (blast_tac (claset() addSDs [unique_session_keys]) 4);
(*OR4*)
by (Blast_tac 3);
(*OR3*)
-by (blast_tac (!claset addSEs spies_partsEs
+by (blast_tac (claset() addSEs spies_partsEs
addIs [impOfSubs analz_subset_parts]) 2);
(*Fake*)
by (spy_analz_tac 1);
@@ -251,7 +251,7 @@
\ A ~: bad; B ~: bad; evs : otway |] \
\ ==> Key K ~: analz (spies evs)";
by (forward_tac [Says_Server_message_form] 1 THEN assume_tac 1);
-by (blast_tac (!claset addSEs [lemma]) 1);
+by (blast_tac (claset() addSEs [lemma]) 1);
qed "Spy_not_see_encrypted_key";
@@ -289,13 +289,13 @@
by (parts_induct_tac 1);
by (Fake_parts_insert_tac 1);
(*OR1: it cannot be a new Nonce, contradiction.*)
-by (blast_tac (!claset addSIs [parts_insertI]
+by (blast_tac (claset() addSIs [parts_insertI]
addSEs spies_partsEs) 1);
(*OR3 and OR4*)
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [ex_disj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [ex_disj_distrib])));
by (ALLGOALS Clarify_tac);
(*OR4*)
-by (blast_tac (!claset addSIs [Crypt_imp_OR1]
+by (blast_tac (claset() addSIs [Crypt_imp_OR1]
addEs spies_partsEs) 2);
(*OR3*) (** LEVEL 5 **)
(*The hypotheses at this point suggest an attack in which nonce NB is used
--- a/src/HOL/Auth/Public.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/Public.ML Mon Nov 03 12:24:13 1997 +0100
@@ -39,7 +39,7 @@
goalw thy [keysFor_def] "keysFor (parts (initState C)) = {}";
by (induct_tac "C" 1);
-by (auto_tac (!claset addIs [range_eqI], !simpset));
+by (auto_tac (claset() addIs [range_eqI], simpset()));
qed "keysFor_parts_initState";
Addsimps [keysFor_parts_initState];
@@ -57,7 +57,7 @@
goal thy "Key (pubK A) : spies evs";
by (induct_tac "evs" 1);
by (ALLGOALS (asm_simp_tac
- (!simpset addsimps [imageI, spies_Cons]
+ (simpset() addsimps [imageI, spies_Cons]
addsplits [expand_event_case, expand_if])));
qed_spec_mp "spies_pubK";
@@ -65,7 +65,7 @@
goal thy "!!A. A: bad ==> Key (priK A) : spies evs";
by (induct_tac "evs" 1);
by (ALLGOALS (asm_simp_tac
- (!simpset addsimps [imageI, spies_Cons]
+ (simpset() addsimps [imageI, spies_Cons]
addsplits [expand_event_case, expand_if])));
qed "Spy_spies_bad";
@@ -76,7 +76,7 @@
(*For not_bad_tac*)
goal thy "!!A. [| Crypt (pubK A) X : analz (spies evs); A: bad |] \
\ ==> X : analz (spies evs)";
-by (blast_tac (!claset addSDs [analz.Decrypt]) 1);
+by (blast_tac (claset() addSDs [analz.Decrypt]) 1);
qed "Crypt_Spy_analz_bad";
(*Prove that the agent is uncompromised by the confidentiality of
@@ -101,7 +101,7 @@
AddIffs [Nonce_notin_initState];
goal thy "Nonce N ~: used []";
-by (simp_tac (!simpset addsimps [used_Nil]) 1);
+by (simp_tac (simpset() addsimps [used_Nil]) 1);
qed "Nonce_notin_used_empty";
Addsimps [Nonce_notin_used_empty];
@@ -113,11 +113,11 @@
by (induct_tac "evs" 1);
by (res_inst_tac [("x","0")] exI 1);
by (ALLGOALS (asm_simp_tac
- (!simpset addsimps [used_Cons]
+ (simpset() addsimps [used_Cons]
addsplits [expand_event_case, expand_if])));
by Safe_tac;
by (ALLGOALS (rtac (msg_Nonce_supply RS exE)));
-by (ALLGOALS (blast_tac (!claset addSEs [add_leE])));
+by (ALLGOALS (blast_tac (claset() addSEs [add_leE])));
val lemma = result();
goal thy "EX N. Nonce N ~: used evs";
@@ -134,7 +134,7 @@
(*Tactic for possibility theorems*)
fun possibility_tac st = st |>
REPEAT (*omit used_Says so that Nonces start from different traces!*)
- (ALLGOALS (simp_tac (!simpset delsimps [used_Says] setSolver safe_solver))
+ (ALLGOALS (simp_tac (simpset() delsimps [used_Says] setSolver safe_solver))
THEN
REPEAT_FIRST (eq_assume_tac ORELSE'
resolve_tac [refl, conjI, Nonce_supply]));
@@ -153,7 +153,7 @@
(*Reverse the normal simplification of "image" to build up (not break down)
the set of keys. Based on analz_image_freshK_ss, but simpler.*)
val analz_image_keys_ss =
- !simpset addcongs [if_weak_cong]
+ simpset() addcongs [if_weak_cong]
delsimps [image_insert, image_Un]
delsimps [imp_disjL] (*reduces blow-up*)
addsimps [image_insert RS sym, image_Un RS sym,
--- a/src/HOL/Auth/Recur.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/Recur.ML Mon Nov 03 12:24:13 1997 +0100
@@ -99,8 +99,8 @@
\ ==> Key K ~: used evs";
by (etac rev_mp 1);
by (etac respond.induct 1);
-by (auto_tac(!claset addDs [Key_not_used, respond_imp_not_used],
- !simpset));
+by (auto_tac(claset() addDs [Key_not_used, respond_imp_not_used],
+ simpset()));
qed_spec_mp "Key_in_parts_respond";
(*Simple inductive reasoning about responses*)
@@ -116,7 +116,7 @@
goal thy "!!evs. Says C' B {|Crypt K X, X', RA|} : set evs \
\ ==> RA : analz (spies evs)";
-by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
+by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
qed "RA4_analz_spies";
(*RA2_analz... and RA4_analz... let us treat those cases using the same
@@ -150,22 +150,22 @@
by (parts_induct_tac 1);
by (Fake_parts_insert_tac 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps [parts_insert2, parts_insert_spies])));
+ (asm_simp_tac (simpset() addsimps [parts_insert2, parts_insert_spies])));
(*RA3*)
-by (blast_tac (!claset addDs [Key_in_parts_respond]) 2);
+by (blast_tac (claset() addDs [Key_in_parts_respond]) 2);
(*RA2*)
-by (blast_tac (!claset addSEs partsEs addDs [parts_cut]) 1);
+by (blast_tac (claset() addSEs partsEs addDs [parts_cut]) 1);
qed "Spy_see_shrK";
Addsimps [Spy_see_shrK];
goal thy
"!!evs. evs : recur ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
-by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
+by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
qed "Spy_analz_shrK";
Addsimps [Spy_analz_shrK];
goal thy "!!A. [| Key (shrK A) : parts (spies evs); evs : recur |] ==> A:bad";
-by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
+by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
qed "Spy_see_shrK_D";
bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
@@ -188,14 +188,14 @@
\ Key K ~: used evs --> K ~: keysFor (parts (spies evs))";
by (parts_induct_tac 1);
(*RA3*)
-by (best_tac (!claset addDs [Key_in_keysFor_parts]
- addss (!simpset addsimps [parts_insert_spies])) 2);
+by (best_tac (claset() addDs [Key_in_keysFor_parts]
+ addss (simpset() addsimps [parts_insert_spies])) 2);
(*Fake*)
by (best_tac
- (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
+ (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
addIs [impOfSubs analz_subset_parts]
addDs [impOfSubs (analz_subset_parts RS keysFor_mono)]
- addss (!simpset)) 1);
+ addss (simpset())) 1);
qed_spec_mp "new_keys_not_used";
@@ -283,7 +283,7 @@
by (etac responses.induct 2);
by (ALLGOALS Asm_simp_tac);
(*Fake*)
-by (simp_tac (!simpset addsimps [parts_insert_spies]) 1);
+by (simp_tac (simpset() addsimps [parts_insert_spies]) 1);
by (Fake_parts_insert_tac 1);
qed "Hash_imp_body";
@@ -302,12 +302,12 @@
by (parts_induct_tac 1);
by (Fake_parts_insert_tac 1);
by (etac responses.induct 3);
-by (ALLGOALS (simp_tac (!simpset addsimps [all_conj_distrib])));
-by (clarify_tac (!claset addSEs partsEs) 1);
+by (ALLGOALS (simp_tac (simpset() addsimps [all_conj_distrib])));
+by (clarify_tac (claset() addSEs partsEs) 1);
(*RA1,2: creation of new Nonce. Move assertion into global context*)
by (ALLGOALS (expand_case_tac "NA = ?y"));
by (REPEAT_FIRST (ares_tac [exI]));
-by (REPEAT (blast_tac (!claset addSDs [Hash_imp_body]
+by (REPEAT (blast_tac (claset() addSDs [Hash_imp_body]
addSEs spies_partsEs) 1));
val lemma = result();
@@ -349,8 +349,8 @@
(asm_simp_tac
(analz_image_freshK_ss addsimps [resp_analz_image_freshK_lemma])));
(*Simplification using two distinct treatments of "image"*)
-by (simp_tac (!simpset addsimps [parts_insert2]) 1);
-by (blast_tac (!claset delrules [allE]) 1);
+by (simp_tac (simpset() addsimps [parts_insert2]) 1);
+by (blast_tac (claset() delrules [allE]) 1);
qed "resp_analz_insert_lemma";
bind_thm ("resp_analz_insert",
@@ -385,13 +385,13 @@
\ Crypt (shrK A) {|Key K, Agent B, N|} : parts {RB} \
\ --> (A'=A & B'=B) | (A'=B & B'=A)";
by (etac respond.induct 1);
-by (ALLGOALS (asm_full_simp_tac (!simpset addsimps [all_conj_distrib])));
+by (ALLGOALS (asm_full_simp_tac (simpset() addsimps [all_conj_distrib])));
(*Base case*)
by (Blast_tac 1);
by Safe_tac;
by (expand_case_tac "K = KBC" 1);
by (dtac respond_Key_in_parts 1);
-by (blast_tac (!claset addSIs [exI]
+by (blast_tac (claset() addSIs [exI]
addSEs partsEs
addDs [Key_in_parts_respond]) 1);
by (expand_case_tac "K = KAB" 1);
@@ -428,18 +428,18 @@
addsimps expand_ifs
addsimps
[shrK_in_analz_respond, resp_analz_image_freshK, parts_insert2])));
-by (ALLGOALS (simp_tac (!simpset addsimps [ex_disj_distrib])));
+by (ALLGOALS (simp_tac (simpset() addsimps [ex_disj_distrib])));
(** LEVEL 5 **)
-by (blast_tac (!claset addIs [impOfSubs analz_subset_parts]) 1);
+by (blast_tac (claset() addIs [impOfSubs analz_subset_parts]) 1);
by (REPEAT_FIRST (resolve_tac [allI, conjI, impI]));
by (ALLGOALS Clarify_tac);
-by (blast_tac (!claset addSDs [resp_analz_insert]
+by (blast_tac (claset() addSDs [resp_analz_insert]
addIs [impOfSubs analz_subset_parts]) 2);
-by (blast_tac (!claset addSDs [respond_certificate]) 1);
+by (blast_tac (claset() addSDs [respond_certificate]) 1);
by (Asm_full_simp_tac 1);
(*by unicity, either B=Aa or B=A', a contradiction if B: bad*)
by (blast_tac
- (!claset addSEs [MPair_parts]
+ (claset() addSEs [MPair_parts]
addDs [parts.Body,
respond_certificate RSN (2, unique_session_keys)]) 1);
qed_spec_mp "respond_Spy_not_see_session_key";
@@ -454,7 +454,7 @@
by analz_spies_tac;
by (ALLGOALS
(asm_simp_tac
- (!simpset addsimps (expand_ifs @
+ (simpset() addsimps (expand_ifs @
[analz_insert_eq, parts_insert_spies,
analz_insert_freshK]))));
(*RA4*)
@@ -466,13 +466,13 @@
(*Base*)
by (Blast_tac 1);
(*RA3 remains*)
-by (safe_tac (!claset delrules [impCE]));
+by (safe_tac (claset() delrules [impCE]));
(*RA3, case 2: K is an old key*)
-by (blast_tac (!claset addSDs [resp_analz_insert]
+by (blast_tac (claset() addSDs [resp_analz_insert]
addSEs partsEs
addDs [Key_in_parts_respond]) 2);
(*RA3, case 1: use lemma previously proved by induction*)
-by (blast_tac (!claset addSEs [respond_Spy_not_see_session_key RSN
+by (blast_tac (claset() addSEs [respond_Spy_not_see_session_key RSN
(2,rev_notE)]) 1);
qed "Spy_not_see_session_key";
@@ -501,7 +501,7 @@
by (parts_induct_tac 1);
by (Fake_parts_insert_tac 1);
(*RA3*)
-by (blast_tac (!claset addSDs [Hash_in_parts_respond]) 1);
+by (blast_tac (claset() addSDs [Hash_in_parts_respond]) 1);
qed_spec_mp "Hash_auth_sender";
(** These two results subsume (for all agents) the guarantees proved
@@ -521,7 +521,7 @@
(*RA4*)
by (Blast_tac 4);
(*RA3*)
-by (full_simp_tac (!simpset addsimps [parts_insert_spies]) 3
+by (full_simp_tac (simpset() addsimps [parts_insert_spies]) 3
THEN Blast_tac 3);
(*RA1*)
by (Blast_tac 1);
--- a/src/HOL/Auth/Shared.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/Shared.ML Mon Nov 03 12:24:13 1997 +0100
@@ -35,7 +35,7 @@
goal thy "!!A. A: bad ==> Key (shrK A) : spies evs";
by (induct_tac "evs" 1);
by (ALLGOALS (asm_simp_tac
- (!simpset addsimps [imageI, spies_Cons]
+ (simpset() addsimps [imageI, spies_Cons]
addsplits [expand_event_case, expand_if])));
qed "Spy_spies_bad";
@@ -44,7 +44,7 @@
(*For not_bad_tac*)
goal thy "!!A. [| Crypt (shrK A) X : analz (spies evs); A: bad |] \
\ ==> X : analz (spies evs)";
-by (fast_tac (!claset addSDs [analz.Decrypt] addss (!simpset)) 1);
+by (fast_tac (claset() addSDs [analz.Decrypt] addss (simpset())) 1);
qed "Crypt_Spy_analz_bad";
(*Prove that the agent is uncompromised by the confidentiality of
@@ -97,7 +97,7 @@
AddIffs [Nonce_notin_initState];
goal thy "Nonce N ~: used []";
-by (simp_tac (!simpset addsimps [used_Nil]) 1);
+by (simp_tac (simpset() addsimps [used_Nil]) 1);
qed "Nonce_notin_used_empty";
Addsimps [Nonce_notin_used_empty];
@@ -109,11 +109,11 @@
by (induct_tac "evs" 1);
by (res_inst_tac [("x","0")] exI 1);
by (ALLGOALS (asm_simp_tac
- (!simpset addsimps [used_Cons]
+ (simpset() addsimps [used_Cons]
addsplits [expand_event_case, expand_if])));
by Safe_tac;
by (ALLGOALS (rtac (msg_Nonce_supply RS exE)));
-by (ALLGOALS (blast_tac (!claset addSEs [add_leE])));
+by (ALLGOALS (blast_tac (claset() addSEs [add_leE])));
val lemma = result();
goal thy "EX N. Nonce N ~: used evs";
@@ -127,7 +127,7 @@
by (Clarify_tac 1);
by (res_inst_tac [("x","N")] exI 1);
by (res_inst_tac [("x","Suc (N+Na)")] exI 1);
-by (asm_simp_tac (!simpset addsimps [less_not_refl2 RS not_sym,
+by (asm_simp_tac (simpset() addsimps [less_not_refl2 RS not_sym,
le_add2, le_add1,
le_eq_less_Suc RS sym]) 1);
qed "Nonce_supply2";
@@ -141,12 +141,12 @@
by (res_inst_tac [("x","N")] exI 1);
by (res_inst_tac [("x","Suc (N+Na)")] exI 1);
by (res_inst_tac [("x","Suc (Suc (N+Na+Nb))")] exI 1);
-by (asm_simp_tac (!simpset addsimps [less_not_refl2 RS not_sym,
+by (asm_simp_tac (simpset() addsimps [less_not_refl2 RS not_sym,
le_add2, le_add1,
le_eq_less_Suc RS sym]) 1);
by (rtac (less_trans RS less_not_refl2 RS not_sym) 1);
by (stac (le_eq_less_Suc RS sym) 1);
-by (asm_simp_tac (!simpset addsimps [le_eq_less_Suc RS sym]) 2);
+by (asm_simp_tac (simpset() addsimps [le_eq_less_Suc RS sym]) 2);
by (REPEAT (rtac le_add1 1));
qed "Nonce_supply3";
@@ -182,7 +182,7 @@
(Finites.emptyI RS Finites.insertI RS Finites.insertI RS Key_supply_ax) 1);
by (Clarify_tac 1);
by (Full_simp_tac 1);
-by (fast_tac (!claset addSEs [allE]) 1);
+by (fast_tac (claset() addSEs [allE]) 1);
qed "Key_supply3";
goal thy "Key (@ K. Key K ~: used evs) ~: used evs";
@@ -197,7 +197,7 @@
such as Nonce ?N ~: used evs that match Nonce_supply*)
fun possibility_tac st = st |>
(REPEAT
- (ALLGOALS (simp_tac (!simpset delsimps [used_Says] setSolver safe_solver))
+ (ALLGOALS (simp_tac (simpset() delsimps [used_Says] setSolver safe_solver))
THEN
REPEAT_FIRST (eq_assume_tac ORELSE'
resolve_tac [refl, conjI, Nonce_supply, Key_supply])));
@@ -206,7 +206,7 @@
nonces and keys initially*)
fun basic_possibility_tac st = st |>
REPEAT
- (ALLGOALS (asm_simp_tac (!simpset setSolver safe_solver))
+ (ALLGOALS (asm_simp_tac (simpset() setSolver safe_solver))
THEN
REPEAT_FIRST (resolve_tac [refl, conjI]));
@@ -229,7 +229,7 @@
the set of keys. Use analz_insert_eq with (Un_upper2 RS analz_mono) to
erase occurrences of forwarded message components (X).*)
val analz_image_freshK_ss =
- !simpset addcongs [if_weak_cong]
+ simpset() addcongs [if_weak_cong]
delsimps [image_insert, image_Un]
delsimps [imp_disjL] (*reduces blow-up*)
addsimps ([image_insert RS sym, image_Un RS sym,
@@ -243,5 +243,5 @@
goal thy
"!!evs. (Key K : analz (Key``nE Un H)) --> (K : nE | Key K : analz H) ==> \
\ (Key K : analz (Key``nE Un H)) = (K : nE | Key K : analz H)";
-by (blast_tac (!claset addIs [impOfSubs analz_mono]) 1);
+by (blast_tac (claset() addIs [impOfSubs analz_mono]) 1);
qed "analz_image_freshK_lemma";
--- a/src/HOL/Auth/TLS.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/TLS.ML Mon Nov 03 12:24:13 1997 +0100
@@ -144,8 +144,8 @@
THEN
REPEAT (FIRSTGOAL analz_mono_contra_tac)
THEN
- fast_tac (!claset addss (!simpset)) i THEN
- ALLGOALS (asm_simp_tac (!simpset addsplits [expand_if]));
+ fast_tac (claset() addss (simpset())) i THEN
+ ALLGOALS (asm_simp_tac (simpset() addsplits [expand_if]));
(** Theorems of the form X ~: parts (spies evs) imply that NOBODY
@@ -161,12 +161,12 @@
goal thy
"!!evs. evs : tls ==> (Key (priK A) : analz (spies evs)) = (A : bad)";
-by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
+by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
qed "Spy_analz_priK";
Addsimps [Spy_analz_priK];
goal thy "!!A. [| Key (priK A) : parts (spies evs); evs : tls |] ==> A:bad";
-by (blast_tac (!claset addDs [Spy_see_priK]) 1);
+by (blast_tac (claset() addDs [Spy_see_priK]) 1);
qed "Spy_see_priK_D";
bind_thm ("Spy_analz_priK_D", analz_subset_parts RS subsetD RS Spy_see_priK_D);
@@ -196,13 +196,13 @@
etac tls.induct i THEN
ClientKeyExch_tac (i+6) THEN (*ClientKeyExch*)
ALLGOALS (asm_simp_tac
- (!simpset addcongs [if_weak_cong]
+ (simpset() addcongs [if_weak_cong]
addsimps (expand_ifs@pushes)
addsplits [expand_if])) THEN
(*Remove instances of pubK B: the Spy already knows all public keys.
Combining the two simplifier calls makes them run extremely slowly.*)
ALLGOALS (asm_simp_tac
- (!simpset addcongs [if_weak_cong]
+ (simpset() addcongs [if_weak_cong]
addsimps [insert_absorb]
addsplits [expand_if]));
@@ -213,7 +213,7 @@
\ ==> Crypt (pubK B) X : parts (spies evs)";
by (etac rev_mp 1);
by (analz_induct_tac 1);
-by (blast_tac (!claset addIs [parts_insertI]) 1);
+by (blast_tac (claset() addIs [parts_insertI]) 1);
qed "Notes_Crypt_parts_spies";
(*C may be either A or B*)
@@ -225,9 +225,9 @@
by (parts_induct_tac 1);
by (ALLGOALS Clarify_tac);
(*Fake*)
-by (blast_tac (!claset addIs [parts_insertI]) 1);
+by (blast_tac (claset() addIs [parts_insertI]) 1);
(*Client, Server Accept*)
-by (REPEAT (blast_tac (!claset addSEs spies_partsEs
+by (REPEAT (blast_tac (claset() addSEs spies_partsEs
addSDs [Notes_Crypt_parts_spies]) 1));
qed "Notes_master_imp_Crypt_PMS";
@@ -264,7 +264,7 @@
\ certificate A KA : parts (spies evs); \
\ evs : tls; A ~: bad |] \
\ ==> Says A B X : set evs";
-by (blast_tac (!claset addSDs [certificate_valid] addSIs [lemma]) 1);
+by (blast_tac (claset() addSDs [certificate_valid] addSIs [lemma]) 1);
qed "TrustCertVerify";
@@ -286,7 +286,7 @@
\ certificate A KA : parts (spies evs); \
\ evs : tls; A ~: bad |] \
\ ==> Notes A {|Agent B, Nonce PMS|} : set evs";
-by (blast_tac (!claset addSDs [certificate_valid] addSIs [lemma]) 1);
+by (blast_tac (claset() addSDs [certificate_valid] addSIs [lemma]) 1);
qed "UseCertVerify";
@@ -303,10 +303,10 @@
\ ==> Nonce PMS : parts (spies evs)";
by (etac rev_mp 1);
by (parts_induct_tac 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [parts_insert_spies])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [parts_insert_spies])));
by (Fake_parts_insert_tac 1);
(*Six others, all trivial or by freshness*)
-by (REPEAT (blast_tac (!claset addSDs [Notes_Crypt_parts_spies]
+by (REPEAT (blast_tac (claset() addSDs [Notes_Crypt_parts_spies]
addSEs spies_partsEs) 1));
qed "MS_imp_PMS";
AddSDs [MS_imp_PMS];
@@ -325,9 +325,9 @@
by (Fake_parts_insert_tac 1);
(*ClientKeyExch*)
by (ClientKeyExch_tac 1);
-by (asm_simp_tac (!simpset addsimps [all_conj_distrib]) 1);
+by (asm_simp_tac (simpset() addsimps [all_conj_distrib]) 1);
by (expand_case_tac "PMS = ?y" 1 THEN
- blast_tac (!claset addSEs partsEs) 1);
+ blast_tac (claset() addSEs partsEs) 1);
val lemma = result();
goal thy
@@ -351,10 +351,10 @@
\ ==> EX A' B'. ALL A B. \
\ Notes A {|Agent B, Nonce PMS|} : set evs --> A=A' & B=B'";
by (parts_induct_tac 1);
-by (asm_simp_tac (!simpset addsimps [all_conj_distrib]) 1);
+by (asm_simp_tac (simpset() addsimps [all_conj_distrib]) 1);
(*ClientKeyExch: if PMS is fresh, then it can't appear in Notes A X.*)
by (expand_case_tac "PMS = ?y" 1 THEN
- blast_tac (!claset addSDs [Notes_Crypt_parts_spies] addSEs partsEs) 1);
+ blast_tac (claset() addSDs [Notes_Crypt_parts_spies] addSEs partsEs) 1);
val lemma = result();
goal thy
@@ -395,7 +395,7 @@
goal thy
"!!evs. (X : analz (G Un H)) --> (X : analz H) ==> \
\ (X : analz (G Un H)) = (X : analz H)";
-by (blast_tac (!claset addIs [impOfSubs analz_mono]) 1);
+by (blast_tac (claset() addIs [impOfSubs analz_mono]) 1);
val analz_image_keys_lemma = result();
(** Strangely, the following version doesn't work:
@@ -417,7 +417,7 @@
addsimps (expand_ifs@pushes)
addsimps [range_sessionkeys_not_priK,
analz_image_priK, certificate_def])));
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [insert_absorb])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [insert_absorb])));
(*Fake*)
by (spy_analz_tac 2);
(*Base*)
@@ -452,17 +452,17 @@
by (hyp_subst_tac 1);
by (analz_induct_tac 1);
(*SpyKeys*)
-by (blast_tac (!claset addSEs spies_partsEs) 3);
+by (blast_tac (claset() addSEs spies_partsEs) 3);
(*Fake*)
-by (simp_tac (!simpset addsimps [parts_insert_spies]) 2);
+by (simp_tac (simpset() addsimps [parts_insert_spies]) 2);
by (Fake_parts_insert_tac 2);
(** LEVEL 6 **)
(*Oops*)
-by (fast_tac (!claset addSEs [MPair_parts]
+by (fast_tac (claset() addSEs [MPair_parts]
addDs [Says_imp_spies RS parts.Inj]
- addss (!simpset)) 6);
+ addss (simpset())) 6);
by (REPEAT
- (blast_tac (!claset addSDs [Notes_Crypt_parts_spies,
+ (blast_tac (claset() addSDs [Notes_Crypt_parts_spies,
Notes_master_imp_Crypt_PMS]
addSEs spies_partsEs) 1));
val lemma = result();
@@ -470,7 +470,7 @@
goal thy
"!!evs. [| Nonce PMS ~: parts (spies evs); evs : tls |] \
\ ==> Key (sessionK((Na, Nb, PRF(PMS,NA,NB)), b)) ~: parts (spies evs)";
-by (blast_tac (!claset addDs [lemma]) 1);
+by (blast_tac (claset() addDs [lemma]) 1);
qed "PMS_sessionK_not_spied";
bind_thm ("PMS_sessionK_spiedE",
PMS_sessionK_not_spied RSN (2,rev_notE));
@@ -478,7 +478,7 @@
goal thy
"!!evs. [| Nonce PMS ~: parts (spies evs); evs : tls |] \
\ ==> Crypt (sessionK((Na, Nb, PRF(PMS,NA,NB)), b)) Y ~: parts (spies evs)";
-by (blast_tac (!claset addDs [lemma]) 1);
+by (blast_tac (claset() addDs [lemma]) 1);
qed "PMS_Crypt_sessionK_not_spied";
bind_thm ("PMS_Crypt_sessionK_spiedE",
PMS_Crypt_sessionK_not_spied RSN (2,rev_notE));
@@ -497,7 +497,7 @@
(*Oops*)
by (Blast_tac 4);
(*SpyKeys*)
-by (blast_tac (!claset addDs [Says_imp_spies RS analz.Inj]) 3);
+by (blast_tac (claset() addDs [Says_imp_spies RS analz.Inj]) 3);
(*Fake*)
by (spy_analz_tac 2);
(*Base*)
@@ -513,15 +513,15 @@
\ Nonce PMS ~: analz (spies evs)";
by (analz_induct_tac 1); (*11 seconds*)
(*ClientAccepts and ServerAccepts: because PMS ~: range PRF*)
-by (REPEAT (fast_tac (!claset addss (!simpset)) 6));
+by (REPEAT (fast_tac (claset() addss (simpset())) 6));
(*ClientHello, ServerHello, ClientKeyExch, ServerResume:
mostly freshness reasoning*)
-by (REPEAT (blast_tac (!claset addSEs partsEs
+by (REPEAT (blast_tac (claset() addSEs partsEs
addDs [Notes_Crypt_parts_spies,
impOfSubs analz_subset_parts,
Says_imp_spies RS analz.Inj]) 3));
(*SpyKeys*)
-by (fast_tac (!claset addss (!simpset)) 2);
+by (fast_tac (claset() addss (simpset())) 2);
(*Fake*)
by (spy_analz_tac 1);
bind_thm ("Spy_not_see_PMS", result() RSN (2, rev_mp));
@@ -535,18 +535,18 @@
\ Nonce (PRF(PMS,NA,NB)) ~: analz (spies evs)";
by (analz_induct_tac 1); (*13 seconds*)
(*ClientAccepts and ServerAccepts: because PMS was already visible*)
-by (REPEAT (blast_tac (!claset addDs [Spy_not_see_PMS,
+by (REPEAT (blast_tac (claset() addDs [Spy_not_see_PMS,
Says_imp_spies RS analz.Inj,
Notes_imp_spies RS analz.Inj]) 6));
(*ClientHello*)
by (Blast_tac 3);
(*SpyKeys: by secrecy of the PMS, Spy cannot make the MS*)
-by (blast_tac (!claset addSDs [Spy_not_see_PMS,
+by (blast_tac (claset() addSDs [Spy_not_see_PMS,
Says_imp_spies RS analz.Inj]) 2);
(*Fake*)
by (spy_analz_tac 1);
(*ServerHello and ClientKeyExch: mostly freshness reasoning*)
-by (REPEAT (blast_tac (!claset addSEs partsEs
+by (REPEAT (blast_tac (claset() addSEs partsEs
addDs [Notes_Crypt_parts_spies,
impOfSubs analz_subset_parts,
Says_imp_spies RS analz.Inj]) 1));
@@ -566,10 +566,10 @@
by (ALLGOALS Clarify_tac);
(*ClientFinished, ClientResume: by unicity of PMS*)
by (REPEAT
- (blast_tac (!claset addSDs [Notes_master_imp_Notes_PMS]
+ (blast_tac (claset() addSDs [Notes_master_imp_Notes_PMS]
addIs [Notes_unique_PMS RS conjunct1]) 2));
(*ClientKeyExch*)
-by (blast_tac (!claset addSEs [PMS_Crypt_sessionK_spiedE]
+by (blast_tac (claset() addSEs [PMS_Crypt_sessionK_spiedE]
addSDs [Says_imp_spies RS parts.Inj]) 1);
bind_thm ("Says_clientK_unique",
result() RSN(2,rev_mp) RSN(2,rev_mp));
@@ -589,9 +589,9 @@
by (Fake_parts_insert_tac 1);
by (ALLGOALS Asm_simp_tac);
(*Oops*)
-by (blast_tac (!claset addIs [Says_clientK_unique]) 2);
+by (blast_tac (claset() addIs [Says_clientK_unique]) 2);
(*ClientKeyExch*)
-by (blast_tac (!claset addSEs (PMS_sessionK_spiedE::spies_partsEs)) 1);
+by (blast_tac (claset() addSEs (PMS_sessionK_spiedE::spies_partsEs)) 1);
qed_spec_mp "clientK_Oops_ALL";
@@ -609,14 +609,14 @@
by (ALLGOALS Clarify_tac);
(*ServerResume, ServerFinished: by unicity of PMS*)
by (REPEAT
- (blast_tac (!claset addSEs [MPair_parts]
+ (blast_tac (claset() addSEs [MPair_parts]
addSDs [Notes_master_imp_Crypt_PMS,
Says_imp_spies RS parts.Inj]
addDs [Spy_not_see_PMS,
Notes_Crypt_parts_spies,
Crypt_unique_PMS]) 2));
(*ClientKeyExch*)
-by (blast_tac (!claset addSEs [PMS_Crypt_sessionK_spiedE]
+by (blast_tac (claset() addSEs [PMS_Crypt_sessionK_spiedE]
addSDs [Says_imp_spies RS parts.Inj]) 1);
bind_thm ("Says_serverK_unique",
result() RSN(2,rev_mp) RSN(2,rev_mp));
@@ -635,9 +635,9 @@
by (Fake_parts_insert_tac 1);
by (ALLGOALS Asm_simp_tac);
(*Oops*)
-by (blast_tac (!claset addIs [Says_serverK_unique]) 2);
+by (blast_tac (claset() addIs [Says_serverK_unique]) 2);
(*ClientKeyExch*)
-by (blast_tac (!claset addSEs (PMS_sessionK_spiedE::spies_partsEs)) 1);
+by (blast_tac (claset() addSEs (PMS_sessionK_spiedE::spies_partsEs)) 1);
qed_spec_mp "serverK_Oops_ALL";
@@ -660,15 +660,15 @@
\ X : parts (spies evs) --> Says B A X : set evs";
by (hyp_subst_tac 1);
by (analz_induct_tac 1); (*22 seconds*)
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
(*proves ServerResume*)
by (ALLGOALS Clarify_tac);
(*ClientKeyExch*)
by (fast_tac (*blast_tac gives PROOF FAILED*)
- (!claset addSEs [PMS_Crypt_sessionK_spiedE]) 2);
+ (claset() addSEs [PMS_Crypt_sessionK_spiedE]) 2);
(*Fake: the Spy doesn't have the critical session key!*)
by (subgoal_tac "Key (serverK(Na,Nb,PRF(PMS,NA,NB))) ~: analz(spies evsa)" 1);
-by (asm_simp_tac (!simpset addsimps [Spy_not_see_MS,
+by (asm_simp_tac (simpset() addsimps [Spy_not_see_MS,
not_parts_not_analz]) 2);
by (Fake_parts_insert_tac 1);
val lemma = normalize_thm [RSmp] (result());
@@ -685,7 +685,7 @@
\ Says B Spy (Key (serverK(Na,Nb,M))) ~: set evs; \
\ evs : tls; A ~: bad; B ~: bad |] \
\ ==> Says B A X : set evs";
-by (blast_tac (!claset addIs [lemma]
+by (blast_tac (claset() addIs [lemma]
addEs [serverK_Oops_ALL RSN(2, rev_notE)]) 1);
qed_spec_mp "TrustServerFinished";
@@ -704,11 +704,11 @@
\ (EX A'. Says B A' (Crypt (serverK(Na,Nb,M)) Y) : set evs)";
by (hyp_subst_tac 1);
by (analz_induct_tac 1); (*20 seconds*)
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [ex_disj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [ex_disj_distrib])));
by (ALLGOALS Clarify_tac);
(*ServerResume, ServerFinished: by unicity of PMS*)
by (REPEAT
- (blast_tac (!claset addSEs [MPair_parts]
+ (blast_tac (claset() addSEs [MPair_parts]
addSDs [Notes_master_imp_Crypt_PMS,
Says_imp_spies RS parts.Inj]
addDs [Spy_not_see_PMS,
@@ -716,10 +716,10 @@
Crypt_unique_PMS]) 3));
(*ClientKeyExch*)
by (blast_tac
- (!claset addSEs [PMS_Crypt_sessionK_spiedE]) 2);
+ (claset() addSEs [PMS_Crypt_sessionK_spiedE]) 2);
(*Fake: the Spy doesn't have the critical session key!*)
by (subgoal_tac "Key (serverK(Na,Nb,PRF(PMS,NA,NB))) ~: analz(spies evsa)" 1);
-by (asm_simp_tac (!simpset addsimps [Spy_not_see_MS,
+by (asm_simp_tac (simpset() addsimps [Spy_not_see_MS,
not_parts_not_analz]) 2);
by (Fake_parts_insert_tac 1);
val lemma = normalize_thm [RSmp] (result());
@@ -732,7 +732,7 @@
\ Says B Spy (Key (serverK(Na,Nb,M))) ~: set evs; \
\ evs : tls; A ~: bad; B ~: bad |] \
\ ==> EX A'. Says B A' (Crypt (serverK(Na,Nb,M)) Y) : set evs";
-by (blast_tac (!claset addIs [lemma]
+by (blast_tac (claset() addIs [lemma]
addEs [serverK_Oops_ALL RSN(2, rev_notE)]) 1);
qed_spec_mp "TrustServerMsg";
@@ -754,15 +754,15 @@
by (analz_induct_tac 1); (*15 seconds*)
by (ALLGOALS Clarify_tac);
(*ClientFinished, ClientResume: by unicity of PMS*)
-by (REPEAT (blast_tac (!claset delrules [conjI]
+by (REPEAT (blast_tac (claset() delrules [conjI]
addSDs [Notes_master_imp_Notes_PMS]
addDs [Notes_unique_PMS]) 3));
(*ClientKeyExch*)
by (fast_tac (*blast_tac gives PROOF FAILED*)
- (!claset addSEs [PMS_Crypt_sessionK_spiedE]) 2);
+ (claset() addSEs [PMS_Crypt_sessionK_spiedE]) 2);
(*Fake: the Spy doesn't have the critical session key!*)
by (subgoal_tac "Key (clientK(Na,Nb,PRF(PMS,NA,NB))) ~: analz(spies evsa)" 1);
-by (asm_simp_tac (!simpset addsimps [Spy_not_see_MS,
+by (asm_simp_tac (simpset() addsimps [Spy_not_see_MS,
not_parts_not_analz]) 2);
by (Fake_parts_insert_tac 1);
val lemma = normalize_thm [RSmp] (result());
@@ -775,7 +775,7 @@
\ Says A Spy (Key(clientK(Na,Nb,M))) ~: set evs; \
\ evs : tls; A ~: bad; B ~: bad |] \
\ ==> Says A B (Crypt (clientK(Na,Nb,M)) Y) : set evs";
-by (blast_tac (!claset addIs [lemma]
+by (blast_tac (claset() addIs [lemma]
addEs [clientK_Oops_ALL RSN(2, rev_notE)]) 1);
qed "TrustClientMsg";
@@ -794,7 +794,7 @@
\ : set evs; \
\ evs : tls; A ~: bad; B ~: bad |] \
\ ==> Says A B (Crypt (clientK(Na,Nb,M)) Y) : set evs";
-by (blast_tac (!claset addSIs [TrustClientMsg, UseCertVerify]
+by (blast_tac (claset() addSIs [TrustClientMsg, UseCertVerify]
addDs [Says_imp_spies RS parts.Inj]) 1);
qed "AuthClientFinished";
--- a/src/HOL/Auth/WooLam.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/WooLam.ML Mon Nov 03 12:24:13 1997 +0100
@@ -68,13 +68,13 @@
goal thy
"!!evs. evs : woolam ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
-by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
+by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
qed "Spy_analz_shrK";
Addsimps [Spy_analz_shrK];
goal thy "!!A. [| Key (shrK A) : parts (spies evs); \
\ evs : woolam |] ==> A:bad";
-by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
+by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
qed "Spy_see_shrK_D";
bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
@@ -104,7 +104,7 @@
\ Says B' Server {|Agent A, Agent B, Crypt (shrK A) (Nonce NB)|} \
\ : set evs |] \
\ ==> EX B. Says A B (Crypt (shrK A) (Nonce NB)) : set evs";
-by (blast_tac (!claset addSIs [NB_Crypt_imp_Alice_msg]
+by (blast_tac (claset() addSIs [NB_Crypt_imp_Alice_msg]
addSEs [MPair_parts]
addDs [Says_imp_spies RS parts.Inj]) 1);
qed "Server_trusts_WL4";
@@ -139,7 +139,7 @@
"!!evs. [| Says S B (Crypt (shrK B) {|Agent A, NB|}) : set evs; \
\ B ~: bad; evs : woolam |] \
\ ==> Says Server B (Crypt (shrK B) {|Agent A, NB|}) : set evs";
-by (blast_tac (!claset addSIs [NB_Crypt_imp_Server_msg]
+by (blast_tac (claset() addSIs [NB_Crypt_imp_Server_msg]
addDs [Says_imp_spies RS parts.Inj]) 1);
qed "B_got_WL5";
@@ -151,7 +151,7 @@
"!!evs. [| Says S B (Crypt (shrK B) {|Agent A, Nonce NB|}): set evs; \
\ A ~: bad; B ~: bad; evs : woolam |] \
\ ==> EX B. Says A B (Crypt (shrK A) (Nonce NB)) : set evs";
-by (blast_tac (!claset addIs [Server_trusts_WL4]
+by (blast_tac (claset() addIs [Server_trusts_WL4]
addSDs [B_got_WL5 RS Server_sent_WL5]) 1);
qed "B_trusts_WL5";
@@ -176,5 +176,5 @@
by (parts_induct_tac 1);
by (Fake_parts_insert_tac 1);
by Safe_tac;
-by (blast_tac (!claset addSEs partsEs) 1);
+by (blast_tac (claset() addSEs partsEs) 1);
**)
--- a/src/HOL/Auth/Yahalom.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/Yahalom.ML Mon Nov 03 12:24:13 1997 +0100
@@ -45,7 +45,7 @@
(*Lets us treat YM4 using a similar argument as for the Fake case.*)
goal thy "!!evs. Says S A {|Crypt (shrK A) Y, X|} : set evs ==> \
\ X : analz (spies evs)";
-by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
+by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
qed "YM4_analz_spies";
bind_thm ("YM4_parts_spies",
@@ -54,7 +54,7 @@
(*Relates to both YM4 and Oops*)
goal thy "!!evs. Says S A {|Crypt (shrK A) {|B,K,NA,NB|}, X|} : set evs ==> \
\ K : parts (spies evs)";
-by (blast_tac (!claset addSEs partsEs
+by (blast_tac (claset() addSEs partsEs
addSDs [Says_imp_spies RS parts.Inj]) 1);
qed "YM4_Key_parts_spies";
@@ -88,13 +88,13 @@
goal thy
"!!evs. evs : yahalom ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
-by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
+by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
qed "Spy_analz_shrK";
Addsimps [Spy_analz_shrK];
goal thy "!!A. [| Key (shrK A) : parts (spies evs); \
\ evs : yahalom |] ==> A:bad";
-by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
+by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
qed "Spy_see_shrK_D";
bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
@@ -107,12 +107,12 @@
by (parts_induct_tac 1);
(*Fake*)
by (best_tac
- (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
+ (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
addIs [impOfSubs analz_subset_parts]
addDs [impOfSubs (analz_subset_parts RS keysFor_mono)]
- addss (!simpset)) 1);
+ addss (simpset())) 1);
(*YM2-4: Because Key K is not fresh, etc.*)
-by (REPEAT (blast_tac (!claset addSEs spies_partsEs) 1));
+by (REPEAT (blast_tac (claset() addSEs spies_partsEs) 1));
qed_spec_mp "new_keys_not_used";
bind_thm ("new_keys_not_analzd",
@@ -187,7 +187,7 @@
\ {|Crypt (shrK A) {|Agent B, Key K, na, nb|}, X|} \
\ : set evs --> A=A' & B=B' & na=na' & nb=nb' & X=X'";
by (etac yahalom.induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
by (ALLGOALS Clarify_tac);
by (ex_strip_tac 2);
by (Blast_tac 2);
@@ -195,7 +195,7 @@
by (expand_case_tac "K = ?y" 1);
by (REPEAT (ares_tac [refl,exI,impI,conjI] 2));
(*...we assume X is a recent message and handle this case by contradiction*)
-by (blast_tac (!claset addSEs spies_partsEs
+by (blast_tac (claset() addSEs spies_partsEs
delrules [conjI] (*no split-up to 4 subgoals*)) 1);
val lemma = result();
@@ -224,12 +224,12 @@
by analz_spies_tac;
by (ALLGOALS
(asm_simp_tac
- (!simpset addsimps (expand_ifs@pushes)
+ (simpset() addsimps (expand_ifs@pushes)
addsimps [analz_insert_eq, analz_insert_freshK])));
(*Oops*)
-by (blast_tac (!claset addDs [unique_session_keys]) 3);
+by (blast_tac (claset() addDs [unique_session_keys]) 3);
(*YM3*)
-by (blast_tac (!claset delrules [impCE]
+by (blast_tac (claset() delrules [impCE]
addSEs spies_partsEs
addIs [impOfSubs analz_subset_parts]) 2);
(*Fake*)
@@ -247,7 +247,7 @@
\ A ~: bad; B ~: bad; evs : yahalom |] \
\ ==> Key K ~: analz (spies evs)";
by (forward_tac [Says_Server_message_form] 1 THEN assume_tac 1);
-by (blast_tac (!claset addSEs [lemma]) 1);
+by (blast_tac (claset() addSEs [lemma]) 1);
qed "Spy_not_see_encrypted_key";
@@ -307,7 +307,7 @@
(*A is uncompromised because NB is secure*)
by (not_bad_tac "A" 1);
(*A's certificate guarantees the existence of the Server message*)
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj RS parts.Fst RS
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj RS parts.Fst RS
A_trusts_YM3]) 1);
bind_thm ("B_trusts_YM4_newK", result() RS mp RSN (2, rev_mp));
@@ -337,7 +337,7 @@
(with respect to a given trace). *)
goalw thy [KeyWithNonce_def]
"!!evs. Key K ~: used evs ==> ~ KeyWithNonce K NB evs";
-by (blast_tac (!claset addSEs spies_partsEs) 1);
+by (blast_tac (claset() addSEs spies_partsEs) 1);
qed "fresh_not_KeyWithNonce";
(*The Server message associates K with NB' and therefore not with any
@@ -348,7 +348,7 @@
\ : set evs; \
\ NB ~= NB'; evs : yahalom |] \
\ ==> ~ KeyWithNonce K NB evs";
-by (blast_tac (!claset addDs [unique_session_keys]) 1);
+by (blast_tac (claset() addDs [unique_session_keys]) 1);
qed "Says_Server_KeyWithNonce";
@@ -362,7 +362,7 @@
goal thy
"!!evs. P --> (X : analz (G Un H)) --> (X : analz H) ==> \
\ P --> (X : analz (G Un H)) = (X : analz H)";
-by (blast_tac (!claset addIs [impOfSubs analz_mono]) 1);
+by (blast_tac (claset() addIs [impOfSubs analz_mono]) 1);
val Nonce_secrecy_lemma = result();
goal thy
@@ -394,7 +394,7 @@
by (not_bad_tac "A" 1);
by (dtac (Says_imp_spies RS parts.Inj RS parts.Fst RS A_trusts_YM3) 1
THEN REPEAT (assume_tac 1));
-by (blast_tac (!claset addIs [KeyWithNonceI]) 1);
+by (blast_tac (claset() addIs [KeyWithNonceI]) 1);
qed_spec_mp "Nonce_secrecy";
@@ -424,11 +424,11 @@
(*Fake*)
by (REPEAT (etac (exI RSN (2,exE)) 1) (*stripping EXs makes proof faster*)
THEN Fake_parts_insert_tac 1);
-by (asm_simp_tac (!simpset addsimps [all_conj_distrib]) 1);
+by (asm_simp_tac (simpset() addsimps [all_conj_distrib]) 1);
(*YM2: creation of new Nonce. Move assertion into global context*)
by (expand_case_tac "nb = ?y" 1);
by (REPEAT (resolve_tac [exI, conjI, impI, refl] 1));
-by (blast_tac (!claset addSEs spies_partsEs) 1);
+by (blast_tac (claset() addSEs spies_partsEs) 1);
val lemma = result();
goal thy
@@ -450,7 +450,7 @@
\ nb ~: analz (spies evs); evs : yahalom |] \
\ ==> NA' = NA & A' = A & B' = B";
by (not_bad_tac "B'" 1);
-by (blast_tac (!claset addSDs [Says_imp_spies RS parts.Inj]
+by (blast_tac (claset() addSDs [Says_imp_spies RS parts.Inj]
addSEs [MPair_parts]
addDs [unique_NB]) 1);
qed "Says_unique_NB";
@@ -465,7 +465,7 @@
\ Crypt (shrK B) {|Agent A, Nonce NA, Nonce NB|} ~: parts(spies evs)";
by (parts_induct_tac 1);
by (Fake_parts_insert_tac 1);
-by (blast_tac (!claset addDs [Says_imp_spies RS analz.Inj]
+by (blast_tac (claset() addDs [Says_imp_spies RS analz.Inj]
addSIs [parts_insertI]
addSEs partsEs) 1);
bind_thm ("no_nonce_YM1_YM2", result() RS mp RSN (2,rev_mp) RSN (2,rev_notE));
@@ -497,19 +497,19 @@
by analz_spies_tac;
by (ALLGOALS
(asm_simp_tac
- (!simpset addsimps (expand_ifs@pushes)
+ (simpset() addsimps (expand_ifs@pushes)
addsimps [analz_insert_eq, analz_insert_freshK])));
(*Prove YM3 by showing that no NB can also be an NA*)
-by (blast_tac (!claset addDs [Says_imp_spies RS parts.Inj]
+by (blast_tac (claset() addDs [Says_imp_spies RS parts.Inj]
addSEs [MPair_parts]
addDs [no_nonce_YM1_YM2, Says_unique_NB]) 4
THEN flexflex_tac);
(*YM2: similar freshness reasoning*)
-by (blast_tac (!claset addSEs partsEs
+by (blast_tac (claset() addSEs partsEs
addDs [Says_imp_spies RS analz.Inj,
impOfSubs analz_subset_parts]) 3);
(*YM1: NB=NA is impossible anyway, but NA is secret because it is fresh!*)
-by (blast_tac (!claset addSIs [parts_insertI]
+by (blast_tac (claset() addSIs [parts_insertI]
addSEs spies_partsEs) 2);
(*Fake*)
by (spy_analz_tac 1);
@@ -522,19 +522,19 @@
by (forward_tac [Says_Server_imp_YM2] 4);
by (REPEAT_FIRST (eresolve_tac [asm_rl, bexE, exE, disjE]));
(* use Says_unique_NB to identify message components: Aa=A, Ba=B, NAa=NA *)
-by (blast_tac (!claset addDs [Says_unique_NB, Spy_not_see_encrypted_key,
+by (blast_tac (claset() addDs [Says_unique_NB, Spy_not_see_encrypted_key,
impOfSubs Fake_analz_insert]) 1);
(** LEVEL 14 **)
(*Oops case: if the nonce is betrayed now, show that the Oops event is
covered by the quantified Oops assumption.*)
-by (full_simp_tac (!simpset addsimps [all_conj_distrib]) 1);
+by (full_simp_tac (simpset() addsimps [all_conj_distrib]) 1);
by (forward_tac [Says_Server_imp_YM2] 1 THEN assume_tac 1 THEN etac exE 1);
by (expand_case_tac "NB = NBa" 1);
(*If NB=NBa then all other components of the Oops message agree*)
-by (blast_tac (!claset addDs [Says_unique_NB]) 1 THEN flexflex_tac);
+by (blast_tac (claset() addDs [Says_unique_NB]) 1 THEN flexflex_tac);
(*case NB ~= NBa*)
-by (asm_simp_tac (!simpset addsimps [single_Nonce_secrecy]) 1);
-by (blast_tac (!claset addSEs [MPair_parts]
+by (asm_simp_tac (simpset() addsimps [single_Nonce_secrecy]) 1);
+by (blast_tac (claset() addSEs [MPair_parts]
addDs [Says_imp_spies RS parts.Inj,
no_nonce_YM1_YM2 (*to prove NB~=NAa*) ]) 1);
bind_thm ("Spy_not_see_NB", result() RSN(2,rev_mp) RSN(2,rev_mp));
@@ -565,7 +565,7 @@
by (REPEAT_FIRST (eresolve_tac [asm_rl, exE]));
by (forward_tac [Says_Server_imp_YM2] 1 THEN assume_tac 1);
by (dtac unique_session_keys 1 THEN REPEAT (assume_tac 1));
-by (blast_tac (!claset addDs [Says_unique_NB]) 1);
+by (blast_tac (claset() addDs [Says_unique_NB]) 1);
qed "B_trusts_YM4";
@@ -596,7 +596,7 @@
(*YM4*)
by (Blast_tac 2);
(*YM3*)
-by (best_tac (!claset addSDs [B_Said_YM2, Says_imp_spies RS parts.Inj]
+by (best_tac (claset() addSDs [B_Said_YM2, Says_imp_spies RS parts.Inj]
addSEs [MPair_parts]) 1);
val lemma = result() RSN (2, rev_mp) RS mp |> standard;
@@ -607,7 +607,7 @@
\ A ~: bad; B ~: bad; evs : yahalom |] \
\ ==> Says B Server {|Agent B, Crypt (shrK B) {|Agent A, Nonce NA, nb|}|} \
\ : set evs";
-by (blast_tac (!claset addSDs [A_trusts_YM3, lemma]
+by (blast_tac (claset() addSDs [A_trusts_YM3, lemma]
addEs spies_partsEs) 1);
qed "YM3_auth_B_to_A";
@@ -628,12 +628,12 @@
(*Fake*)
by (Fake_parts_insert_tac 1);
(*YM3: by new_keys_not_used we note that Crypt K (Nonce NB) could not exist*)
-by (fast_tac (!claset addSDs [Crypt_imp_invKey_keysFor] addss (!simpset)) 1);
+by (fast_tac (claset() addSDs [Crypt_imp_invKey_keysFor] addss (simpset())) 1);
(*YM4: was Crypt K (Nonce NB) the very last message? If not, use ind. hyp.*)
-by (asm_simp_tac (!simpset addsimps [ex_disj_distrib]) 1);
+by (asm_simp_tac (simpset() addsimps [ex_disj_distrib]) 1);
(*yes: apply unicity of session keys*)
by (not_bad_tac "Aa" 1);
-by (blast_tac (!claset addSEs [MPair_parts]
+by (blast_tac (claset() addSEs [MPair_parts]
addSDs [A_trusts_YM3, B_trusts_YM4_shrK]
addDs [Says_imp_spies RS parts.Inj,
unique_session_keys]) 1);
@@ -657,6 +657,6 @@
by (rtac lemma 1);
by (rtac Spy_not_see_encrypted_key 2);
by (REPEAT_FIRST assume_tac);
-by (blast_tac (!claset addSEs [MPair_parts]
+by (blast_tac (claset() addSEs [MPair_parts]
addDs [Says_imp_spies RS parts.Inj]) 1);
qed_spec_mp "YM4_imp_A_Said_YM3";
--- a/src/HOL/Auth/Yahalom2.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/Auth/Yahalom2.ML Mon Nov 03 12:24:13 1997 +0100
@@ -45,7 +45,7 @@
(*Lets us treat YM4 using a similar argument as for the Fake case.*)
goal thy "!!evs. Says S A {|NB, Crypt (shrK A) Y, X|} : set evs ==> \
\ X : analz (spies evs)";
-by (blast_tac (!claset addSDs [Says_imp_spies RS analz.Inj]) 1);
+by (blast_tac (claset() addSDs [Says_imp_spies RS analz.Inj]) 1);
qed "YM4_analz_spies";
bind_thm ("YM4_parts_spies",
@@ -54,7 +54,7 @@
(*Relates to both YM4 and Oops*)
goal thy "!!evs. Says S A {|NB, Crypt (shrK A) {|B,K,NA|}, X|} : set evs ==> \
\ K : parts (spies evs)";
-by (blast_tac (!claset addSEs partsEs
+by (blast_tac (claset() addSEs partsEs
addSDs [Says_imp_spies RS parts.Inj]) 1);
qed "YM4_Key_parts_spies";
@@ -88,13 +88,13 @@
goal thy
"!!evs. evs : yahalom ==> (Key (shrK A) : analz (spies evs)) = (A : bad)";
-by (auto_tac(!claset addDs [impOfSubs analz_subset_parts], !simpset));
+by (auto_tac(claset() addDs [impOfSubs analz_subset_parts], simpset()));
qed "Spy_analz_shrK";
Addsimps [Spy_analz_shrK];
goal thy "!!A. [| Key (shrK A) : parts (spies evs); \
\ evs : yahalom |] ==> A:bad";
-by (blast_tac (!claset addDs [Spy_see_shrK]) 1);
+by (blast_tac (claset() addDs [Spy_see_shrK]) 1);
qed "Spy_see_shrK_D";
bind_thm ("Spy_analz_shrK_D", analz_subset_parts RS subsetD RS Spy_see_shrK_D);
@@ -106,15 +106,15 @@
\ Key K ~: used evs --> K ~: keysFor (parts (spies evs))";
by (parts_induct_tac 1);
(*YM4: Key K is not fresh!*)
-by (blast_tac (!claset addSEs spies_partsEs) 3);
+by (blast_tac (claset() addSEs spies_partsEs) 3);
(*YM3*)
-by (blast_tac (!claset addss (!simpset)) 2);
+by (blast_tac (claset() addss (simpset())) 2);
(*Fake*)
by (best_tac
- (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
+ (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
addIs [impOfSubs analz_subset_parts]
addDs [impOfSubs (analz_subset_parts RS keysFor_mono)]
- addss (!simpset)) 1);
+ addss (simpset())) 1);
qed_spec_mp "new_keys_not_used";
bind_thm ("new_keys_not_analzd",
@@ -189,15 +189,15 @@
\ {|nb, Crypt (shrK A) {|Agent B, Key K, na|}, X|} \
\ : set evs --> A=A' & B=B' & na=na' & nb=nb' & X=X'";
by (etac yahalom.induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [all_conj_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [all_conj_distrib])));
by (Clarify_tac 1);
(*Remaining case: YM3*)
by (expand_case_tac "K = ?y" 1);
by (REPEAT (ares_tac [refl,exI,impI,conjI] 2));
(*...we assume X is a recent message and handle this case by contradiction*)
-by (blast_tac (!claset addSEs spies_partsEs
+by (blast_tac (claset() addSEs spies_partsEs
delrules [conjI] (*prevent split-up into 4 subgoals*)
- addss (!simpset addsimps [parts_insertI])) 1);
+ addss (simpset() addsimps [parts_insertI])) 1);
val lemma = result();
goal thy
@@ -226,13 +226,13 @@
by analz_spies_tac;
by (ALLGOALS
(asm_simp_tac
- (!simpset addsimps expand_ifs
+ (simpset() addsimps expand_ifs
addsimps [analz_insert_eq, analz_insert_freshK]
addsplits [expand_if])));
(*Oops*)
-by (blast_tac (!claset addDs [unique_session_keys]) 3);
+by (blast_tac (claset() addDs [unique_session_keys]) 3);
(*YM3*)
-by (blast_tac (!claset delrules [impCE]
+by (blast_tac (claset() delrules [impCE]
addSEs spies_partsEs
addIs [impOfSubs analz_subset_parts]) 2);
(*Fake*)
@@ -250,7 +250,7 @@
\ A ~: bad; B ~: bad; evs : yahalom |] \
\ ==> Key K ~: analz (spies evs)";
by (forward_tac [Says_Server_message_form] 1 THEN assume_tac 1);
-by (blast_tac (!claset addSEs [lemma]) 1);
+by (blast_tac (claset() addSEs [lemma]) 1);
qed "Spy_not_see_encrypted_key";
@@ -308,7 +308,7 @@
\ Crypt (shrK B) {|Nonce NB, Key K, Agent A|}|} \
\ : set evs";
by (etac (Says_imp_spies RS parts.Inj RS MPair_parts) 1);
-by (blast_tac (!claset addSDs [B_trusts_YM4_shrK]) 1);
+by (blast_tac (claset() addSDs [B_trusts_YM4_shrK]) 1);
qed "B_trusts_YM4";
@@ -341,7 +341,7 @@
by (etac yahalom.induct 1);
by (ALLGOALS Asm_simp_tac);
(*YM3*)
-by (blast_tac (!claset addSDs [B_Said_YM2]
+by (blast_tac (claset() addSDs [B_Said_YM2]
addSEs [MPair_parts]
addDs [Says_imp_spies RS parts.Inj]) 3);
(*Fake, YM2*)
@@ -356,7 +356,7 @@
\ ==> EX nb'. Says B Server \
\ {|Agent B, nb', Crypt (shrK B) {|Agent A, Nonce NA|}|} \
\ : set evs";
-by (blast_tac (!claset addSDs [A_trusts_YM3, lemma]
+by (blast_tac (claset() addSDs [A_trusts_YM3, lemma]
addEs spies_partsEs) 1);
qed "YM3_auth_B_to_A";
@@ -378,12 +378,12 @@
(*Fake*)
by (Fake_parts_insert_tac 1);
(*YM3: by new_keys_not_used we note that Crypt K (Nonce NB) could not exist*)
-by (fast_tac (!claset addSDs [Crypt_imp_invKey_keysFor] addss (!simpset)) 1);
+by (fast_tac (claset() addSDs [Crypt_imp_invKey_keysFor] addss (simpset())) 1);
(*YM4: was Crypt K (Nonce NB) the very last message? If not, use ind. hyp.*)
-by (asm_simp_tac (!simpset addsimps [ex_disj_distrib]) 1);
+by (asm_simp_tac (simpset() addsimps [ex_disj_distrib]) 1);
(*yes: apply unicity of session keys*)
by (not_bad_tac "Aa" 1);
-by (blast_tac (!claset addSEs [MPair_parts]
+by (blast_tac (claset() addSEs [MPair_parts]
addSDs [A_trusts_YM3, B_trusts_YM4_shrK]
addDs [Says_imp_spies RS parts.Inj,
unique_session_keys]) 1);
@@ -400,10 +400,10 @@
\ ==> EX X. Says A B {|X, Crypt K (Nonce NB)|} : set evs";
by (etac (Says_imp_spies RS parts.Inj RS MPair_parts) 1);
by (dtac B_trusts_YM4_shrK 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac lemma 1);
by (rtac Spy_not_see_encrypted_key 2);
by (REPEAT_FIRST assume_tac);
-by (ALLGOALS (blast_tac (!claset addSEs [MPair_parts]
+by (ALLGOALS (blast_tac (claset() addSEs [MPair_parts]
addDs [Says_imp_spies RS parts.Inj])));
qed_spec_mp "YM4_imp_A_Said_YM3";
--- a/src/HOL/AxClasses/Group/GroupDefs.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/AxClasses/Group/GroupDefs.ML Mon Nov 03 12:24:13 1997 +0100
@@ -26,7 +26,7 @@
(* cartesian products *)
-val prod_ss = simpset_of "Prod";
+val prod_ss = simpset_of Prod.thy;
goalw thy [times_prod_def]
"(x * y) * z = x * (y * (z::'a::semigroup*'b::semigroup))";
--- a/src/HOL/AxClasses/Lattice/CLattice.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/AxClasses/Lattice/CLattice.ML Mon Nov 03 12:24:13 1997 +0100
@@ -19,7 +19,7 @@
qed "Inf_uniq";
goalw thy [Ex1_def] "ALL A. EX! inf::'a::clattice. is_Inf A inf";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
by (Step_tac 1);
by (Step_tac 1);
br Inf_is_Inf 1;
@@ -41,7 +41,7 @@
qed "Sup_uniq";
goalw thy [Ex1_def] "ALL A. EX! sup::'a::clattice. is_Sup A sup";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
by (Step_tac 1);
by (Step_tac 1);
br Sup_is_Sup 1;
@@ -127,7 +127,7 @@
br impI 1;
by (stac le_Inf_eq 1);
by (rewtac Ball_def);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
bd subsetD 1;
ba 1;
be Inf_lb 1;
@@ -137,7 +137,7 @@
br impI 1;
by (stac ge_Sup_eq 1);
by (rewtac Ball_def);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
bd subsetD 1;
ba 1;
be Sup_ub 1;
@@ -149,7 +149,7 @@
goal thy "Inf {x} = x";
br (Inf_uniq RS mp) 1;
by (rewtac is_Inf_def);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
br le_refl 1;
by (Fast_tac 1);
qed "sing_Inf_eq";
@@ -157,7 +157,7 @@
goal thy "Sup {x} = x";
br (Sup_uniq RS mp) 1;
by (rewtac is_Sup_def);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
br le_refl 1;
by (Fast_tac 1);
qed "sing_Sup_eq";
@@ -166,7 +166,7 @@
goal thy "Inf {} = Sup {x. True}";
br (Inf_uniq RS mp) 1;
by (rewtac is_Inf_def);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
br (sing_Sup_eq RS subst) 1;
back();
br (Sup_subset_mon RS mp) 1;
@@ -176,7 +176,7 @@
goal thy "Sup {} = Inf {x. True}";
br (Sup_uniq RS mp) 1;
by (rewtac is_Sup_def);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
br (sing_Inf_eq RS subst) 1;
br (Inf_subset_antimon RS mp) 1;
by (Fast_tac 1);
--- a/src/HOL/AxClasses/Lattice/LatInsts.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/AxClasses/Lattice/LatInsts.ML Mon Nov 03 12:24:13 1997 +0100
@@ -21,7 +21,7 @@
goal thy "Inf (A Un B) = Inf A && Inf B";
br (Inf_uniq RS mp) 1;
by (rewtac is_Inf_def);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
br (conjI RS (le_trans RS mp)) 1;
br inf_lb1 1;
@@ -42,7 +42,7 @@
goal thy "Inf (UN i:A. B i) = Inf {Inf (B i) |i. i:A}";
br (Inf_uniq RS mp) 1;
by (rewtac is_Inf_def);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
(*level 3*)
br (conjI RS (le_trans RS mp)) 1;
be Inf_lb 2;
@@ -51,7 +51,7 @@
by (Fast_tac 1);
(*level 8*)
by (stac le_Inf_eq 1);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
by (stac le_Inf_eq 1);
by (Fast_tac 1);
qed "Inf_UN_eq";
@@ -61,7 +61,7 @@
goal thy "Sup (A Un B) = Sup A || Sup B";
br (Sup_uniq RS mp) 1;
by (rewtac is_Sup_def);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
br (conjI RS (le_trans RS mp)) 1;
be Sup_ub 1;
@@ -82,7 +82,7 @@
goal thy "Sup (UN i:A. B i) = Sup {Sup (B i) |i. i:A}";
br (Sup_uniq RS mp) 1;
by (rewtac is_Sup_def);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
(*level 3*)
br (conjI RS (le_trans RS mp)) 1;
be Sup_ub 1;
@@ -92,7 +92,7 @@
by (Fast_tac 1);
(*level 8*)
by (stac ge_Sup_eq 1);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
by (stac ge_Sup_eq 1);
by (Fast_tac 1);
qed "Sup_UN_eq";
--- a/src/HOL/AxClasses/Lattice/LatMorph.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/AxClasses/Lattice/LatMorph.ML Mon Nov 03 12:24:13 1997 +0100
@@ -5,7 +5,7 @@
(** monotone functions vs. "&&"- / "||"-semi-morphisms **)
goalw thy [is_mono_def] "is_mono f = (ALL x y. f (x && y) [= f x && f y)";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
(*==> (level 1)*)
by (stac le_inf_eq 1);
br conjI 1;
@@ -28,7 +28,7 @@
qed "mono_inf_eq";
goalw thy [is_mono_def] "is_mono f = (ALL x y. f x || f y [= f (x || y))";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
(*==> (level 1)*)
by (stac ge_sup_eq 1);
br conjI 1;
--- a/src/HOL/AxClasses/Lattice/LatPreInsts.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/AxClasses/Lattice/LatPreInsts.ML Mon Nov 03 12:24:13 1997 +0100
@@ -22,13 +22,13 @@
goalw thy [is_inf_def, le_prod_def] "is_inf p q (fst p && fst q, snd p && snd q)";
by (Simp_tac 1);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
by (REPEAT_FIRST (fn i => resolve_tac [inf_lb1, inf_lb2, inf_ub_lbs] i ORELSE atac i));
qed "prod_is_inf";
goalw thy [is_sup_def, le_prod_def] "is_sup p q (fst p || fst q, snd p || snd q)";
by (Simp_tac 1);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
by (REPEAT_FIRST (fn i => resolve_tac [sup_ub1, sup_ub2, sup_lb_ubs] i ORELSE atac i));
qed "prod_is_sup";
@@ -36,7 +36,7 @@
(* functions *)
goalw thy [is_inf_def, le_fun_def] "is_inf f g (%x. f x && g x)";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
br inf_lb1 1;
br inf_lb2 1;
br inf_ub_lbs 1;
@@ -44,7 +44,7 @@
qed "fun_is_inf";
goalw thy [is_sup_def, le_fun_def] "is_sup f g (%x. f x || g x)";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
br sup_ub1 1;
br sup_ub2 1;
br sup_lb_ubs 1;
@@ -57,7 +57,7 @@
goalw thy [is_inf_def, le_dual_def] "is_inf x y (Abs_dual (Rep_dual x || Rep_dual y))";
by (stac Abs_dual_inverse' 1);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
br sup_ub1 1;
br sup_ub2 1;
br sup_lb_ubs 1;
@@ -67,7 +67,7 @@
goalw thy [is_sup_def, le_dual_def] "is_sup x y (Abs_dual (Rep_dual x && Rep_dual y))";
by (stac Abs_dual_inverse' 1);
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
br inf_lb1 1;
br inf_lb2 1;
br inf_ub_lbs 1;
--- a/src/HOL/AxClasses/Lattice/Lattice.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/AxClasses/Lattice/Lattice.ML Mon Nov 03 12:24:13 1997 +0100
@@ -19,7 +19,7 @@
qed "inf_uniq";
goalw thy [Ex1_def] "ALL x y. EX! inf::'a::lattice. is_inf x y inf";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
by (Step_tac 1);
by (Step_tac 1);
br inf_is_inf 1;
@@ -41,7 +41,7 @@
qed "sup_uniq";
goalw thy [Ex1_def] "ALL x y. EX! sup::'a::lattice. is_sup x y sup";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
by (Step_tac 1);
by (Step_tac 1);
br sup_is_sup 1;
--- a/src/HOL/AxClasses/Lattice/OrdDefs.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/AxClasses/Lattice/OrdDefs.ML Mon Nov 03 12:24:13 1997 +0100
@@ -13,7 +13,7 @@
qed "le_prod_refl";
goalw thy [le_prod_def] "x [= y & y [= z --> x [= (z::'a::quasi_order*'b::quasi_order)";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
be (conjI RS (le_trans RS mp)) 1;
ba 1;
be (conjI RS (le_trans RS mp)) 1;
@@ -21,7 +21,7 @@
qed "le_prod_trans";
goalw thy [le_prod_def] "x [= y & y [= x --> x = (y::'a::partial_order*'b::partial_order)";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
by (stac Pair_fst_snd_eq 1);
br conjI 1;
be (conjI RS (le_antisym RS mp)) 1;
@@ -39,13 +39,13 @@
qed "le_fun_refl";
goalw thy [le_fun_def] "f [= g & g [= h --> f [= (h::'a=>'b::quasi_order)";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
br (le_trans RS mp) 1;
by (Fast_tac 1);
qed "le_fun_trans";
goalw thy [le_fun_def] "f [= g & g [= f --> f = (g::'a=>'b::partial_order)";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
br ext 1;
br (le_antisym RS mp) 1;
by (Fast_tac 1);
@@ -73,7 +73,7 @@
qed "le_dual_trans";
goalw thy [le_dual_def] "x [= y & y [= x --> x = (y::'a::partial_order dual)";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
br (Rep_dual_inverse RS subst) 1;
br sym 1;
br (Rep_dual_inverse RS subst) 1;
--- a/src/HOL/AxClasses/Lattice/Order.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/AxClasses/Lattice/Order.ML Mon Nov 03 12:24:13 1997 +0100
@@ -45,7 +45,7 @@
(* associativity *)
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";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
(*level 1*)
br (le_trans RS mp) 1;
be conjI 1;
@@ -79,7 +79,7 @@
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";
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
(*level 1*)
br (le_trans RS mp) 1;
be conjI 1;
@@ -155,7 +155,7 @@
(*==>*)
by (Fast_tac 1);
(*<==*)
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
by (Step_tac 1);
be mp 1;
by (Fast_tac 1);
@@ -166,7 +166,7 @@
(*==>*)
by (Fast_tac 1);
(*<==*)
- by (safe_tac (!claset));
+ by (safe_tac (claset()));
by (Step_tac 1);
be mp 1;
by (Fast_tac 1);
--- a/src/HOL/AxClasses/Tutorial/ProdGroupInsts.thy Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/AxClasses/Tutorial/ProdGroupInsts.thy Mon Nov 03 12:24:13 1997 +0100
@@ -15,6 +15,6 @@
instance
"*" :: (semigroup, semigroup) semigroup
- {| simp_tac (!simpset addsimps [assoc]) 1 |}
+ {| SIMPSET' (fn ss => simp_tac (ss addsimps [assoc])) 1 |}
end
--- a/src/HOL/thy_syntax.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/HOL/thy_syntax.ML Mon Nov 03 12:24:13 1997 +0100
@@ -276,7 +276,7 @@
val rec_decl = (name -- string --
optional ("congs" $$-- string >> trim) "[]" --
- optional ("simpset" $$-- string >> trim) "!simpset" --
+ optional ("simpset" $$-- string >> trim) "simpset()" --
repeat1 string >> mk_rec_decl) ;
--- a/src/ZF/AC.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC.ML Mon Nov 03 12:24:13 1997 +0100
@@ -12,9 +12,9 @@
val [nonempty] = goal AC.thy
"[| !!x. x:A ==> (EX y. y:B(x)) |] ==> EX z. z : Pi(A,B)";
by (excluded_middle_tac "A=0" 1);
-by (asm_simp_tac (!simpset addsimps [Pi_empty1]) 2 THEN Blast_tac 2);
+by (asm_simp_tac (simpset() addsimps [Pi_empty1]) 2 THEN Blast_tac 2);
(*The non-trivial case*)
-by (blast_tac (!claset addIs [AC, nonempty]) 1);
+by (blast_tac (claset() addIs [AC, nonempty]) 1);
qed "AC_Pi";
(*Using dtac, this has the advantage of DELETING the universal quantifier*)
@@ -35,7 +35,7 @@
\ |] ==> EX f: A->Union(A). ALL x:A. f`x : x";
by (res_inst_tac [("B1", "%x. x")] (AC_Pi RS exE) 1);
by (etac nonempty 1);
-by (blast_tac (!claset addDs [apply_type] addIs [Pi_type]) 1);
+by (blast_tac (claset() addDs [apply_type] addIs [Pi_type]) 1);
qed "AC_func";
goal ZF.thy "!!x A. [| 0 ~: A; x: A |] ==> EX y. y:x";
--- a/src/ZF/AC/AC0_AC1.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/AC0_AC1.ML Mon Nov 03 12:24:13 1997 +0100
@@ -11,7 +11,7 @@
qed "subset_Pow_Union";
goal thy "!!f. [| f:(PROD X:A. X); D<=A |] ==> EX g. g:(PROD X:D. X)";
-by (fast_tac (!claset addSIs [restrict_type, apply_type]) 1);
+by (fast_tac (claset() addSIs [restrict_type, apply_type]) 1);
val lemma1 = result();
goalw thy AC_defs "!!Z. AC0 ==> AC1";
@@ -21,6 +21,6 @@
goalw thy AC_defs "!!Z. AC1 ==> AC0";
by (Deepen_tac 0 1);
(*Large search space. Faster proof by
- by (fast_tac (!claset addSIs [notI, singletonI] addSEs [notE, DiffE]) 1);
+ by (fast_tac (claset() addSIs [notI, singletonI] addSEs [notE, DiffE]) 1);
*)
qed "AC1_AC0";
--- a/src/ZF/AC/AC10_AC15.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/AC10_AC15.ML Mon Nov 03 12:24:13 1997 +0100
@@ -30,7 +30,7 @@
goalw thy [lepoll_def] "!!A. A~=0 ==> B lepoll A*B";
by (etac not_emptyE 1);
by (res_inst_tac [("x","lam z:B. <x,z>")] exI 1);
-by (fast_tac (!claset addSIs [snd_conv, lam_injective]) 1);
+by (fast_tac (claset() addSIs [snd_conv, lam_injective]) 1);
qed "lepoll_Sigma";
goal thy "!!A. 0~:A ==> ALL B:{cons(0,x*nat). x:A}. ~Finite(B)";
@@ -79,13 +79,13 @@
by (res_inst_tac [("d", "%y. P(converse(f)`y)")] lam_injective 1);
by (etac RepFunE 1);
by (forward_tac [inj_is_fun RS apply_type] 1 THEN (assume_tac 1));
-by (fast_tac (!claset addIs [LeastI2]
+by (fast_tac (claset() addIs [LeastI2]
addSEs [Ord_in_Ord, inj_is_fun RS apply_type]) 1);
by (etac RepFunE 1);
by (rtac LeastI2 1);
by (Fast_tac 1);
-by (fast_tac (!claset addSEs [Ord_in_Ord, inj_is_fun RS apply_type]) 1);
-by (fast_tac (!claset addEs [sym, left_inverse RS ssubst]) 1);
+by (fast_tac (claset() addSEs [Ord_in_Ord, inj_is_fun RS apply_type]) 1);
+by (fast_tac (claset() addEs [sym, left_inverse RS ssubst]) 1);
val lemma4 = result();
goal thy "!!A. [| n:nat; B:A; u(B) <= cons(0, B*nat); 0:u(B); 2 lepoll u(B); \
@@ -100,8 +100,8 @@
addEs [lepoll_trans RS succ_lepoll_natE, ssubst]
addSIs [notI, lepoll_refl, nat_0I]) 1);
by (rtac conjI 1);
-by (fast_tac (!claset addSIs [fst_type] addSEs [consE]) 1);
-by (fast_tac (!claset addSEs [equalityE,
+by (fast_tac (claset() addSIs [fst_type] addSEs [consE]) 1);
+by (fast_tac (claset() addSEs [equalityE,
Diff_lepoll RS (nat_into_Ord RSN (2, lemma4))]) 1);
val lemma5 = result();
@@ -141,11 +141,11 @@
(* ********************************************************************** *)
goalw thy AC_defs "!!Z. AC12 ==> AC15";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (etac allE 1);
by (etac impE 1);
by (etac cons_times_nat_not_Finite 1);
-by (fast_tac (!claset addSIs [ex_fun_AC13_AC15]) 1);
+by (fast_tac (claset() addSIs [ex_fun_AC13_AC15]) 1);
qed "AC12_AC15";
(* ********************************************************************** *)
@@ -167,7 +167,7 @@
(* ********************************************************************** *)
goalw thy AC_defs "!!n. [| n:nat; 1 le n; AC10(n) |] ==> AC13(n)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (fast_tac (empty_cs addSEs [allE, cons_times_nat_not_Finite RSN (2, impE),
ex_fun_AC13_AC15]) 1);
qed "AC10_AC13";
@@ -187,10 +187,10 @@
by (mp_tac 1);
by (etac exE 1);
by (res_inst_tac [("x","lam x:A. {f`x}")] exI 1);
-by (asm_full_simp_tac (!simpset addsimps
+by (asm_full_simp_tac (simpset() addsimps
[singleton_eqpoll_1 RS eqpoll_imp_lepoll,
singletonI RS not_emptyI]) 1);
-by (fast_tac (!claset addSEs [apply_type]) 1);
+by (fast_tac (claset() addSEs [apply_type]) 1);
qed "AC1_AC13";
(* ********************************************************************** *)
@@ -199,7 +199,7 @@
goalw thy AC_defs "!!m n. [| m:nat; n:nat; m le n; AC13(m) |] ==> AC13(n)";
by (dtac nat_le_imp_lepoll 1 THEN REPEAT (assume_tac 1));
-by (fast_tac (!claset addSEs [lepoll_trans]) 1);
+by (fast_tac (claset() addSEs [lepoll_trans]) 1);
qed "AC13_mono";
(* ********************************************************************** *)
@@ -231,7 +231,7 @@
(* ********************************************************************** *)
goal thy "!!A. [| A~=0; A lepoll 1 |] ==> EX a. A={a}";
-by (fast_tac (!claset addSEs [not_emptyE, lepoll_1_is_sing]) 1);
+by (fast_tac (claset() addSEs [not_emptyE, lepoll_1_is_sing]) 1);
qed "lemma_aux";
goal thy "!!f. ALL B:A. f(B)~=0 & f(B)<=B & f(B) lepoll 1 \
@@ -240,12 +240,12 @@
by (dtac bspec 1 THEN (assume_tac 1));
by (REPEAT (etac conjE 1));
by (eresolve_tac [lemma_aux RS exE] 1 THEN (assume_tac 1));
-by (asm_full_simp_tac (!simpset addsimps [the_element]) 1);
-by (fast_tac (!claset addEs [ssubst]) 1);
+by (asm_full_simp_tac (simpset() addsimps [the_element]) 1);
+by (fast_tac (claset() addEs [ssubst]) 1);
val lemma = result();
goalw thy AC_defs "!!Z. AC13(1) ==> AC1";
-by (fast_tac (!claset addSEs [lemma]) 1);
+by (fast_tac (claset() addSEs [lemma]) 1);
qed "AC13_AC1";
(* ********************************************************************** *)
@@ -253,5 +253,5 @@
(* ********************************************************************** *)
goalw thy [AC11_def, AC14_def] "!!Z. AC11 ==> AC14";
-by (fast_tac (!claset addSIs [AC10_AC13]) 1);
+by (fast_tac (claset() addSIs [AC10_AC13]) 1);
qed "AC11_AC14";
--- a/src/ZF/AC/AC15_WO6.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/AC15_WO6.ML Mon Nov 03 12:24:13 1997 +0100
@@ -8,15 +8,15 @@
open AC15_WO6;
goal thy "!!x. Ord(x) ==> (UN a<x. F(a)) = (UN a:x. F(a))";
-by (fast_tac (!claset addSIs [ltI] addSDs [ltD]) 1);
+by (fast_tac (claset() addSIs [ltI] addSDs [ltD]) 1);
qed "OUN_eq_UN";
val [prem] = goal thy "ALL x:Pow(A)-{0}. f`x~=0 & f`x<=x & f`x lepoll m ==> \
\ (UN i<LEAST x. HH(f,A,x)={A}. HH(f,A,i)) = A";
-by (simp_tac (!simpset addsimps [Ord_Least RS OUN_eq_UN]) 1);
+by (simp_tac (simpset() addsimps [Ord_Least RS OUN_eq_UN]) 1);
by (rtac equalityI 1);
-by (fast_tac (!claset addSDs [less_Least_subset_x]) 1);
-by (fast_tac (!claset addSDs [prem RS bspec]
+by (fast_tac (claset() addSDs [less_Least_subset_x]) 1);
+by (fast_tac (claset() addSDs [prem RS bspec]
addSIs [f_subsets_imp_UN_HH_eq_x RS (Diff_eq_0_iff RS iffD1)]) 1);
val lemma1 = result();
@@ -26,7 +26,7 @@
by (dresolve_tac [ltD RS less_Least_subset_x] 1);
by (forward_tac [HH_subset_imp_eq] 1);
by (etac ssubst 1);
-by (fast_tac (!claset addIs [prem RS ballE]
+by (fast_tac (claset() addIs [prem RS ballE]
addSDs [HH_subset_x_imp_subset_Diff_UN RS not_emptyI2]) 1);
val lemma2 = result();
@@ -41,6 +41,6 @@
by (res_inst_tac [("x","LEAST i. HH(f,A,i)={A}")] exI 1);
by (res_inst_tac [("x","lam j: (LEAST i. HH(f,A,i)={A}). HH(f,A,j)")] exI 1);
by (Asm_full_simp_tac 1);
-by (fast_tac (!claset addSIs [Ord_Least, lam_type RS domain_of_fun]
+by (fast_tac (claset() addSIs [Ord_Least, lam_type RS domain_of_fun]
addSEs [less_Least_subset_x, lemma1, lemma2]) 1);
qed "AC15_WO6";
--- a/src/ZF/AC/AC16_WO4.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/AC16_WO4.ML Mon Nov 03 12:24:13 1997 +0100
@@ -21,7 +21,7 @@
by (res_inst_tac [("x","lam i:n. {f`i}")] exI 1);
by (Asm_full_simp_tac 1);
by (rewrite_goals_tac [bij_def, surj_def]);
-by (fast_tac (!claset addSIs [ltI, nat_into_Ord, lam_funtype RS domain_of_fun,
+by (fast_tac (claset() addSIs [ltI, nat_into_Ord, lam_funtype RS domain_of_fun,
equalityI, singleton_eqpoll_1 RS eqpoll_imp_lepoll RS lepoll_trans,
nat_1_lepoll_iff RS iffD2]
addSEs [apply_type, ltE]) 1);
@@ -35,12 +35,12 @@
bind_thm ("well_ord_paired", (paired_bij RS bij_is_inj RS well_ord_rvimage));
goal thy "!!A. [| A lepoll B; ~ A lepoll C |] ==> ~ B lepoll C";
-by (fast_tac (!claset addEs [notE, lepoll_trans]) 1);
+by (fast_tac (claset() addEs [notE, lepoll_trans]) 1);
qed "lepoll_trans1";
goalw thy [lepoll_def]
"!!X.[| Y lepoll X; well_ord(X, R) |] ==> EX S. well_ord(Y, S)";
-by (fast_tac (!claset addSEs [well_ord_rvimage]) 1);
+by (fast_tac (claset() addSEs [well_ord_rvimage]) 1);
qed "well_ord_lepoll";
goal thy "!!X. [| well_ord(X,R); well_ord(Y,S) \
@@ -57,7 +57,7 @@
by (res_inst_tac [("x","{{a,x}. a:nat Un Hartog(z)}")] exI 1);
by (resolve_tac [transfer thy Ord_nat RS well_ord_Memrel RS (Ord_Hartog RS
well_ord_Memrel RSN (2, well_ord_Un)) RS exE] 1);
-by (fast_tac (!claset addSIs [Ord_Hartog, well_ord_Memrel, well_ord_paired,
+by (fast_tac (claset() addSIs [Ord_Hartog, well_ord_Memrel, well_ord_paired,
equals0I, HartogI RSN (2, lepoll_trans1),
subset_imp_lepoll RS (paired_eqpoll RS eqpoll_sym RS
eqpoll_imp_lepoll RSN (2, lepoll_trans))]
@@ -68,7 +68,7 @@
val lemma2 = result();
val [prem] = goal thy "~Finite(B) ==> ~Finite(A Un B)";
-by (fast_tac (!claset
+by (fast_tac (claset()
addSIs [subset_imp_lepoll RS (prem RSN (2, lepoll_infinite))]) 1);
qed "infinite_Un";
@@ -90,13 +90,13 @@
by (res_inst_tac [("d","%z. if(z=y, A, converse(f)`z)")] lam_injective 1);
by (ALLGOALS
(asm_simp_tac
- (!simpset addsimps [inj_is_fun RS apply_type, left_inverse]
+ (simpset() addsimps [inj_is_fun RS apply_type, left_inverse]
setloop (split_tac [expand_if] ORELSE' Step_tac))));
qed "succ_not_lepoll_lemma";
goalw thy [lepoll_def, eqpoll_def, bij_def, surj_def]
"!!A. [| ~A eqpoll B; A lepoll B |] ==> succ(A) lepoll B";
-by (fast_tac (!claset addSEs [succ_not_lepoll_lemma, inj_is_fun]) 1);
+by (fast_tac (claset() addSEs [succ_not_lepoll_lemma, inj_is_fun]) 1);
qed "succ_not_lepoll_imp_eqpoll";
val [prem] = goalw thy [s_u_def]
@@ -108,7 +108,7 @@
by (etac CollectE 1);
by (etac conjE 1);
by (etac swap 1);
-by (fast_tac (!claset addSEs [succ_not_lepoll_imp_eqpoll]) 1);
+by (fast_tac (claset() addSEs [succ_not_lepoll_imp_eqpoll]) 1);
qed "suppose_not";
(* ********************************************************************** *)
@@ -130,13 +130,13 @@
by (etac nat_lepoll_imp_ex_eqpoll_n 1);
by (resolve_tac [ordertype_eqpoll RS eqpoll_sym RS eqpoll_imp_lepoll
RSN (2, lepoll_trans)] 1 THEN (assume_tac 2));
-by (fast_tac (!claset addSIs [nat_le_infinite_Ord RS le_imp_lepoll]
+by (fast_tac (claset() addSIs [nat_le_infinite_Ord RS le_imp_lepoll]
addSEs [Ord_ordertype, ordertype_eqpoll RS eqpoll_imp_lepoll
RS lepoll_infinite]) 1);
qed "ex_subset_eqpoll_n";
goalw thy [lesspoll_def] "!!n. n: nat ==> n lesspoll nat";
-by (fast_tac (!claset addSEs [Ord_nat RSN (2, ltI) RS leI RS le_imp_lepoll,
+by (fast_tac (claset() addSEs [Ord_nat RSN (2, ltI) RS leI RS le_imp_lepoll,
eqpoll_sym RS eqpoll_imp_lepoll]
addIs [Ord_nat RSN (2, nat_succI RS ltI) RS leI
RS le_imp_lepoll RS lepoll_trans RS succ_lepoll_natE]) 1);
@@ -162,7 +162,7 @@
goal thy "!!x. [| a eqpoll k; a<=y; b:y-a; u:x; x Int y = 0 \
\ |] ==> cons(b, cons(u, a)) eqpoll succ(succ(k))";
-by (fast_tac (!claset addSIs [cons_eqpoll_succ] addEs [equals0D]) 1);
+by (fast_tac (claset() addSIs [cons_eqpoll_succ] addEs [equals0D]) 1);
qed "cons_cons_eqpoll";
goalw thy [s_u_def] "s_u(u, t_n, k, y) <= t_n";
@@ -172,7 +172,7 @@
goalw thy [s_u_def, succ_def]
"!!w. [| w:t_n; cons(b,cons(u,a)) <= w; a <= y; b : y-a; k eqpoll a \
\ |] ==> w: s_u(u, t_n, succ(k), y)";
-by (fast_tac (!claset addDs [eqpoll_imp_lepoll RS cons_lepoll_cong]
+by (fast_tac (claset() addDs [eqpoll_imp_lepoll RS cons_lepoll_cong]
addSEs [subset_imp_lepoll RSN (2, lepoll_trans)]) 1);
qed "s_uI";
@@ -198,7 +198,7 @@
by (etac allE 1);
by (etac impE 1);
by (assume_tac 2);
-by (fast_tac (!claset addSEs [s_u_subset RS subsetD, in_s_u_imp_u_in]) 1);
+by (fast_tac (claset() addSEs [s_u_subset RS subsetD, in_s_u_imp_u_in]) 1);
qed "ex1_superset_a";
goal thy
@@ -213,7 +213,7 @@
by (Fast_tac 1);
by (dtac cons_eqpoll_succ 1);
by (Fast_tac 1);
-by (fast_tac (!claset addSIs [nat_succI]
+by (fast_tac (claset() addSIs [nat_succI]
addSEs [[eqpoll_sym RS eqpoll_imp_lepoll, subset_imp_lepoll] MRS
(lepoll_trans RS lepoll_trans) RS succ_lepoll_natE]) 1);
qed "set_eq_cons";
@@ -231,7 +231,7 @@
qed "the_eq_cons";
goal thy "!!a. [| cons(x,a) = cons(y,a); x~: a |] ==> x = y ";
-by (fast_tac (!claset addSEs [equalityE]) 1);
+by (fast_tac (claset() addSEs [equalityE]) 1);
qed "cons_eqE";
goal thy "!!A. A = B ==> A Int C = B Int C";
@@ -285,8 +285,8 @@
"!!k. [| k:nat; m:nat |] ==> \
\ ALL A B. A eqpoll k #+ m & k lepoll B & B<=A --> A-B lepoll m";
by (eres_inst_tac [("n","k")] nat_induct 1);
-by (simp_tac (!simpset addsimps [add_0]) 1);
-by (fast_tac (!claset addIs [eqpoll_imp_lepoll RS
+by (simp_tac (simpset() addsimps [add_0]) 1);
+by (fast_tac (claset() addIs [eqpoll_imp_lepoll RS
(Diff_subset RS subset_imp_lepoll RS lepoll_trans)]) 1);
by (REPEAT (resolve_tac [allI,impI] 1));
by (resolve_tac [succ_lepoll_imp_not_empty RS not_emptyE] 1);
@@ -294,8 +294,8 @@
by (eres_inst_tac [("x","A - {xa}")] allE 1);
by (eres_inst_tac [("x","B - {xa}")] allE 1);
by (etac impE 1);
-by (asm_full_simp_tac (!simpset addsimps [add_succ]) 1);
-by (fast_tac (!claset addSIs [Diff_sing_eqpoll, lepoll_Diff_sing]) 1);
+by (asm_full_simp_tac (simpset() addsimps [add_succ]) 1);
+by (fast_tac (claset() addSIs [Diff_sing_eqpoll, lepoll_Diff_sing]) 1);
by (res_inst_tac [("P","%z. z lepoll m")] subst 1 THEN (assume_tac 2));
by (Fast_tac 1);
qed "eqpoll_sum_imp_Diff_lepoll_lemma";
@@ -317,17 +317,17 @@
"!!k. [| k:nat; m:nat |] ==> \
\ ALL A B. A eqpoll k #+ m & k eqpoll B & B<=A --> A-B eqpoll m";
by (eres_inst_tac [("n","k")] nat_induct 1);
-by (fast_tac (!claset addSDs [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_0_is_0]
- addss (!simpset addsimps [add_0])) 1);
+by (fast_tac (claset() addSDs [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_0_is_0]
+ addss (simpset() addsimps [add_0])) 1);
by (REPEAT (resolve_tac [allI,impI] 1));
by (resolve_tac [succ_lepoll_imp_not_empty RS not_emptyE] 1);
-by (fast_tac (!claset addSEs [eqpoll_imp_lepoll]) 1);
+by (fast_tac (claset() addSEs [eqpoll_imp_lepoll]) 1);
by (eres_inst_tac [("x","A - {xa}")] allE 1);
by (eres_inst_tac [("x","B - {xa}")] allE 1);
by (etac impE 1);
-by (fast_tac (!claset addSIs [Diff_sing_eqpoll,
+by (fast_tac (claset() addSIs [Diff_sing_eqpoll,
eqpoll_sym RSN (2, Diff_sing_eqpoll) RS eqpoll_sym]
- addss (!simpset addsimps [add_succ])) 1);
+ addss (simpset() addsimps [add_succ])) 1);
by (res_inst_tac [("P","%z. z eqpoll m")] subst 1 THEN (assume_tac 2));
by (Fast_tac 1);
qed "eqpoll_sum_imp_Diff_eqpoll_lemma";
@@ -347,7 +347,7 @@
goal thy "!!w. [| x Int y = 0; w <= x Un y |] \
\ ==> w Int (x - {u}) = w - cons(u, w Int y)";
-by (fast_tac (!claset addEs [equals0D]) 1);
+by (fast_tac (claset() addEs [equals0D]) 1);
qed "w_Int_eq_w_Diff";
goal thy "!!w. [| w:{v:s_u(u, t_n, succ(l), y). a <= v}; \
@@ -357,8 +357,8 @@
\ |] ==> w Int (x - {u}) eqpoll m";
by (etac CollectE 1);
by (resolve_tac [w_Int_eq_w_Diff RS ssubst] 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSDs [s_u_subset RS subsetD]) 1);
-by (fast_tac (!claset addEs [equals0D] addSDs [bspec]
+by (fast_tac (claset() addSDs [s_u_subset RS subsetD]) 1);
+by (fast_tac (claset() addEs [equals0D] addSDs [bspec]
addDs [s_u_subset RS subsetD]
addSEs [eqpoll_sym RS cons_eqpoll_succ RS eqpoll_sym, in_s_u_imp_u_in]
addSIs [nat_succI, eqpoll_sum_imp_Diff_eqpoll]) 1);
@@ -372,7 +372,7 @@
goal thy
"!!z. [| z : xa Int (x - {u}); l eqpoll a; a <= y; x Int y = 0; u:x \
\ |] ==> cons(z, cons(u, a)) : {v: Pow(x Un y). v eqpoll succ(succ(l))}";
-by (fast_tac (!claset addSIs [cons_eqpoll_succ] addEs [equals0D, eqpoll_sym]) 1);
+by (fast_tac (claset() addSIs [cons_eqpoll_succ] addEs [equals0D, eqpoll_sym]) 1);
qed "cons_cons_in";
(* ********************************************************************** *)
@@ -398,7 +398,7 @@
by (rtac CollectI 1);
by (Fast_tac 1);
by (rtac w_Int_eqpoll_m 1 THEN REPEAT (assume_tac 1));
-by (simp_tac (!simpset delsimps ball_simps) 1);
+by (simp_tac (simpset() delsimps ball_simps) 1);
by (REPEAT (resolve_tac [ballI, impI] 1));
(** LEVEL 9 **)
by (eresolve_tac [w_Int_eqpoll_m RSN (2, eqpoll_m_not_empty) RS not_emptyE] 1
@@ -406,8 +406,8 @@
by (dresolve_tac [equalityD1 RS subsetD] 1 THEN (assume_tac 1));
by (dresolve_tac [cons_cons_in RSN (2, bspec)] 1 THEN REPEAT (assume_tac 1));
by (etac ex1_two_eq 1);
-by (fast_tac (!claset addSEs [s_u_subset RS subsetD, in_s_u_imp_u_in]) 1);
-by (fast_tac (!claset addSEs [s_u_subset RS subsetD, in_s_u_imp_u_in]) 1);
+by (fast_tac (claset() addSEs [s_u_subset RS subsetD, in_s_u_imp_u_in]) 1);
+by (fast_tac (claset() addSEs [s_u_subset RS subsetD, in_s_u_imp_u_in]) 1);
qed "subset_s_u_lepoll_w";
goal thy "!!k. [| 0<k; k:nat |] ==> EX l:nat. k = succ(l)";
@@ -439,7 +439,7 @@
(* ********************************************************************** *)
goal thy "{x:Pow(X). x lepoll 0} = {0}";
-by (fast_tac (!claset addSDs [lepoll_0_is_0]
+by (fast_tac (claset() addSDs [lepoll_0_is_0]
addSIs [lepoll_refl]) 1);
qed "subsets_lepoll_0_eq_unit";
@@ -448,19 +448,19 @@
by (resolve_tac [well_ord_infinite_subsets_eqpoll_X
RS (eqpoll_def RS def_imp_iff RS iffD1) RS exE] 1
THEN (REPEAT (assume_tac 1)));
-by (fast_tac (!claset addSEs [bij_is_inj RS well_ord_rvimage]) 1);
+by (fast_tac (claset() addSEs [bij_is_inj RS well_ord_rvimage]) 1);
qed "well_ord_subsets_eqpoll_n";
goal thy "!!n. n:nat ==> {z:Pow(y). z lepoll succ(n)} = \
\ {z:Pow(y). z lepoll n} Un {z:Pow(y). z eqpoll succ(n)}";
-by (fast_tac (!claset addIs [le_refl, leI, le_imp_lepoll]
+by (fast_tac (claset() addIs [le_refl, leI, le_imp_lepoll]
addSDs [lepoll_succ_disj]
addSEs [nat_into_Ord, lepoll_trans, eqpoll_imp_lepoll]) 1);
qed "subsets_lepoll_succ";
goal thy "!!n. n:nat ==> \
\ {z:Pow(y). z lepoll n} Int {z:Pow(y). z eqpoll succ(n)} = 0";
-by (fast_tac (!claset addSEs [eqpoll_sym RS eqpoll_imp_lepoll
+by (fast_tac (claset() addSEs [eqpoll_sym RS eqpoll_imp_lepoll
RS lepoll_trans RS succ_lepoll_natE]
addSIs [equals0I]) 1);
qed "Int_empty";
@@ -479,7 +479,7 @@
qed "wf_on_unit";
goalw thy [well_ord_def] "well_ord({a},0)";
-by (simp_tac (!simpset addsimps [tot_ord_unit, wf_on_unit]) 1);
+by (simp_tac (simpset() addsimps [tot_ord_unit, wf_on_unit]) 1);
qed "well_ord_unit";
(* ********************************************************************** *)
@@ -489,22 +489,22 @@
goal thy "!!y r. [| well_ord(y,r); ~Finite(y); n:nat |] ==> \
\ EX R. well_ord({z:Pow(y). z lepoll n}, R)";
by (etac nat_induct 1);
-by (fast_tac (!claset addSIs [well_ord_unit]
- addss (!simpset addsimps [subsets_lepoll_0_eq_unit])) 1);
+by (fast_tac (claset() addSIs [well_ord_unit]
+ addss (simpset() addsimps [subsets_lepoll_0_eq_unit])) 1);
by (etac exE 1);
by (eresolve_tac [well_ord_subsets_eqpoll_n RS exE] 1
THEN REPEAT (assume_tac 1));
-by (asm_simp_tac (!simpset addsimps [subsets_lepoll_succ]) 1);
+by (asm_simp_tac (simpset() addsimps [subsets_lepoll_succ]) 1);
by (dtac well_ord_radd 1 THEN (assume_tac 1));
by (eresolve_tac [Int_empty RS disj_Un_eqpoll_sum RS
(eqpoll_def RS def_imp_iff RS iffD1) RS exE] 1);
-by (fast_tac (!claset addSEs [bij_is_inj RS well_ord_rvimage]) 1);
+by (fast_tac (claset() addSEs [bij_is_inj RS well_ord_rvimage]) 1);
qed "well_ord_subsets_lepoll_n";
goalw thy [LL_def, MM_def]
"!!x. t_n <= {v:Pow(x Un y). v eqpoll n} \
\ ==> LL(t_n, k, y) <= {z:Pow(y). z lepoll n}";
-by (fast_tac (!claset addSEs [RepFunE]
+by (fast_tac (claset() addSEs [RepFunE]
addIs [subset_imp_lepoll RS (eqpoll_imp_lepoll
RSN (2, lepoll_trans))]) 1);
qed "LL_subset";
@@ -526,11 +526,11 @@
\ t_n <= {v:Pow(x Un y). v eqpoll n}; \
\ v:LL(t_n, k, y) \
\ |] ==> EX! w. w:MM(t_n, k, y) & v<=w";
-by (safe_tac (!claset addSEs [RepFunE]));
+by (safe_tac (claset() addSEs [RepFunE]));
by (Fast_tac 1);
by (resolve_tac [lepoll_imp_eqpoll_subset RS exE] 1 THEN (assume_tac 1));
by (eres_inst_tac [("x","xa")] ballE 1);
-by (fast_tac (!claset addSEs [eqpoll_sym]) 2);
+by (fast_tac (claset() addSEs [eqpoll_sym]) 2);
by (etac alt_ex1E 1);
by (dtac spec 1);
by (dtac spec 1);
@@ -579,10 +579,10 @@
by (res_inst_tac [("x","w Int y")] bexI 1);
by (etac Int_in_LL 2);
by (rewtac GG_def);
-by (asm_full_simp_tac (!simpset delsimps ball_simps addsimps [Int_in_LL]) 1);
+by (asm_full_simp_tac (simpset() delsimps ball_simps addsimps [Int_in_LL]) 1);
by (eresolve_tac [unique_superset_in_MM RS the_equality2 RS ssubst] 1
THEN (assume_tac 1));
-by (REPEAT (fast_tac (!claset addEs [equals0D] addSEs [Int_in_LL]) 1));
+by (REPEAT (fast_tac (claset() addEs [equals0D] addSEs [Int_in_LL]) 1));
qed "exists_in_LL";
goalw thy [LL_def]
@@ -590,7 +590,7 @@
\ t_n <= {v:Pow(x Un y). v eqpoll n}; \
\ v : LL(t_n, k, y) |] \
\ ==> v = (THE x. x : MM(t_n, k, y) & v <= x) Int y";
-by (fast_tac (!claset addSEs [Int_in_LL,
+by (fast_tac (claset() addSEs [Int_in_LL,
unique_superset_in_MM RS the_equality2 RS ssubst]) 1);
qed "in_LL_eq_Int";
@@ -599,7 +599,7 @@
\ t_n <= {v:Pow(x Un y). v eqpoll n}; \
\ v : LL(t_n, k, y) |] \
\ ==> (THE x. x : MM(t_n, k, y) & v <= x) <= x Un y";
-by (fast_tac (!claset addSDs [unique_superset_in_MM RS theI RS conjunct1 RS
+by (fast_tac (claset() addSDs [unique_superset_in_MM RS theI RS conjunct1 RS
(MM_subset RS subsetD)]) 1);
qed "the_in_MM_subset";
@@ -614,7 +614,7 @@
by (rtac subsetI 1);
by (etac DiffE 1);
by (etac swap 1);
-by (fast_tac (!claset addEs [ssubst]) 1);
+by (fast_tac (claset() addEs [ssubst]) 1);
qed "GG_subset";
goal thy
@@ -667,7 +667,7 @@
\ (converse(ordermap(LL(t_n, succ(k), y), S)) ` b) lepoll m";
by (rtac oallI 1);
by (asm_full_simp_tac
- (!simpset delsimps ball_simps
+ (simpset() delsimps ball_simps
addsimps [ltD,
ordermap_bij RS bij_converse_bij RS
bij_is_fun RS apply_type]) 1);
@@ -695,7 +695,7 @@
by (forward_tac [infinite_Un] 1 THEN (mp_tac 1));
by (REPEAT (eresolve_tac [exE, conjE] 1));
by (resolve_tac [well_ord_LL RS exE] 1 THEN REPEAT (assume_tac 1));
-by (fast_tac (!claset addSIs [nat_succI, add_type]) 1);
+by (fast_tac (claset() addSIs [nat_succI, add_type]) 1);
by (res_inst_tac [("x","ordertype(LL(T, succ(k), y), x)")] exI 1);
by (res_inst_tac [("x","lam b:ordertype(LL(T, succ(k), y), x). \
\ (GG(T, succ(k), y)) ` \
--- a/src/ZF/AC/AC16_lemmas.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/AC16_lemmas.ML Mon Nov 03 12:24:13 1997 +0100
@@ -13,23 +13,23 @@
goalw thy [lepoll_def] "1 lepoll X <-> (EX x. x:X)";
by (rtac iffI 1);
-by (fast_tac (!claset addIs [inj_is_fun RS apply_type]) 1);
+by (fast_tac (claset() addIs [inj_is_fun RS apply_type]) 1);
by (etac exE 1);
by (res_inst_tac [("x","lam a:1. x")] exI 1);
-by (fast_tac (!claset addSIs [lam_injective]) 1);
+by (fast_tac (claset() addSIs [lam_injective]) 1);
qed "nat_1_lepoll_iff";
goal thy "X eqpoll 1 <-> (EX x. X={x})";
by (rtac iffI 1);
by (etac eqpollE 1);
by (dresolve_tac [nat_1_lepoll_iff RS iffD1] 1);
-by (fast_tac (!claset addSIs [lepoll_1_is_sing]) 1);
-by (fast_tac (!claset addSIs [singleton_eqpoll_1]) 1);
+by (fast_tac (claset() addSIs [lepoll_1_is_sing]) 1);
+by (fast_tac (claset() addSIs [singleton_eqpoll_1]) 1);
qed "eqpoll_1_iff_singleton";
goalw thy [succ_def]
"!!x. [| x eqpoll n; y~:x |] ==> cons(y,x) eqpoll succ(n)";
-by (fast_tac (!claset addSEs [cons_eqpoll_cong, mem_irrefl]) 1);
+by (fast_tac (claset() addSEs [cons_eqpoll_cong, mem_irrefl]) 1);
qed "cons_eqpoll_succ";
goal thy "{Y:Pow(X). Y eqpoll 1} = {{x}. x:X}";
@@ -37,12 +37,12 @@
by (rtac subsetI 1);
by (etac CollectE 1);
by (dresolve_tac [eqpoll_1_iff_singleton RS iffD1] 1);
-by (fast_tac (!claset addSIs [RepFunI]) 1);
+by (fast_tac (claset() addSIs [RepFunI]) 1);
by (rtac subsetI 1);
by (etac RepFunE 1);
by (rtac CollectI 1);
by (Fast_tac 1);
-by (fast_tac (!claset addSIs [singleton_eqpoll_1]) 1);
+by (fast_tac (claset() addSIs [singleton_eqpoll_1]) 1);
qed "subsets_eqpoll_1_eq";
goalw thy [eqpoll_def, bij_def] "X eqpoll {{x}. x:X}";
@@ -50,10 +50,10 @@
by (rtac IntI 1);
by (rewrite_goals_tac [inj_def, surj_def]);
by (Asm_full_simp_tac 1);
-by (fast_tac (!claset addSIs [lam_type, RepFunI]
+by (fast_tac (claset() addSIs [lam_type, RepFunI]
addIs [singleton_eq_iff RS iffD1]) 1);
by (Asm_full_simp_tac 1);
-by (fast_tac (!claset addSIs [lam_type]) 1);
+by (fast_tac (claset() addSIs [lam_type]) 1);
qed "eqpoll_RepFun_sing";
goal thy "{Y:Pow(X). Y eqpoll 1} eqpoll X";
@@ -65,7 +65,7 @@
\ ==> (LEAST i. i:y) : y";
by (eresolve_tac [eqpoll_sym RS eqpoll_imp_lepoll RS
succ_lepoll_imp_not_empty RS not_emptyE] 1);
-by (fast_tac (!claset addIs [LeastI]
+by (fast_tac (claset() addIs [LeastI]
addSDs [InfCard_is_Card RS Card_is_Ord, PowD RS subsetD]
addEs [Ord_in_Ord]) 1);
qed "InfCard_Least_in";
@@ -87,7 +87,7 @@
by (rtac CollectI 2);
by (Fast_tac 2);
by (resolve_tac [PowD RS subsetD] 1 THEN (assume_tac 1));
-by (REPEAT (fast_tac (!claset addSIs [Diff_sing_eqpoll]
+by (REPEAT (fast_tac (claset() addSIs [Diff_sing_eqpoll]
addIs [InfCard_Least_in]) 1));
qed "subsets_lepoll_lemma1";
@@ -99,13 +99,13 @@
by (rtac ballI 1);
by (rtac Ord_linear_le 1);
by (dtac le_imp_subset 3 THEN (assume_tac 3));
-by (fast_tac (!claset addDs prems) 1);
-by (fast_tac (!claset addDs prems) 1);
-by (fast_tac (!claset addSEs [leE,ltE]) 1);
+by (fast_tac (claset() addDs prems) 1);
+by (fast_tac (claset() addDs prems) 1);
+by (fast_tac (claset() addSEs [leE,ltE]) 1);
qed "set_of_Ord_succ_Union";
goal thy "!!i. j<=i ==> i ~: j";
-by (fast_tac (!claset addSEs [mem_irrefl]) 1);
+by (fast_tac (claset() addSEs [mem_irrefl]) 1);
qed "subset_not_mem";
val prems = goal thy "(!!y. y:z ==> Ord(y)) ==> succ(Union(z)) ~: z";
@@ -118,7 +118,7 @@
qed "Union_cons_eq_succ_Union";
goal thy "!!i. [| Ord(i); Ord(j) |] ==> i Un j = i | i Un j = j";
-by (fast_tac (!claset addSDs [le_imp_subset] addEs [Ord_linear_le]) 1);
+by (fast_tac (claset() addSDs [le_imp_subset] addEs [Ord_linear_le]) 1);
qed "Un_Ord_disj";
goal thy "!!X. x:X ==> Union(X) = x Un Union(X-{x})";
@@ -128,16 +128,16 @@
goal thy "!!n. n:nat ==> \
\ ALL z. (ALL y:z. Ord(y)) & z eqpoll n & z~=0 --> Union(z) : z";
by (etac nat_induct 1);
-by (fast_tac (!claset addSDs [eqpoll_imp_lepoll RS lepoll_0_is_0]) 1);
+by (fast_tac (claset() addSDs [eqpoll_imp_lepoll RS lepoll_0_is_0]) 1);
by (REPEAT (resolve_tac [allI, impI] 1));
by (etac natE 1);
-by (fast_tac (!claset addSDs [eqpoll_1_iff_singleton RS iffD1]
+by (fast_tac (claset() addSDs [eqpoll_1_iff_singleton RS iffD1]
addSIs [Union_singleton]) 1);
by (hyp_subst_tac 1);
by (REPEAT (eresolve_tac [conjE, not_emptyE] 1));
by (eres_inst_tac [("x","z-{xb}")] allE 1);
by (etac impE 1);
-by (fast_tac (!claset addSEs [Diff_sing_eqpoll,
+by (fast_tac (claset() addSEs [Diff_sing_eqpoll,
Diff_sing_eqpoll RS eqpoll_succ_imp_not_empty]) 1);
by (resolve_tac [Union_eq_Un RSN (2, subst_elem)] 1 THEN (assume_tac 2));
by (forward_tac [bspec] 1 THEN (assume_tac 1));
@@ -160,12 +160,12 @@
by (resolve_tac [Limit_has_succ RS ltE] 1 THEN (assume_tac 3));
by (etac InfCard_is_Limit 1);
by (excluded_middle_tac "z=0" 1);
-by (fast_tac (!claset addSIs [InfCard_is_Limit RS Limit_has_0]
- addss (!simpset)) 2);
+by (fast_tac (claset() addSIs [InfCard_is_Limit RS Limit_has_0]
+ addss (simpset())) 2);
by (resolve_tac
[PowD RS subsetD RS (InfCard_is_Card RS Card_is_Ord RSN (2, ltI))] 1
THEN (TRYALL assume_tac));
-by (fast_tac (!claset addSIs [Union_in]
+by (fast_tac (claset() addSIs [Union_in]
addSEs [PowD RS subsetD RSN
(2, InfCard_is_Card RS Card_is_Ord RS Ord_in_Ord)]) 1);
qed "succ_Union_in_x";
@@ -178,14 +178,14 @@
by (res_inst_tac [("d","%z. z-{Union(z)}")] lam_injective 1);
by (resolve_tac [Union_cons_eq_succ_Union RS ssubst] 2);
by (rtac cons_Diff_eq 2);
-by (fast_tac (!claset addSDs [InfCard_is_Card RS Card_is_Ord]
+by (fast_tac (claset() addSDs [InfCard_is_Card RS Card_is_Ord]
addEs [Ord_in_Ord] addSIs [succ_Union_not_mem]) 2);
by (rtac CollectI 1);
-by (fast_tac (!claset addSEs [cons_eqpoll_succ]
+by (fast_tac (claset() addSEs [cons_eqpoll_succ]
addSIs [succ_Union_not_mem]
addSDs [InfCard_is_Card RS Card_is_Ord]
addEs [Ord_in_Ord]) 2);
-by (fast_tac (!claset addSIs [succ_Union_in_x, nat_succI]) 1);
+by (fast_tac (claset() addSIs [succ_Union_in_x, nat_succI]) 1);
qed "succ_lepoll_succ_succ";
goal thy "!!X. [| InfCard(X); n:nat |] \
@@ -201,18 +201,18 @@
by (resolve_tac [InfCard_is_Card RS Card_cardinal_eq RS ssubst] 2
THEN (REPEAT (assume_tac 2)));
by (eresolve_tac [eqpoll_refl RS prod_eqpoll_cong RS eqpoll_imp_lepoll] 1);
-by (fast_tac (!claset addEs [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_trans]
+by (fast_tac (claset() addEs [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_trans]
addSIs [succ_lepoll_succ_succ]) 1);
qed "subsets_eqpoll_X";
goalw thy [surj_def] "!!f. [| f:surj(A,B); y<=B |] \
\ ==> f``(converse(f)``y) = y";
-by (fast_tac (!claset addDs [apply_equality2]
+by (fast_tac (claset() addDs [apply_equality2]
addEs [apply_iff RS iffD2]) 1);
qed "image_vimage_eq";
goal thy "!!f. [| f:inj(A,B); y<=A |] ==> converse(f)``(f``y) = y";
-by (fast_tac (!claset addSEs [inj_is_fun RS apply_Pair]
+by (fast_tac (claset() addSEs [inj_is_fun RS apply_Pair]
addDs [inj_equality]) 1);
qed "vimage_image_eq";
@@ -221,20 +221,20 @@
by (etac exE 1);
by (res_inst_tac [("x","lam X:{Y:Pow(A). EX f. f : bij(Y, n)}. f``X")] exI 1);
by (res_inst_tac [("d","%Z. converse(f)``Z")] lam_bijective 1);
-by (fast_tac (!claset
+by (fast_tac (claset()
addSIs [bij_is_inj RS restrict_bij RS bij_converse_bij RS comp_bij]
addSEs [bij_is_fun RS fun_is_rel RS image_subset RS PowI]) 1);
-by (fast_tac (!claset addSIs [bij_converse_bij RS bij_is_inj RS restrict_bij
+by (fast_tac (claset() addSIs [bij_converse_bij RS bij_is_inj RS restrict_bij
RS bij_converse_bij RS comp_bij]
addSEs [bij_converse_bij RS bij_is_fun RS fun_is_rel
RS image_subset RS PowI]) 1);
-by (fast_tac (!claset addSEs [bij_is_inj RS vimage_image_eq]) 1);
-by (fast_tac (!claset addSEs [bij_is_surj RS image_vimage_eq]) 1);
+by (fast_tac (claset() addSEs [bij_is_inj RS vimage_image_eq]) 1);
+by (fast_tac (claset() addSEs [bij_is_surj RS image_vimage_eq]) 1);
qed "subsets_eqpoll";
goalw thy [WO2_def] "!!X. WO2 ==> EX a. Card(a) & X eqpoll a";
by (REPEAT (eresolve_tac [allE,exE,conjE] 1));
-by (fast_tac (!claset addSEs [well_ord_Memrel RS well_ord_cardinal_eqpoll RS
+by (fast_tac (claset() addSEs [well_ord_Memrel RS well_ord_cardinal_eqpoll RS
(eqpoll_sym RSN (2, eqpoll_trans)) RS eqpoll_sym]
addSIs [Card_cardinal]) 1);
qed "WO2_imp_ex_Card";
@@ -244,7 +244,7 @@
qed "lepoll_infinite";
goalw thy [InfCard_def] "!!X. [| ~Finite(X); Card(X) |] ==> InfCard(X)";
-by (fast_tac (!claset addSEs [Card_is_Ord RS nat_le_infinite_Ord]) 1);
+by (fast_tac (claset() addSEs [Card_is_Ord RS nat_le_infinite_Ord]) 1);
qed "infinite_Card_is_InfCard";
goal thy "!!X n. [| WO2; n:nat; ~Finite(X) |] \
@@ -260,7 +260,7 @@
qed "WO2_infinite_subsets_eqpoll_X";
goal thy "!!X. well_ord(X,R) ==> EX a. Card(a) & X eqpoll a";
-by (fast_tac (!claset addSEs [well_ord_cardinal_eqpoll RS eqpoll_sym]
+by (fast_tac (claset() addSEs [well_ord_cardinal_eqpoll RS eqpoll_sym]
addSIs [Card_cardinal]) 1);
qed "well_ord_imp_ex_Card";
--- a/src/ZF/AC/AC17_AC1.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/AC17_AC1.ML Mon Nov 03 12:24:13 1997 +0100
@@ -34,7 +34,7 @@
by (rtac ballI 1);
by (etac swap 1);
by (rtac impI 1);
-by (fast_tac (!claset addSIs [restrict_type]) 1);
+by (fast_tac (claset() addSIs [restrict_type]) 1);
qed "not_AC1_imp_ex";
goal thy "!!x. [| ALL f:Pow(x) - {0} -> x. EX u: Pow(x) - {0}. f`u~:u; \
@@ -56,13 +56,13 @@
goal thy "!!x. ~ (EX f: Pow(x)-{0}->x. x - F(f) = 0) \
\ ==> (lam f: Pow(x)-{0}->x. x - F(f)) \
\ : (Pow(x) -{0} -> x) -> Pow(x) - {0}";
-by (fast_tac (!claset addSIs [lam_type] addSDs [Diff_eq_0_iff RS iffD1]) 1);
+by (fast_tac (claset() addSIs [lam_type] addSDs [Diff_eq_0_iff RS iffD1]) 1);
val lemma2 = result();
goal thy "!!f. [| f`Z : Z; Z:Pow(x)-{0} |] ==> \
\ (lam X:Pow(x)-{0}. {f`X})`Z : Pow(Z)-{0}";
by (Asm_full_simp_tac 1);
-by (fast_tac (!claset addSDs [equals0D]) 1);
+by (fast_tac (claset() addSDs [equals0D]) 1);
val lemma3 = result();
goal thy "!!z. EX f:F. f`((lam f:F. Q(f))`f) : (lam f:F. Q(f))`f \
@@ -87,6 +87,6 @@
by (dresolve_tac [beta RS sym RSN (2, subst_elem)] 1);
by (assume_tac 1);
by (dtac lemma3 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSDs [HH_Least_eq_x RS sym RSN (2, subst_elem),
+by (fast_tac (claset() addSDs [HH_Least_eq_x RS sym RSN (2, subst_elem),
f_subset_imp_HH_subset] addSEs [mem_irrefl]) 1);
qed "AC17_AC1";
--- a/src/ZF/AC/AC18_AC19.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/AC18_AC19.ML Mon Nov 03 12:24:13 1997 +0100
@@ -25,19 +25,19 @@
by (rtac subsetI 1);
by (eres_inst_tac [("x","{{b:B(a). x:X(a,b)}. a:A}")] allE 1);
by (etac impE 1);
-by (fast_tac (!claset addSEs [RepFunE] addSDs [INT_E]
+by (fast_tac (claset() addSEs [RepFunE] addSDs [INT_E]
addEs [UN_E, sym RS equals0D]) 1);
by (etac exE 1);
by (rtac UN_I 1);
-by (fast_tac (!claset addSEs [PROD_subsets]) 1);
+by (fast_tac (claset() addSEs [PROD_subsets]) 1);
by (Simp_tac 1);
-by (fast_tac (!claset addSEs [not_emptyE] addDs [RepFunI RSN (2, apply_type)]
+by (fast_tac (claset() addSEs [not_emptyE] addDs [RepFunI RSN (2, apply_type)]
addEs [CollectD2] addSIs [INT_I]) 1);
qed "lemma_AC18";
val [prem] = goalw thy (AC18_def::AC_defs) "AC1 ==> AC18";
by (resolve_tac [prem RS revcut_rl] 1);
-by (fast_tac (!claset addSEs [lemma_AC18, not_emptyE, apply_type]
+by (fast_tac (claset() addSEs [lemma_AC18, not_emptyE, apply_type]
addSIs [equalityI, INT_I, UN_I]) 1);
qed "AC1_AC18";
@@ -57,7 +57,7 @@
goalw thy [u_def]
"!!A. [| A ~= 0; 0 ~: A |] ==> {u_(a). a:A} ~= 0 & 0 ~: {u_(a). a:A}";
-by (fast_tac (!claset addSIs [not_emptyI, RepFunI]
+by (fast_tac (claset() addSIs [not_emptyI, RepFunI]
addSEs [not_emptyE, RepFunE]
addSDs [sym RS (RepFun_eq_0_iff RS iffD1)]) 1);
qed "RepRep_conj";
@@ -70,13 +70,13 @@
by (rtac subsetI 1);
by (excluded_middle_tac "x=0" 1);
by (Fast_tac 1);
-by (fast_tac (!claset addEs [notE, subst_elem]) 1);
+by (fast_tac (claset() addEs [notE, subst_elem]) 1);
val lemma1_1 = result();
goalw thy [u_def]
"!!a. [| f`(u_(a)) ~: a; f: (PROD B:{u_(a). a:A}. B); a:A |] \
\ ==> f`(u_(a))-{0} : a";
-by (fast_tac (!claset addSEs [RepFunI, RepFunE, lemma1_1]
+by (fast_tac (claset() addSEs [RepFunI, RepFunE, lemma1_1]
addSDs [apply_type]) 1);
val lemma1_2 = result();
@@ -88,34 +88,34 @@
by (split_tac [expand_if] 1);
by (rtac conjI 1);
by (Fast_tac 1);
-by (fast_tac (!claset addSEs [lemma1_2]) 1);
+by (fast_tac (claset() addSEs [lemma1_2]) 1);
val lemma1 = result();
goalw thy [u_def] "!!a. a~=0 ==> 0: (UN b:u_(a). b)";
-by (fast_tac (!claset addSEs [not_emptyE] addSIs [UN_I, RepFunI]) 1);
+by (fast_tac (claset() addSEs [not_emptyE] addSIs [UN_I, RepFunI]) 1);
val lemma2_1 = result();
goal thy "!!A C. [| A~=0; 0~:A |] ==> (INT x:{u_(a). a:A}. UN b:x. b) ~= 0";
by (etac not_emptyE 1);
by (res_inst_tac [("a","0")] not_emptyI 1);
-by (fast_tac (!claset addSIs [INT_I, RepFunI, lemma2_1] addSEs [RepFunE]) 1);
+by (fast_tac (claset() addSIs [INT_I, RepFunI, lemma2_1] addSEs [RepFunE]) 1);
val lemma2 = result();
goal thy "!!F. (UN f:F. P(f)) ~= 0 ==> F ~= 0";
-by (fast_tac (!claset addSEs [not_emptyE]) 1);
+by (fast_tac (claset() addSEs [not_emptyE]) 1);
val lemma3 = result();
goalw thy AC_defs "!!Z. AC19 ==> AC1";
by (REPEAT (resolve_tac [allI,impI] 1));
by (excluded_middle_tac "A=0" 1);
-by (fast_tac (!claset addSIs [exI, empty_fun]) 2);
+by (fast_tac (claset() addSIs [exI, empty_fun]) 2);
by (eres_inst_tac [("x","{u_(a). a:A}")] allE 1);
by (etac impE 1);
by (etac RepRep_conj 1 THEN (assume_tac 1));
by (rtac lemma1 1);
by (dtac lemma2 1 THEN (assume_tac 1));
by (dres_inst_tac [("P","%x. x~=0")] subst 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSEs [lemma3 RS not_emptyE]) 1);
+by (fast_tac (claset() addSEs [lemma3 RS not_emptyE]) 1);
qed "AC19_AC1";
--- a/src/ZF/AC/AC1_AC17.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/AC1_AC17.ML Mon Nov 03 12:24:13 1997 +0100
@@ -21,5 +21,5 @@
by (rtac bexI 1);
by (etac lemma1 2);
by (rtac apply_type 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSDs [lemma1] addSEs [apply_type]) 1);
+by (fast_tac (claset() addSDs [lemma1] addSEs [apply_type]) 1);
qed "AC1_AC17";
--- a/src/ZF/AC/AC1_WO2.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/AC1_WO2.ML Mon Nov 03 12:24:13 1997 +0100
@@ -13,12 +13,12 @@
by (resolve_tac [bij_Least_HH_x RS bij_converse_bij] 1);
by (rtac f_subsets_imp_UN_HH_eq_x 1);
by (resolve_tac [lam_type RS apply_type] 1 THEN (assume_tac 2));
-by (fast_tac (!claset addSDs [equals0D, prem RS apply_type]) 1);
-by (fast_tac (!claset addSIs [prem RS Pi_weaken_type]) 1);
+by (fast_tac (claset() addSDs [equals0D, prem RS apply_type]) 1);
+by (fast_tac (claset() addSIs [prem RS Pi_weaken_type]) 1);
val lemma1 = uresult() |> standard;
goalw thy [AC1_def, WO2_def, eqpoll_def] "!!Z. AC1 ==> WO2";
by (rtac allI 1);
by (eres_inst_tac [("x","Pow(A)-{0}")] allE 1);
-by (fast_tac (!claset addSDs [lemma1] addSIs [Ord_Least]) 1);
+by (fast_tac (claset() addSDs [lemma1] addSIs [Ord_Least]) 1);
qed "AC1_WO2";
--- a/src/ZF/AC/AC2_AC6.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/AC2_AC6.ML Mon Nov 03 12:24:13 1997 +0100
@@ -16,12 +16,12 @@
goal thy "!!B. [| B:A; f:(PROD X:A. X); 0~:A |] \
\ ==> {f`B} <= B Int {f`C. C:A}";
-by (fast_tac (!claset addSEs [apply_type]) 1);
+by (fast_tac (claset() addSEs [apply_type]) 1);
val lemma1 = result();
goalw thy [pairwise_disjoint_def]
"!!A. [| pairwise_disjoint(A); B:A; C:A; D:B; D:C |] ==> f`B = f`C";
-by (fast_tac (!claset addSEs [equals0D]) 1);
+by (fast_tac (claset() addSEs [equals0D]) 1);
val lemma2 = result();
goalw thy AC_defs "!!Z. AC1 ==> AC2";
@@ -30,7 +30,7 @@
by (REPEAT (eresolve_tac [asm_rl,conjE,allE,exE,impE] 1));
by (REPEAT (resolve_tac [exI,ballI,equalityI] 1));
by (rtac lemma1 2 THEN (REPEAT (assume_tac 2)));
-by (fast_tac (!claset addSEs [RepFunE, lemma2] addEs [apply_type]) 1);
+by (fast_tac (claset() addSEs [RepFunE, lemma2] addEs [apply_type]) 1);
qed "AC1_AC2";
@@ -39,22 +39,22 @@
(* ********************************************************************** *)
goal thy "!!A. 0~:A ==> 0 ~: {B*{B}. B:A}";
-by (fast_tac (!claset addSDs [sym RS (Sigma_empty_iff RS iffD1)]
+by (fast_tac (claset() addSDs [sym RS (Sigma_empty_iff RS iffD1)]
addSEs [RepFunE, equals0D]) 1);
val lemma1 = result();
goal thy "!!A. [| X*{X} Int C = {y}; X:A |] \
\ ==> (THE y. X*{X} Int C = {y}): X*A";
by (rtac subst_elem 1);
-by (fast_tac (!claset addSIs [the_equality]
+by (fast_tac (claset() addSIs [the_equality]
addSEs [sym RS trans RS (singleton_eq_iff RS iffD1)]) 2);
-by (fast_tac (!claset addSEs [equalityE, make_elim singleton_subsetD]) 1);
+by (fast_tac (claset() addSEs [equalityE, make_elim singleton_subsetD]) 1);
val lemma2 = result();
goal thy "!!A. ALL D:{E*{E}. E:A}. EX y. D Int C = {y} \
\ ==> (lam x:A. fst(THE z. (x*{x} Int C = {z}))) : \
\ (PROD X:A. X) ";
-by (fast_tac (!claset addSEs [lemma2]
+by (fast_tac (claset() addSEs [lemma2]
addSIs [lam_type, RepFunI, fst_type]
addSDs [bspec]) 1);
val lemma3 = result();
@@ -62,8 +62,8 @@
goalw thy (AC_defs@AC_aux_defs) "!!Z. AC2 ==> AC1";
by (REPEAT (resolve_tac [allI, impI] 1));
by (REPEAT (eresolve_tac [allE, impE] 1));
-by (fast_tac (!claset addSEs [lemma3]) 2);
-by (fast_tac (!claset addSIs [lemma1, equals0I]) 1);
+by (fast_tac (claset() addSEs [lemma3]) 2);
+by (fast_tac (claset() addSIs [lemma1, equals0I]) 1);
qed "AC2_AC1";
@@ -72,13 +72,13 @@
(* ********************************************************************** *)
goal thy "!!R. 0 ~: {R``{x}. x:domain(R)}";
-by (fast_tac (!claset addEs [sym RS equals0D]) 1);
+by (fast_tac (claset() addEs [sym RS equals0D]) 1);
val lemma = result();
goalw thy AC_defs "!!Z. AC1 ==> AC4";
by (REPEAT (resolve_tac [allI, impI] 1));
by (REPEAT (eresolve_tac [allE, lemma RSN (2, impE), exE] 1));
-by (best_tac (!claset addSIs [lam_type] addSEs [apply_type]) 1);
+by (best_tac (claset() addSIs [lam_type] addSEs [apply_type]) 1);
qed "AC1_AC4";
@@ -87,11 +87,11 @@
(* ********************************************************************** *)
goal thy "!!f. f:A->B ==> (UN z:A. {z}*f`z) <= A*Union(B)";
-by (fast_tac (!claset addSDs [apply_type]) 1);
+by (fast_tac (claset() addSDs [apply_type]) 1);
val lemma1 = result();
goal thy "!!f. domain(UN z:A. {z}*f(z)) = {a:A. f(a)~=0}";
-by (fast_tac (!claset addSIs [not_emptyI] addDs [range_type]) 1);
+by (fast_tac (claset() addSIs [not_emptyI] addDs [range_type]) 1);
val lemma2 = result();
goal thy "!!f. x:A ==> (UN z:A. {z}*f(z))``{x} = f(x)";
@@ -102,7 +102,7 @@
by (REPEAT (resolve_tac [allI,ballI] 1));
by (REPEAT (eresolve_tac [allE,impE] 1));
by (etac lemma1 1);
-by (asm_full_simp_tac (!simpset addsimps [lemma2, lemma3]
+by (asm_full_simp_tac (simpset() addsimps [lemma2, lemma3]
addcongs [Pi_cong]) 1);
qed "AC4_AC3";
@@ -111,7 +111,7 @@
(* ********************************************************************** *)
goal thy "!!A. b~:A ==> (PROD x:{a:A. id(A)`a~=b}. id(A)`x) = (PROD x:A. x)";
-by (asm_full_simp_tac (!simpset addsimps [id_def] addcongs [Pi_cong]) 1);
+by (asm_full_simp_tac (simpset() addsimps [id_def] addcongs [Pi_cong]) 1);
by (res_inst_tac [("b","A")] subst_context 1);
by (Fast_tac 1);
val lemma = result();
@@ -119,8 +119,8 @@
goalw thy AC_defs "!!Z. AC3 ==> AC1";
by (REPEAT (resolve_tac [allI, impI] 1));
by (REPEAT (eresolve_tac [allE, ballE] 1));
-by (fast_tac (!claset addSIs [id_type]) 2);
-by (fast_tac (!claset addEs [lemma RS subst]) 1);
+by (fast_tac (claset() addSIs [id_type]) 2);
+by (fast_tac (claset() addEs [lemma RS subst]) 1);
qed "AC3_AC1";
(* ********************************************************************** *)
@@ -134,13 +134,13 @@
by (etac exE 1);
by (rtac bexI 1);
by (rtac Pi_type 2 THEN (assume_tac 2));
-by (fast_tac (!claset addSDs [apply_type]
+by (fast_tac (claset() addSDs [apply_type]
addSEs [fun_is_rel RS converse_type RS subsetD RS SigmaD2]) 2);
by (rtac ballI 1);
by (rtac apply_equality 1 THEN (assume_tac 2));
by (etac domainE 1);
by (forward_tac [range_type] 1 THEN (assume_tac 1));
-by (fast_tac (!claset addDs [apply_equality]) 1);
+by (fast_tac (claset() addDs [apply_equality]) 1);
qed "AC4_AC5";
@@ -149,18 +149,18 @@
(* ********************************************************************** *)
goal thy "!!A. R <= A*B ==> (lam x:R. fst(x)) : R -> A";
-by (fast_tac (!claset addSIs [lam_type, fst_type]) 1);
+by (fast_tac (claset() addSIs [lam_type, fst_type]) 1);
val lemma1 = result();
goalw thy [range_def] "!!A. R <= A*B ==> range(lam x:R. fst(x)) = domain(R)";
by (rtac equalityI 1);
-by (fast_tac (!claset addSEs [lamE]
+by (fast_tac (claset() addSEs [lamE]
addEs [subst_elem]
addSDs [Pair_fst_snd_eq]) 1);
by (rtac subsetI 1);
by (etac domainE 1);
by (rtac domainI 1);
-by (fast_tac (!claset addSEs [lamI RS subst_elem] addIs [fst_conv RS ssubst]) 1);
+by (fast_tac (claset() addSEs [lamI RS subst_elem] addIs [fst_conv RS ssubst]) 1);
val lemma2 = result();
goal thy "!!A. [| EX f: A->C. P(f,domain(f)); A=B |] ==> EX f: B->C. P(f,B)";
@@ -185,7 +185,7 @@
by (REPEAT (eresolve_tac [allE,ballE] 1));
by (eresolve_tac [lemma1 RSN (2, notE)] 2 THEN (assume_tac 2));
by (dresolve_tac [lemma2 RSN (2, lemma3)] 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSEs [lemma4]) 1);
+by (fast_tac (claset() addSEs [lemma4]) 1);
qed "AC5_AC4";
@@ -194,6 +194,6 @@
(* ********************************************************************** *)
goalw thy AC_defs "AC1 <-> AC6";
-by (fast_tac (!claset addDs [equals0D] addSEs [not_emptyE]) 1);
+by (fast_tac (claset() addDs [equals0D] addSEs [not_emptyE]) 1);
qed "AC1_iff_AC6";
--- a/src/ZF/AC/AC7_AC9.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/AC7_AC9.ML Mon Nov 03 12:24:13 1997 +0100
@@ -18,7 +18,7 @@
qed "mem_not_eq_not_mem";
goal thy "!!A. [| 0~:A; B:A |] ==> (nat->Union(A))*B ~= 0";
-by (fast_tac (!claset addSDs [Sigma_empty_iff RS iffD1]
+by (fast_tac (claset() addSDs [Sigma_empty_iff RS iffD1]
addDs [fun_space_emptyD, mem_not_eq_not_mem]
addEs [equals0D]
addSIs [equals0I,UnionI]) 1);
@@ -45,7 +45,7 @@
qed "if_eqE2";
goal thy "!!A. [| (lam x:A. f(x))=(lam x:A. g(x)); a:A |] ==> f(a)=g(a)";
-by (fast_tac (!claset addDs [subsetD]
+by (fast_tac (claset() addDs [subsetD]
addSIs [lamI]
addEs [equalityE, lamE]) 1);
qed "lam_eqE";
@@ -55,7 +55,7 @@
\ (lam n:nat. if(n=0, snd(g), fst(g)`(n #- 1)))) \
\ : inj((nat->Union(A))*C, (nat->Union(A)) ) ";
by (rtac CollectI 1);
-by (fast_tac (!claset addSIs [lam_type,RepFunI,if_type,snd_type,apply_type,
+by (fast_tac (claset() addSIs [lam_type,RepFunI,if_type,snd_type,apply_type,
fst_type,diff_type,nat_succI,nat_0I]) 1);
by (REPEAT (resolve_tac [ballI, impI] 1));
by (Asm_full_simp_tac 1);
@@ -67,15 +67,15 @@
by (Asm_full_simp_tac 2);
by (rtac fun_extension 1 THEN REPEAT (assume_tac 1));
by (dresolve_tac [nat_succI RSN (2, lam_eqE)] 1 THEN (assume_tac 1));
-by (asm_full_simp_tac (!simpset addsimps [succ_not_0 RS if_not_P]) 1);
+by (asm_full_simp_tac (simpset() addsimps [succ_not_0 RS if_not_P]) 1);
val lemma = result();
goal thy "!!A. [| C:A; 0~:A |] ==> (nat->Union(A)) * C eqpoll (nat->Union(A))";
by (rtac eqpollI 1);
-by (fast_tac (!claset addSEs [prod_lepoll_self, not_sym RS not_emptyE,
+by (fast_tac (claset() addSEs [prod_lepoll_self, not_sym RS not_emptyE,
subst_elem] addEs [swap]) 2);
by (rewtac lepoll_def);
-by (fast_tac (!claset addSIs [lemma]) 1);
+by (fast_tac (claset() addSIs [lemma]) 1);
qed "Sigma_fun_space_eqpoll";
@@ -94,22 +94,22 @@
(* ********************************************************************** *)
goal thy "!!y. y: (PROD B:A. Y*B) ==> (lam B:A. snd(y`B)): (PROD B:A. B)";
-by (fast_tac (!claset addSIs [lam_type, snd_type, apply_type]) 1);
+by (fast_tac (claset() addSIs [lam_type, snd_type, apply_type]) 1);
val lemma1_1 = result();
goal thy "!!A. y: (PROD B:{Y*C. C:A}. B) \
\ ==> (lam B:A. y`(Y*B)): (PROD B:A. Y*B)";
-by (fast_tac (!claset addSIs [lam_type, apply_type]) 1);
+by (fast_tac (claset() addSIs [lam_type, apply_type]) 1);
val lemma1_2 = result();
goal thy "!!A. (PROD B:{(nat->Union(A))*C. C:A}. B) ~= 0 \
\ ==> (PROD B:A. B) ~= 0";
-by (fast_tac (!claset addSIs [equals0I,lemma1_1, lemma1_2]
+by (fast_tac (claset() addSIs [equals0I,lemma1_1, lemma1_2]
addSEs [equals0D]) 1);
val lemma1 = result();
goal thy "!!A. 0 ~: A ==> 0 ~: {(nat -> Union(A)) * C. C:A}";
-by (fast_tac (!claset addEs [RepFunE,
+by (fast_tac (claset() addEs [RepFunE,
Sigma_fun_space_not0 RS not_sym RS notE]) 1);
val lemma2 = result();
@@ -117,11 +117,11 @@
by (rtac allI 1);
by (rtac impI 1);
by (excluded_middle_tac "A=0" 1);
-by (fast_tac (!claset addSIs [not_emptyI, empty_fun]) 2);
+by (fast_tac (claset() addSIs [not_emptyI, empty_fun]) 2);
by (rtac lemma1 1);
by (etac allE 1);
by (etac impE 1 THEN (assume_tac 2));
-by (fast_tac (!claset addSEs [RepFunE]
+by (fast_tac (claset() addSEs [RepFunE]
addSIs [lemma2, all_eqpoll_imp_pair_eqpoll,
Sigma_fun_space_eqpoll]) 1);
qed "AC7_AC6";
@@ -140,13 +140,13 @@
by (REPEAT (eresolve_tac [exE,conjE] 1));
by (hyp_subst_tac 1);
by (Asm_full_simp_tac 1);
-by (fast_tac (!claset addSEs [sym RS equals0D]) 1);
+by (fast_tac (claset() addSEs [sym RS equals0D]) 1);
val lemma1 = result();
goal thy "!!A. [| f: (PROD X:RepFun(A,p). X); D:A |] \
\ ==> (lam x:A. f`p(x))`D : p(D)";
by (resolve_tac [beta RS ssubst] 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSEs [apply_type]) 1);
+by (fast_tac (claset() addSEs [apply_type]) 1);
val lemma2 = result();
goalw thy AC_defs "!!Z. AC1 ==> AC8";
@@ -155,7 +155,7 @@
by (rtac impI 1);
by (etac impE 1);
by (etac lemma1 1);
-by (fast_tac (!claset addSEs [lemma2]) 1);
+by (fast_tac (claset() addSEs [lemma2]) 1);
qed "AC1_AC8";
@@ -180,7 +180,7 @@
by (etac allE 1);
by (etac impE 1);
by (etac lemma1 1);
-by (fast_tac (!claset addSEs [lemma2]) 1);
+by (fast_tac (claset() addSEs [lemma2]) 1);
qed "AC8_AC9";
@@ -203,7 +203,7 @@
\ ALL B2: ({((nat->Union(A))*B)*nat. B:A} \
\ Un {cons(0,((nat->Union(A))*B)*nat). B:A}). \
\ B1 eqpoll B2";
-by (fast_tac (!claset addSIs [all_eqpoll_imp_pair_eqpoll, ballI,
+by (fast_tac (claset() addSIs [all_eqpoll_imp_pair_eqpoll, ballI,
nat_cons_eqpoll RS eqpoll_trans]
addEs [Sigma_fun_space_not0 RS not_emptyE]
addIs [snd_lepoll_SigmaI, eqpoll_refl RSN
@@ -219,7 +219,7 @@
by (rtac snd_type 1);
by (rtac fst_type 1);
by (resolve_tac [consI1 RSN (2, apply_type)] 1);
-by (fast_tac (!claset addSIs [fun_weaken_type, bij_is_fun]) 1);
+by (fast_tac (claset() addSIs [fun_weaken_type, bij_is_fun]) 1);
val lemma2 = result();
goalw thy AC_defs "!!Z. AC9 ==> AC1";
@@ -229,6 +229,6 @@
by (excluded_middle_tac "A=0" 1);
by (etac impE 1);
by (rtac lemma1 1 THEN (REPEAT (assume_tac 1)));
-by (fast_tac (!claset addSEs [lemma2]) 1);
-by (fast_tac (!claset addSIs [empty_fun]) 1);
+by (fast_tac (claset() addSEs [lemma2]) 1);
+by (fast_tac (claset() addSIs [empty_fun]) 1);
qed "AC9_AC1";
--- a/src/ZF/AC/AC_Equiv.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/AC_Equiv.ML Mon Nov 03 12:24:13 1997 +0100
@@ -24,11 +24,11 @@
val [prem] = goalw Cardinal.thy [lepoll_def]
"m:nat ==> ALL n: nat. m le n --> m lepoll n";
by (nat_ind_tac "m" [prem] 1);
-by (fast_tac (!claset addSIs [le_imp_subset RS id_subset_inj]) 1);
+by (fast_tac (claset() addSIs [le_imp_subset RS id_subset_inj]) 1);
by (rtac ballI 1);
by (eres_inst_tac [("n","n")] natE 1);
-by (asm_simp_tac (!simpset addsimps [inj_def, succI1 RS Pi_empty2]) 1);
-by (fast_tac (!claset addSIs [le_imp_subset RS id_subset_inj]) 1);
+by (asm_simp_tac (simpset() addsimps [inj_def, succI1 RS Pi_empty2]) 1);
+by (fast_tac (claset() addSIs [le_imp_subset RS id_subset_inj]) 1);
qed "nat_le_imp_lepoll_lemma";
(* used in : AC10-AC15.ML WO1-WO6.ML WO6WO1.ML*)
@@ -39,14 +39,14 @@
(* ********************************************************************** *)
goal thy "!!X. (A->X)=0 ==> X=0";
-by (fast_tac (!claset addSIs [equals0I] addEs [lam_type RSN (2, equals0D)]) 1);
+by (fast_tac (claset() addSIs [equals0I] addEs [lam_type RSN (2, equals0D)]) 1);
qed "fun_space_emptyD";
(* used only in WO1_DC.ML *)
(*Note simpler proof*)
goal ZF.thy "!!A f g. [| ALL x:A. f`x=g`x; f:Df->Cf; g:Dg->Cg; \
\ A<=Df; A<=Dg |] ==> f``A=g``A";
-by (asm_simp_tac (!simpset addsimps [image_fun]) 1);
+by (asm_simp_tac (simpset() addsimps [image_fun]) 1);
qed "images_eq";
(* used in : AC10-AC15.ML AC16WO4.ML WO6WO1.ML *)
@@ -78,7 +78,7 @@
THEN (assume_tac 1));
by (dres_inst_tac [("P","%a. <a,ya>:r")] (id_conv RS subst) 1
THEN (REPEAT (assume_tac 1)));
-by (fast_tac (!claset addIs [id_conv RS ssubst]) 1);
+by (fast_tac (claset() addIs [id_conv RS ssubst]) 1);
qed "rvimage_id";
(* used only in Hartog.ML *)
@@ -92,42 +92,42 @@
(* used only in AC16_lemmas.ML *)
goalw CardinalArith.thy [InfCard_def]
"!!i. [| ~Finite(i); Card(i) |] ==> InfCard(i)";
-by (asm_simp_tac (!simpset addsimps [Card_is_Ord RS nat_le_infinite_Ord]) 1);
+by (asm_simp_tac (simpset() addsimps [Card_is_Ord RS nat_le_infinite_Ord]) 1);
qed "Inf_Card_is_InfCard";
goal thy "(THE z. {x}={z}) = x";
-by (fast_tac (!claset addSIs [the_equality]
+by (fast_tac (claset() addSIs [the_equality]
addSEs [singleton_eq_iff RS iffD1 RS sym]) 1);
qed "the_element";
goal thy "(lam x:A. {x}) : bij(A, {{x}. x:A})";
by (res_inst_tac [("d","%z. THE x. z={x}")] lam_bijective 1);
by (TRYALL (eresolve_tac [RepFunI, RepFunE]));
-by (REPEAT (asm_full_simp_tac (!simpset addsimps [the_element]) 1));
+by (REPEAT (asm_full_simp_tac (simpset() addsimps [the_element]) 1));
qed "lam_sing_bij";
val [major,minor] = goal thy
"[| f : Pi(A,B); (!!x. x:A ==> B(x)<=C(x)) |] ==> f : Pi(A,C)";
-by (fast_tac (!claset addSIs [major RS Pi_type, minor RS subsetD,
+by (fast_tac (claset() addSIs [major RS Pi_type, minor RS subsetD,
major RS apply_type]) 1);
qed "Pi_weaken_type";
val [major, minor] = goalw thy [inj_def]
"[| f:inj(A, B); (!!a. a:A ==> f`a : C) |] ==> f:inj(A,C)";
-by (fast_tac (!claset addSEs [minor]
+by (fast_tac (claset() addSEs [minor]
addSIs [major RS CollectD1 RS Pi_type, major RS CollectD2]) 1);
qed "inj_strengthen_type";
goal thy "A*B=0 <-> A=0 | B=0";
-by (fast_tac (!claset addSIs [equals0I] addEs [equals0D]) 1);
+by (fast_tac (claset() addSIs [equals0I] addEs [equals0D]) 1);
qed "Sigma_empty_iff";
goalw thy [Finite_def] "!!n. n:nat ==> Finite(n)";
-by (fast_tac (!claset addSIs [eqpoll_refl]) 1);
+by (fast_tac (claset() addSIs [eqpoll_refl]) 1);
qed "nat_into_Finite";
goalw thy [Finite_def] "~Finite(nat)";
-by (fast_tac (!claset addSDs [eqpoll_imp_lepoll]
+by (fast_tac (claset() addSDs [eqpoll_imp_lepoll]
addIs [Ord_nat RSN (2, ltI) RS lt_not_lepoll RS notE]) 1);
qed "nat_not_Finite";
@@ -152,15 +152,15 @@
by (etac CollectE 1);
by (resolve_tac [subset_refl RSN (2, image_fun) RS ssubst] 1
THEN (assume_tac 1));
-by (fast_tac (!claset addSEs [apply_type] addIs [equalityI]) 1);
+by (fast_tac (claset() addSEs [apply_type] addIs [equalityI]) 1);
qed "surj_image_eq";
goal thy "!!y. succ(x) lepoll y ==> y ~= 0";
-by (fast_tac (!claset addSDs [lepoll_0_is_0]) 1);
+by (fast_tac (claset() addSDs [lepoll_0_is_0]) 1);
qed "succ_lepoll_imp_not_empty";
goal thy "!!x. x eqpoll succ(n) ==> x ~= 0";
-by (fast_tac (!claset addSEs [eqpoll_sym RS eqpoll_0_is_0 RS succ_neq_0]) 1);
+by (fast_tac (claset() addSEs [eqpoll_sym RS eqpoll_0_is_0 RS succ_neq_0]) 1);
qed "eqpoll_succ_imp_not_empty";
--- a/src/ZF/AC/Cardinal_aux.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/Cardinal_aux.ML Mon Nov 03 12:24:13 1997 +0100
@@ -15,7 +15,7 @@
(* j=|A| *)
goal Cardinal.thy
"!!A. [| A lepoll i; Ord(i) |] ==> EX j. j le i & A eqpoll j";
-by (fast_tac (!claset addIs [lepoll_cardinal_le, well_ord_Memrel,
+by (fast_tac (claset() addIs [lepoll_cardinal_le, well_ord_Memrel,
well_ord_cardinal_eqpoll RS eqpoll_sym]
addDs [lepoll_well_ord]) 1);
qed "lepoll_imp_ex_le_eqpoll";
@@ -23,7 +23,7 @@
(* j=|A| *)
goalw Cardinal.thy [lesspoll_def]
"!!A a. [| A lesspoll i; Ord(i) |] ==> EX j. j<i & A eqpoll j";
-by (fast_tac (!claset addSDs [lepoll_imp_ex_le_eqpoll] addSEs [leE]) 1);
+by (fast_tac (claset() addSDs [lepoll_imp_ex_le_eqpoll] addSEs [leE]) 1);
qed "lesspoll_imp_ex_lt_eqpoll";
goalw thy [InfCard_def] "!!i. [| ~Finite(i); Ord(i) |] ==> InfCard(|i|)";
@@ -65,7 +65,7 @@
THEN REPEAT (assume_tac 1));
qed "Un_eqpoll_Inf_Ord";
-val ss = (!simpset) addsimps [inj_is_fun RS apply_type, left_inverse]
+val ss = (simpset()) addsimps [inj_is_fun RS apply_type, left_inverse]
setloop (split_tac [expand_if] ORELSE' etac UnE);
goal ZF.thy "{x, y} - {y} = {x} - {y}";
@@ -74,23 +74,23 @@
goal ZF.thy "if({y,z}-{z}=0, z, THE w. {y,z}-{z}={w}) = y";
by (split_tac [expand_if] 1);
-by (asm_full_simp_tac (!simpset addsimps [double_Diff_sing, Diff_eq_0_iff]) 1);
-by (fast_tac (!claset addSIs [the_equality] addEs [equalityE]) 1);
+by (asm_full_simp_tac (simpset() addsimps [double_Diff_sing, Diff_eq_0_iff]) 1);
+by (fast_tac (claset() addSIs [the_equality] addEs [equalityE]) 1);
qed "paired_bij_lemma";
goal thy "(lam y:{{y,z}. y:x}. if(y-{z}=0, z, THE w. y-{z}={w})) \
\ : bij({{y,z}. y:x}, x)";
by (res_inst_tac [("d","%a. {a,z}")] lam_bijective 1);
-by (TRYALL (fast_tac (!claset addSEs [RepFunE] addSIs [RepFunI]
- addss (!simpset addsimps [paired_bij_lemma]))));
+by (TRYALL (fast_tac (claset() addSEs [RepFunE] addSIs [RepFunI]
+ addss (simpset() addsimps [paired_bij_lemma]))));
qed "paired_bij";
goalw thy [eqpoll_def] "{{y,z}. y:x} eqpoll x";
-by (fast_tac (!claset addSIs [paired_bij]) 1);
+by (fast_tac (claset() addSIs [paired_bij]) 1);
qed "paired_eqpoll";
goal thy "!!A. EX B. B eqpoll A & B Int C = 0";
-by (fast_tac (!claset addSIs [paired_eqpoll, equals0I] addEs [mem_asym]) 1);
+by (fast_tac (claset() addSIs [paired_eqpoll, equals0I] addEs [mem_asym]) 1);
qed "ex_eqpoll_disjoint";
goal thy "!!A. [| A lepoll i; B lepoll i; ~Finite(i); Ord(i) |] \
@@ -109,14 +109,14 @@
by (eresolve_tac [Least_le RS leE] 1);
by (etac Ord_in_Ord 1 THEN (assume_tac 1));
by (etac ltE 1);
-by (fast_tac (!claset addDs [OrdmemD]) 1);
+by (fast_tac (claset() addDs [OrdmemD]) 1);
by (etac subst_elem 1 THEN (assume_tac 1));
qed "Least_in_Ord";
goal thy "!!x. [| well_ord(x,r); y<=x; y lepoll succ(n); n:nat |] \
\ ==> y-{THE b. first(b,y,r)} lepoll n";
by (res_inst_tac [("Q","y=0")] (excluded_middle RS disjE) 1);
-by (fast_tac (!claset addSIs [Diff_sing_lepoll, the_first_in]) 1);
+by (fast_tac (claset() addSIs [Diff_sing_lepoll, the_first_in]) 1);
by (res_inst_tac [("b","y-{THE b. first(b, y, r)}")] subst 1);
by (rtac empty_lepollI 2);
by (Fast_tac 1);
@@ -129,8 +129,8 @@
goalw thy [lepoll_def] "!!a. Ord(a) ==> (UN x:a. {P(x)}) lepoll a";
by (res_inst_tac [("x","lam z:(UN x:a. {P(x)}). (LEAST i. P(i)=z)")] exI 1);
by (res_inst_tac [("d","%z. P(z)")] lam_injective 1);
-by (fast_tac (!claset addSIs [Least_in_Ord]) 1);
-by (fast_tac (!claset addIs [LeastI] addSEs [Ord_in_Ord]) 1);
+by (fast_tac (claset() addSIs [Least_in_Ord]) 1);
+by (fast_tac (claset() addIs [LeastI] addSEs [Ord_in_Ord]) 1);
qed "UN_sing_lepoll";
goal thy "!!a T. [| well_ord(T, R); ~Finite(a); Ord(a); n:nat |] ==> \
@@ -142,13 +142,13 @@
by (rtac empty_lepollI 2);
by (resolve_tac [equals0I RS sym] 1);
by (REPEAT (eresolve_tac [UN_E, allE] 1));
-by (fast_tac (!claset addDs [lepoll_0_is_0 RS subst]) 1);
+by (fast_tac (claset() addDs [lepoll_0_is_0 RS subst]) 1);
by (rtac allI 1);
by (rtac impI 1);
by (eres_inst_tac [("x","lam x:a. f`x - {THE b. first(b,f`x,R)}")] allE 1);
by (etac impE 1);
by (Asm_full_simp_tac 1);
-by (fast_tac (!claset addSIs [Diff_first_lepoll]) 1);
+by (fast_tac (claset() addSIs [Diff_first_lepoll]) 1);
by (Asm_full_simp_tac 1);
by (resolve_tac [UN_subset_split RS subset_imp_lepoll RS lepoll_trans] 1);
by (rtac Un_lepoll_Inf_Ord 1 THEN (REPEAT_FIRST assume_tac));
@@ -188,11 +188,11 @@
goalw thy [eqpoll_def] "!!A B. A Int B = 0 ==> A Un B eqpoll A + B";
by (res_inst_tac [("x","lam a:A Un B. if(a:A,Inl(a),Inr(a))")] exI 1);
by (res_inst_tac [("d","%z. case(%x. x, %x. x, z)")] lam_bijective 1);
-by (fast_tac (!claset addSIs [if_type, InlI, InrI]) 1);
+by (fast_tac (claset() addSIs [if_type, InlI, InrI]) 1);
by (TRYALL (etac sumE ));
by (TRYALL (split_tac [expand_if]));
by (TRYALL Asm_simp_tac);
-by (fast_tac (!claset addDs [equals0D]) 1);
+by (fast_tac (claset() addDs [equals0D]) 1);
qed "disj_Un_eqpoll_sum";
goalw thy [lepoll_def, eqpoll_def]
@@ -200,7 +200,7 @@
by (etac exE 1);
by (forward_tac [subset_refl RSN (2, restrict_bij)] 1);
by (res_inst_tac [("x","f``a")] exI 1);
-by (fast_tac (!claset addSEs [inj_is_fun RS fun_is_rel RS image_subset]) 1);
+by (fast_tac (claset() addSEs [inj_is_fun RS fun_is_rel RS image_subset]) 1);
qed "lepoll_imp_eqpoll_subset";
(* ********************************************************************** *)
@@ -226,22 +226,22 @@
by (dresolve_tac [[lepoll_Finite, lepoll_Finite] MRS Finite_Un] 2
THEN (REPEAT (assume_tac 2)));
by (dresolve_tac [subset_Un_Diff RS subset_imp_lepoll RS lepoll_Finite] 2);
-by (fast_tac (!claset
+by (fast_tac (claset()
addDs [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_Finite]) 2);
by (dresolve_tac [ Un_lepoll_Inf_Ord] 1
THEN (REPEAT (assume_tac 1)));
-by (fast_tac (!claset addSEs [ltE, Ord_in_Ord]) 1);
+by (fast_tac (claset() addSEs [ltE, Ord_in_Ord]) 1);
by (dresolve_tac [subset_Un_Diff RS subset_imp_lepoll RS lepoll_trans RSN
(3, lt_Card_imp_lesspoll RS lepoll_lesspoll_lesspoll)] 1
THEN (TRYALL assume_tac));
-by (fast_tac (!claset addSDs [lesspoll_def RS def_imp_iff RS iffD1]) 1);
+by (fast_tac (claset() addSDs [lesspoll_def RS def_imp_iff RS iffD1]) 1);
qed "Diff_lesspoll_eqpoll_Card_lemma";
goal thy "!!A. [| A eqpoll a; ~Finite(a); Card(a); B lesspoll a |] \
\ ==> A - B eqpoll a";
by (rtac swap 1 THEN (Fast_tac 1));
by (rtac Diff_lesspoll_eqpoll_Card_lemma 1 THEN (REPEAT (assume_tac 1)));
-by (fast_tac (!claset addSIs [lesspoll_def RS def_imp_iff RS iffD2,
+by (fast_tac (claset() addSIs [lesspoll_def RS def_imp_iff RS iffD2,
subset_imp_lepoll RS (eqpoll_imp_lepoll RSN (2, lepoll_trans))]) 1);
qed "Diff_lesspoll_eqpoll_Card";
--- a/src/ZF/AC/DC.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/DC.ML Mon Nov 03 12:24:13 1997 +0100
@@ -50,11 +50,11 @@
by (res_inst_tac [("a","<0, {<0, x>}>")] not_emptyI 1);
by (rtac CollectI 1);
by (rtac SigmaI 1);
-by (fast_tac (!claset addSIs [nat_0I RS UN_I, empty_fun]) 1);
+by (fast_tac (claset() addSIs [nat_0I RS UN_I, empty_fun]) 1);
by (rtac (nat_1I RS UN_I) 1);
-by (fast_tac (!claset addSIs [singleton_fun RS Pi_type]
- addss (!simpset addsimps [singleton_0 RS sym])) 1);
-by (asm_full_simp_tac (!simpset addsimps [domain_0, domain_cons,
+by (fast_tac (claset() addSIs [singleton_fun RS Pi_type]
+ addss (simpset() addsimps [singleton_0 RS sym])) 1);
+by (asm_full_simp_tac (simpset() addsimps [domain_0, domain_cons,
singleton_0]) 1);
val lemma1_2 = result();
@@ -86,9 +86,9 @@
by (etac nat_succI 1);
by (rtac CollectI 1);
by (etac cons_fun_type2 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSEs [succE] addss (!simpset
+by (fast_tac (claset() addSEs [succE] addss (simpset()
addsimps [cons_image_n, cons_val_n, cons_image_k, cons_val_k])) 1);
-by (asm_full_simp_tac (!simpset
+by (asm_full_simp_tac (simpset()
addsimps [domain_cons, domain_of_fun, succ_def, restrict_cons_eq]) 1);
val lemma1_3 = result();
@@ -97,7 +97,7 @@
\ & restrict(z2, domain(z1)) = z1}; \
\ ALL Y:Pow(X). Y lesspoll nat --> (EX x:X. <Y, x> : R) \
\ |] ==> RR <= XX*XX & RR ~= 0 & range(RR) <= domain(RR)";
-by (fast_tac (!claset addSIs [lemma1_1] addSEs [lemma1_2, lemma1_3]) 1);
+by (fast_tac (claset() addSIs [lemma1_1] addSEs [lemma1_2, lemma1_3]) 1);
val lemma1 = result();
goal thy
@@ -114,10 +114,10 @@
by (Asm_full_simp_tac 1);
by Safe_tac;
by (rtac bexI 1 THEN (assume_tac 2));
-by (best_tac (!claset addIs [ltD]
+by (best_tac (claset() addIs [ltD]
addSEs [nat_0_le RS leE]
addEs [sym RS trans RS succ_neq_0, domain_of_fun]
- addss (!simpset)) 1);
+ addss (simpset())) 1);
(** LEVEL 7 **)
by (dresolve_tac [nat_succI RSN (2, bspec)] 1 THEN (assume_tac 1));
by (subgoal_tac "f ` succ(succ(x)) : succ(k)->X" 1);
@@ -129,11 +129,11 @@
(assume_tac 1));
by (forw_inst_tac [("a","xa")] (domain_of_fun RS sym RS trans) 1 THEN
(assume_tac 1));
-by (fast_tac (!claset addSEs [nat_succI, nat_into_Ord RS succ_in_succ]
+by (fast_tac (claset() addSEs [nat_succI, nat_into_Ord RS succ_in_succ]
addSDs [nat_into_Ord RS succ_in_succ RSN (2, bspec)]) 1);
by (dtac domain_of_fun 1);
by (Full_simp_tac 1);
-by (deepen_tac (!claset addDs [domain_of_fun RS sym RS trans]) 0 1);
+by (deepen_tac (claset() addDs [domain_of_fun RS sym RS trans]) 0 1);
val lemma2 = result();
goal thy
@@ -151,7 +151,7 @@
by (dresolve_tac [nat_succI RSN (2, bspec)] 1 THEN (assume_tac 1));
by (Asm_full_simp_tac 1);
by (dtac lemma2 1 THEN REPEAT (assume_tac 1));
-by (fast_tac (!claset addSDs [domain_of_fun]) 1);
+by (fast_tac (claset() addSDs [domain_of_fun]) 1);
by (dres_inst_tac [("x","xa")] bspec 1 THEN (assume_tac 1));
by (eresolve_tac [sym RS trans RS sym] 1);
by (resolve_tac [restrict_eq_imp_val_eq RS sym] 1);
@@ -174,21 +174,21 @@
\ f: nat -> XX; n:nat \
\ |] ==> (lam x:nat. f`succ(x)`x) `` n = f`succ(n)``n";
by (etac natE 1);
-by (asm_full_simp_tac (!simpset addsimps [image_0]) 1);
+by (asm_full_simp_tac (simpset() addsimps [image_0]) 1);
by (resolve_tac [image_lam RS ssubst] 1);
-by (fast_tac (!claset addSEs [[nat_succI, Ord_nat] MRS OrdmemD]) 1);
+by (fast_tac (claset() addSEs [[nat_succI, Ord_nat] MRS OrdmemD]) 1);
by (resolve_tac [lemma3_1 RS lemma3_2 RS ssubst] 1
THEN REPEAT (assume_tac 1));
-by (fast_tac (!claset addSEs [nat_succI]) 1);
+by (fast_tac (claset() addSEs [nat_succI]) 1);
by (dresolve_tac [nat_succI RSN (4, lemma2)] 1
THEN REPEAT (assume_tac 1));
-by (fast_tac (!claset addSEs [nat_into_Ord RSN (2, OrdmemD) RSN
+by (fast_tac (claset() addSEs [nat_into_Ord RSN (2, OrdmemD) RSN
(2, image_fun RS sym)]) 1);
val lemma3 = result();
goal thy "!!f. [| f:A->B; B<=C |] ==> f:A->C";
by (rtac Pi_type 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSEs [apply_type]) 1);
+by (fast_tac (claset() addSEs [apply_type]) 1);
qed "fun_type_gen";
goalw thy [DC_def, DC0_def] "!!Z. DC0 ==> DC(nat)";
@@ -198,16 +198,16 @@
THEN (assume_tac 1));
by (etac bexE 1);
by (res_inst_tac [("x","lam n:nat. f`succ(n)`n")] bexI 1);
-by (fast_tac (!claset addSIs [lam_type] addSDs [refl RS lemma2]
+by (fast_tac (claset() addSIs [lam_type] addSDs [refl RS lemma2]
addSEs [fun_type_gen, apply_type]) 2);
by (rtac oallI 1);
by (forward_tac [ltD RSN (3, refl RS lemma2)] 1
THEN assume_tac 2);
-by (fast_tac (!claset addSEs [fun_type_gen]) 1);
+by (fast_tac (claset() addSEs [fun_type_gen]) 1);
by (eresolve_tac [ltD RSN (3, refl RS lemma3) RS ssubst] 1
THEN assume_tac 2);
-by (fast_tac (!claset addSEs [fun_type_gen]) 1);
-by (fast_tac (!claset addss (!simpset)) 1);
+by (fast_tac (claset() addSEs [fun_type_gen]) 1);
+by (fast_tac (claset() addss (simpset())) 1);
qed "DC0_DC_nat";
(* ************************************************************************
@@ -243,14 +243,14 @@
goalw thy [lesspoll_def, Finite_def]
"!!A. A lesspoll nat ==> Finite(A)";
-by (fast_tac (!claset addSDs [ltD, lepoll_imp_ex_le_eqpoll]
+by (fast_tac (claset() addSDs [ltD, lepoll_imp_ex_le_eqpoll]
addSIs [Ord_nat]) 1);
qed "lesspoll_nat_is_Finite";
goal thy "!!n. n:nat ==> ALL A. (A eqpoll n & A <= X) --> A : Fin(X)";
by (etac nat_induct 1);
by (rtac allI 1);
-by (fast_tac (!claset addSIs [Fin.emptyI]
+by (fast_tac (claset() addSIs [Fin.emptyI]
addSDs [eqpoll_imp_lepoll RS lepoll_0_is_0]) 1);
by (rtac allI 1);
by (rtac impI 1);
@@ -263,7 +263,7 @@
by (Fast_tac 1);
by (dtac subsetD 1 THEN (assume_tac 1));
by (dresolve_tac [Fin.consI] 1 THEN (assume_tac 1));
-by (asm_full_simp_tac (!simpset addsimps [cons_Diff]) 1);
+by (asm_full_simp_tac (simpset() addsimps [cons_Diff]) 1);
qed "Finite_Fin_lemma";
goalw thy [Finite_def] "!!A. [| Finite(A); A <= X |] ==> A : Fin(X)";
@@ -278,8 +278,8 @@
goal thy "!!x. x: X \
\ ==> {<0,x>}: (UN n:nat. {f:succ(n)->X. ALL k:n. <f`k, f`succ(k)> : R})";
by (rtac (nat_0I RS UN_I) 1);
-by (fast_tac (!claset addSIs [singleton_fun RS Pi_type]
- addss (!simpset addsimps [singleton_0 RS sym])) 1);
+by (fast_tac (claset() addSIs [singleton_fun RS Pi_type]
+ addss (simpset() addsimps [singleton_0 RS sym])) 1);
qed "singleton_in_funs";
goal thy
@@ -293,41 +293,41 @@
\ |] ==> RR <= Pow(XX)*XX & \
\ (ALL Y:Pow(XX). Y lesspoll nat --> (EX x:XX. <Y,x>:RR))";
by (rtac conjI 1);
-by (deepen_tac (!claset addSEs [FinD RS PowI]) 0 1);
+by (deepen_tac (claset() addSEs [FinD RS PowI]) 0 1);
by (rtac (impI RS ballI) 1);
by (dresolve_tac [[lesspoll_nat_is_Finite, PowD] MRS Finite_Fin] 1
THEN (assume_tac 1));
by (excluded_middle_tac "EX g:XX. domain(g)=succ(UN f:Y. domain(f)) \
\ & (ALL f:Y. restrict(g, domain(f)) = f)" 1);
by (etac subst 2 THEN (*elimination equation for greater speed*)
- fast_tac (!claset addss (!simpset)) 2);
-by (safe_tac (!claset delrules [domainE]));
+ fast_tac (claset() addss (simpset())) 2);
+by (safe_tac (claset() delrules [domainE]));
by (swap_res_tac [bexI] 1 THEN etac singleton_in_funs 2);
-by (asm_full_simp_tac (!simpset addsimps [nat_0I RSN (2, bexI),
+by (asm_full_simp_tac (simpset() addsimps [nat_0I RSN (2, bexI),
cons_fun_type2, empty_fun]) 1);
val lemma4 = result();
goal thy "!!f. [| f:nat->X; n:nat |] ==> \
\ (UN x:f``succ(n). P(x)) = P(f`n) Un (UN x:f``n. P(x))";
-by (asm_full_simp_tac (!simpset
+by (asm_full_simp_tac (simpset()
addsimps [Ord_nat RSN (2, OrdmemD) RSN (2, image_fun),
[nat_succI, Ord_nat] MRS OrdmemD RSN (2, image_fun)]) 1);
qed "UN_image_succ_eq";
goal thy "!!f. [| (UN x:f``n. P(x)) = y; P(f`n) = succ(y); \
\ f:nat -> X; n:nat |] ==> (UN x:f``succ(n). P(x)) = succ(y)";
-by (asm_full_simp_tac (!simpset addsimps [UN_image_succ_eq]) 1);
+by (asm_full_simp_tac (simpset() addsimps [UN_image_succ_eq]) 1);
by (Fast_tac 1);
qed "UN_image_succ_eq_succ";
goal thy "!!f. [| f:succ(n) -> D; n:nat; \
\ domain(f)=succ(x); x=y |] ==> f`y : D";
-by (fast_tac (!claset addEs [apply_type]
+by (fast_tac (claset() addEs [apply_type]
addSDs [[sym, domain_of_fun] MRS trans]) 1);
qed "apply_domain_type";
goal thy "!!f. [| f : nat -> X; n:nat |] ==> f``succ(n) = cons(f`n, f``n)";
-by (asm_full_simp_tac (!simpset
+by (asm_full_simp_tac (simpset()
addsimps [nat_succI, Ord_nat RSN (2, OrdmemD), image_fun]) 1);
qed "image_fun_succ";
@@ -336,7 +336,7 @@
\ u=k; n:nat \
\ |] ==> f`n : succ(k) -> domain(R)";
by (dtac apply_type 1 THEN (assume_tac 1));
-by (fast_tac (!claset addEs [UN_E, domain_eq_imp_fun_type]) 1);
+by (fast_tac (claset() addEs [UN_E, domain_eq_imp_fun_type]) 1);
qed "f_n_type";
goal thy "!!f. [| f : nat -> (UN n:nat. \
@@ -355,9 +355,9 @@
\ |] ==> restrict(cons(<n, y>, f), domain(x)) = x";
by (eresolve_tac [sym RS trans RS sym] 1);
by (rtac fun_extension 1);
-by (fast_tac (!claset addSIs [lam_type]) 1);
-by (fast_tac (!claset addSIs [lam_type]) 1);
-by (asm_full_simp_tac (!simpset addsimps [subsetD RS cons_val_k]) 1);
+by (fast_tac (claset() addSIs [lam_type]) 1);
+by (fast_tac (claset() addSIs [lam_type]) 1);
+by (asm_full_simp_tac (simpset() addsimps [subsetD RS cons_val_k]) 1);
qed "restrict_cons_eq_restrict";
goal thy "!!f. [| ALL x:f``n. restrict(f`n, domain(x))=x; \
@@ -367,12 +367,12 @@
\ (UN x:f``n. domain(x)) <= n |] \
\ ==> ALL x:f``succ(n). restrict(cons(<succ(n),y>, f`n), domain(x))=x";
by (rtac ballI 1);
-by (asm_full_simp_tac (!simpset addsimps [image_fun_succ]) 1);
+by (asm_full_simp_tac (simpset() addsimps [image_fun_succ]) 1);
by (dtac f_n_type 1 THEN REPEAT (ares_tac [refl] 1));
by (etac disjE 1);
-by (asm_full_simp_tac (!simpset addsimps [domain_of_fun, restrict_cons_eq]) 1);
+by (asm_full_simp_tac (simpset() addsimps [domain_of_fun, restrict_cons_eq]) 1);
by (dtac bspec 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSEs [restrict_cons_eq_restrict]) 1);
+by (fast_tac (claset() addSEs [restrict_cons_eq_restrict]) 1);
qed "all_in_image_restrict_eq";
goal thy
@@ -394,7 +394,7 @@
by (etac nat_induct 1);
by (dresolve_tac [[nat_0I, Ord_nat] MRS ltI RSN (2, ospec)] 1);
by (fast_tac (FOL_cs addss
- (!simpset addsimps [singleton_fun RS domain_of_fun,
+ (simpset() addsimps [singleton_fun RS domain_of_fun,
singleton_0, singleton_in_funs])) 1);
(*induction step*) (** LEVEL 5 **)
by (full_simp_tac (*prevent simplification of ~EX to ALL~*)
@@ -403,10 +403,10 @@
THEN (assume_tac 1));
by (REPEAT (eresolve_tac [conjE, disjE] 1));
by (fast_tac (FOL_cs addSEs [trans, subst_context]
- addSIs [UN_image_succ_eq_succ] addss (!simpset)) 1);
+ addSIs [UN_image_succ_eq_succ] addss (simpset())) 1);
by (etac conjE 1);
by (etac notE 1);
-by (asm_full_simp_tac (!simpset addsimps [UN_image_succ_eq_succ]) 1);
+by (asm_full_simp_tac (simpset() addsimps [UN_image_succ_eq_succ]) 1);
(** LEVEL 12 **)
by (REPEAT (eresolve_tac [conjE, bexE] 1));
by (dtac apply_domain_type 1 THEN REPEAT (assume_tac 1));
@@ -430,9 +430,9 @@
by (dresolve_tac [domain_of_fun RSN (2, f_n_pairs_in_R)] 2
THEN REPEAT (assume_tac 2));
by (dtac bspec 2 THEN (assume_tac 2));
-by (asm_full_simp_tac (!simpset
+by (asm_full_simp_tac (simpset()
addsimps [nat_into_Ord RS succ_in_succ, succI2, cons_val_k]) 2);
-by (asm_full_simp_tac (!simpset addsimps [cons_val_n, cons_val_k]) 1);
+by (asm_full_simp_tac (simpset() addsimps [cons_val_n, cons_val_k]) 1);
qed "simplify_recursion";
@@ -450,7 +450,7 @@
by (etac CollectE 1);
by (Asm_full_simp_tac 1);
by (rtac conjI 1);
-by (fast_tac (!claset
+by (fast_tac (claset()
addSEs [trans RS domain_eq_imp_fun_type, subst_context]) 1);
by (fast_tac (FOL_cs addSEs [conjE, f_n_pairs_in_R, trans, subst_context]) 1);
val lemma2 = result();
@@ -472,8 +472,8 @@
by (REPEAT (etac conjE 1));
by (etac ballE 1);
by (eresolve_tac [restrict_eq_imp_val_eq RS sym] 1);
-by (fast_tac (!claset addSEs [ssubst]) 1);
-by (asm_full_simp_tac (!simpset
+by (fast_tac (claset() addSEs [ssubst]) 1);
+by (asm_full_simp_tac (simpset()
addsimps [[nat_succI, Ord_nat] MRS OrdmemD RSN (2, image_fun)]) 1);
val lemma3 = result();
@@ -494,7 +494,7 @@
by (forward_tac [refl RS (nat_succI RSN (6, lemma2)) RS conjunct2] 1
THEN REPEAT (assume_tac 1));
by (dresolve_tac [refl RS lemma3] 1 THEN REPEAT (assume_tac 1));
-by (asm_full_simp_tac (!simpset addsimps [nat_succI]) 1);
+by (asm_full_simp_tac (simpset() addsimps [nat_succI]) 1);
qed "DC_nat_DC0";
(* ********************************************************************** *)
@@ -503,7 +503,7 @@
goalw thy [lesspoll_def]
"!!A. [| ~ A lesspoll B; C lesspoll B |] ==> A - C ~= 0";
-by (fast_tac (!claset addSDs [Diff_eq_0_iff RS iffD1 RS subset_imp_lepoll]
+by (fast_tac (claset() addSDs [Diff_eq_0_iff RS iffD1 RS subset_imp_lepoll]
addSIs [eqpollI] addEs [notE] addSEs [eqpollE, lepoll_trans]) 1);
val lesspoll_lemma = result();
@@ -515,18 +515,18 @@
by (resolve_tac [Ord_a RS Ord_in_Ord RS Ord_linear_lt] 1
THEN (assume_tac 1));
by (eres_inst_tac [("j","x")] (Ord_a RS Ord_in_Ord) 1);
-by (REPEAT (fast_tac (!claset addDs [not_eq, not_eq RS not_sym]) 1));
+by (REPEAT (fast_tac (claset() addDs [not_eq, not_eq RS not_sym]) 1));
qed "fun_Ord_inj";
goal thy "!!a. [| f:X->Y; A<=X; a:A |] ==> f`a : f``A";
-by (fast_tac (!claset addSEs [image_fun RS ssubst]) 1);
+by (fast_tac (claset() addSEs [image_fun RS ssubst]) 1);
qed "value_in_image";
goalw thy [DC_def, WO3_def]
"!!Z. ALL K. Card(K) --> DC(K) ==> WO3";
by (rtac allI 1);
by (excluded_middle_tac "A lesspoll Hartog(A)" 1);
-by (fast_tac (!claset addSDs [lesspoll_imp_ex_lt_eqpoll]
+by (fast_tac (claset() addSDs [lesspoll_imp_ex_lt_eqpoll]
addSIs [Ord_Hartog, leI RS le_imp_subset]) 2);
by (REPEAT (eresolve_tac [allE, impE] 1));
by (rtac Card_Hartog 1);
@@ -535,7 +535,7 @@
\ lesspoll Hartog(A) & z2 ~: z1}")] allE 1);
by (Asm_full_simp_tac 1);
by (etac impE 1);
-by (fast_tac (!claset addEs [lesspoll_lemma RS not_emptyE]) 1);
+by (fast_tac (claset() addEs [lesspoll_lemma RS not_emptyE]) 1);
by (etac bexE 1);
by (resolve_tac [exI RS (lepoll_def RS (def_imp_iff RS iffD2))
RS (HartogI RS notE)] 1);
@@ -543,7 +543,7 @@
by (dresolve_tac [Ord_Hartog RSN (2, OrdmemD) RSN (2,
ltD RSN (3, value_in_image))] 1
THEN REPEAT (assume_tac 1));
-by (fast_tac (!claset addSDs [Ord_Hartog RSN (2, ltI) RSN (2, ospec)]
+by (fast_tac (claset() addSDs [Ord_Hartog RSN (2, ltI) RSN (2, ospec)]
addEs [subst]) 1);
qed "DC_WO3";
@@ -554,7 +554,7 @@
goal thy
"!!a. [| Ord(a); b:a |] ==> (lam x:a. P(x))``b = (lam x:b. P(x))``b";
by (rtac images_eq 1);
-by (REPEAT (fast_tac (!claset addSEs [RepFunI, OrdmemD]
+by (REPEAT (fast_tac (claset() addSEs [RepFunI, OrdmemD]
addSIs [lam_type]) 2));
by (rtac ballI 1);
by (dresolve_tac [OrdmemD RS subsetD] 1
@@ -563,12 +563,12 @@
qed "lam_images_eq";
goalw thy [lesspoll_def] "!!K. [| Card(K); b:K |] ==> b lesspoll K";
-by (asm_full_simp_tac (!simpset addsimps [Card_iff_initial]) 1);
-by (fast_tac (!claset addSIs [le_imp_lepoll, ltI, leI]) 1);
+by (asm_full_simp_tac (simpset() addsimps [Card_iff_initial]) 1);
+by (fast_tac (claset() addSIs [le_imp_lepoll, ltI, leI]) 1);
qed "in_Card_imp_lesspoll";
goal thy "(lam b:a. P(b)) : a -> {P(b). b:a}";
-by (fast_tac (!claset addSIs [lam_type, RepFunI]) 1);
+by (fast_tac (claset() addSIs [lam_type, RepFunI]) 1);
qed "lam_type_RepFun";
goal thy "!!Z. [| ALL Y:Pow(X). Y lesspoll a --> (EX x:X. <Y, x> : R); \
@@ -588,12 +588,12 @@
by (resolve_tac [ff_def RS def_transrec RS ssubst] 1);
by (etac the_first_in 1);
by (Fast_tac 1);
-by (asm_full_simp_tac (!simpset
+by (asm_full_simp_tac (simpset()
addsimps [[lam_type_RepFun, subset_refl] MRS image_fun]) 1);
by (etac lemma_ 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSEs [RepFunE, impE, notE]
+by (fast_tac (claset() addSEs [RepFunE, impE, notE]
addEs [Card_is_Ord RSN (2, OrdmemD) RS subsetD]) 1);
-by (fast_tac (!claset addSEs [[in_Card_imp_lesspoll, RepFun_lepoll]
+by (fast_tac (claset() addSEs [[in_Card_imp_lesspoll, RepFun_lepoll]
MRS lepoll_lesspoll_lesspoll]) 1);
val lemma = result();
@@ -604,8 +604,8 @@
by (res_inst_tac [("x","lam b:K. ff(b, X, Ra, R)")] bexI 1);
by (rtac lam_type 2);
by (resolve_tac [lemma RS CollectD1] 2 THEN REPEAT (assume_tac 2));
-by (asm_full_simp_tac (!simpset
+by (asm_full_simp_tac (simpset()
addsimps [[Card_is_Ord, ltD] MRS lam_images_eq]) 1);
-by (fast_tac (!claset addSEs [ltE, lemma RS CollectD2]) 1);
+by (fast_tac (claset() addSEs [ltE, lemma RS CollectD2]) 1);
qed" WO1_DC_Card";
--- a/src/ZF/AC/DC_lemmas.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/DC_lemmas.ML Mon Nov 03 12:24:13 1997 +0100
@@ -10,7 +10,7 @@
"Ord(a) ==> {P(b). b:a} lepoll a";
by (res_inst_tac [("x","lam z:RepFun(a,P). LEAST i. z=P(i)")] exI 1);
by (res_inst_tac [("d","%z. P(z)")] (sym RSN (2, lam_injective)) 1);
-by (fast_tac (!claset addSEs [RepFunE] addSIs [Least_in_Ord, prem]) 1);
+by (fast_tac (claset() addSEs [RepFunE] addSIs [Least_in_Ord, prem]) 1);
by (REPEAT (eresolve_tac [RepFunE, LeastI, prem RS Ord_in_Ord] 1));
qed "RepFun_lepoll";
@@ -29,8 +29,8 @@
"!!f. [| f:X->Y; Ord(X) |] ==> f``X lepoll X";
by (res_inst_tac [("x","lam x:f``X. LEAST y. f`y = x")] exI 1);
by (res_inst_tac [("d","%z. f`z")] lam_injective 1);
-by (fast_tac (!claset addSIs [Least_in_Ord, apply_equality]) 1);
-by (fast_tac (!claset addSEs [Ord_in_Ord] addSIs [LeastI, apply_equality]) 1);
+by (fast_tac (claset() addSIs [Least_in_Ord, apply_equality]) 1);
+by (fast_tac (claset() addSEs [Ord_in_Ord] addSIs [LeastI, apply_equality]) 1);
qed "image_Ord_lepoll";
val [major, minor] = goal thy
@@ -43,11 +43,11 @@
qed "range_subset_domain";
val prems = goal thy "!!k. k:n ==> k~=n";
-by (fast_tac (!claset addSEs [mem_irrefl]) 1);
+by (fast_tac (claset() addSEs [mem_irrefl]) 1);
qed "mem_not_eq";
goalw thy [succ_def] "!!g. g:n->X ==> cons(<n,x>, g) : succ(n) -> cons(x, X)";
-by (fast_tac (!claset addSIs [fun_extend] addSEs [mem_irrefl]) 1);
+by (fast_tac (claset() addSIs [fun_extend] addSEs [mem_irrefl]) 1);
qed "cons_fun_type";
goal thy "!!g. [| g:n->X; x:X |] ==> cons(<n,x>, g) : succ(n) -> X";
@@ -55,23 +55,23 @@
qed "cons_fun_type2";
goal thy "!!n. n: nat ==> cons(<n,x>, g)``n = g``n";
-by (fast_tac (!claset addSEs [mem_irrefl]) 1);
+by (fast_tac (claset() addSEs [mem_irrefl]) 1);
qed "cons_image_n";
goal thy "!!n. g:n->X ==> cons(<n,x>, g)`n = x";
-by (fast_tac (!claset addSIs [apply_equality] addSEs [cons_fun_type]) 1);
+by (fast_tac (claset() addSIs [apply_equality] addSEs [cons_fun_type]) 1);
qed "cons_val_n";
goal thy "!!k. k : n ==> cons(<n,x>, g)``k = g``k";
-by (fast_tac (!claset addEs [mem_asym]) 1);
+by (fast_tac (claset() addEs [mem_asym]) 1);
qed "cons_image_k";
goal thy "!!k. [| k:n; g:n->X |] ==> cons(<n,x>, g)`k = g`k";
-by (fast_tac (!claset addSIs [apply_equality, consI2] addSEs [cons_fun_type, apply_Pair]) 1);
+by (fast_tac (claset() addSIs [apply_equality, consI2] addSEs [cons_fun_type, apply_Pair]) 1);
qed "cons_val_k";
goal thy "!!f. domain(f)=x ==> domain(cons(<x,y>, f)) = succ(x)";
-by (asm_full_simp_tac (!simpset addsimps [domain_cons, succ_def]) 1);
+by (asm_full_simp_tac (simpset() addsimps [domain_cons, succ_def]) 1);
qed "domain_cons_eq_succ";
goalw thy [restrict_def] "!!g. g:n->X ==> restrict(cons(<n,x>, g), n)=g";
@@ -80,12 +80,12 @@
by (eresolve_tac [cons_fun_type RS apply_type] 1);
by (etac succI2 1);
by (assume_tac 1);
-by (asm_full_simp_tac (!simpset addsimps [cons_val_k]) 1);
+by (asm_full_simp_tac (simpset() addsimps [cons_val_k]) 1);
qed "restrict_cons_eq";
goal thy "!!k. [| Ord(k); i:k |] ==> succ(i) : succ(k)";
by (resolve_tac [Ord_linear RS disjE] 1 THEN (assume_tac 3));
-by (REPEAT (fast_tac (!claset addSIs [Ord_succ]
+by (REPEAT (fast_tac (claset() addSIs [Ord_succ]
addEs [Ord_in_Ord, mem_irrefl, mem_asym]
addSDs [succ_inject]) 1));
qed "succ_in_succ";
@@ -102,6 +102,6 @@
qed "domain_eq_imp_fun_type";
goal thy "!!R. [| R <= A * B; R ~= 0 |] ==> EX x. x:domain(R)";
-by (fast_tac (!claset addSEs [not_emptyE]) 1);
+by (fast_tac (claset() addSEs [not_emptyE]) 1);
qed "ex_in_domain";
--- a/src/ZF/AC/HH.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/HH.ML Mon Nov 03 12:24:13 1997 +0100
@@ -23,7 +23,7 @@
goal thy "HH(f,x,a) : Pow(x)-{0} | HH(f,x,a)={x}";
by (resolve_tac [HH_def_satisfies_eq RS ssubst] 1);
-by (simp_tac (!simpset addsimps [Let_def, Diff_subset RS PowI]
+by (simp_tac (simpset() addsimps [Let_def, Diff_subset RS PowI]
setloop split_tac [expand_if]) 1);
by (Fast_tac 1);
qed "HH_values";
@@ -35,13 +35,13 @@
goal thy "!!c. [| c:a-b; b<a |] ==> c=b | b<c & c<a";
by (etac ltE 1);
by (dtac Ord_linear 1);
-by (fast_tac (!claset addSIs [ltI] addIs [Ord_in_Ord]) 2);
-by (fast_tac (!claset addEs [Ord_in_Ord]) 1);
+by (fast_tac (claset() addSIs [ltI] addIs [Ord_in_Ord]) 2);
+by (fast_tac (claset() addEs [Ord_in_Ord]) 1);
qed "Ord_DiffE";
val prems = goal thy "(!!y. y:A ==> P(y) = {x}) ==> x - (UN y:A. P(y)) = x";
-by (asm_full_simp_tac (!simpset addsimps prems) 1);
-by (fast_tac (!claset addSDs [prem] addSEs [mem_irrefl]) 1);
+by (asm_full_simp_tac (simpset() addsimps prems) 1);
+by (fast_tac (claset() addSDs [prem] addSEs [mem_irrefl]) 1);
qed "Diff_UN_eq_self";
goal thy "!!a. x - (UN b:a. HH(f,x,b)) = x - (UN b:a1. HH(f,x,b)) \
@@ -61,23 +61,23 @@
by (res_inst_tac [("t","%z. z-?X")] subst_context 1);
by (rtac Diff_UN_eq_self 1);
by (dtac Ord_DiffE 1 THEN (assume_tac 1));
-by (fast_tac (!claset addEs [ltE]) 1);
+by (fast_tac (claset() addEs [ltE]) 1);
qed "HH_is_x_gt_too";
goal thy "!!a. [| HH(f,x,a) : Pow(x)-{0}; b<a |] ==> HH(f,x,b) : Pow(x)-{0}";
by (resolve_tac [HH_values RS disjE] 1 THEN (assume_tac 1));
by (dtac HH_is_x_gt_too 1 THEN (assume_tac 1));
by (dtac subst 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSEs [mem_irrefl]) 1);
+by (fast_tac (claset() addSEs [mem_irrefl]) 1);
qed "HH_subset_x_lt_too";
goal thy "!!a. HH(f,x,a) : Pow(x)-{0} \
\ ==> HH(f,x,a) : Pow(x - (UN b:a. HH(f,x,b)))-{0}";
by (dresolve_tac [HH_def_satisfies_eq RS subst] 1);
by (resolve_tac [HH_def_satisfies_eq RS ssubst] 1);
-by (asm_full_simp_tac (!simpset addsimps [Let_def, Diff_subset RS PowI]) 1);
+by (asm_full_simp_tac (simpset() addsimps [Let_def, Diff_subset RS PowI]) 1);
by (dresolve_tac [expand_if RS iffD1] 1);
-by (simp_tac (!simpset setloop split_tac [expand_if] ) 1);
+by (simp_tac (simpset() setloop split_tac [expand_if] ) 1);
by (fast_tac (subset_cs addSEs [mem_irrefl]) 1);
qed "HH_subset_x_imp_subset_Diff_UN";
@@ -85,7 +85,7 @@
by (forw_inst_tac [("P","%y. y: Pow(x)-{0}")] subst 1 THEN (assume_tac 1));
by (dres_inst_tac [("a","w")] HH_subset_x_imp_subset_Diff_UN 1);
by (dtac subst_elem 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSIs [singleton_iff RS iffD2, equals0I]) 1);
+by (fast_tac (claset() addSIs [singleton_iff RS iffD2, equals0I]) 1);
qed "HH_eq_arg_lt";
goal thy "!!x. [| HH(f,x,v)=HH(f,x,w); HH(f,x,w): Pow(x)-{0}; \
@@ -112,7 +112,7 @@
qed "HH_Hartog_is_x";
goal thy "HH(f, x, LEAST i. HH(f, x, i) = {x}) = {x}";
-by (fast_tac (!claset addSIs [Ord_Hartog, HH_Hartog_is_x, LeastI]) 1);
+by (fast_tac (claset() addSIs [Ord_Hartog, HH_Hartog_is_x, LeastI]) 1);
qed "HH_Least_eq_x";
goal thy "!!a. a:(LEAST i. HH(f,x,i)={x}) ==> HH(f,x,a) : Pow(x)-{0}";
@@ -130,7 +130,7 @@
"(lam a:(LEAST i. HH(f,x,i)={x}). HH(f,x,a)) : \
\ inj(LEAST i. HH(f,x,i)={x}, Pow(x)-{0})";
by (Asm_full_simp_tac 1);
-by (fast_tac (!claset addSIs [lam_type] addDs [less_Least_subset_x]
+by (fast_tac (claset() addSIs [lam_type] addDs [less_Least_subset_x]
addSEs [HH_eq_imp_arg_eq, Ord_Least RS Ord_in_Ord]) 1);
qed "lam_Least_HH_inj_Pow";
@@ -145,21 +145,21 @@
"!!x. [| x - (UN a:A. F(a)) = 0; \
\ ALL a:A. EX z:x. F(a) = {z} |] \
\ ==> (lam a:A. F(a)) : surj(A, {{y}. y:x})";
-by (asm_full_simp_tac (!simpset addsimps [lam_type, Diff_eq_0_iff]) 1);
+by (asm_full_simp_tac (simpset() addsimps [lam_type, Diff_eq_0_iff]) 1);
by Safe_tac;
by (set_mp_tac 1);
-by (deepen_tac (!claset addSIs [bexI] addSEs [equalityE]) 4 1);
+by (deepen_tac (claset() addSIs [bexI] addSEs [equalityE]) 4 1);
qed "lam_surj_sing";
goal thy "!!x. y:Pow(x)-{0} ==> x ~= 0";
-by (fast_tac (!claset addSIs [equals0I, singletonI RS subst_elem]
+by (fast_tac (claset() addSIs [equals0I, singletonI RS subst_elem]
addSDs [equals0D]) 1);
qed "not_emptyI2";
goal thy "!!f. f`(x - (UN j:i. HH(f,x,j))): Pow(x - (UN j:i. HH(f,x,j)))-{0} \
\ ==> HH(f, x, i) : Pow(x) - {0}";
by (resolve_tac [HH_def_satisfies_eq RS ssubst] 1);
-by (asm_full_simp_tac (!simpset addsimps [Let_def, Diff_subset RS PowI,
+by (asm_full_simp_tac (simpset() addsimps [Let_def, Diff_subset RS PowI,
not_emptyI2 RS if_P]) 1);
by (Fast_tac 1);
qed "f_subset_imp_HH_subset";
@@ -170,20 +170,20 @@
by (Fast_tac 2);
by (dresolve_tac [Diff_subset RS PowI RS DiffI RS prem RS
f_subset_imp_HH_subset] 1);
-by (fast_tac (!claset addSDs [HH_Least_eq_x RS sym RSN (2, subst_elem)]
+by (fast_tac (claset() addSDs [HH_Least_eq_x RS sym RSN (2, subst_elem)]
addSEs [mem_irrefl]) 1);
qed "f_subsets_imp_UN_HH_eq_x";
goal thy "HH(f,x,i)=f`(x - (UN j:i. HH(f,x,j))) | HH(f,x,i)={x}";
by (resolve_tac [HH_def_satisfies_eq RS ssubst] 1);
-by (simp_tac (!simpset addsimps [Let_def, Diff_subset RS PowI]
+by (simp_tac (simpset() addsimps [Let_def, Diff_subset RS PowI]
setloop split_tac [expand_if]) 1);
qed "HH_values2";
goal thy
"!!f. HH(f,x,i): Pow(x)-{0} ==> HH(f,x,i)=f`(x - (UN j:i. HH(f,x,j)))";
by (resolve_tac [HH_values2 RS disjE] 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSEs [equalityE, mem_irrefl]
+by (fast_tac (claset() addSEs [equalityE, mem_irrefl]
addSDs [singleton_subsetD]) 1);
qed "HH_subset_imp_eq";
@@ -194,8 +194,8 @@
by (dtac apply_type 1);
by (resolve_tac [Diff_subset RS PowI RS DiffI] 1);
by (fast_tac
- (!claset addSDs [HH_subset_x_imp_subset_Diff_UN RS not_emptyI2]) 1);
-by (fast_tac (!claset addss (!simpset)) 1);
+ (claset() addSDs [HH_subset_x_imp_subset_Diff_UN RS not_emptyI2]) 1);
+by (fast_tac (claset() addss (simpset())) 1);
qed "f_sing_imp_HH_sing";
goalw thy [bij_def]
@@ -203,7 +203,7 @@
\ f : (Pow(x)-{0}) -> {{z}. z:x} |] \
\ ==> (lam a:(LEAST i. HH(f,x,i)={x}). HH(f,x,a)) \
\ : bij(LEAST i. HH(f,x,i)={x}, {{y}. y:x})";
-by (fast_tac (!claset addSIs [lam_Least_HH_inj, lam_surj_sing,
+by (fast_tac (claset() addSIs [lam_Least_HH_inj, lam_surj_sing,
f_sing_imp_HH_sing]) 1);
qed "f_sing_lam_bij";
--- a/src/ZF/AC/Hartog.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/Hartog.ML Mon Nov 03 12:24:13 1997 +0100
@@ -44,7 +44,7 @@
by (REPEAT (eresolve_tac [allE, impE] 1));
by (assume_tac 1);
by (dtac Ord_lepoll_imp_eq_ordertype 1 THEN (assume_tac 1));
-by (fast_tac (!claset addSIs [ReplaceI] addEs [sym]) 1);
+by (fast_tac (claset() addSIs [ReplaceI] addEs [sym]) 1);
qed "Ords_lepoll_set_lemma";
goal thy "!!X. ALL a. Ord(a) --> a lepoll X ==> P";
@@ -71,14 +71,14 @@
qed "Ord_Hartog";
goalw thy [Hartog_def] "!!i. [| i < Hartog(A); ~ i lepoll A |] ==> P";
-by (fast_tac (!claset addEs [less_LeastE]) 1);
+by (fast_tac (claset() addEs [less_LeastE]) 1);
qed "less_HartogE1";
goal thy "!!i. [| i < Hartog(A); i eqpoll Hartog(A) |] ==> P";
-by (fast_tac (!claset addEs [less_HartogE1, eqpoll_sym RS eqpoll_imp_lepoll
+by (fast_tac (claset() addEs [less_HartogE1, eqpoll_sym RS eqpoll_imp_lepoll
RS lepoll_trans RS HartogE]) 1);
qed "less_HartogE";
goal thy "Card(Hartog(A))";
-by (fast_tac (!claset addSIs [CardI, Ord_Hartog] addEs [less_HartogE]) 1);
+by (fast_tac (claset() addSIs [CardI, Ord_Hartog] addEs [less_HartogE]) 1);
qed "Card_Hartog";
--- a/src/ZF/AC/WO1_AC.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/WO1_AC.ML Mon Nov 03 12:24:13 1997 +0100
@@ -32,7 +32,7 @@
(* ********************************************************************** *)
goalw thy [AC1_def, WO1_def] "!!Z. WO1 ==> AC1";
-by (fast_tac (!claset addSEs [ex_choice_fun]) 1);
+by (fast_tac (claset() addSEs [ex_choice_fun]) 1);
qed "WO1_AC1";
(* ********************************************************************** *)
@@ -44,19 +44,19 @@
by (eres_inst_tac [("x","Union({{C:D(B). P(C,B)}. B:A})")] allE 1);
by (etac exE 1);
by (dtac ex_choice_fun 1);
-by (fast_tac (!claset addEs [RepFunE, sym RS equals0D]) 1);
+by (fast_tac (claset() addEs [RepFunE, sym RS equals0D]) 1);
by (etac exE 1);
by (res_inst_tac [("x","lam x:A. f`{C:D(x). P(C,x)}")] exI 1);
by (Asm_full_simp_tac 1);
-by (fast_tac (!claset addSDs [RepFunI RSN (2, apply_type)]
+by (fast_tac (claset() addSDs [RepFunI RSN (2, apply_type)]
addSEs [CollectD2]) 1);
val lemma1 = result();
goalw thy [WO1_def] "!!A. [| ~Finite(B); WO1 |] ==> |B| + |B| eqpoll B";
by (rtac eqpoll_trans 1);
-by (fast_tac (!claset addSEs [well_ord_cardinal_eqpoll]) 2);
+by (fast_tac (claset() addSEs [well_ord_cardinal_eqpoll]) 2);
by (resolve_tac [eqpoll_sym RS eqpoll_trans] 1);
-by (fast_tac (!claset addSEs [well_ord_cardinal_eqpoll]) 1);
+by (fast_tac (claset() addSEs [well_ord_cardinal_eqpoll]) 1);
by (resolve_tac [cadd_def RS def_imp_eq RS subst] 1);
by (resolve_tac [Card_cardinal RSN (2, Inf_Card_is_InfCard) RS
InfCard_cdouble_eq RS ssubst] 1);
@@ -65,23 +65,23 @@
by (etac notE 1);
by (resolve_tac [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_Finite] 1
THEN (assume_tac 2));
-by (fast_tac (!claset addSEs [well_ord_cardinal_eqpoll]) 1);
+by (fast_tac (claset() addSEs [well_ord_cardinal_eqpoll]) 1);
val lemma2_1 = result();
goal thy "!!f. f : bij(D+D, B) ==> {{f`Inl(i), f`Inr(i)}. i:D} : Pow(Pow(B))";
-by (fast_tac (!claset addSIs [InlI, InrI]
+by (fast_tac (claset() addSIs [InlI, InrI]
addSEs [RepFunE, bij_is_fun RS apply_type]) 1);
val lemma2_2 = result();
goal thy "!!f. [| f:inj(A,B); f`a = f`b; a:A; b:A |] ==> a=b";
by (rtac inj_equality 1);
-by (TRYALL (fast_tac (!claset addSEs [inj_is_fun RS apply_Pair] addEs [subst])));
+by (TRYALL (fast_tac (claset() addSEs [inj_is_fun RS apply_Pair] addEs [subst])));
val lemma = result();
goalw thy AC_aux_defs
"!!f. f : bij(D+D, B) ==> \
\ pairwise_disjoint({{f`Inl(i), f`Inr(i)}. i:D})";
-by (fast_tac (!claset addSEs [RepFunE, not_emptyE]
+by (fast_tac (claset() addSEs [RepFunE, not_emptyE]
addDs [bij_is_inj RS lemma, Inl_iff RS iffD1,
Inr_iff RS iffD1, Inl_Inr_iff RS iffD1 RS FalseE,
Inr_Inl_iff RS iffD1 RS FalseE]
@@ -92,7 +92,7 @@
"[| f : bij(D+D, B); 1 le n |] ==> \
\ sets_of_size_between({{f`Inl(i), f`Inr(i)}. i:D}, 2, succ(n))";
by (rewtac succ_def);
-by (fast_tac (!claset addSIs [cons_lepoll_cong, minor, lepoll_refl, InlI, InrI]
+by (fast_tac (claset() addSIs [cons_lepoll_cong, minor, lepoll_refl, InlI, InrI]
addIs [singleton_eqpoll_1 RS eqpoll_imp_lepoll RS lepoll_trans,
le_imp_subset RS subset_imp_lepoll]
addDs [major RS bij_is_inj RS lemma, Inl_Inr_iff RS iffD1 RS FalseE]
@@ -101,7 +101,7 @@
goalw thy [bij_def, surj_def]
"!!f. f : bij(D+D, B) ==> Union({{f`Inl(i), f`Inr(i)}. i:D})=B";
-by (fast_tac (!claset addSEs [inj_is_fun RS apply_type]) 1);
+by (fast_tac (claset() addSEs [inj_is_fun RS apply_type]) 1);
val lemma2_5 = result();
goal thy "!!A. [| WO1; ~Finite(B); 1 le n |] \
@@ -115,5 +115,5 @@
val lemma2 = result();
goalw thy AC_defs "!!n. [| WO1; 1 le n |] ==> AC10(n)";
-by (fast_tac (!claset addSIs [lemma1] addSEs [lemma2]) 1);
+by (fast_tac (claset() addSIs [lemma1] addSEs [lemma2]) 1);
qed "WO1_AC10";
--- a/src/ZF/AC/WO1_WO6.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/WO1_WO6.ML Mon Nov 03 12:24:13 1997 +0100
@@ -20,28 +20,28 @@
(* ********************************************************************** *)
goalw thy (eqpoll_def::WO_defs) "!!Z. WO3 ==> WO1";
-by (fast_tac (!claset addSEs [bij_is_inj RS well_ord_rvimage,
+by (fast_tac (claset() addSEs [bij_is_inj RS well_ord_rvimage,
well_ord_Memrel RS well_ord_subset]) 1);
qed "WO3_WO1";
(* ********************************************************************** *)
goalw thy (eqpoll_def::WO_defs) "!!Z. WO1 ==> WO2";
-by (fast_tac (!claset addSIs [Ord_ordertype, ordermap_bij]) 1);
+by (fast_tac (claset() addSIs [Ord_ordertype, ordermap_bij]) 1);
qed "WO1_WO2";
(* ********************************************************************** *)
goal thy "!!f. f: A->B ==> (lam x:A. {f`x}): A -> {{b}. b:B}";
-by (fast_tac (!claset addSIs [lam_type, apply_type]) 1);
+by (fast_tac (claset() addSIs [lam_type, apply_type]) 1);
qed "lam_sets";
goalw thy [surj_def] "!!f. f:surj(A,B) ==> (UN a:A. {f`a}) = B";
-by (fast_tac (!claset addSEs [apply_type]) 1);
+by (fast_tac (claset() addSEs [apply_type]) 1);
qed "surj_imp_eq_";
goal thy "!!f. [| f:surj(A,B); Ord(A) |] ==> (UN a<A. {f`a}) = B";
-by (fast_tac (!claset addSDs [surj_imp_eq_]
+by (fast_tac (claset() addSDs [surj_imp_eq_]
addSIs [ltI] addSEs [ltE]) 1);
qed "surj_imp_eq";
@@ -54,7 +54,7 @@
by (rtac conjI 1);
by (eresolve_tac [ordermap_bij RS bij_converse_bij RS bij_is_fun RS
lam_sets RS domain_of_fun] 1);
-by (asm_simp_tac (!simpset addsimps [singleton_eqpoll_1 RS eqpoll_imp_lepoll,
+by (asm_simp_tac (simpset() addsimps [singleton_eqpoll_1 RS eqpoll_imp_lepoll,
Ord_ordertype RSN (2, ordermap_bij RS bij_converse_bij RS
bij_is_surj RS surj_imp_eq)]) 1);
qed "WO1_WO4";
@@ -62,7 +62,7 @@
(* ********************************************************************** *)
goalw thy WO_defs "!!Z. [| m:nat; n:nat; m le n; WO4(m) |] ==> WO4(n)";
-by (fast_tac (!claset addIs [nat_le_imp_lepoll RSN (2, lepoll_trans)]) 1);
+by (fast_tac (claset() addIs [nat_le_imp_lepoll RSN (2, lepoll_trans)]) 1);
qed "WO4_mono";
(* ********************************************************************** *)
--- a/src/ZF/AC/WO1_WO7.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/WO1_WO7.ML Mon Nov 03 12:24:13 1997 +0100
@@ -12,7 +12,7 @@
goalw thy [WO7_def] "WO7 <-> (ALL X. ~Finite(X) --> \
\ (EX R. well_ord(X,R) & ~well_ord(X,converse(R))))";
-by (fast_tac (!claset addSEs [Finite_well_ord_converse]) 1);
+by (fast_tac (claset() addSEs [Finite_well_ord_converse]) 1);
qed "WO7_iff_LEMMA";
(* ********************************************************************** *)
@@ -26,7 +26,7 @@
by (excluded_middle_tac "Finite(A)" 1);
by (Fast_tac 1);
by (rewrite_goals_tac [Finite_def, eqpoll_def]);
-by (fast_tac (!claset addSIs [[bij_is_inj, nat_implies_well_ord] MRS
+by (fast_tac (claset() addSIs [[bij_is_inj, nat_implies_well_ord] MRS
well_ord_rvimage]) 1);
qed "LEMMA_imp_WO1";
@@ -50,16 +50,16 @@
by (rtac notI 1);
by (eres_inst_tac [("x","nat")] allE 1);
by (etac disjE 1);
-by (fast_tac (!claset addSDs [nat_0I RSN (2,equals0D)]) 1);
+by (fast_tac (claset() addSDs [nat_0I RSN (2,equals0D)]) 1);
by (etac bexE 1);
by (eres_inst_tac [("x","succ(x)")] allE 1);
-by (fast_tac (!claset addSIs [nat_succI, converseI, MemrelI,
+by (fast_tac (claset() addSIs [nat_succI, converseI, MemrelI,
nat_succI RSN (2, subsetD)]) 1);
qed "converse_Memrel_not_wf_on";
goalw thy [well_ord_def]
"!!a. [| Ord(a); ~Finite(a) |] ==> ~well_ord(a,converse(Memrel(a)))";
-by (fast_tac (!claset addSDs [converse_Memrel_not_wf_on]) 1);
+by (fast_tac (claset() addSDs [converse_Memrel_not_wf_on]) 1);
qed "converse_Memrel_not_well_ord";
goal thy "!!A. [| well_ord(A,r); well_ord(A,converse(r)) |] \
--- a/src/ZF/AC/WO1_WO8.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/WO1_WO8.ML Mon Nov 03 12:24:13 1997 +0100
@@ -21,9 +21,9 @@
by (rtac allI 1);
by (eres_inst_tac [("x","{{x}. x:A}")] allE 1);
by (etac impE 1);
-by (fast_tac (!claset addSEs [lam_sing_bij RS bij_is_inj RS
+by (fast_tac (claset() addSEs [lam_sing_bij RS bij_is_inj RS
well_ord_rvimage]) 2);
by (res_inst_tac [("x","lam a:{{x}. x:A}. THE x. a={x}")] exI 1);
-by (fast_tac (!claset addSIs [lam_type]
- addss (!simpset addsimps [singleton_eq_iff, the_equality])) 1);
+by (fast_tac (claset() addSIs [lam_type]
+ addss (simpset() addsimps [singleton_eq_iff, the_equality])) 1);
qed "WO8_WO1";
--- a/src/ZF/AC/WO2_AC16.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/WO2_AC16.ML Mon Nov 03 12:24:13 1997 +0100
@@ -117,9 +117,9 @@
by (dresolve_tac [nat_le_infinite_Ord RS le_imp_lepoll] 1
THEN (assume_tac 1));
by (rewtac Finite_def);
-by (fast_tac (!claset addSEs [eqpoll_sym RS eqpoll_trans]) 2);
+by (fast_tac (claset() addSEs [eqpoll_sym RS eqpoll_trans]) 2);
by (rtac lepoll_trans 1 THEN (assume_tac 2));
-by (fast_tac (!claset addSEs [Ord_nat RSN (2, ltI) RS leI RS le_imp_subset RS
+by (fast_tac (claset() addSEs [Ord_nat RSN (2, ltI) RS leI RS le_imp_subset RS
subset_imp_lepoll RSN (2, eqpoll_imp_lepoll RS lepoll_trans)]) 1);
qed "Finite_lesspoll_infinite_Ord";
@@ -130,15 +130,15 @@
goal thy "!!n. n:nat ==> ALL X. X eqpoll n --> (ALL x:X. Finite(x)) \
\ --> Finite(Union(X))";
by (etac nat_induct 1);
-by (fast_tac (!claset addSDs [eqpoll_imp_lepoll RS lepoll_0_is_0]
- addSIs [nat_0I RS nat_into_Finite] addss (!simpset)) 1);
+by (fast_tac (claset() addSDs [eqpoll_imp_lepoll RS lepoll_0_is_0]
+ addSIs [nat_0I RS nat_into_Finite] addss (simpset())) 1);
by (REPEAT (resolve_tac [allI, impI] 1));
by (resolve_tac [eqpoll_succ_imp_not_empty RS not_emptyE] 1 THEN (assume_tac 1));
by (res_inst_tac [("P","%z. Finite(z)")] (Union_eq_Un_Diff RS ssubst) 1
THEN (assume_tac 1));
by (rtac Finite_Un 1);
by (Fast_tac 2);
-by (fast_tac (!claset addSIs [Diff_sing_eqpoll]) 1);
+by (fast_tac (claset() addSIs [Diff_sing_eqpoll]) 1);
qed "Finite_Union_lemma";
goal thy "!!X. [| ALL x:X. Finite(x); Finite(X) |] ==> Finite(Union(X))";
@@ -148,7 +148,7 @@
qed "Finite_Union";
goalw thy [Finite_def] "!!x. [| x lepoll n; n:nat |] ==> Finite(x)";
-by (fast_tac (!claset
+by (fast_tac (claset()
addEs [nat_into_Ord RSN (2, lepoll_imp_ex_le_eqpoll) RS exE,
Ord_nat RSN (2, ltI) RSN (2, lt_trans1) RS ltD]) 1);
qed "lepoll_nat_num_imp_Finite";
@@ -159,7 +159,7 @@
by (excluded_middle_tac "Finite(X)" 1);
by (resolve_tac [Card_is_Ord RSN (3, Finite_lesspoll_infinite_Ord)] 2
THEN (REPEAT (assume_tac 3)));
-by (fast_tac (!claset addSEs [lepoll_nat_num_imp_Finite]
+by (fast_tac (claset() addSEs [lepoll_nat_num_imp_Finite]
addSIs [Finite_Union]) 2);
by (dresolve_tac [lt_Ord RSN (2, lepoll_imp_ex_le_eqpoll)] 1 THEN (assume_tac 1));
by (REPEAT (eresolve_tac [exE, conjE] 1));
@@ -174,7 +174,7 @@
by (eresolve_tac [lt_trans1 RSN (2, lt_Card_imp_lesspoll)] 1
THEN REPEAT (assume_tac 1));
by (rtac UN_lepoll 1
- THEN (TRYALL (fast_tac (!claset addSEs [lt_Ord]))));
+ THEN (TRYALL (fast_tac (claset() addSEs [lt_Ord]))));
qed "Union_lesspoll";
(* ********************************************************************** *)
@@ -186,36 +186,36 @@
qed "Un_sing_eq_cons";
goal thy "!!A. A lepoll B ==> A Un {a} lepoll succ(B)";
-by (asm_simp_tac (!simpset addsimps [Un_sing_eq_cons, succ_def]) 1);
+by (asm_simp_tac (simpset() addsimps [Un_sing_eq_cons, succ_def]) 1);
by (eresolve_tac [mem_not_refl RSN (2, cons_lepoll_cong)] 1);
qed "Un_lepoll_succ";
goal thy "!!a. Ord(a) ==> F(a) - (UN b<succ(a). F(b)) = 0";
-by (fast_tac (!claset addSIs [OUN_I, le_refl]) 1);
+by (fast_tac (claset() addSIs [OUN_I, le_refl]) 1);
qed "Diff_UN_succ_empty";
goal thy "!!a. Ord(a) ==> F(a) Un X - (UN b<succ(a). F(b)) <= X";
-by (fast_tac (!claset addSIs [OUN_I, le_refl]) 1);
+by (fast_tac (claset() addSIs [OUN_I, le_refl]) 1);
qed "Diff_UN_succ_subset";
goal thy "!!x. Ord(x) ==> \
\ recfunAC16(f, g, x, a) - (UN i<x. recfunAC16(f, g, i, a)) lepoll 1";
by (etac Ord_cases 1);
-by (asm_simp_tac (!simpset addsimps [recfunAC16_0,
+by (asm_simp_tac (simpset() addsimps [recfunAC16_0,
empty_subsetI RS subset_imp_lepoll]) 1);
-by (asm_simp_tac (!simpset addsimps [recfunAC16_Limit,
+by (asm_simp_tac (simpset() addsimps [recfunAC16_Limit,
Diff_cancel, empty_subsetI RS subset_imp_lepoll]) 2);
-by (asm_simp_tac (!simpset addsimps [recfunAC16_succ]) 1);
+by (asm_simp_tac (simpset() addsimps [recfunAC16_succ]) 1);
by (resolve_tac [conjI RS (expand_if RS iffD2)] 1);
-by (fast_tac (!claset addSIs [empty_subsetI RS subset_imp_lepoll]
+by (fast_tac (claset() addSIs [empty_subsetI RS subset_imp_lepoll]
addSEs [Diff_UN_succ_empty RS ssubst]) 1);
-by (fast_tac (!claset addSEs [Diff_UN_succ_subset RS subset_imp_lepoll RS
+by (fast_tac (claset() addSEs [Diff_UN_succ_subset RS subset_imp_lepoll RS
(singleton_eqpoll_1 RS eqpoll_imp_lepoll RSN (2, lepoll_trans))]) 1);
qed "recfunAC16_Diff_lepoll_1";
goal thy "!!z. [| z : F(x); Ord(x) |] \
\ ==> z:F(LEAST i. z:F(i)) - (UN j<(LEAST i. z:F(i)). F(j))";
-by (fast_tac (!claset addEs [less_LeastE] addSEs [OUN_E, LeastI]) 1);
+by (fast_tac (claset() addEs [less_LeastE] addSEs [OUN_E, LeastI]) 1);
qed "in_Least_Diff";
goal thy "!!w. [| (LEAST i. w:F(i)) = (LEAST i. z:F(i)); \
@@ -232,7 +232,7 @@
qed "Least_eq_imp_ex";
goal thy "!!A. [| A lepoll 1; a:A; b:A |] ==> a=b";
-by (fast_tac (!claset addSDs [lepoll_1_is_sing]) 1);
+by (fast_tac (claset() addSDs [lepoll_1_is_sing]) 1);
qed "two_in_lepoll_1";
goal thy "!!a. [| ALL i<a. F(i)-(UN j<i. F(j)) lepoll 1; Limit(a) |] \
@@ -251,20 +251,20 @@
by (Asm_simp_tac 1);
by (rtac impI 1);
by (dtac Least_eq_imp_ex 1 THEN (REPEAT (assume_tac 1)));
-by (fast_tac (!claset addSEs [two_in_lepoll_1]) 1);
+by (fast_tac (claset() addSEs [two_in_lepoll_1]) 1);
qed "UN_lepoll_index";
goal thy "!!y. Ord(y) ==> recfunAC16(f, fa, y, a) lepoll y";
by (etac trans_induct 1);
by (etac Ord_cases 1);
-by (asm_simp_tac (!simpset addsimps [recfunAC16_0, lepoll_refl]) 1);
-by (asm_simp_tac (!simpset addsimps [recfunAC16_succ]) 1);
-by (fast_tac (!claset addIs [conjI RS (expand_if RS iffD2)]
+by (asm_simp_tac (simpset() addsimps [recfunAC16_0, lepoll_refl]) 1);
+by (asm_simp_tac (simpset() addsimps [recfunAC16_succ]) 1);
+by (fast_tac (claset() addIs [conjI RS (expand_if RS iffD2)]
addSDs [succI1 RSN (2, bspec)]
addSEs [subset_succI RS subset_imp_lepoll RSN (2, lepoll_trans),
Un_lepoll_succ]) 1);
-by (asm_simp_tac (!simpset addsimps [recfunAC16_Limit]) 1);
-by (fast_tac (!claset addSEs [lt_Ord RS recfunAC16_Diff_lepoll_1]
+by (asm_simp_tac (simpset() addsimps [recfunAC16_Limit]) 1);
+by (fast_tac (claset() addSEs [lt_Ord RS recfunAC16_Diff_lepoll_1]
addSIs [UN_lepoll_index]) 1);
qed "recfunAC16_lepoll_index";
@@ -276,7 +276,7 @@
by (eresolve_tac [lt_Ord RS recfunAC16_lepoll_index] 3);
by (eresolve_tac [[bij_is_inj, Card_is_Ord RS well_ord_Memrel] MRS
well_ord_rvimage] 2 THEN (assume_tac 2));
-by (fast_tac (!claset addSEs [eqpoll_imp_lepoll]) 1);
+by (fast_tac (claset() addSEs [eqpoll_imp_lepoll]) 1);
qed "Union_recfunAC16_lesspoll";
goal thy
@@ -306,11 +306,11 @@
\ fa : bij(a, {x: Pow(A) . x eqpoll k}); i<a; k:nat; m:nat |] \
\ ==> fa ` i Un x : {x: Pow(A) . x eqpoll k #+ m}";
by (rtac CollectI 1);
-by (fast_tac (!claset addSIs [PowD RS (PowD RSN (2, Un_least RS PowI))]
+by (fast_tac (claset() addSIs [PowD RS (PowD RSN (2, Un_least RS PowI))]
addSEs [ltD RSN (2, bij_is_fun RS apply_type RS CollectE)]) 1);
by (rtac disj_Un_eqpoll_nat_sum 1
THEN (TRYALL assume_tac));
-by (fast_tac (!claset addSIs [equals0I]) 1);
+by (fast_tac (claset() addSIs [equals0I]) 1);
by (eresolve_tac [ltD RSN (2, bij_is_fun RS apply_type RS CollectE)] 1
THEN (REPEAT (assume_tac 1)));
qed "Un_in_Collect";
@@ -329,7 +329,7 @@
goal thy "!!j. [| F(j)<=X; (ALL x<a. x<j | P(x,j) --> Q(x,j)); succ(j)<a |] \
\ ==> P(j,j) --> F(j) <= X & (ALL x<a. x le j | P(x,j) --> Q(x,j))";
-by (fast_tac (!claset addSEs [leE]) 1);
+by (fast_tac (claset() addSEs [leE]) 1);
val lemma7 = result();
(* ********************************************************************** *)
@@ -345,15 +345,15 @@
((eqpoll_sym RS eqpoll_imp_lepoll) RSN (2, lepoll_trans)) RS
lepoll_imp_eqpoll_subset RS exE] 1
THEN REPEAT (assume_tac 1));
-by (fast_tac (!claset addSEs [eqpoll_sym]) 1);
+by (fast_tac (claset() addSEs [eqpoll_sym]) 1);
qed "ex_subset_eqpoll";
goal thy "!!A. [| A <= B Un C; A Int C = 0 |] ==> A <= B";
-by (fast_tac (!claset addDs [equals0D]) 1);
+by (fast_tac (claset() addDs [equals0D]) 1);
qed "subset_Un_disjoint";
goal thy "!!F. [| X:Pow(A - Union(B) -C); T:B; F<=T |] ==> F Int X = 0";
-by (fast_tac (!claset addSIs [equals0I]) 1);
+by (fast_tac (claset() addSIs [equals0I]) 1);
qed "Int_empty";
(* ********************************************************************** *)
@@ -361,12 +361,12 @@
(* ********************************************************************** *)
goal thy "!!A. [| A <= B; a : A; A - {a} = B - {a} |] ==> A = B";
-by (fast_tac (!claset addSEs [equalityE]) 1);
+by (fast_tac (claset() addSEs [equalityE]) 1);
qed "Diffs_eq_imp_eq";
goal thy "!!A. m:nat ==> ALL A B. A <= B & m lepoll A & B lepoll m --> A=B";
by (etac nat_induct 1);
-by (fast_tac (!claset addSDs [lepoll_0_is_0]) 1);
+by (fast_tac (claset() addSDs [lepoll_0_is_0]) 1);
by (REPEAT (resolve_tac [allI, impI] 1));
by (REPEAT (etac conjE 1));
by (resolve_tac [succ_lepoll_imp_not_empty RS not_emptyE] 1
@@ -390,12 +390,12 @@
\ y<a |] ==> b=y";
by (dtac subset_imp_eq 1);
by (etac nat_succI 3);
-by (fast_tac (!claset addSEs [bij_is_fun RS (ltD RSN (2, apply_type)) RS
+by (fast_tac (claset() addSEs [bij_is_fun RS (ltD RSN (2, apply_type)) RS
CollectE, eqpoll_sym RS eqpoll_imp_lepoll]) 1);
-by (fast_tac (!claset addSEs [bij_is_fun RS (ltD RSN (2, apply_type)) RS
+by (fast_tac (claset() addSEs [bij_is_fun RS (ltD RSN (2, apply_type)) RS
CollectE, eqpoll_imp_lepoll]) 1);
by (rewrite_goals_tac [bij_def, inj_def]);
-by (fast_tac (!claset addSDs [ltD]) 1);
+by (fast_tac (claset() addSDs [ltD]) 1);
qed "bij_imp_arg_eq";
goal thy
@@ -467,7 +467,7 @@
\ (ALL x<a. x le j | (EX xa: (F(j) Un {L}). P(x, xa)) --> \
\ (EX! Y. Y: (F(j) Un {L}) & P(x, Y)))";
by (rtac conjI 1);
-by (fast_tac (!claset addSIs [singleton_subsetI]) 1);
+by (fast_tac (claset() addSIs [singleton_subsetI]) 1);
by (rtac oallI 1);
by (etac oallE 1 THEN (contr_tac 2));
by (rtac impI 1);
@@ -480,7 +480,7 @@
by (Deepen_tac 2 1);
by (etac bexE 1);
by (etac UnE 1);
-by (fast_tac (!claset delrules [ex_ex1I] addSIs [ex1_in_Un_sing]) 1);
+by (fast_tac (claset() delrules [ex_ex1I] addSIs [ex1_in_Un_sing]) 1);
by (Deepen_tac 2 1);
val lemma8 = result();
@@ -500,15 +500,15 @@
by (forward_tac [lt_Ord] 1);
by (etac Ord_cases 1);
(* case 0 *)
-by (asm_simp_tac (!simpset addsimps [recfunAC16_0]) 1);
+by (asm_simp_tac (simpset() addsimps [recfunAC16_0]) 1);
(* case Limit *)
-by (asm_simp_tac (!simpset addsimps [recfunAC16_Limit]) 2);
+by (asm_simp_tac (simpset() addsimps [recfunAC16_Limit]) 2);
by (rtac lemma5 2 THEN (REPEAT (assume_tac 2)));
by (fast_tac (FOL_cs addSEs [recfunAC16_mono]) 2);
(* case succ *)
by (hyp_subst_tac 1);
by (eresolve_tac [lemma6 RS conjE] 1 THEN (assume_tac 1));
-by (asm_simp_tac (!simpset addsimps [recfunAC16_succ]) 1);
+by (asm_simp_tac (simpset() addsimps [recfunAC16_succ]) 1);
by (resolve_tac [conjI RS (expand_if RS iffD2)] 1);
by (etac lemma7 1 THEN (REPEAT (assume_tac 1)));
by (rtac impI 1);
@@ -548,12 +548,12 @@
(** LEVEL 10 **)
by (dresolve_tac [leI RS succ_leE RSN (2, ospec)] 1 THEN (assume_tac 1));
by (etac impE 1);
-by (fast_tac (!claset addSEs [leI RS succ_leE RS lt_Ord RS le_refl]) 1);
+by (fast_tac (claset() addSEs [leI RS succ_leE RS lt_Ord RS le_refl]) 1);
by (dresolve_tac [prem2 RSN (2, apply_equality)] 1);
by (REPEAT (eresolve_tac [conjE, ex1E] 1));
(** LEVEL 15 **)
by (rtac ex1I 1);
-by (fast_tac (!claset addSIs [OUN_I]) 1);
+by (fast_tac (claset() addSIs [OUN_I]) 1);
by (REPEAT (eresolve_tac [conjE, OUN_E] 1));
by (eresolve_tac [lt_Ord RSN (2, lt_Ord RS Ord_linear_le)] 1 THEN (assume_tac 1));
by (dresolve_tac [prem4 RS subsetD] 2 THEN (assume_tac 2));
--- a/src/ZF/AC/WO6_WO1.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/WO6_WO1.ML Mon Nov 03 12:24:13 1997 +0100
@@ -16,12 +16,12 @@
by (res_inst_tac [("i","k"),("j","i")] Ord_linear2 1);
by (dtac odiff_lt_mono2 4 THEN assume_tac 4);
by (asm_full_simp_tac
- (!simpset addsimps [oadd_odiff_inverse, odiff_oadd_inverse]) 4);
-by (safe_tac (!claset addSEs [lt_Ord]));
+ (simpset() addsimps [oadd_odiff_inverse, odiff_oadd_inverse]) 4);
+by (safe_tac (claset() addSEs [lt_Ord]));
qed "lt_oadd_odiff_disj";
(*The corresponding elimination rule*)
-val lt_oadd_odiff_cases = rule_by_tactic (safe_tac (!claset))
+val lt_oadd_odiff_cases = rule_by_tactic (safe_tac (claset()))
(lt_oadd_odiff_disj RS disjE);
(* ********************************************************************** *)
@@ -38,7 +38,7 @@
goal thy "!! a. ALL b<a. f`b lepoll m ==> \
\ ALL b<a. ALL g<a. ALL d<a. domain(uu(f,b,g,d)) lepoll m";
-by (fast_tac (!claset addSEs
+by (fast_tac (claset() addSEs
[domain_uu_subset RS subset_imp_lepoll RS lepoll_trans]) 1);
qed "quant_domain_uu_lepoll_m";
@@ -51,7 +51,7 @@
qed "uu_subset2";
goal thy "!! a. [| ALL b<a. f`b lepoll m; d<a |] ==> uu(f,b,g,d) lepoll m";
-by (fast_tac (!claset
+by (fast_tac (claset()
addSEs [uu_subset2 RS subset_imp_lepoll RS lepoll_trans]) 1);
qed "uu_lepoll_m";
@@ -65,14 +65,14 @@
\ (EX b<a. f`b ~= 0 & (ALL g<a. ALL d<a. u(f,b,g,d) ~= 0 --> \
\ u(f,b,g,d) eqpoll m))";
by (Asm_simp_tac 1);
-by (blast_tac (!claset delrules [equalityI]) 1);
+by (blast_tac (claset() delrules [equalityI]) 1);
qed "cases";
(* ********************************************************************** *)
(* Lemmas used in both cases *)
(* ********************************************************************** *)
goal thy "!!a C. Ord(a) ==> (UN b<a++a. C(b)) = (UN b<a. C(b) Un C(a++b))";
-by (fast_tac (!claset addSIs [equalityI] addIs [ltI]
+by (fast_tac (claset() addSIs [equalityI] addIs [ltI]
addSDs [lt_oadd_disj]
addSEs [lt_oadd1, oadd_lt_mono2]) 1);
qed "UN_oadd";
@@ -85,7 +85,7 @@
goalw thy [vv1_def] "vv1(f,m,b) <= f`b";
by (rtac (LetI RS LetI) 1);
by (split_tac [expand_if] 1);
-by (simp_tac (!simpset addsimps [domain_uu_subset]) 1);
+by (simp_tac (simpset() addsimps [domain_uu_subset]) 1);
qed "vv1_subset";
(* ********************************************************************** *)
@@ -95,14 +95,14 @@
"!! a f y. [| Ord(a); m:nat |] ==> \
\ (UN b<a++a. gg1(f,a,m)`b) = (UN b<a. f`b)";
by (asm_simp_tac
- (!simpset addsimps [UN_oadd, lt_oadd1,
+ (simpset() addsimps [UN_oadd, lt_oadd1,
oadd_le_self RS le_imp_not_lt, lt_Ord,
odiff_oadd_inverse, ltD,
vv1_subset RS Diff_partition, ww1_def]) 1);
qed "UN_gg1_eq";
goal thy "domain(gg1(f,a,m)) = a++a";
-by (simp_tac (!simpset addsimps [lam_funtype RS domain_of_fun, gg1_def]) 1);
+by (simp_tac (simpset() addsimps [lam_funtype RS domain_of_fun, gg1_def]) 1);
qed "domain_gg1";
(* ********************************************************************** *)
@@ -113,7 +113,7 @@
\ ==> P(Least_a, LEAST b. P(Least_a, b))";
by (etac ssubst 1);
by (res_inst_tac [("Q","%z. P(z, LEAST b. P(z, b))")] LeastI2 1);
-by (REPEAT (fast_tac (!claset addSEs [LeastI]) 1));
+by (REPEAT (fast_tac (claset() addSEs [LeastI]) 1));
qed "nested_LeastI";
val nested_Least_instance =
@@ -130,23 +130,23 @@
\ ALL b<a. f`b lepoll succ(m); b<a++a \
\ |] ==> gg1(f,a,m)`b lepoll m";
by (Asm_simp_tac 1);
-by (safe_tac (!claset addSEs [lt_oadd_odiff_cases]));
+by (safe_tac (claset() addSEs [lt_oadd_odiff_cases]));
(*Case b<a : show vv1(f,m,b) lepoll m *)
-by (asm_simp_tac (!simpset addsimps [vv1_def, Let_def]
+by (asm_simp_tac (simpset() addsimps [vv1_def, Let_def]
setloop split_tac [expand_if]) 1);
-by (fast_tac (!claset addIs [nested_Least_instance RS conjunct2]
+by (fast_tac (claset() addIs [nested_Least_instance RS conjunct2]
addSEs [lt_Ord]
addSIs [empty_lepollI]) 1);
(*Case a le b: show ww1(f,m,b--a) lepoll m *)
-by (asm_simp_tac (!simpset addsimps [ww1_def]) 1);
+by (asm_simp_tac (simpset() addsimps [ww1_def]) 1);
by (excluded_middle_tac "f`(b--a) = 0" 1);
-by (asm_simp_tac (!simpset addsimps [empty_lepollI]) 2);
+by (asm_simp_tac (simpset() addsimps [empty_lepollI]) 2);
by (rtac Diff_lepoll 1);
by (Blast_tac 1);
by (rtac vv1_subset 1);
by (dtac (ospec RS mp) 1);
by (REPEAT (eresolve_tac [asm_rl, oexE] 1));
-by (asm_simp_tac (!simpset
+by (asm_simp_tac (simpset()
addsimps [vv1_def, Let_def, lt_Ord,
nested_Least_instance RS conjunct1]) 1);
qed "gg1_lepoll_m";
@@ -162,7 +162,7 @@
goalw thy [uu_def] "!!f. [| b<a; g<a; f`b~=0; f`g~=0; \
\ y*y <= y; (UN b<a. f`b)=y \
\ |] ==> EX d<a. uu(f,b,g,d) ~= 0";
-by (fast_tac (!claset addSIs [not_emptyI]
+by (fast_tac (claset() addSIs [not_emptyI]
addSDs [SigmaI RSN (2, subsetD)]
addSEs [not_emptyE]) 1);
qed "ex_d_uu_not_empty";
@@ -171,7 +171,7 @@
\ y*y<=y; (UN b<a. f`b)=y |] \
\ ==> uu(f,b,g,LEAST d. (uu(f,b,g,d) ~= 0)) ~= 0";
by (dtac ex_d_uu_not_empty 1 THEN REPEAT (assume_tac 1));
-by (fast_tac (!claset addSEs [LeastI, lt_Ord]) 1);
+by (fast_tac (claset() addSEs [LeastI, lt_Ord]) 1);
qed "uu_not_empty";
goal ZF.thy "!!r. [| r<=A*B; r~=0 |] ==> domain(r)~=0";
@@ -195,7 +195,7 @@
(*Could this be proved more directly?*)
goal thy "!!A B. [| A lepoll m; m lepoll B; B <= A; m:nat |] ==> A=B";
by (etac natE 1);
-by (fast_tac (!claset addSDs [lepoll_0_is_0] addSIs [equalityI]) 1);
+by (fast_tac (claset() addSDs [lepoll_0_is_0] addSIs [equalityI]) 1);
by (hyp_subst_tac 1);
by (rtac equalityI 1);
by (assume_tac 2);
@@ -222,7 +222,7 @@
uu_subset1 RSN (4, rel_is_fun)))] 1
THEN TRYALL assume_tac);
by (rtac (eqpoll_sym RS eqpoll_imp_lepoll RSN (2, supset_lepoll_imp_eq)) 1);
-by (REPEAT (fast_tac (!claset addSIs [domain_uu_subset, nat_succI]) 1));
+by (REPEAT (fast_tac (claset() addSIs [domain_uu_subset, nat_succI]) 1));
qed "uu_Least_is_fun";
goalw thy [vv2_def]
@@ -234,7 +234,7 @@
by (split_tac [expand_if] 1);
by Safe_tac;
by (etac (uu_Least_is_fun RS apply_type) 1);
-by (REPEAT_SOME (fast_tac (!claset addSIs [not_emptyI, singleton_subsetI])));
+by (REPEAT_SOME (fast_tac (claset() addSIs [not_emptyI, singleton_subsetI])));
qed "vv2_subset";
(* ********************************************************************** *)
@@ -248,14 +248,14 @@
\ |] ==> (UN g<a++a. gg2(f,a,b,s) ` g) = y";
by (dtac sym 1);
by (asm_simp_tac
- (!simpset addsimps [UN_oadd, lt_oadd1,
+ (simpset() addsimps [UN_oadd, lt_oadd1,
oadd_le_self RS le_imp_not_lt, lt_Ord,
odiff_oadd_inverse, ww2_def,
vv2_subset RS Diff_partition]) 1);
qed "UN_gg2_eq";
goal thy "domain(gg2(f,a,b,s)) = a++a";
-by (simp_tac (!simpset addsimps [lam_funtype RS domain_of_fun, gg2_def]) 1);
+by (simp_tac (simpset() addsimps [lam_funtype RS domain_of_fun, gg2_def]) 1);
qed "domain_gg2";
(* ********************************************************************** *)
@@ -264,9 +264,9 @@
goalw thy [vv2_def]
"!!m. [| m:nat; m~=0 |] ==> vv2(f,b,g,s) lepoll m";
-by (asm_simp_tac (!simpset addsimps [empty_lepollI]
+by (asm_simp_tac (simpset() addsimps [empty_lepollI]
setloop split_tac [expand_if]) 1);
-by (fast_tac (!claset
+by (fast_tac (claset()
addSDs [le_imp_subset RS subset_imp_lepoll RS lepoll_0_is_0]
addSIs [singleton_eqpoll_1 RS eqpoll_imp_lepoll RS lepoll_trans,
not_lt_imp_le RS le_imp_subset RS subset_imp_lepoll,
@@ -277,11 +277,11 @@
"!!m. [| ALL b<a. f`b lepoll succ(m); g<a; m:nat; vv2(f,b,g,d) <= f`g \
\ |] ==> ww2(f,b,g,d) lepoll m";
by (excluded_middle_tac "f`g = 0" 1);
-by (asm_simp_tac (!simpset addsimps [empty_lepollI]) 2);
+by (asm_simp_tac (simpset() addsimps [empty_lepollI]) 2);
by (dtac ospec 1 THEN (assume_tac 1));
by (rtac Diff_lepoll 1
THEN (TRYALL assume_tac));
-by (asm_simp_tac (!simpset addsimps [vv2_def, expand_if, not_emptyI]) 1);
+by (asm_simp_tac (simpset() addsimps [vv2_def, expand_if, not_emptyI]) 1);
qed "ww2_lepoll";
goalw thy [gg2_def]
@@ -291,9 +291,9 @@
\ (UN b<a. f`b)=y; b<a; s:f`b; m:nat; m~= 0; g<a++a \
\ |] ==> gg2(f,a,b,s) ` g lepoll m";
by (Asm_simp_tac 1);
-by (safe_tac (!claset addSEs [lt_oadd_odiff_cases, lt_Ord2]));
-by (asm_simp_tac (!simpset addsimps [vv2_lepoll]) 1);
-by (asm_simp_tac (!simpset addsimps [ww2_lepoll, vv2_subset]) 1);
+by (safe_tac (claset() addSEs [lt_oadd_odiff_cases, lt_Ord2]));
+by (asm_simp_tac (simpset() addsimps [vv2_lepoll]) 1);
+by (asm_simp_tac (simpset() addsimps [ww2_lepoll, vv2_subset]) 1);
qed "gg2_lepoll_m";
(* ********************************************************************** *)
@@ -305,9 +305,9 @@
by (resolve_tac [quant_domain_uu_lepoll_m RS cases RS disjE] 1
THEN (assume_tac 1));
(* case 1 *)
-by (asm_full_simp_tac (!simpset addsimps [lesspoll_succ_iff]) 1);
+by (asm_full_simp_tac (simpset() addsimps [lesspoll_succ_iff]) 1);
by (res_inst_tac [("x","a++a")] exI 1);
-by (fast_tac (!claset addSIs [Ord_oadd, domain_gg1, UN_gg1_eq,
+by (fast_tac (claset() addSIs [Ord_oadd, domain_gg1, UN_gg1_eq,
gg1_lepoll_m]) 1);
(* case 2 *)
by (REPEAT (eresolve_tac [oexE, conjE] 1));
@@ -318,7 +318,7 @@
by (res_inst_tac [("x","gg2(f,a,b,x)")] exI 1);
(*Calling fast_tac might get rid of the res_inst_tac calls, but it
is just too slow.*)
-by (asm_simp_tac (!simpset addsimps
+by (asm_simp_tac (simpset() addsimps
[Ord_oadd, domain_gg2, UN_gg2_eq, gg2_lepoll_m]) 1);
qed "lemma_ii";
@@ -333,7 +333,7 @@
goal thy "ALL n:nat. rec(n, x, %k r. r Un r*r) <= \
\ rec(succ(n), x, %k r. r Un r*r)";
-by (fast_tac (!claset addIs [rec_succ RS ssubst]) 1);
+by (fast_tac (claset() addIs [rec_succ RS ssubst]) 1);
qed "z_n_subset_z_succ_n";
goal thy "!!n. [| ALL n:nat. f(n)<=f(succ(n)); n le m; n : nat; m: nat |] \
@@ -353,14 +353,14 @@
goal thy "EX y. x Un y*y <= y";
by (res_inst_tac [("x","UN n:nat. rec(n, x, %k r. r Un r*r)")] exI 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac (nat_0I RS UN_I) 1);
by (Asm_simp_tac 1);
by (res_inst_tac [("a","succ(n Un na)")] UN_I 1);
by (eresolve_tac [Un_nat_type RS nat_succI] 1 THEN (assume_tac 1));
by (fast_tac (ZF_cs addIs [le_imp_rec_subset RS subsetD]
addSIs [Un_upper1_le, Un_upper2_le, Un_nat_type]
- addSEs [nat_into_Ord] addss (!simpset)) 1);
+ addSEs [nat_into_Ord] addss (simpset())) 1);
qed "lemma_iv";
(* ********************************************************************** *)
@@ -388,13 +388,13 @@
goal thy "!!f. [| (UN b<a. f`b)=y; x:y; ALL b<a. f`b lepoll 1; Ord(a) |] \
\ ==> EX c<a. f`c = {x}";
-by (fast_tac (!claset addSEs [lepoll_1_is_sing]) 1);
+by (fast_tac (claset() addSEs [lepoll_1_is_sing]) 1);
val lemma1 = result();
goal thy "!!f. [| (UN b<a. f`b)=y; x:y; ALL b<a. f`b lepoll 1; Ord(a) |] \
\ ==> f` (LEAST i. f`i = {x}) = {x}";
by (dtac lemma1 1 THEN REPEAT (assume_tac 1));
-by (fast_tac (!claset addSEs [lt_Ord] addIs [LeastI]) 1);
+by (fast_tac (claset() addSEs [lt_Ord] addIs [LeastI]) 1);
val lemma2 = result();
goalw thy [NN_def] "!!y. 1 : NN(y) ==> EX a f. Ord(a) & f:inj(y, a)";
@@ -405,14 +405,14 @@
by (rtac conjI 1 THEN (assume_tac 1));
by (res_inst_tac [("d","%i. THE x. x:f`i")] lam_injective 1);
by (dtac lemma1 1 THEN REPEAT (assume_tac 1));
-by (fast_tac (!claset addSEs [Least_le RS lt_trans1 RS ltD, lt_Ord]) 1);
+by (fast_tac (claset() addSEs [Least_le RS lt_trans1 RS ltD, lt_Ord]) 1);
by (resolve_tac [lemma2 RS ssubst] 1 THEN REPEAT (assume_tac 1));
-by (fast_tac (!claset addSIs [the_equality]) 1);
+by (fast_tac (claset() addSIs [the_equality]) 1);
qed "NN_imp_ex_inj";
goal thy "!!y. [| y*y <= y; 1 : NN(y) |] ==> EX r. well_ord(y, r)";
by (dtac NN_imp_ex_inj 1);
-by (fast_tac (!claset addSEs [well_ord_Memrel RSN (2, well_ord_rvimage)]) 1);
+by (fast_tac (claset() addSEs [well_ord_Memrel RSN (2, well_ord_rvimage)]) 1);
qed "y_well_ord";
(* ********************************************************************** *)
@@ -427,7 +427,7 @@
by (Blast_tac 1);
by (excluded_middle_tac "x=0" 1);
by (Blast_tac 2);
-by (fast_tac (!claset addSIs [prem2]) 1);
+by (fast_tac (claset() addSIs [prem2]) 1);
qed "rev_induct_lemma";
val prems = goal thy
@@ -454,21 +454,21 @@
(* another helpful lemma *)
goalw thy [NN_def] "!!y. 0:NN(y) ==> y=0";
-by (fast_tac (!claset addSIs [equalityI]
+by (fast_tac (claset() addSIs [equalityI]
addSDs [lepoll_0_is_0] addEs [subst]) 1);
qed "NN_y_0";
goalw thy [WO1_def] "!!Z. WO6 ==> WO1";
by (rtac allI 1);
by (excluded_middle_tac "A=0" 1);
-by (fast_tac (!claset addSIs [well_ord_Memrel, nat_0I RS nat_into_Ord]) 2);
+by (fast_tac (claset() addSIs [well_ord_Memrel, nat_0I RS nat_into_Ord]) 2);
by (res_inst_tac [("x1","A")] (lemma_iv RS revcut_rl) 1);
by (etac exE 1);
by (dtac WO6_imp_NN_not_empty 1);
by (eresolve_tac [Un_subset_iff RS iffD1 RS conjE] 1);
by (eres_inst_tac [("A","NN(y)")] not_emptyE 1);
by (forward_tac [y_well_ord] 1);
-by (fast_tac (!claset addEs [well_ord_subset]) 2);
-by (fast_tac (!claset addSIs [lemma3] addSDs [NN_y_0] addSEs [not_emptyE]) 1);
+by (fast_tac (claset() addEs [well_ord_subset]) 2);
+by (fast_tac (claset() addSIs [lemma3] addSDs [NN_y_0] addSEs [not_emptyE]) 1);
qed "WO6_imp_WO1";
--- a/src/ZF/AC/WO_AC.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/WO_AC.ML Mon Nov 03 12:24:13 1997 +0100
@@ -9,14 +9,14 @@
goal thy "!!A. [| well_ord(Union(A),r); 0~:A; B:A |] \
\ ==> (THE b. first(b,B,r)) : B";
-by (fast_tac (!claset addSEs [well_ord_imp_ex1_first RS theI RS
+by (fast_tac (claset() addSEs [well_ord_imp_ex1_first RS theI RS
(first_def RS def_imp_iff RS iffD1 RS conjunct1)]) 1);
qed "first_in_B";
goal thy "!!A. [| well_ord(Union(A), R); 0~:A |] ==> EX f. f:(PROD X:A. X)";
-by (fast_tac (!claset addSEs [first_in_B] addSIs [lam_type]) 1);
+by (fast_tac (claset() addSEs [first_in_B] addSIs [lam_type]) 1);
qed "ex_choice_fun";
goal thy "!!A. well_ord(A, R) ==> EX f. f:(PROD X: Pow(A)-{0}. X)";
-by (fast_tac (!claset addSEs [well_ord_subset RS ex_choice_fun]) 1);
+by (fast_tac (claset() addSEs [well_ord_subset RS ex_choice_fun]) 1);
qed "ex_choice_fun_Pow";
--- a/src/ZF/AC/recfunAC16.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/recfunAC16.ML Mon Nov 03 12:24:13 1997 +0100
@@ -41,7 +41,7 @@
by (Asm_simp_tac 1);
by (fast_tac (FOL_cs addSIs [succI1, prem1]
addSEs [ballE, leE, prem1 RSN (2, subset_trans)]) 1);
-by (fast_tac (!claset addIs [OUN_I, ltI]
+by (fast_tac (claset() addIs [OUN_I, ltI]
addSEs [Limit_has_succ RS ltE, succI1 RSN (2, Ord_in_Ord) RS le_refl,
transrec2_Limit RS ssubst]) 1);
qed "transrec2_mono_lemma";
@@ -50,7 +50,7 @@
\ ==> transrec2(j, 0, B) <= transrec2(i, 0, B)";
by (resolve_tac [prem2 RS leE] 1);
by (resolve_tac [transrec2_mono_lemma RS impE] 1);
-by (TRYALL (fast_tac (!claset addSIs [prem1, prem2, lt_Ord2])));
+by (TRYALL (fast_tac (claset() addSIs [prem1, prem2, lt_Ord2])));
qed "transrec2_mono";
(* ********************************************************************** *)
@@ -60,6 +60,6 @@
goalw thy [recfunAC16_def]
"!!i. i le j ==> recfunAC16(f, g, i, a) <= recfunAC16(f, g, j, a)";
by (rtac transrec2_mono 1);
-by (REPEAT (fast_tac (!claset addIs [expand_if RS iffD2]) 1));
+by (REPEAT (fast_tac (claset() addIs [expand_if RS iffD2]) 1));
qed "recfunAC16_mono";
--- a/src/ZF/AC/rel_is_fun.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/AC/rel_is_fun.ML Mon Nov 03 12:24:13 1997 +0100
@@ -15,21 +15,21 @@
by (res_inst_tac [("x",
"lam x:domain(u). LEAST i. EX y. <x,y> : u & f`<x,y> = i")] exI 1);
by (res_inst_tac [("d","%y. fst(converse(f)`y)")] lam_injective 1);
-by (fast_tac (!claset addIs [LeastI2, nat_into_Ord RS Ord_in_Ord,
+by (fast_tac (claset() addIs [LeastI2, nat_into_Ord RS Ord_in_Ord,
inj_is_fun RS apply_type]) 1);
by (etac domainE 1);
by (forward_tac [inj_is_fun RS apply_type] 1 THEN (atac 1));
by (rtac LeastI2 1);
-by (REPEAT (fast_tac (!claset addSEs [nat_into_Ord RS Ord_in_Ord]
- addss (!simpset addsimps [left_inverse])) 1));
+by (REPEAT (fast_tac (claset() addSEs [nat_into_Ord RS Ord_in_Ord]
+ addss (simpset() addsimps [left_inverse])) 1));
qed "lepoll_m_imp_domain_lepoll_m";
goalw Cardinal.thy [function_def]
"!!r. [| succ(m) lepoll domain(r); r lepoll succ(m); m:nat |] ==> \
\ function(r)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (resolve_tac [excluded_middle RS disjE] 1 THEN (atac 2));
-by (fast_tac (!claset addSEs [lepoll_trans RS succ_lepoll_natE,
+by (fast_tac (claset() addSEs [lepoll_trans RS succ_lepoll_natE,
Diff_sing_lepoll RSN (2, lepoll_m_imp_domain_lepoll_m)]
addEs [not_sym RSN (2, domain_Diff_eq) RS subst]) 1);
qed "rel_domain_ex1";
@@ -38,5 +38,5 @@
"!!r. [| succ(m) lepoll domain(r); r lepoll succ(m); m:nat; \
\ r<=A*B; A=domain(r) |] ==> r: A->B";
by (hyp_subst_tac 1);
-by (asm_simp_tac (!simpset addsimps [Pi_iff, rel_domain_ex1]) 1);
+by (asm_simp_tac (simpset() addsimps [Pi_iff, rel_domain_ex1]) 1);
qed "rel_is_fun";
--- a/src/ZF/Arith.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Arith.ML Mon Nov 03 12:24:13 1997 +0100
@@ -41,7 +41,7 @@
\ |] ==> rec(n,a,b) : C(n)";
by (rtac (major RS nat_induct) 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps prems)));
+ (asm_simp_tac (simpset() addsimps prems)));
qed "rec_type";
Addsimps [rec_type, nat_0_le, nat_le_refl];
@@ -112,9 +112,9 @@
qed_goalw "diff_succ_succ" Arith.thy [diff_def]
"[| m:nat; n:nat |] ==> succ(m) #- succ(n) = m #- n"
(fn prems=>
- [ (asm_simp_tac (!simpset addsimps prems) 1),
+ [ (asm_simp_tac (simpset() addsimps prems) 1),
(nat_ind_tac "n" prems 1),
- (ALLGOALS (asm_simp_tac (!simpset addsimps prems))) ]);
+ (ALLGOALS (asm_simp_tac (simpset() addsimps prems))) ]);
Addsimps [diff_0, diff_0_eq_0, diff_succ_succ];
@@ -123,7 +123,7 @@
by (rtac (prems MRS diff_induct) 1);
by (etac leE 3);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps (prems @ [le_iff, nat_into_Ord]))));
+ (asm_simp_tac (simpset() addsimps (prems @ [le_iff, nat_into_Ord]))));
qed "diff_le_self";
(*** Simplification over add, mult, diff ***)
@@ -139,7 +139,7 @@
"m:nat ==> (m #+ n) #+ k = m #+ (n #+ k)"
(fn prems=>
[ (nat_ind_tac "m" prems 1),
- (ALLGOALS (asm_simp_tac (!simpset addsimps prems))) ]);
+ (ALLGOALS (asm_simp_tac (simpset() addsimps prems))) ]);
(*The following two lemmas are used for add_commute and sometimes
elsewhere, since they are safe for rewriting.*)
@@ -147,13 +147,13 @@
"m:nat ==> m #+ 0 = m"
(fn prems=>
[ (nat_ind_tac "m" prems 1),
- (ALLGOALS (asm_simp_tac (!simpset addsimps prems))) ]);
+ (ALLGOALS (asm_simp_tac (simpset() addsimps prems))) ]);
qed_goal "add_succ_right" Arith.thy
"m:nat ==> m #+ succ(n) = succ(m #+ n)"
(fn prems=>
[ (nat_ind_tac "m" prems 1),
- (ALLGOALS (asm_simp_tac (!simpset addsimps prems))) ]);
+ (ALLGOALS (asm_simp_tac (simpset() addsimps prems))) ]);
Addsimps [add_0_right, add_succ_right];
@@ -167,7 +167,7 @@
(*for a/c rewriting*)
qed_goal "add_left_commute" Arith.thy
"!!m n k. [| m:nat; n:nat |] ==> m#+(n#+k)=n#+(m#+k)"
- (fn _ => [asm_simp_tac(!simpset addsimps [add_assoc RS sym, add_commute]) 1]);
+ (fn _ => [asm_simp_tac(simpset() addsimps [add_assoc RS sym, add_commute]) 1]);
(*Addition is an AC-operator*)
val add_ac = [add_assoc, add_commute, add_left_commute];
@@ -194,7 +194,7 @@
"!!m n. [| m:nat; n:nat |] ==> m #* succ(n) = m #+ (m #* n)"
(fn _ =>
[ (nat_ind_tac "m" [] 1),
- (ALLGOALS (asm_simp_tac (!simpset addsimps add_ac))) ]);
+ (ALLGOALS (asm_simp_tac (simpset() addsimps add_ac))) ]);
Addsimps [mult_0_right, mult_succ_right];
@@ -218,7 +218,7 @@
"!!m n. [| m:nat; k:nat |] ==> (m #+ n) #* k = (m #* k) #+ (n #* k)"
(fn _=>
[ (etac nat_induct 1),
- (ALLGOALS (asm_simp_tac (!simpset addsimps [add_assoc RS sym]))) ]);
+ (ALLGOALS (asm_simp_tac (simpset() addsimps [add_assoc RS sym]))) ]);
(*Distributive law on the left; requires an extra typing premise*)
qed_goal "add_mult_distrib_left" Arith.thy
@@ -226,14 +226,14 @@
(fn prems=>
[ (nat_ind_tac "m" [] 1),
(Asm_simp_tac 1),
- (asm_simp_tac (!simpset addsimps add_ac) 1) ]);
+ (asm_simp_tac (simpset() addsimps add_ac) 1) ]);
(*Associative law for multiplication*)
qed_goal "mult_assoc" Arith.thy
"!!m n k. [| m:nat; n:nat; k:nat |] ==> (m #* n) #* k = m #* (n #* k)"
(fn _=>
[ (etac nat_induct 1),
- (ALLGOALS (asm_simp_tac (!simpset addsimps [add_mult_distrib]))) ]);
+ (ALLGOALS (asm_simp_tac (simpset() addsimps [add_mult_distrib]))) ]);
(*for a/c rewriting*)
qed_goal "mult_left_commute" Arith.thy
@@ -252,7 +252,7 @@
"m:nat ==> m #- m = 0"
(fn prems=>
[ (nat_ind_tac "m" prems 1),
- (ALLGOALS (asm_simp_tac (!simpset addsimps prems))) ]);
+ (ALLGOALS (asm_simp_tac (simpset() addsimps prems))) ]);
(*Addition is the inverse of subtraction*)
goal Arith.thy "!!m n. [| n le m; m:nat |] ==> n #+ (m#-n) = m";
@@ -277,7 +277,7 @@
val [mnat,nnat] = goal Arith.thy
"[| m:nat; n:nat |] ==> (n#+m) #- n = m";
by (rtac (nnat RS nat_induct) 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [mnat])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [mnat])));
qed "diff_add_inverse";
goal Arith.thy
@@ -295,13 +295,13 @@
goal Arith.thy
"!!n. [| k:nat; m: nat; n: nat |] ==> (m#+k) #- (n#+k) = m #- n";
val add_commute_k = read_instantiate [("n","k")] add_commute;
-by (asm_simp_tac (!simpset addsimps [add_commute_k, diff_cancel]) 1);
+by (asm_simp_tac (simpset() addsimps [add_commute_k, diff_cancel]) 1);
qed "diff_cancel2";
val [mnat,nnat] = goal Arith.thy
"[| m:nat; n:nat |] ==> n #- (n#+m) = 0";
by (rtac (nnat RS nat_induct) 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [mnat])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [mnat])));
qed "diff_add_0";
(** Difference distributes over multiplication **)
@@ -309,13 +309,13 @@
goal Arith.thy
"!!m n. [| m:nat; n: nat; k:nat |] ==> (m #- n) #* k = (m #* k) #- (n #* k)";
by (res_inst_tac [("m","m"),("n","n")] diff_induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [diff_cancel])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [diff_cancel])));
qed "diff_mult_distrib" ;
goal Arith.thy
"!!m. [| m:nat; n: nat; k:nat |] ==> k #* (m #- n) = (k #* m) #- (k #* n)";
val mult_commute_k = read_instantiate [("m","k")] mult_commute;
-by (asm_simp_tac (!simpset addsimps
+by (asm_simp_tac (simpset() addsimps
[mult_commute_k, diff_mult_distrib]) 1);
qed "diff_mult_distrib2" ;
@@ -326,7 +326,7 @@
by (etac rev_mp 1);
by (etac rev_mp 1);
by (res_inst_tac [("m","m"),("n","n")] diff_induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [diff_le_self,diff_succ_succ])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [diff_le_self,diff_succ_succ])));
qed "div_termination";
val div_rls = (*for mod and div*)
@@ -334,7 +334,7 @@
[Ord_transrec_type, apply_type, div_termination RS ltD, if_type,
nat_into_Ord, not_lt_iff_le RS iffD1];
-val div_ss = (!simpset) addsimps [nat_into_Ord, div_termination RS ltD,
+val div_ss = (simpset()) addsimps [nat_into_Ord, div_termination RS ltD,
not_lt_iff_le RS iffD2];
(*Type checking depends upon termination!*)
@@ -386,7 +386,7 @@
by (Asm_simp_tac 2);
(*case n le x*)
by (asm_full_simp_tac
- (!simpset addsimps [not_lt_iff_le, nat_into_Ord, add_assoc,
+ (simpset() addsimps [not_lt_iff_le, nat_into_Ord, add_assoc,
div_termination RS ltD, add_diff_inverse]) 1);
qed "mod_div_equality";
@@ -398,26 +398,26 @@
by (etac complete_induct 1);
by (excluded_middle_tac "succ(x)<n" 1);
(* case succ(x) < n *)
-by (asm_simp_tac (!simpset addsimps [mod_less, nat_le_refl RS lt_trans,
+by (asm_simp_tac (simpset() addsimps [mod_less, nat_le_refl RS lt_trans,
succ_neq_self]) 2);
-by (asm_simp_tac (!simpset addsimps [ltD RS mem_imp_not_eq]) 2);
+by (asm_simp_tac (simpset() addsimps [ltD RS mem_imp_not_eq]) 2);
(* case n le succ(x) *)
by (asm_full_simp_tac
- (!simpset addsimps [not_lt_iff_le, nat_into_Ord, mod_geq]) 1);
+ (simpset() addsimps [not_lt_iff_le, nat_into_Ord, mod_geq]) 1);
by (etac leE 1);
-by (asm_simp_tac (!simpset addsimps [div_termination RS ltD, diff_succ,
+by (asm_simp_tac (simpset() addsimps [div_termination RS ltD, diff_succ,
mod_geq]) 1);
-by (asm_simp_tac (!simpset addsimps [mod_less, diff_self_eq_0]) 1);
+by (asm_simp_tac (simpset() addsimps [mod_less, diff_self_eq_0]) 1);
qed "mod_succ";
goal Arith.thy "!!m n. [| 0<n; m:nat; n:nat |] ==> m mod n < n";
by (etac complete_induct 1);
by (excluded_middle_tac "x<n" 1);
(*case x<n*)
-by (asm_simp_tac (!simpset addsimps [mod_less]) 2);
+by (asm_simp_tac (simpset() addsimps [mod_less]) 2);
(*case n le x*)
by (asm_full_simp_tac
- (!simpset addsimps [not_lt_iff_le, nat_into_Ord,
+ (simpset() addsimps [not_lt_iff_le, nat_into_Ord,
mod_geq, div_termination RS ltD]) 1);
qed "mod_less_divisor";
@@ -425,22 +425,22 @@
goal Arith.thy
"!!k b. [| k: nat; b<2 |] ==> k mod 2 = b | k mod 2 = if(b=1,0,1)";
by (subgoal_tac "k mod 2: 2" 1);
-by (asm_simp_tac (!simpset addsimps [mod_less_divisor RS ltD]) 2);
+by (asm_simp_tac (simpset() addsimps [mod_less_divisor RS ltD]) 2);
by (dtac ltD 1);
-by (asm_simp_tac (!simpset setloop split_tac [expand_if]) 1);
+by (asm_simp_tac (simpset() setloop split_tac [expand_if]) 1);
by (Blast_tac 1);
qed "mod2_cases";
goal Arith.thy "!!m. m:nat ==> succ(succ(m)) mod 2 = m mod 2";
by (subgoal_tac "m mod 2: 2" 1);
-by (asm_simp_tac (!simpset addsimps [mod_less_divisor RS ltD]) 2);
-by (asm_simp_tac (!simpset addsimps [mod_succ] setloop Step_tac) 1);
+by (asm_simp_tac (simpset() addsimps [mod_less_divisor RS ltD]) 2);
+by (asm_simp_tac (simpset() addsimps [mod_succ] setloop Step_tac) 1);
qed "mod2_succ_succ";
goal Arith.thy "!!m. m:nat ==> (m#+m) mod 2 = 0";
by (etac nat_induct 1);
-by (simp_tac (!simpset addsimps [mod_less]) 1);
-by (asm_simp_tac (!simpset addsimps [mod2_succ_succ, add_succ_right]) 1);
+by (simp_tac (simpset() addsimps [mod_less]) 1);
+by (asm_simp_tac (simpset() addsimps [mod2_succ_succ, add_succ_right]) 1);
qed "mod2_add_self";
@@ -463,7 +463,7 @@
by (forward_tac [lt_nat_in_nat] 1);
by (assume_tac 1);
by (etac succ_lt_induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [leI])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [leI])));
qed "add_lt_mono1";
(*strict, in both arguments*)
@@ -509,7 +509,7 @@
goal Arith.thy "!!i j k. [| i le j; j:nat; k:nat |] ==> i#*k le j#*k";
by (forward_tac [lt_nat_in_nat] 1);
by (nat_ind_tac "k" [] 2);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [add_le_mono])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [add_le_mono])));
qed "mult_le_mono1";
(* le monotonicity, BOTH arguments*)
@@ -529,15 +529,15 @@
by (forward_tac [lt_nat_in_nat] 2);
by (ALLGOALS Asm_simp_tac);
by (nat_ind_tac "x" [] 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [add_lt_mono])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [add_lt_mono])));
qed "mult_lt_mono2";
goal Arith.thy "!!k. [| m: nat; n: nat |] ==> 0 < m#*n <-> 0<m & 0<n";
-by (best_tac (!claset addEs [natE] addss (!simpset)) 1);
+by (best_tac (claset() addEs [natE] addss (simpset())) 1);
qed "zero_lt_mult_iff";
goal Arith.thy "!!k. [| m: nat; n: nat |] ==> m#*n = 1 <-> m=1 & n=1";
-by (best_tac (!claset addEs [natE] addss (!simpset)) 1);
+by (best_tac (claset() addEs [natE] addss (simpset())) 1);
qed "mult_eq_1_iff";
(*Cancellation law for division*)
@@ -545,10 +545,10 @@
"!!k. [| 0<n; 0<k; k:nat; m:nat; n:nat |] ==> (k#*m) div (k#*n) = m div n";
by (eres_inst_tac [("i","m")] complete_induct 1);
by (excluded_middle_tac "x<n" 1);
-by (asm_simp_tac (!simpset addsimps [div_less, zero_lt_mult_iff,
+by (asm_simp_tac (simpset() addsimps [div_less, zero_lt_mult_iff,
mult_lt_mono2]) 2);
by (asm_full_simp_tac
- (!simpset addsimps [not_lt_iff_le, nat_into_Ord,
+ (simpset() addsimps [not_lt_iff_le, nat_into_Ord,
zero_lt_mult_iff, le_refl RS mult_le_mono, div_geq,
diff_mult_distrib2 RS sym,
div_termination RS ltD]) 1);
@@ -559,10 +559,10 @@
\ (k#*m) mod (k#*n) = k #* (m mod n)";
by (eres_inst_tac [("i","m")] complete_induct 1);
by (excluded_middle_tac "x<n" 1);
-by (asm_simp_tac (!simpset addsimps [mod_less, zero_lt_mult_iff,
+by (asm_simp_tac (simpset() addsimps [mod_less, zero_lt_mult_iff,
mult_lt_mono2]) 2);
by (asm_full_simp_tac
- (!simpset addsimps [not_lt_iff_le, nat_into_Ord,
+ (simpset() addsimps [not_lt_iff_le, nat_into_Ord,
zero_lt_mult_iff, le_refl RS mult_le_mono, mod_geq,
diff_mult_distrib2 RS sym,
div_termination RS ltD]) 1);
@@ -576,9 +576,9 @@
by (rtac disjCI 1);
by (dtac sym 1);
by (rtac Ord_linear_lt 1 THEN REPEAT_SOME (ares_tac [nat_into_Ord,nat_1I]));
-by (fast_tac (!claset addss (!simpset)) 1);
+by (fast_tac (claset() addss (simpset())) 1);
by (fast_tac (le_cs addDs [mono_lemma]
- addss (!simpset addsimps [mult_1_right])) 1);
+ addss (simpset() addsimps [mult_1_right])) 1);
qed "mult_eq_self_implies_10";
@@ -589,11 +589,11 @@
by (eres_inst_tac [("n","n")] nat_induct 1);
by (Asm_simp_tac 1);
by Safe_tac;
-by (asm_full_simp_tac (!simpset addsimps [not_le_iff_lt,nat_into_Ord]) 1);
+by (asm_full_simp_tac (simpset() addsimps [not_le_iff_lt,nat_into_Ord]) 1);
by (etac lt_asym 1);
by (assume_tac 1);
by (Asm_full_simp_tac 1);
-by (asm_full_simp_tac (!simpset addsimps [le_iff, nat_into_Ord]) 1);
+by (asm_full_simp_tac (simpset() addsimps [le_iff, nat_into_Ord]) 1);
by (Blast_tac 1);
qed "add_le_elim1";
--- a/src/ZF/Bool.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Bool.ML Mon Nov 03 12:24:13 1997 +0100
@@ -51,7 +51,7 @@
Addsimps [cond_1, cond_0];
-fun bool_tac i = fast_tac (!claset addSEs [boolE] addss (!simpset)) i;
+fun bool_tac i = fast_tac (claset() addSEs [boolE] addss (simpset())) i;
goal Bool.thy
--- a/src/ZF/Cardinal.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Cardinal.ML Mon Nov 03 12:24:13 1997 +0100
@@ -25,7 +25,7 @@
\ X - lfp(X, %W. X - g``(Y - f``W)) ";
by (res_inst_tac [("P", "%u. ?v = X-u")]
(decomp_bnd_mono RS lfp_Tarski RS ssubst) 1);
-by (simp_tac (!simpset addsimps [subset_refl, double_complement,
+by (simp_tac (simpset() addsimps [subset_refl, double_complement,
gfun RS fun_is_rel RS image_subset]) 1);
qed "Banach_last_equation";
@@ -45,7 +45,7 @@
"[| f: inj(X,Y); g: inj(Y,X) |] ==> EX h. h: bij(X,Y)";
by (cut_facts_tac prems 1);
by (cut_facts_tac [(prems RL [inj_is_fun]) MRS decomposition] 1);
-by (blast_tac (!claset addSIs [restrict_bij,bij_disjoint_Un]
+by (blast_tac (claset() addSIs [restrict_bij,bij_disjoint_Un]
addIs [bij_converse_bij]) 1);
(* The instantiation of exI to "restrict(f,XA) Un converse(restrict(g,YB))"
is forced by the context!! *)
@@ -62,12 +62,12 @@
bind_thm ("eqpoll_refl", id_bij RS bij_imp_eqpoll);
goalw Cardinal.thy [eqpoll_def] "!!X Y. X eqpoll Y ==> Y eqpoll X";
-by (blast_tac (!claset addIs [bij_converse_bij]) 1);
+by (blast_tac (claset() addIs [bij_converse_bij]) 1);
qed "eqpoll_sym";
goalw Cardinal.thy [eqpoll_def]
"!!X Y. [| X eqpoll Y; Y eqpoll Z |] ==> X eqpoll Z";
-by (blast_tac (!claset addIs [comp_bij]) 1);
+by (blast_tac (claset() addIs [comp_bij]) 1);
qed "eqpoll_trans";
(** Le-pollence is a partial ordering **)
@@ -88,7 +88,7 @@
goalw Cardinal.thy [lepoll_def]
"!!X Y. [| X lepoll Y; Y lepoll Z |] ==> X lepoll Z";
-by (blast_tac (!claset addIs [comp_inj]) 1);
+by (blast_tac (claset() addIs [comp_inj]) 1);
qed "lepoll_trans";
(*Asymmetry law*)
@@ -106,36 +106,36 @@
qed "eqpollE";
goal Cardinal.thy "X eqpoll Y <-> X lepoll Y & Y lepoll X";
-by (blast_tac (!claset addIs [eqpollI] addSEs [eqpollE]) 1);
+by (blast_tac (claset() addIs [eqpollI] addSEs [eqpollE]) 1);
qed "eqpoll_iff";
goalw Cardinal.thy [lepoll_def, inj_def] "!!A. A lepoll 0 ==> A = 0";
-by (blast_tac (!claset addDs [apply_type]) 1);
+by (blast_tac (claset() addDs [apply_type]) 1);
qed "lepoll_0_is_0";
(*0 lepoll Y*)
bind_thm ("empty_lepollI", empty_subsetI RS subset_imp_lepoll);
goal Cardinal.thy "A lepoll 0 <-> A=0";
-by (blast_tac (!claset addIs [lepoll_0_is_0, lepoll_refl]) 1);
+by (blast_tac (claset() addIs [lepoll_0_is_0, lepoll_refl]) 1);
qed "lepoll_0_iff";
goalw Cardinal.thy [lepoll_def]
"!!A. [| A lepoll B; C lepoll D; B Int D = 0 |] ==> A Un C lepoll B Un D";
-by (blast_tac (!claset addIs [inj_disjoint_Un]) 1);
+by (blast_tac (claset() addIs [inj_disjoint_Un]) 1);
qed "Un_lepoll_Un";
(*A eqpoll 0 ==> A=0*)
bind_thm ("eqpoll_0_is_0", eqpoll_imp_lepoll RS lepoll_0_is_0);
goal Cardinal.thy "A eqpoll 0 <-> A=0";
-by (blast_tac (!claset addIs [eqpoll_0_is_0, eqpoll_refl]) 1);
+by (blast_tac (claset() addIs [eqpoll_0_is_0, eqpoll_refl]) 1);
qed "eqpoll_0_iff";
goalw Cardinal.thy [eqpoll_def]
"!!A. [| A eqpoll B; C eqpoll D; A Int C = 0; B Int D = 0 |] ==> \
\ A Un C eqpoll B Un D";
-by (blast_tac (!claset addIs [bij_disjoint_Un]) 1);
+by (blast_tac (claset() addIs [bij_disjoint_Un]) 1);
qed "eqpoll_disjoint_Un";
@@ -147,40 +147,40 @@
goalw Cardinal.thy [lepoll_def]
"!!A. [| A lepoll B; well_ord(B,r) |] ==> EX s. well_ord(A,s)";
-by (blast_tac (!claset addIs [well_ord_rvimage]) 1);
+by (blast_tac (claset() addIs [well_ord_rvimage]) 1);
qed "lepoll_well_ord";
goalw Cardinal.thy [lesspoll_def] "A lepoll B <-> A lesspoll B | A eqpoll B";
-by (blast_tac (!claset addSIs [eqpollI] addSEs [eqpollE]) 1);
+by (blast_tac (claset() addSIs [eqpollI] addSEs [eqpollE]) 1);
qed "lepoll_iff_leqpoll";
goalw Cardinal.thy [inj_def, surj_def]
"!!f. [| f : inj(A, succ(m)); f ~: surj(A, succ(m)) |] ==> EX f. f:inj(A,m)";
-by (safe_tac (claset_of"ZF"));
+by (safe_tac (claset_of ZF.thy));
by (swap_res_tac [exI] 1);
by (res_inst_tac [("a", "lam z:A. if(f`z=m, y, f`z)")] CollectI 1);
-by (best_tac (!claset addSIs [if_type RS lam_type]
+by (best_tac (claset() addSIs [if_type RS lam_type]
addEs [apply_funtype RS succE]) 1);
(*Proving it's injective*)
-by (asm_simp_tac (!simpset setloop split_tac [expand_if]) 1);
-by (blast_tac (!claset delrules [equalityI]) 1);
+by (asm_simp_tac (simpset() setloop split_tac [expand_if]) 1);
+by (blast_tac (claset() delrules [equalityI]) 1);
qed "inj_not_surj_succ";
(** Variations on transitivity **)
goalw Cardinal.thy [lesspoll_def]
"!!X. [| X lesspoll Y; Y lesspoll Z |] ==> X lesspoll Z";
-by (blast_tac (!claset addSEs [eqpollE] addIs [eqpollI, lepoll_trans]) 1);
+by (blast_tac (claset() addSEs [eqpollE] addIs [eqpollI, lepoll_trans]) 1);
qed "lesspoll_trans";
goalw Cardinal.thy [lesspoll_def]
"!!X. [| X lesspoll Y; Y lepoll Z |] ==> X lesspoll Z";
-by (blast_tac (!claset addSEs [eqpollE] addIs [eqpollI, lepoll_trans]) 1);
+by (blast_tac (claset() addSEs [eqpollE] addIs [eqpollI, lepoll_trans]) 1);
qed "lesspoll_lepoll_lesspoll";
goalw Cardinal.thy [lesspoll_def]
"!!X. [| X lesspoll Y; Z lepoll X |] ==> Z lesspoll Y";
-by (blast_tac (!claset addSEs [eqpollE] addIs [eqpollI, lepoll_trans]) 1);
+by (blast_tac (claset() addSEs [eqpollE] addIs [eqpollI, lepoll_trans]) 1);
qed "lepoll_lesspoll_lesspoll";
@@ -189,10 +189,10 @@
val [premP,premOrd,premNot] = goalw Cardinal.thy [Least_def]
"[| P(i); Ord(i); !!x. x<i ==> ~P(x) |] ==> (LEAST x. P(x)) = i";
by (rtac the_equality 1);
-by (blast_tac (!claset addSIs [premP,premOrd,premNot]) 1);
+by (blast_tac (claset() addSIs [premP,premOrd,premNot]) 1);
by (REPEAT (etac conjE 1));
by (etac (premOrd RS Ord_linear_lt) 1);
-by (ALLGOALS (blast_tac (!claset addSIs [premP] addSDs [premNot])));
+by (ALLGOALS (blast_tac (claset() addSIs [premP] addSDs [premNot])));
qed "Least_equality";
goal Cardinal.thy "!!i. [| P(i); Ord(i) |] ==> P(LEAST x. P(x))";
@@ -202,7 +202,7 @@
by (rtac classical 1);
by (EVERY1 [stac Least_equality, assume_tac, assume_tac]);
by (assume_tac 2);
-by (blast_tac (!claset addSEs [ltE]) 1);
+by (blast_tac (claset() addSEs [ltE]) 1);
qed "LeastI";
(*Proof is almost identical to the one above!*)
@@ -213,7 +213,7 @@
by (rtac classical 1);
by (EVERY1 [stac Least_equality, assume_tac, assume_tac]);
by (etac le_refl 2);
-by (blast_tac (!claset addEs [ltE] addIs [leI, ltI, lt_trans1]) 1);
+by (blast_tac (claset() addEs [ltE] addIs [leI, ltI, lt_trans1]) 1);
qed "Least_le";
(*LEAST really is the smallest*)
@@ -239,7 +239,7 @@
goal Cardinal.thy "Ord(LEAST x. P(x))";
by (excluded_middle_tac "EX i. Ord(i) & P(i)" 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac (Least_le RS ltE) 2);
by (REPEAT_SOME assume_tac);
by (etac (Least_0 RS ssubst) 1);
@@ -252,14 +252,14 @@
(*Not needed for simplification, but helpful below*)
val prems = goal Cardinal.thy
"[| !!y. P(y) <-> Q(y) |] ==> (LEAST x. P(x)) = (LEAST x. Q(x))";
-by (simp_tac (!simpset addsimps prems) 1);
+by (simp_tac (simpset() addsimps prems) 1);
qed "Least_cong";
(*Need AC to get X lepoll Y ==> |X| le |Y|; see well_ord_lepoll_imp_Card_le
Converse also requires AC, but see well_ord_cardinal_eqE*)
goalw Cardinal.thy [eqpoll_def,cardinal_def] "!!X Y. X eqpoll Y ==> |X| = |Y|";
by (rtac Least_cong 1);
-by (blast_tac (!claset addIs [comp_bij, bij_converse_bij]) 1);
+by (blast_tac (claset() addIs [comp_bij, bij_converse_bij]) 1);
qed "cardinal_cong";
(*Under AC, the premise becomes trivial; one consequence is ||A|| = |A|*)
@@ -277,12 +277,12 @@
"!!X Y. [| well_ord(X,r); well_ord(Y,s); |X| = |Y| |] ==> X eqpoll Y";
by (rtac (eqpoll_sym RS eqpoll_trans) 1);
by (etac well_ord_cardinal_eqpoll 1);
-by (asm_simp_tac (!simpset addsimps [well_ord_cardinal_eqpoll]) 1);
+by (asm_simp_tac (simpset() addsimps [well_ord_cardinal_eqpoll]) 1);
qed "well_ord_cardinal_eqE";
goal Cardinal.thy
"!!X Y. [| well_ord(X,r); well_ord(Y,s) |] ==> |X| = |Y| <-> X eqpoll Y";
-by (blast_tac (!claset addIs [cardinal_cong, well_ord_cardinal_eqE]) 1);
+by (blast_tac (claset() addIs [cardinal_cong, well_ord_cardinal_eqE]) 1);
qed "well_ord_cardinal_eqpoll_iff";
@@ -309,7 +309,7 @@
qed "Card_is_Ord";
goal Cardinal.thy "!!K. Card(K) ==> K le |K|";
-by (asm_simp_tac (!simpset addsimps [le_refl, Card_is_Ord, Card_cardinal_eq]) 1);
+by (asm_simp_tac (simpset() addsimps [le_refl, Card_is_Ord, Card_cardinal_eq]) 1);
qed "Card_cardinal_le";
goalw Cardinal.thy [cardinal_def] "Ord(|A|)";
@@ -318,7 +318,7 @@
(*The cardinals are the initial ordinals*)
goal Cardinal.thy "Card(K) <-> Ord(K) & (ALL j. j<K --> ~ j eqpoll K)";
-by (safe_tac (!claset addSIs [CardI, Card_is_Ord]));
+by (safe_tac (claset() addSIs [CardI, Card_is_Ord]));
by (Blast_tac 2);
by (rewrite_goals_tac [Card_def, cardinal_def]);
by (rtac less_LeastE 1);
@@ -328,21 +328,21 @@
goalw Cardinal.thy [lesspoll_def] "!!a. [| Card(a); i<a |] ==> i lesspoll a";
by (dresolve_tac [Card_iff_initial RS iffD1] 1);
-by (blast_tac (!claset addSIs [leI RS le_imp_lepoll]) 1);
+by (blast_tac (claset() addSIs [leI RS le_imp_lepoll]) 1);
qed "lt_Card_imp_lesspoll";
goal Cardinal.thy "Card(0)";
by (rtac (Ord_0 RS CardI) 1);
-by (blast_tac (!claset addSEs [ltE]) 1);
+by (blast_tac (claset() addSEs [ltE]) 1);
qed "Card_0";
val [premK,premL] = goal Cardinal.thy
"[| Card(K); Card(L) |] ==> Card(K Un L)";
by (rtac ([premK RS Card_is_Ord, premL RS Card_is_Ord] MRS Ord_linear_le) 1);
by (asm_simp_tac
- (!simpset addsimps [premL, le_imp_subset, subset_Un_iff RS iffD1]) 1);
+ (simpset() addsimps [premL, le_imp_subset, subset_Un_iff RS iffD1]) 1);
by (asm_simp_tac
- (!simpset addsimps [premK, le_imp_subset, subset_Un_iff2 RS iffD1]) 1);
+ (simpset() addsimps [premK, le_imp_subset, subset_Un_iff2 RS iffD1]) 1);
qed "Card_Un";
(*Infinite unions of cardinals? See Devlin, Lemma 6.7, page 98*)
@@ -351,7 +351,7 @@
by (excluded_middle_tac "EX i. Ord(i) & i eqpoll A" 1);
by (etac (Least_0 RS ssubst) 1 THEN rtac Card_0 1);
by (rtac (Ord_Least RS CardI) 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac less_LeastE 1);
by (assume_tac 2);
by (etac eqpoll_trans 1);
@@ -388,16 +388,16 @@
qed "cardinal_lt_imp_lt";
goal Cardinal.thy "!!i j. [| |i| < K; Ord(i); Card(K) |] ==> i < K";
-by (asm_simp_tac (!simpset addsimps
+by (asm_simp_tac (simpset() addsimps
[cardinal_lt_imp_lt, Card_is_Ord, Card_cardinal_eq]) 1);
qed "Card_lt_imp_lt";
goal Cardinal.thy "!!i j. [| Ord(i); Card(K) |] ==> (|i| < K) <-> (i < K)";
-by (blast_tac (!claset addIs [Card_lt_imp_lt, Ord_cardinal_le RS lt_trans1]) 1);
+by (blast_tac (claset() addIs [Card_lt_imp_lt, Ord_cardinal_le RS lt_trans1]) 1);
qed "Card_lt_iff";
goal Cardinal.thy "!!i j. [| Ord(i); Card(K) |] ==> (K le |i|) <-> (K le i)";
-by (asm_simp_tac (!simpset addsimps
+by (asm_simp_tac (simpset() addsimps
[Card_lt_iff, Card_is_Ord, Ord_cardinal,
not_lt_iff_le RS iff_sym]) 1);
qed "Card_le_iff";
@@ -433,22 +433,22 @@
goalw Cardinal.thy [lepoll_def, inj_def]
"!!A B. [| cons(u,A) lepoll cons(v,B); u~:A; v~:B |] ==> A lepoll B";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (res_inst_tac [("x", "lam x:A. if(f`x=v, f`u, f`x)")] exI 1);
by (rtac CollectI 1);
(*Proving it's in the function space A->B*)
by (rtac (if_type RS lam_type) 1);
-by (blast_tac (!claset addEs [apply_funtype RS consE]) 1);
-by (blast_tac (!claset addSEs [mem_irrefl] addEs [apply_funtype RS consE]) 1);
+by (blast_tac (claset() addEs [apply_funtype RS consE]) 1);
+by (blast_tac (claset() addSEs [mem_irrefl] addEs [apply_funtype RS consE]) 1);
(*Proving it's injective*)
-by (asm_simp_tac (!simpset setloop split_tac [expand_if]) 1);
+by (asm_simp_tac (simpset() setloop split_tac [expand_if]) 1);
by (Blast_tac 1);
qed "cons_lepoll_consD";
goal Cardinal.thy
"!!A B. [| cons(u,A) eqpoll cons(v,B); u~:A; v~:B |] ==> A eqpoll B";
-by (asm_full_simp_tac (!simpset addsimps [eqpoll_iff]) 1);
-by (blast_tac (!claset addIs [cons_lepoll_consD]) 1);
+by (asm_full_simp_tac (simpset() addsimps [eqpoll_iff]) 1);
+by (blast_tac (claset() addIs [cons_lepoll_consD]) 1);
qed "cons_eqpoll_consD";
(*Lemma suggested by Mike Fourman*)
@@ -460,12 +460,12 @@
val [prem] = goal Cardinal.thy
"m:nat ==> ALL n: nat. m lepoll n --> m le n";
by (nat_ind_tac "m" [prem] 1);
-by (blast_tac (!claset addSIs [nat_0_le]) 1);
+by (blast_tac (claset() addSIs [nat_0_le]) 1);
by (rtac ballI 1);
by (eres_inst_tac [("n","n")] natE 1);
-by (asm_simp_tac (!simpset addsimps [lepoll_def, inj_def,
+by (asm_simp_tac (simpset() addsimps [lepoll_def, inj_def,
succI1 RS Pi_empty2]) 1);
-by (blast_tac (!claset addSIs [succ_leI] addSDs [succ_lepoll_succD]) 1);
+by (blast_tac (claset() addSIs [succ_leI] addSDs [succ_lepoll_succD]) 1);
qed "nat_lepoll_imp_le_lemma";
bind_thm ("nat_lepoll_imp_le", nat_lepoll_imp_le_lemma RS bspec RS mp);
@@ -473,8 +473,8 @@
goal Cardinal.thy
"!!m n. [| m:nat; n: nat |] ==> m eqpoll n <-> m = n";
by (rtac iffI 1);
-by (asm_simp_tac (!simpset addsimps [eqpoll_refl]) 2);
-by (blast_tac (!claset addIs [nat_lepoll_imp_le, le_anti_sym]
+by (asm_simp_tac (simpset() addsimps [eqpoll_refl]) 2);
+by (blast_tac (claset() addIs [nat_lepoll_imp_le, le_anti_sym]
addSEs [eqpollE]) 1);
qed "nat_eqpoll_iff";
@@ -483,8 +483,8 @@
"!!n. n: nat ==> Card(n)";
by (stac Least_equality 1);
by (REPEAT_FIRST (ares_tac [eqpoll_refl, nat_into_Ord, refl]));
-by (asm_simp_tac (!simpset addsimps [lt_nat_in_nat RS nat_eqpoll_iff]) 1);
-by (blast_tac (!claset addSEs [lt_irrefl]) 1);
+by (asm_simp_tac (simpset() addsimps [lt_nat_in_nat RS nat_eqpoll_iff]) 1);
+by (blast_tac (claset() addSEs [lt_irrefl]) 1);
qed "nat_into_Card";
(*Part of Kunen's Lemma 10.6*)
@@ -499,7 +499,7 @@
goalw Cardinal.thy [lesspoll_def]
"!!m. [| A lepoll m; m:nat |] ==> A lesspoll succ(m)";
by (rtac conjI 1);
-by (blast_tac (!claset addIs [subset_imp_lepoll RSN (2,lepoll_trans)]) 1);
+by (blast_tac (claset() addIs [subset_imp_lepoll RSN (2,lepoll_trans)]) 1);
by (rtac notI 1);
by (dresolve_tac [eqpoll_sym RS eqpoll_imp_lepoll] 1);
by (dtac lepoll_trans 1 THEN assume_tac 1);
@@ -509,11 +509,11 @@
goalw Cardinal.thy [lesspoll_def, lepoll_def, eqpoll_def, bij_def]
"!!m. [| A lesspoll succ(m); m:nat |] ==> A lepoll m";
by (Clarify_tac 1);
-by (blast_tac (!claset addSIs [inj_not_surj_succ]) 1);
+by (blast_tac (claset() addSIs [inj_not_surj_succ]) 1);
qed "lesspoll_succ_imp_lepoll";
goal Cardinal.thy "!!m. m:nat ==> A lesspoll succ(m) <-> A lepoll m";
-by (blast_tac (!claset addSIs [lepoll_imp_lesspoll_succ,
+by (blast_tac (claset() addSIs [lepoll_imp_lesspoll_succ,
lesspoll_succ_imp_lepoll]) 1);
qed "lesspoll_succ_iff";
@@ -522,7 +522,7 @@
by (rtac disjCI 1);
by (rtac lesspoll_succ_imp_lepoll 1);
by (assume_tac 2);
-by (asm_simp_tac (!simpset addsimps [lesspoll_def]) 1);
+by (asm_simp_tac (simpset() addsimps [lesspoll_def]) 1);
qed "lepoll_succ_disj";
@@ -539,7 +539,7 @@
goal Cardinal.thy "!!i n. [| Ord(i); n:nat |] ==> i eqpoll n <-> i=n";
by (rtac iffI 1);
-by (asm_simp_tac (!simpset addsimps [eqpoll_refl]) 2);
+by (asm_simp_tac (simpset() addsimps [eqpoll_refl]) 2);
by (rtac Ord_linear_lt 1);
by (REPEAT_SOME (eresolve_tac [asm_rl, nat_into_Ord]));
by (etac (lt_nat_in_nat RS nat_eqpoll_iff RS iffD1) 1 THEN
@@ -552,7 +552,7 @@
by (stac Least_equality 1);
by (REPEAT_FIRST (ares_tac [eqpoll_refl, Ord_nat, refl]));
by (etac ltE 1);
-by (asm_simp_tac (!simpset addsimps [eqpoll_iff, lt_not_lepoll, ltI]) 1);
+by (asm_simp_tac (simpset() addsimps [eqpoll_iff, lt_not_lepoll, ltI]) 1);
qed "Card_nat";
(*Allows showing that |i| is a limit cardinal*)
@@ -568,40 +568,40 @@
(*Congruence law for cons under equipollence*)
goalw Cardinal.thy [lepoll_def]
"!!A B. [| A lepoll B; b ~: B |] ==> cons(a,A) lepoll cons(b,B)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (res_inst_tac [("x", "lam y: cons(a,A).if(y=a, b, f`y)")] exI 1);
by (res_inst_tac [("d","%z. if(z:B, converse(f)`z, a)")]
lam_injective 1);
-by (asm_simp_tac (!simpset addsimps [inj_is_fun RS apply_type, cons_iff]
+by (asm_simp_tac (simpset() addsimps [inj_is_fun RS apply_type, cons_iff]
setloop etac consE') 1);
-by (asm_simp_tac (!simpset addsimps [inj_is_fun RS apply_type, left_inverse]
+by (asm_simp_tac (simpset() addsimps [inj_is_fun RS apply_type, left_inverse]
setloop etac consE') 1);
qed "cons_lepoll_cong";
goal Cardinal.thy
"!!A B. [| A eqpoll B; a ~: A; b ~: B |] ==> cons(a,A) eqpoll cons(b,B)";
-by (asm_full_simp_tac (!simpset addsimps [eqpoll_iff, cons_lepoll_cong]) 1);
+by (asm_full_simp_tac (simpset() addsimps [eqpoll_iff, cons_lepoll_cong]) 1);
qed "cons_eqpoll_cong";
goal Cardinal.thy
"!!A B. [| a ~: A; b ~: B |] ==> \
\ cons(a,A) lepoll cons(b,B) <-> A lepoll B";
-by (blast_tac (!claset addIs [cons_lepoll_cong, cons_lepoll_consD]) 1);
+by (blast_tac (claset() addIs [cons_lepoll_cong, cons_lepoll_consD]) 1);
qed "cons_lepoll_cons_iff";
goal Cardinal.thy
"!!A B. [| a ~: A; b ~: B |] ==> \
\ cons(a,A) eqpoll cons(b,B) <-> A eqpoll B";
-by (blast_tac (!claset addIs [cons_eqpoll_cong, cons_eqpoll_consD]) 1);
+by (blast_tac (claset() addIs [cons_eqpoll_cong, cons_eqpoll_consD]) 1);
qed "cons_eqpoll_cons_iff";
goalw Cardinal.thy [succ_def] "{a} eqpoll 1";
-by (blast_tac (!claset addSIs [eqpoll_refl RS cons_eqpoll_cong]) 1);
+by (blast_tac (claset() addSIs [eqpoll_refl RS cons_eqpoll_cong]) 1);
qed "singleton_eqpoll_1";
goal Cardinal.thy "|{a}| = 1";
by (resolve_tac [singleton_eqpoll_1 RS cardinal_cong RS trans] 1);
-by (simp_tac (!simpset addsimps [nat_into_Card RS Card_cardinal_eq]) 1);
+by (simp_tac (simpset() addsimps [nat_into_Card RS Card_cardinal_eq]) 1);
qed "cardinal_singleton";
(*Congruence law for succ under equipollence*)
@@ -613,13 +613,13 @@
(*Congruence law for + under equipollence*)
goalw Cardinal.thy [eqpoll_def]
"!!A B C D. [| A eqpoll C; B eqpoll D |] ==> A+B eqpoll C+D";
-by (blast_tac (!claset addSIs [sum_bij]) 1);
+by (blast_tac (claset() addSIs [sum_bij]) 1);
qed "sum_eqpoll_cong";
(*Congruence law for * under equipollence*)
goalw Cardinal.thy [eqpoll_def]
"!!A B C D. [| A eqpoll C; B eqpoll D |] ==> A*B eqpoll C*D";
-by (blast_tac (!claset addSIs [prod_bij]) 1);
+by (blast_tac (claset() addSIs [prod_bij]) 1);
qed "prod_eqpoll_cong";
goalw Cardinal.thy [eqpoll_def]
@@ -628,16 +628,16 @@
by (res_inst_tac [("c", "%x. if(x:A, f`x, x)"),
("d", "%y. if(y: range(f), converse(f)`y, y)")]
lam_bijective 1);
-by (blast_tac (!claset addSIs [if_type, inj_is_fun RS apply_type]) 1);
+by (blast_tac (claset() addSIs [if_type, inj_is_fun RS apply_type]) 1);
by (asm_simp_tac
- (!simpset addsimps [inj_converse_fun RS apply_funtype]
+ (simpset() addsimps [inj_converse_fun RS apply_funtype]
setloop split_tac [expand_if]) 1);
-by (asm_simp_tac (!simpset addsimps [inj_is_fun RS apply_rangeI, left_inverse]
+by (asm_simp_tac (simpset() addsimps [inj_is_fun RS apply_rangeI, left_inverse]
setloop etac UnE') 1);
by (asm_simp_tac
- (!simpset addsimps [inj_converse_fun RS apply_funtype, right_inverse]
+ (simpset() addsimps [inj_converse_fun RS apply_funtype, right_inverse]
setloop split_tac [expand_if]) 1);
-by (blast_tac (!claset addEs [equals0D]) 1);
+by (blast_tac (claset() addEs [equals0D]) 1);
qed "inj_disjoint_eqpoll";
@@ -650,7 +650,7 @@
by (rtac cons_lepoll_consD 1);
by (rtac mem_not_refl 3);
by (eresolve_tac [cons_Diff RS ssubst] 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
qed "Diff_sing_lepoll";
(*If A has at least n+1 elements then A-{a} has at least n.*)
@@ -659,11 +659,11 @@
by (rtac cons_lepoll_consD 1);
by (rtac mem_not_refl 2);
by (Blast_tac 2);
-by (blast_tac (!claset addIs [subset_imp_lepoll RSN (2, lepoll_trans)]) 1);
+by (blast_tac (claset() addIs [subset_imp_lepoll RSN (2, lepoll_trans)]) 1);
qed "lepoll_Diff_sing";
goal Cardinal.thy "!!A a n. [| a:A; A eqpoll succ(n) |] ==> A - {a} eqpoll n";
-by (blast_tac (!claset addSIs [eqpollI] addSEs [eqpollE]
+by (blast_tac (claset() addSIs [eqpollI] addSEs [eqpollE]
addIs [Diff_sing_lepoll,lepoll_Diff_sing]) 1);
qed "Diff_sing_eqpoll";
@@ -671,15 +671,15 @@
by (forward_tac [Diff_sing_lepoll] 1);
by (assume_tac 1);
by (dtac lepoll_0_is_0 1);
-by (blast_tac (!claset addEs [equalityE]) 1);
+by (blast_tac (claset() addEs [equalityE]) 1);
qed "lepoll_1_is_sing";
goalw Cardinal.thy [lepoll_def] "A Un B lepoll A+B";
by (res_inst_tac [("x","lam x: A Un B. if (x:A,Inl(x),Inr(x))")] exI 1);
by (res_inst_tac [("d","%z. snd(z)")] lam_injective 1);
by (split_tac [expand_if] 1);
-by (blast_tac (!claset addSIs [InlI, InrI]) 1);
-by (asm_full_simp_tac (!simpset addsimps [Inl_def, Inr_def]
+by (blast_tac (claset() addSIs [InlI, InrI]) 1);
+by (asm_full_simp_tac (simpset() addsimps [Inl_def, Inr_def]
setloop split_tac [expand_if]) 1);
qed "Un_lepoll_sum";
@@ -687,21 +687,21 @@
(*** Finite and infinite sets ***)
goalw Cardinal.thy [Finite_def] "Finite(0)";
-by (blast_tac (!claset addSIs [eqpoll_refl, nat_0I]) 1);
+by (blast_tac (claset() addSIs [eqpoll_refl, nat_0I]) 1);
qed "Finite_0";
goalw Cardinal.thy [Finite_def]
"!!A. [| A lepoll n; n:nat |] ==> Finite(A)";
by (etac rev_mp 1);
by (etac nat_induct 1);
-by (blast_tac (!claset addSDs [lepoll_0_is_0] addSIs [eqpoll_refl,nat_0I]) 1);
-by (blast_tac (!claset addSDs [lepoll_succ_disj] addSIs [nat_succI]) 1);
+by (blast_tac (claset() addSDs [lepoll_0_is_0] addSIs [eqpoll_refl,nat_0I]) 1);
+by (blast_tac (claset() addSDs [lepoll_succ_disj] addSIs [nat_succI]) 1);
qed "lepoll_nat_imp_Finite";
goalw Cardinal.thy [Finite_def]
"!!X. [| Y lepoll X; Finite(X) |] ==> Finite(Y)";
by (blast_tac
- (!claset addSEs [eqpollE]
+ (claset() addSEs [eqpollE]
addIs [lepoll_trans RS
rewrite_rule [Finite_def] lepoll_nat_imp_Finite]) 1);
qed "lepoll_Finite";
@@ -712,12 +712,12 @@
goalw Cardinal.thy [Finite_def] "!!x. Finite(x) ==> Finite(cons(y,x))";
by (excluded_middle_tac "y:x" 1);
-by (asm_simp_tac (!simpset addsimps [cons_absorb]) 2);
+by (asm_simp_tac (simpset() addsimps [cons_absorb]) 2);
by (etac bexE 1);
by (rtac bexI 1);
by (etac nat_succI 2);
by (asm_simp_tac
- (!simpset addsimps [succ_def, cons_eqpoll_cong, mem_not_refl]) 1);
+ (simpset() addsimps [succ_def, cons_eqpoll_cong, mem_not_refl]) 1);
qed "Finite_cons";
goalw Cardinal.thy [succ_def] "!!x. Finite(x) ==> Finite(succ(x))";
@@ -728,12 +728,12 @@
"!!i. [| Ord(i); ~ Finite(i) |] ==> nat le i";
by (eresolve_tac [Ord_nat RSN (2,Ord_linear2)] 1);
by (assume_tac 2);
-by (blast_tac (!claset addSIs [eqpoll_refl] addSEs [ltE]) 1);
+by (blast_tac (claset() addSIs [eqpoll_refl] addSEs [ltE]) 1);
qed "nat_le_infinite_Ord";
goalw Cardinal.thy [Finite_def, eqpoll_def]
"!!A. Finite(A) ==> EX r. well_ord(A,r)";
-by (blast_tac (!claset addIs [well_ord_rvimage, bij_is_inj, well_ord_Memrel,
+by (blast_tac (claset() addIs [well_ord_rvimage, bij_is_inj, well_ord_Memrel,
nat_into_Ord]) 1);
qed "Finite_imp_well_ord";
@@ -743,20 +743,20 @@
goal Nat.thy "!!n. n:nat ==> wf[n](converse(Memrel(n)))";
by (etac nat_induct 1);
-by (blast_tac (!claset addIs [wf_onI]) 1);
+by (blast_tac (claset() addIs [wf_onI]) 1);
by (rtac wf_onI 1);
-by (asm_full_simp_tac (!simpset addsimps [wf_on_def, wf_def, Memrel_iff]) 1);
+by (asm_full_simp_tac (simpset() addsimps [wf_on_def, wf_def, Memrel_iff]) 1);
by (excluded_middle_tac "x:Z" 1);
by (dres_inst_tac [("x", "x")] bspec 2 THEN assume_tac 2);
-by (blast_tac (!claset addEs [mem_irrefl, mem_asym]) 2);
+by (blast_tac (claset() addEs [mem_irrefl, mem_asym]) 2);
by (dres_inst_tac [("x", "Z")] spec 1);
-by (Blast.depth_tac (!claset) 4 1);
+by (Blast.depth_tac (claset()) 4 1);
qed "nat_wf_on_converse_Memrel";
goal Cardinal.thy "!!n. n:nat ==> well_ord(n,converse(Memrel(n)))";
by (forward_tac [transfer thy Ord_nat RS Ord_in_Ord RS well_ord_Memrel] 1);
by (rewtac well_ord_def);
-by (blast_tac (!claset addSIs [tot_ord_converse,
+by (blast_tac (claset() addSIs [tot_ord_converse,
nat_wf_on_converse_Memrel]) 1);
qed "nat_well_ord_converse_Memrel";
@@ -768,7 +768,7 @@
by (forward_tac [ordermap_bij RS bij_is_inj RS well_ord_rvimage] 1);
by (assume_tac 1);
by (asm_full_simp_tac
- (!simpset addsimps [rvimage_converse, converse_Int, converse_prod,
+ (simpset() addsimps [rvimage_converse, converse_Int, converse_prod,
ordertype_ord_iso RS ord_iso_rvimage_eq]) 1);
qed "well_ord_converse";
@@ -778,12 +778,12 @@
REPEAT (assume_tac 1));
by (rtac eqpoll_trans 1 THEN assume_tac 2);
by (rewtac eqpoll_def);
-by (blast_tac (!claset addSIs [ordermap_bij RS bij_converse_bij]) 1);
+by (blast_tac (claset() addSIs [ordermap_bij RS bij_converse_bij]) 1);
qed "ordertype_eq_n";
goalw Cardinal.thy [Finite_def]
"!!A. [| Finite(A); well_ord(A,r) |] ==> well_ord(A,converse(r))";
by (rtac well_ord_converse 1 THEN assume_tac 1);
-by (blast_tac (!claset addDs [ordertype_eq_n]
+by (blast_tac (claset() addDs [ordertype_eq_n]
addSIs [nat_well_ord_converse_Memrel]) 1);
qed "Finite_well_ord_converse";
--- a/src/ZF/CardinalArith.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/CardinalArith.ML Mon Nov 03 12:24:13 1997 +0100
@@ -21,7 +21,7 @@
by (rtac exI 1);
by (res_inst_tac [("c", "case(Inr, Inl)"), ("d", "case(Inr, Inl)")]
lam_bijective 1);
-by (safe_tac (!claset addSEs [sumE]));
+by (safe_tac (claset() addSEs [sumE]));
by (ALLGOALS (Asm_simp_tac));
qed "sum_commute_eqpoll";
@@ -57,7 +57,7 @@
qed "sum_0_eqpoll";
goalw CardinalArith.thy [cadd_def] "!!K. Card(K) ==> 0 |+| K = K";
-by (asm_simp_tac (!simpset addsimps [sum_0_eqpoll RS cardinal_cong,
+by (asm_simp_tac (simpset() addsimps [sum_0_eqpoll RS cardinal_cong,
Card_cardinal_eq]) 1);
qed "cadd_0";
@@ -65,7 +65,7 @@
goalw CardinalArith.thy [lepoll_def, inj_def] "A lepoll A+B";
by (res_inst_tac [("x", "lam x:A. Inl(x)")] exI 1);
-by (asm_simp_tac (!simpset addsimps [lam_type]) 1);
+by (asm_simp_tac (simpset() addsimps [lam_type]) 1);
qed "sum_lepoll_self";
(*Could probably weaken the premises to well_ord(K,r), or removing using AC*)
@@ -88,12 +88,12 @@
lam_injective 1);
by (typechk_tac ([inj_is_fun, case_type, InlI, InrI] @ ZF_typechecks));
by (etac sumE 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [left_inverse])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [left_inverse])));
qed "sum_lepoll_mono";
goalw CardinalArith.thy [cadd_def]
"!!K. [| K' le K; L' le L |] ==> (K' |+| L') le (K |+| L)";
-by (safe_tac (!claset addSDs [le_subset_iff RS iffD1]));
+by (safe_tac (claset() addSDs [le_subset_iff RS iffD1]));
by (rtac well_ord_lepoll_imp_Card_le 1);
by (REPEAT (ares_tac [sum_lepoll_mono, subset_imp_lepoll] 2));
by (REPEAT (ares_tac [well_ord_radd, well_ord_Memrel] 1));
@@ -107,7 +107,7 @@
("d", "%z. if(z=A+B,Inl(A),z)")]
lam_bijective 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps [succI2, mem_imp_not_eq]
+ (asm_simp_tac (simpset() addsimps [succI2, mem_imp_not_eq]
setloop eresolve_tac [sumE,succE])));
qed "sum_succ_eqpoll";
@@ -125,8 +125,8 @@
"[| m: nat; n: nat |] ==> m |+| n = m#+n";
by (cut_facts_tac [nnat] 1);
by (nat_ind_tac "m" [mnat] 1);
-by (asm_simp_tac (!simpset addsimps [nat_into_Card RS cadd_0]) 1);
-by (asm_simp_tac (!simpset addsimps [nat_into_Ord, cadd_succ_lemma,
+by (asm_simp_tac (simpset() addsimps [nat_into_Card RS cadd_0]) 1);
+by (asm_simp_tac (simpset() addsimps [nat_into_Ord, cadd_succ_lemma,
nat_into_Card RS Card_cardinal_eq]) 1);
qed "nat_cadd_eq_add";
@@ -140,7 +140,7 @@
by (rtac exI 1);
by (res_inst_tac [("c", "%<x,y>.<y,x>"), ("d", "%<x,y>.<y,x>")]
lam_bijective 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (ALLGOALS (Asm_simp_tac));
qed "prod_commute_eqpoll";
@@ -192,11 +192,11 @@
goalw CardinalArith.thy [eqpoll_def] "0*A eqpoll 0";
by (rtac exI 1);
by (rtac lam_bijective 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
qed "prod_0_eqpoll";
goalw CardinalArith.thy [cmult_def] "0 |*| i = 0";
-by (asm_simp_tac (!simpset addsimps [prod_0_eqpoll RS cardinal_cong,
+by (asm_simp_tac (simpset() addsimps [prod_0_eqpoll RS cardinal_cong,
Card_0 RS Card_cardinal_eq]) 1);
qed "cmult_0";
@@ -208,7 +208,7 @@
qed "prod_singleton_eqpoll";
goalw CardinalArith.thy [cmult_def, succ_def] "!!K. Card(K) ==> 1 |*| K = K";
-by (asm_simp_tac (!simpset addsimps [prod_singleton_eqpoll RS cardinal_cong,
+by (asm_simp_tac (simpset() addsimps [prod_singleton_eqpoll RS cardinal_cong,
Card_cardinal_eq]) 1);
qed "cmult_1";
@@ -216,7 +216,7 @@
goalw CardinalArith.thy [lepoll_def, inj_def] "A lepoll A*A";
by (res_inst_tac [("x", "lam x:A. <x,x>")] exI 1);
-by (simp_tac (!simpset addsimps [lam_type]) 1);
+by (simp_tac (simpset() addsimps [lam_type]) 1);
qed "prod_square_lepoll";
(*Could probably weaken the premise to well_ord(K,r), or remove using AC*)
@@ -225,14 +225,14 @@
by (rtac well_ord_lepoll_imp_Card_le 2);
by (rtac prod_square_lepoll 3);
by (REPEAT (ares_tac [well_ord_rmult, well_ord_Memrel, Card_is_Ord] 2));
-by (asm_simp_tac (!simpset addsimps [le_refl, Card_is_Ord, Card_cardinal_eq]) 1);
+by (asm_simp_tac (simpset() addsimps [le_refl, Card_is_Ord, Card_cardinal_eq]) 1);
qed "cmult_square_le";
(** Multiplication by a non-zero cardinal **)
goalw CardinalArith.thy [lepoll_def, inj_def] "!!b. b: B ==> A lepoll A*B";
by (res_inst_tac [("x", "lam x:A. <x,b>")] exI 1);
-by (asm_simp_tac (!simpset addsimps [lam_type]) 1);
+by (asm_simp_tac (simpset() addsimps [lam_type]) 1);
qed "prod_lepoll_self";
(*Could probably weaken the premises to well_ord(K,r), or removing using AC*)
@@ -253,12 +253,12 @@
lam_injective 1);
by (typechk_tac (inj_is_fun::ZF_typechecks));
by (etac SigmaE 1);
-by (asm_simp_tac (!simpset addsimps [left_inverse]) 1);
+by (asm_simp_tac (simpset() addsimps [left_inverse]) 1);
qed "prod_lepoll_mono";
goalw CardinalArith.thy [cmult_def]
"!!K. [| K' le K; L' le L |] ==> (K' |*| L') le (K |*| L)";
-by (safe_tac (!claset addSDs [le_subset_iff RS iffD1]));
+by (safe_tac (claset() addSDs [le_subset_iff RS iffD1]));
by (rtac well_ord_lepoll_imp_Card_le 1);
by (REPEAT (ares_tac [prod_lepoll_mono, subset_imp_lepoll] 2));
by (REPEAT (ares_tac [well_ord_rmult, well_ord_Memrel] 1));
@@ -271,9 +271,9 @@
by (res_inst_tac [("c", "%<x,y>. if(x=A, Inl(y), Inr(<x,y>))"),
("d", "case(%y. <A,y>, %z. z)")]
lam_bijective 1);
-by (safe_tac (!claset addSEs [sumE]));
+by (safe_tac (claset() addSEs [sumE]));
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps [succI2, if_type, mem_imp_not_eq])));
+ (asm_simp_tac (simpset() addsimps [succI2, if_type, mem_imp_not_eq])));
qed "prod_succ_eqpoll";
(*Unconditional version requires AC*)
@@ -289,14 +289,14 @@
"[| m: nat; n: nat |] ==> m |*| n = m#*n";
by (cut_facts_tac [nnat] 1);
by (nat_ind_tac "m" [mnat] 1);
-by (asm_simp_tac (!simpset addsimps [cmult_0]) 1);
-by (asm_simp_tac (!simpset addsimps [nat_into_Ord, cmult_succ_lemma,
+by (asm_simp_tac (simpset() addsimps [cmult_0]) 1);
+by (asm_simp_tac (simpset() addsimps [nat_into_Ord, cmult_succ_lemma,
nat_cadd_eq_add]) 1);
qed "nat_cmult_eq_mult";
goal CardinalArith.thy "!!m n. Card(n) ==> 2 |*| n = n |+| n";
by (asm_simp_tac
- (!simpset addsimps [Ord_0, Ord_succ, cmult_0, cmult_succ_lemma,
+ (simpset() addsimps [Ord_0, Ord_succ, cmult_0, cmult_succ_lemma,
Card_is_Ord,
read_instantiate [("j","0")] cadd_commute, cadd_0]) 1);
qed "cmult_2";
@@ -317,10 +317,10 @@
by (res_inst_tac [("d", "%y. if(y: range(f), \
\ nat_case(u, %z. f`z, converse(f)`y), y)")]
lam_injective 1);
-by (fast_tac (!claset addSIs [if_type, nat_succI, apply_type]
+by (fast_tac (claset() addSIs [if_type, nat_succI, apply_type]
addIs [inj_is_fun, inj_converse_fun]) 1);
by (asm_simp_tac
- (!simpset addsimps [inj_is_fun RS apply_rangeI,
+ (simpset() addsimps [inj_is_fun RS apply_rangeI,
inj_converse_fun RS apply_rangeI,
inj_converse_fun RS apply_funtype,
left_inverse, right_inverse, nat_0I, nat_succI,
@@ -339,7 +339,7 @@
qed "nat_succ_eqpoll";
goalw CardinalArith.thy [InfCard_def] "InfCard(nat)";
-by (blast_tac (!claset addIs [Card_nat, le_refl, Card_is_Ord]) 1);
+by (blast_tac (claset() addIs [Card_nat, le_refl, Card_is_Ord]) 1);
qed "InfCard_nat";
goalw CardinalArith.thy [InfCard_def] "!!K. InfCard(K) ==> Card(K)";
@@ -348,7 +348,7 @@
goalw CardinalArith.thy [InfCard_def]
"!!K L. [| InfCard(K); Card(L) |] ==> InfCard(K Un L)";
-by (asm_simp_tac (!simpset addsimps [Card_Un, Un_upper1_le RSN (2,le_trans),
+by (asm_simp_tac (simpset() addsimps [Card_Un, Un_upper1_le RSN (2,le_trans),
Card_is_Ord]) 1);
qed "InfCard_Un";
@@ -358,7 +358,7 @@
by (forward_tac [Card_is_Ord] 1);
by (rtac (ltI RS non_succ_LimitI) 1);
by (etac ([asm_rl, nat_0I] MRS (le_imp_subset RS subsetD)) 1);
-by (safe_tac (!claset addSDs [Limit_nat RS Limit_le_succD]));
+by (safe_tac (claset() addSDs [Limit_nat RS Limit_le_succD]));
by (rewtac Card_def);
by (dtac trans 1);
by (etac (le_imp_subset RS nat_succ_eqpoll RS cardinal_cong) 1);
@@ -373,7 +373,7 @@
goalw Cardinal.thy [eqpoll_def]
"!!A. [| well_ord(A,r); x:A |] ==> ordermap(A,r)`x eqpoll pred(A,x,r)";
by (rtac exI 1);
-by (asm_simp_tac (!simpset addsimps [ordermap_eq_image, well_ord_is_wf]) 1);
+by (asm_simp_tac (simpset() addsimps [ordermap_eq_image, well_ord_is_wf]) 1);
by (etac (ordermap_bij RS bij_is_inj RS restrict_bij RS bij_converse_bij) 1);
by (rtac pred_subset 1);
qed "ordermap_eqpoll_pred";
@@ -382,7 +382,7 @@
goalw CardinalArith.thy [inj_def]
"!!K. Ord(K) ==> (lam <x,y>:K*K. <x Un y, x, y>) : inj(K*K, K*K*K)";
-by (fast_tac (!claset addss (!simpset)
+by (fast_tac (claset() addss (simpset())
addIs [lam_type, Un_least_lt RS ltD, ltI]) 1);
qed "csquare_lam_inj";
@@ -398,16 +398,16 @@
"!!K. [| x<K; y<K; z<K |] ==> \
\ <<x,y>, <z,z>> : csquare_rel(K) --> x le z & y le z";
by (REPEAT (etac ltE 1));
-by (asm_simp_tac (!simpset addsimps [rvimage_iff, rmult_iff, Memrel_iff,
+by (asm_simp_tac (simpset() addsimps [rvimage_iff, rmult_iff, Memrel_iff,
Un_absorb, Un_least_mem_iff, ltD]) 1);
-by (safe_tac (!claset addSEs [mem_irrefl]
+by (safe_tac (claset() addSEs [mem_irrefl]
addSIs [Un_upper1_le, Un_upper2_le]));
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [lt_def, succI2, Ord_succ])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [lt_def, succI2, Ord_succ])));
qed_spec_mp "csquareD";
goalw CardinalArith.thy [pred_def]
"!!K. z<K ==> pred(K*K, <z,z>, csquare_rel(K)) <= succ(z)*succ(z)";
-by (safe_tac (claset_of"ZF" addSEs [SigmaE])); (*avoids using succCI,...*)
+by (safe_tac (claset_of ZF.thy addSEs [SigmaE])); (*avoids using succCI,...*)
by (rtac (csquareD RS conjE) 1);
by (rewtac lt_def);
by (assume_tac 4);
@@ -419,7 +419,7 @@
by (subgoals_tac ["x<K", "y<K"] 1);
by (REPEAT (eresolve_tac [asm_rl, lt_trans] 2));
by (REPEAT (etac ltE 1));
-by (asm_simp_tac (!simpset addsimps [rvimage_iff, rmult_iff, Memrel_iff,
+by (asm_simp_tac (simpset() addsimps [rvimage_iff, rmult_iff, Memrel_iff,
Un_absorb, Un_least_mem_iff, ltD]) 1);
qed "csquare_ltI";
@@ -430,11 +430,11 @@
by (subgoals_tac ["x<K", "y<K"] 1);
by (REPEAT (eresolve_tac [asm_rl, lt_trans1] 2));
by (REPEAT (etac ltE 1));
-by (asm_simp_tac (!simpset addsimps [rvimage_iff, rmult_iff, Memrel_iff,
+by (asm_simp_tac (simpset() addsimps [rvimage_iff, rmult_iff, Memrel_iff,
Un_absorb, Un_least_mem_iff, ltD]) 1);
by (REPEAT_FIRST (etac succE));
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps [subset_Un_iff RS iff_sym,
+ (asm_simp_tac (simpset() addsimps [subset_Un_iff RS iff_sym,
subset_Un_iff2 RS iff_sym, OrdmemD])));
qed "csquare_or_eqI";
@@ -446,11 +446,11 @@
\ ordermap(K*K, csquare_rel(K)) ` <z,z>";
by (subgoals_tac ["z<K", "well_ord(K*K, csquare_rel(K))"] 1);
by (etac (Limit_is_Ord RS well_ord_csquare) 2);
-by (blast_tac (!claset addSIs [Un_least_lt, Limit_has_succ]) 2);
+by (blast_tac (claset() addSIs [Un_least_lt, Limit_has_succ]) 2);
by (rtac (csquare_ltI RS ordermap_mono RS ltI) 1);
by (etac well_ord_is_wf 4);
by (ALLGOALS
- (blast_tac (!claset addSIs [Un_upper1_le, Un_upper2_le, Ord_ordermap]
+ (blast_tac (claset() addSIs [Un_upper1_le, Un_upper2_le, Ord_ordermap]
addSEs [ltE])));
qed "ordermap_z_lt";
@@ -461,12 +461,12 @@
by (rtac (well_ord_rmult RS well_ord_lepoll_imp_Card_le) 1);
by (REPEAT (ares_tac [Ord_cardinal, well_ord_Memrel] 1));
by (subgoals_tac ["z<K"] 1);
-by (blast_tac (!claset addSIs [Un_least_lt, Limit_has_succ]) 2);
+by (blast_tac (claset() addSIs [Un_least_lt, Limit_has_succ]) 2);
by (rtac (ordermap_z_lt RS leI RS le_imp_lepoll RS lepoll_trans) 1);
by (REPEAT_SOME assume_tac);
by (rtac (ordermap_eqpoll_pred RS eqpoll_imp_lepoll RS lepoll_trans) 1);
by (etac (Limit_is_Ord RS well_ord_csquare) 1);
-by (blast_tac (!claset addIs [ltD]) 1);
+by (blast_tac (claset() addIs [ltD]) 1);
by (rtac (pred_csquare_subset RS subset_imp_lepoll RS lepoll_trans) 1 THEN
assume_tac 1);
by (REPEAT_FIRST (etac ltE));
@@ -485,8 +485,8 @@
by (rtac Card_lt_imp_lt 1);
by (etac InfCard_is_Card 3);
by (etac ltE 2 THEN assume_tac 2);
-by (asm_full_simp_tac (!simpset addsimps [ordertype_unfold]) 1);
-by (safe_tac (!claset addSEs [ltE]));
+by (asm_full_simp_tac (simpset() addsimps [ordertype_unfold]) 1);
+by (safe_tac (claset() addSEs [ltE]));
by (subgoals_tac ["Ord(xb)", "Ord(y)"] 1);
by (REPEAT (eresolve_tac [asm_rl, Ord_in_Ord] 2));
by (rtac (InfCard_is_Limit RS ordermap_csquare_le RS lt_trans1) 1 THEN
@@ -495,13 +495,13 @@
REPEAT (ares_tac [Ord_Un, Ord_nat] 1));
(*the finite case: xb Un y < nat *)
by (res_inst_tac [("j", "nat")] lt_trans2 1);
-by (asm_full_simp_tac (!simpset addsimps [InfCard_def]) 2);
+by (asm_full_simp_tac (simpset() addsimps [InfCard_def]) 2);
by (asm_full_simp_tac
- (!simpset addsimps [lt_def, nat_cmult_eq_mult, nat_succI, mult_type,
+ (simpset() addsimps [lt_def, nat_cmult_eq_mult, nat_succI, mult_type,
nat_into_Card RS Card_cardinal_eq, Ord_nat]) 1);
(*case nat le (xb Un y) *)
by (asm_full_simp_tac
- (!simpset addsimps [le_imp_subset RS nat_succ_eqpoll RS cardinal_cong,
+ (simpset() addsimps [le_imp_subset RS nat_succ_eqpoll RS cardinal_cong,
le_succ_iff, InfCard_def, Card_cardinal, Un_least_lt,
Ord_Un, ltI, nat_le_cardinal,
Ord_cardinal_le RS lt_trans1 RS ltD]) 1);
@@ -519,7 +519,7 @@
by (assume_tac 2);
by (assume_tac 2);
by (asm_simp_tac
- (!simpset addsimps [cmult_def, Ord_cardinal_le,
+ (simpset() addsimps [cmult_def, Ord_cardinal_le,
well_ord_csquare RS ordermap_bij RS
bij_imp_eqpoll RS cardinal_cong,
well_ord_csquare RS Ord_ordertype]) 1);
@@ -532,7 +532,7 @@
by (REPEAT (etac (well_ord_cardinal_eqpoll RS eqpoll_sym) 1));
by (rtac well_ord_cardinal_eqE 1);
by (REPEAT (ares_tac [Ord_cardinal, well_ord_rmult, well_ord_Memrel] 1));
-by (asm_simp_tac (!simpset addsimps [symmetric cmult_def, InfCard_csquare_eq]) 1);
+by (asm_simp_tac (simpset() addsimps [symmetric cmult_def, InfCard_csquare_eq]) 1);
qed "well_ord_InfCard_square_eq";
(** Toward's Kunen's Corollary 10.13 (1) **)
@@ -543,7 +543,7 @@
REPEAT (ares_tac [cmult_le_self, InfCard_is_Card] 2));
by (forward_tac [InfCard_is_Card RS Card_is_Ord RS le_refl] 1);
by (resolve_tac [cmult_le_mono RS le_trans] 1 THEN REPEAT (assume_tac 1));
-by (asm_simp_tac (!simpset addsimps [InfCard_csquare_eq]) 1);
+by (asm_simp_tac (simpset() addsimps [InfCard_csquare_eq]) 1);
qed "InfCard_le_cmult_eq";
(*Corollary 10.13 (1), for cardinal multiplication*)
@@ -555,14 +555,14 @@
by (resolve_tac [Un_commute RS ssubst] 1);
by (ALLGOALS
(asm_simp_tac
- (!simpset addsimps [InfCard_is_Limit RS Limit_has_0, InfCard_le_cmult_eq,
+ (simpset() addsimps [InfCard_is_Limit RS Limit_has_0, InfCard_le_cmult_eq,
subset_Un_iff2 RS iffD1, le_imp_subset])));
qed "InfCard_cmult_eq";
(*This proof appear to be the simplest!*)
goal CardinalArith.thy "!!K. InfCard(K) ==> K |+| K = K";
by (asm_simp_tac
- (!simpset addsimps [cmult_2 RS sym, InfCard_is_Card, cmult_commute]) 1);
+ (simpset() addsimps [cmult_2 RS sym, InfCard_is_Card, cmult_commute]) 1);
by (rtac InfCard_le_cmult_eq 1);
by (typechk_tac [Ord_0, le_refl, leI]);
by (typechk_tac [InfCard_is_Limit, Limit_has_0, Limit_has_succ]);
@@ -575,7 +575,7 @@
REPEAT (ares_tac [cadd_le_self, InfCard_is_Card] 2));
by (forward_tac [InfCard_is_Card RS Card_is_Ord RS le_refl] 1);
by (resolve_tac [cadd_le_mono RS le_trans] 1 THEN REPEAT (assume_tac 1));
-by (asm_simp_tac (!simpset addsimps [InfCard_cdouble_eq]) 1);
+by (asm_simp_tac (simpset() addsimps [InfCard_cdouble_eq]) 1);
qed "InfCard_le_cadd_eq";
goal CardinalArith.thy
@@ -586,7 +586,7 @@
by (resolve_tac [Un_commute RS ssubst] 1);
by (ALLGOALS
(asm_simp_tac
- (!simpset addsimps [InfCard_le_cadd_eq,
+ (simpset() addsimps [InfCard_le_cadd_eq,
subset_Un_iff2 RS iffD1, le_imp_subset])));
qed "InfCard_cadd_eq";
@@ -600,14 +600,14 @@
goalw CardinalArith.thy [jump_cardinal_def] "Ord(jump_cardinal(K))";
by (rtac (Ord_is_Transset RSN (2,OrdI)) 1);
-by (blast_tac (!claset addSIs [Ord_ordertype]) 2);
+by (blast_tac (claset() addSIs [Ord_ordertype]) 2);
by (rewtac Transset_def);
by (safe_tac subset_cs);
-by (asm_full_simp_tac (!simpset addsimps [ordertype_pred_unfold]) 1);
-by (safe_tac (!claset));
+by (asm_full_simp_tac (simpset() addsimps [ordertype_pred_unfold]) 1);
+by (safe_tac (claset()));
by (rtac UN_I 1);
by (rtac ReplaceI 2);
-by (ALLGOALS (blast_tac (!claset addIs [well_ord_subset] addSEs [predE])));
+by (ALLGOALS (blast_tac (claset() addIs [well_ord_subset] addSEs [predE])));
qed "Ord_jump_cardinal";
(*Allows selective unfolding. Less work than deriving intro/elim rules*)
@@ -623,8 +623,8 @@
by (resolve_tac [jump_cardinal_iff RS iffD2] 1);
by (REPEAT_FIRST (ares_tac [exI, conjI, well_ord_Memrel]));
by (rtac subset_refl 2);
-by (asm_simp_tac (!simpset addsimps [Memrel_def, subset_iff]) 1);
-by (asm_simp_tac (!simpset addsimps [ordertype_Memrel]) 1);
+by (asm_simp_tac (simpset() addsimps [Memrel_def, subset_iff]) 1);
+by (asm_simp_tac (simpset() addsimps [ordertype_Memrel]) 1);
qed "K_lt_jump_cardinal";
(*The proof by contradiction: the bijection f yields a wellordering of X
@@ -642,7 +642,7 @@
by (etac (bij_is_inj RS well_ord_rvimage) 1);
by (rtac (Ord_jump_cardinal RS well_ord_Memrel) 1);
by (asm_simp_tac
- (!simpset addsimps [well_ord_Memrel RSN (2, bij_ordertype_vimage),
+ (simpset() addsimps [well_ord_Memrel RSN (2, bij_ordertype_vimage),
ordertype_Memrel, Ord_jump_cardinal]) 1);
qed "Card_jump_cardinal_lemma";
@@ -650,7 +650,7 @@
goal CardinalArith.thy "Card(jump_cardinal(K))";
by (rtac (Ord_jump_cardinal RS CardI) 1);
by (rewtac eqpoll_def);
-by (safe_tac (!claset addSDs [ltD, jump_cardinal_iff RS iffD1]));
+by (safe_tac (claset() addSDs [ltD, jump_cardinal_iff RS iffD1]));
by (REPEAT (ares_tac [Card_jump_cardinal_lemma RS mem_irrefl] 1));
qed "Card_jump_cardinal";
@@ -695,12 +695,12 @@
goal CardinalArith.thy
"!!K' K. [| Card(K'); Card(K) |] ==> K' < csucc(K) <-> K' le K";
by (asm_simp_tac
- (!simpset addsimps [lt_csucc_iff, Card_cardinal_eq, Card_is_Ord]) 1);
+ (simpset() addsimps [lt_csucc_iff, Card_cardinal_eq, Card_is_Ord]) 1);
qed "Card_lt_csucc_iff";
goalw CardinalArith.thy [InfCard_def]
"!!K. InfCard(K) ==> InfCard(csucc(K))";
-by (asm_simp_tac (!simpset addsimps [Card_csucc, Card_is_Ord,
+by (asm_simp_tac (simpset() addsimps [Card_csucc, Card_is_Ord,
lt_csucc RS leI RSN (2,le_trans)]) 1);
qed "InfCard_csucc";
@@ -710,7 +710,7 @@
goal CardinalArith.thy
"!!n. n: nat ==> ALL A. A eqpoll n --> A : Fin(A)";
by (etac nat_induct 1);
-by (simp_tac (!simpset addsimps (eqpoll_0_iff::Fin.intrs)) 1);
+by (simp_tac (simpset() addsimps (eqpoll_0_iff::Fin.intrs)) 1);
by (Clarify_tac 1);
by (subgoal_tac "EX u. u:A" 1);
by (etac exE 1);
@@ -721,27 +721,27 @@
by (assume_tac 1);
by (resolve_tac [Fin.consI] 1);
by (Blast_tac 1);
-by (blast_tac (!claset addIs [subset_consI RS Fin_mono RS subsetD]) 1);
+by (blast_tac (claset() addIs [subset_consI RS Fin_mono RS subsetD]) 1);
(*Now for the lemma assumed above*)
by (rewtac eqpoll_def);
-by (blast_tac (!claset addIs [bij_converse_bij RS bij_is_fun RS apply_type]) 1);
+by (blast_tac (claset() addIs [bij_converse_bij RS bij_is_fun RS apply_type]) 1);
val lemma = result();
goalw CardinalArith.thy [Finite_def] "!!A. Finite(A) ==> A : Fin(A)";
-by (blast_tac (!claset addIs [lemma RS spec RS mp]) 1);
+by (blast_tac (claset() addIs [lemma RS spec RS mp]) 1);
qed "Finite_into_Fin";
goal CardinalArith.thy "!!A. A : Fin(U) ==> Finite(A)";
-by (fast_tac (!claset addSIs [Finite_0, Finite_cons] addEs [Fin.induct]) 1);
+by (fast_tac (claset() addSIs [Finite_0, Finite_cons] addEs [Fin.induct]) 1);
qed "Fin_into_Finite";
goal CardinalArith.thy "Finite(A) <-> A : Fin(A)";
-by (blast_tac (!claset addIs [Finite_into_Fin, Fin_into_Finite]) 1);
+by (blast_tac (claset() addIs [Finite_into_Fin, Fin_into_Finite]) 1);
qed "Finite_Fin_iff";
goal CardinalArith.thy
"!!A. [| Finite(A); Finite(B) |] ==> Finite(A Un B)";
-by (blast_tac (!claset addSIs [Fin_into_Finite, Fin_UnI]
+by (blast_tac (claset() addSIs [Fin_into_Finite, Fin_UnI]
addSDs [Finite_into_Fin]
addIs [Un_upper1 RS Fin_mono RS subsetD,
Un_upper2 RS Fin_mono RS subsetD]) 1);
@@ -753,10 +753,10 @@
goal CardinalArith.thy
"!!A. A: Fin(U) ==> x~:A --> ~ cons(x,A) lepoll A";
by (etac Fin_induct 1);
-by (simp_tac (!simpset addsimps [lepoll_0_iff]) 1);
+by (simp_tac (simpset() addsimps [lepoll_0_iff]) 1);
by (subgoal_tac "cons(x,cons(xa,y)) = cons(xa,cons(x,y))" 1);
by (Asm_simp_tac 1);
-by (blast_tac (!claset addSDs [cons_lepoll_consD]) 1);
+by (blast_tac (claset() addSDs [cons_lepoll_consD]) 1);
by (Blast_tac 1);
qed "Fin_imp_not_cons_lepoll";
@@ -765,18 +765,18 @@
by (rewtac cardinal_def);
by (rtac Least_equality 1);
by (fold_tac [cardinal_def]);
-by (simp_tac (!simpset addsimps [succ_def]) 1);
-by (blast_tac (!claset addIs [cons_eqpoll_cong, well_ord_cardinal_eqpoll]
+by (simp_tac (simpset() addsimps [succ_def]) 1);
+by (blast_tac (claset() addIs [cons_eqpoll_cong, well_ord_cardinal_eqpoll]
addSEs [mem_irrefl]
addSDs [Finite_imp_well_ord]) 1);
-by (blast_tac (!claset addIs [Ord_succ, Card_cardinal, Card_is_Ord]) 1);
+by (blast_tac (claset() addIs [Ord_succ, Card_cardinal, Card_is_Ord]) 1);
by (rtac notI 1);
by (resolve_tac [Finite_into_Fin RS Fin_imp_not_cons_lepoll RS mp RS notE] 1);
by (assume_tac 1);
by (assume_tac 1);
by (eresolve_tac [eqpoll_sym RS eqpoll_imp_lepoll RS lepoll_trans] 1);
by (eresolve_tac [le_imp_lepoll RS lepoll_trans] 1);
-by (blast_tac (!claset addIs [well_ord_cardinal_eqpoll RS eqpoll_imp_lepoll]
+by (blast_tac (claset() addIs [well_ord_cardinal_eqpoll RS eqpoll_imp_lepoll]
addSDs [Finite_imp_well_ord]) 1);
qed "Finite_imp_cardinal_cons";
@@ -784,14 +784,14 @@
goal CardinalArith.thy "!!a A. [| Finite(A); a:A |] ==> succ(|A-{a}|) = |A|";
by (res_inst_tac [("b", "A")] (cons_Diff RS subst) 1);
by (assume_tac 1);
-by (asm_simp_tac (!simpset addsimps [Finite_imp_cardinal_cons,
+by (asm_simp_tac (simpset() addsimps [Finite_imp_cardinal_cons,
Diff_subset RS subset_Finite]) 1);
-by (asm_simp_tac (!simpset addsimps [cons_Diff]) 1);
+by (asm_simp_tac (simpset() addsimps [cons_Diff]) 1);
qed "Finite_imp_succ_cardinal_Diff";
goal CardinalArith.thy "!!a A. [| Finite(A); a:A |] ==> |A-{a}| < |A|";
by (rtac succ_leE 1);
-by (asm_simp_tac (!simpset addsimps [Finite_imp_succ_cardinal_Diff,
+by (asm_simp_tac (simpset() addsimps [Finite_imp_succ_cardinal_Diff,
Ord_cardinal RS le_refl]) 1);
qed "Finite_imp_cardinal_Diff";
@@ -808,11 +808,11 @@
well_ord_radd RS well_ord_cardinal_eqpoll)) RS eqpoll_sym] 1
THEN (assume_tac 1));
by (eresolve_tac [nat_cadd_eq_add RS subst] 1 THEN (assume_tac 1));
-by (asm_full_simp_tac (!simpset addsimps [cadd_def, eqpoll_refl]) 1);
+by (asm_full_simp_tac (simpset() addsimps [cadd_def, eqpoll_refl]) 1);
qed "nat_sum_eqpoll_sum";
goal Nat.thy "!!m. [| m le n; n:nat |] ==> m:nat";
-by (blast_tac (!claset addSDs [nat_succI RS (Ord_nat RSN (2, OrdmemD))]
+by (blast_tac (claset() addSDs [nat_succI RS (Ord_nat RSN (2, OrdmemD))]
addSEs [ltE]) 1);
qed "le_in_nat";
--- a/src/ZF/Cardinal_AC.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Cardinal_AC.ML Mon Nov 03 12:24:13 1997 +0100
@@ -27,13 +27,13 @@
qed "cardinal_eqE";
goal Cardinal_AC.thy "|X| = |Y| <-> X eqpoll Y";
-by (blast_tac (!claset addIs [cardinal_cong, cardinal_eqE]) 1);
+by (blast_tac (claset() addIs [cardinal_cong, cardinal_eqE]) 1);
qed "cardinal_eqpoll_iff";
goal Cardinal_AC.thy
"!!A. [| |A|=|B|; |C|=|D|; A Int C = 0; B Int D = 0 |] ==> \
\ |A Un C| = |B Un D|";
-by (asm_full_simp_tac (!simpset addsimps [cardinal_eqpoll_iff,
+by (asm_full_simp_tac (simpset() addsimps [cardinal_eqpoll_iff,
eqpoll_disjoint_Un]) 1);
qed "cardinal_disjoint_Un";
@@ -92,8 +92,8 @@
goalw Cardinal_AC.thy [surj_def] "!!f. f: surj(X,Y) ==> EX g. g: inj(Y,X)";
by (etac CollectE 1);
by (res_inst_tac [("A1", "Y"), ("B1", "%y. f-``{y}")] (AC_Pi RS exE) 1);
-by (fast_tac (!claset addSEs [apply_Pair]) 1);
-by (blast_tac (!claset addDs [apply_type, Pi_memberD]
+by (fast_tac (claset() addSEs [apply_Pair]) 1);
+by (blast_tac (claset() addDs [apply_type, Pi_memberD]
addIs [apply_equality, Pi_type, f_imp_injective]) 1);
qed "surj_implies_inj";
@@ -108,10 +108,10 @@
(*Kunen's Lemma 10.21*)
goal Cardinal_AC.thy
"!!K. [| InfCard(K); ALL i:K. |X(i)| le K |] ==> |UN i:K. X(i)| le K";
-by (asm_full_simp_tac (!simpset addsimps [InfCard_is_Card, le_Card_iff]) 1);
+by (asm_full_simp_tac (simpset() addsimps [InfCard_is_Card, le_Card_iff]) 1);
by (rtac lepoll_trans 1);
by (resolve_tac [InfCard_square_eq RS eqpoll_imp_lepoll] 2);
-by (asm_simp_tac (!simpset addsimps [InfCard_is_Card, Card_cardinal_eq]) 2);
+by (asm_simp_tac (simpset() addsimps [InfCard_is_Card, Card_cardinal_eq]) 2);
by (rewtac lepoll_def);
by (forward_tac [InfCard_is_Card RS Card_is_Ord] 1);
by (etac (AC_ball_Pi RS exE) 1);
@@ -119,18 +119,18 @@
(*Lemma needed in both subgoals, for a fixed z*)
by (subgoal_tac
"ALL z: (UN i:K. X(i)). z: X(LEAST i. z:X(i)) & (LEAST i. z:X(i)) : K" 1);
-by (fast_tac (!claset addSIs [Least_le RS lt_trans1 RS ltD, ltI]
+by (fast_tac (claset() addSIs [Least_le RS lt_trans1 RS ltD, ltI]
addSEs [LeastI, Ord_in_Ord]) 2);
by (res_inst_tac [("c", "%z. <LEAST i. z:X(i), f ` (LEAST i. z:X(i)) ` z>"),
("d", "%<i,j>. converse(f`i) ` j")]
lam_injective 1);
(*Instantiate the lemma proved above*)
by (ALLGOALS ball_tac);
-by (blast_tac (!claset addIs [inj_is_fun RS apply_type]
+by (blast_tac (claset() addIs [inj_is_fun RS apply_type]
addDs [apply_type]) 1);
by (dtac apply_type 1);
by (etac conjunct2 1);
-by (asm_simp_tac (!simpset addsimps [left_inverse]) 1);
+by (asm_simp_tac (simpset() addsimps [left_inverse]) 1);
qed "cardinal_UN_le";
(*The same again, using csucc*)
@@ -138,7 +138,7 @@
"!!K. [| InfCard(K); ALL i:K. |X(i)| < csucc(K) |] ==> \
\ |UN i:K. X(i)| < csucc(K)";
by (asm_full_simp_tac
- (!simpset addsimps [Card_lt_csucc_iff, cardinal_UN_le,
+ (simpset() addsimps [Card_lt_csucc_iff, cardinal_UN_le,
InfCard_is_Card, Card_cardinal]) 1);
qed "cardinal_UN_lt_csucc";
@@ -149,8 +149,8 @@
\ (UN i:K. j(i)) < csucc(K)";
by (resolve_tac [cardinal_UN_lt_csucc RS Card_lt_imp_lt] 1);
by (assume_tac 1);
-by (blast_tac (!claset addIs [Ord_cardinal_le RS lt_trans1] addEs [ltE]) 1);
-by (blast_tac (!claset addSIs [Ord_UN] addEs [ltE]) 1);
+by (blast_tac (claset() addIs [Ord_cardinal_le RS lt_trans1] addEs [ltE]) 1);
+by (blast_tac (claset() addSIs [Ord_UN] addEs [ltE]) 1);
by (eresolve_tac [InfCard_is_Card RS Card_is_Ord RS Card_csucc] 1);
qed "cardinal_UN_Ord_lt_csucc";
@@ -173,7 +173,7 @@
by (res_inst_tac [("x1", "f`x")] (UN_upper RSN (2,subset_trans)) 1);
by (eresolve_tac [inj_is_fun RS apply_type] 2 THEN assume_tac 2);
by (asm_simp_tac
- (!simpset addsimps [inj_is_fun RS apply_rangeI, left_inverse]) 1);
+ (simpset() addsimps [inj_is_fun RS apply_rangeI, left_inverse]) 1);
val inj_UN_subset = result();
(*Simpler to require |W|=K; we'd have a bijection; but the theorem would
@@ -183,16 +183,16 @@
\ (UN w:W. j(w)) < csucc(K)";
by (excluded_middle_tac "W=0" 1);
by (asm_simp_tac (*solve the easy 0 case*)
- (!simpset addsimps [UN_0, InfCard_is_Card, Card_is_Ord RS Card_csucc,
+ (simpset() addsimps [UN_0, InfCard_is_Card, Card_is_Ord RS Card_csucc,
Card_is_Ord, Ord_0_lt_csucc]) 2);
by (asm_full_simp_tac
- (!simpset addsimps [InfCard_is_Card, le_Card_iff, lepoll_def]) 1);
-by (safe_tac (!claset addSIs [equalityI]));
+ (simpset() addsimps [InfCard_is_Card, le_Card_iff, lepoll_def]) 1);
+by (safe_tac (claset() addSIs [equalityI]));
by (swap_res_tac [[inj_UN_subset, cardinal_UN_Ord_lt_csucc]
MRS lt_subset_trans] 1);
by (REPEAT (assume_tac 1));
-by (blast_tac (!claset addSIs [Ord_UN] addEs [ltE]) 2);
-by (asm_simp_tac (!simpset addsimps [inj_converse_fun RS apply_type]
+by (blast_tac (claset() addSIs [Ord_UN] addEs [ltE]) 2);
+by (asm_simp_tac (simpset() addsimps [inj_converse_fun RS apply_type]
setloop split_tac [expand_if]) 1);
qed "le_UN_Ord_lt_csucc";
--- a/src/ZF/Coind/ECR.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Coind/ECR.ML Mon Nov 03 12:24:13 1997 +0100
@@ -16,7 +16,7 @@
\ <v_clos(x, e, ve),t>:HasTyRel";
by (rtac HasTyRel.coinduct 1);
by (rtac singletonI 1);
-by (fast_tac (!claset addIs Val_ValEnv.intrs) 1);
+by (fast_tac (claset() addIs Val_ValEnv.intrs) 1);
by (rtac disjI2 1);
by (etac singletonE 1);
by (REPEAT_FIRST (resolve_tac [conjI,exI]));
@@ -42,14 +42,14 @@
addEs [htr_closE])
end;
-claset := mk_htr_cs (!claset);
+claset_ref() := mk_htr_cs (claset());
(* Properties of the pointwise extension to environments *)
goalw ECR.thy [hastyenv_def]
"!!ve.[| ve:ValEnv; te:TyEnv; hastyenv(ve,te); <v,t>:HasTyRel |] ==> \
\ hastyenv(ve_owr(ve,x,v),te_owr(te,x,t))";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (stac ve_dom_owr 1);
by (assume_tac 1);
by (etac (HasTyRel.dom_subset RS subsetD RS SigmaD1 RS ValNEE) 1);
@@ -64,15 +64,15 @@
by (dtac (ve_dom_owr RS subst) 1);
by (etac (HasTyRel.dom_subset RS subsetD RS SigmaD1 RS ValNEE) 1);
by ((Fast_tac 1) THEN (Fast_tac 1));
-by (asm_simp_tac (!simpset addsimps [ve_app_owr1,te_app_owr1]) 1);
+by (asm_simp_tac (simpset() addsimps [ve_app_owr1,te_app_owr1]) 1);
qed "hastyenv_owr";
goalw ECR.thy [isofenv_def,hastyenv_def]
"!!ve.[| ve:ValEnv; te:TyEnv; isofenv(ve,te) |] ==> hastyenv(ve,te)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (dtac bspec 1);
by (assume_tac 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (dtac HasTyRel.htr_constI 1);
by (assume_tac 2);
by (etac te_appI 1);
--- a/src/ZF/Coind/MT.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Coind/MT.ML Mon Nov 03 12:24:13 1997 +0100
@@ -51,7 +51,7 @@
\ <cl,t>:HasTyRel";
by (cut_facts_tac prems 1);
by (etac elab_fixE 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (EVERY [forward_tac [subst] 1,atac 2,rtac htr_closCI 1]);
by clean_tac;
by (rtac ve_owrI 1);
@@ -129,7 +129,7 @@
by (etac htr_closE 1);
by (etac elab_fnE 1);
by (rewrite_tac Ty.con_defs);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (dtac (spec RS spec RS mp RS mp) 1);
by (assume_tac 3);
by (assume_tac 2);
@@ -167,7 +167,7 @@
by (cut_facts_tac prems 1);
by (rtac (htr_constE) 1);
by (dtac consistency 1);
-by (fast_tac (!claset addSIs [basic_consistency_lem]) 1);
+by (fast_tac (claset() addSIs [basic_consistency_lem]) 1);
by (assume_tac 1);
qed "basic_consistency";
--- a/src/ZF/Coind/Map.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Coind/Map.ML Mon Nov 03 12:24:13 1997 +0100
@@ -38,7 +38,7 @@
by (rtac ([Sigma_mono, product_univ] MRS subset_trans) 1);
by (etac subset_trans 1);
by (rtac (arg_subset_eclose RS univ_mono) 1);
-by (simp_tac (!simpset addsimps [Union_Pow_eq]) 1);
+by (simp_tac (simpset() addsimps [Union_Pow_eq]) 1);
qed "MapQU_lemma";
(* Theorems *)
@@ -69,7 +69,7 @@
(** map_emp **)
goalw Map.thy [map_emp_def,PMap_def,TMap_def] "map_emp:PMap(A,B)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac image_02 1);
qed "pmap_empI";
@@ -79,7 +79,7 @@
goalw Map.thy [map_owr_def,PMap_def,TMap_def]
"!! A.[| m:PMap(A,B); a:A; b:B |] ==> map_owr(m,a,b):PMap(A,B)";
by Safe_tac;
-by (ALLGOALS (asm_full_simp_tac (!simpset addsimps [if_iff])));
+by (ALLGOALS (asm_full_simp_tac (simpset() addsimps [if_iff])));
by (Fast_tac 1);
by (Fast_tac 1);
by (Deepen_tac 2 1);
@@ -88,8 +88,8 @@
by (etac image_Sigma1 1);
by (dres_inst_tac [("psi", "?uu ~: B")] asm_rl 1);
by (asm_full_simp_tac
- (!simpset addsimps [qbeta] setloop split_tac [expand_if]) 1);
-by (safe_tac (!claset));
+ (simpset() addsimps [qbeta] setloop split_tac [expand_if]) 1);
+by (safe_tac (claset()));
by (dres_inst_tac [("psi", "?uu ~: B")] asm_rl 3);
by (ALLGOALS Asm_full_simp_tac);
by (Fast_tac 1);
@@ -144,7 +144,7 @@
qed "domain_UN";
goal Map.thy "domain(Sigma(A,B)) = {x:A. EX y. y:B(x)}";
-by (simp_tac (!simpset addsimps [domain_UN,domain_0,domain_cons]) 1);
+by (simp_tac (simpset() addsimps [domain_UN,domain_0,domain_cons]) 1);
by (Fast_tac 1);
qed "domain_Sigma";
@@ -156,7 +156,7 @@
goalw Map.thy [map_owr_def]
"!!a. b ~= 0 ==> domain(map_owr(f,a,b)) = {a} Un domain(f)";
-by (simp_tac (!simpset addsimps [domain_Sigma]) 1);
+by (simp_tac (simpset() addsimps [domain_Sigma]) 1);
by (rtac equalityI 1);
by (Fast_tac 1);
by (rtac subsetI 1);
@@ -166,7 +166,7 @@
by (etac singletonE 1);
by (Asm_simp_tac 1);
by (Fast_tac 1);
-by (fast_tac (!claset addss (!simpset)) 1);
+by (fast_tac (claset() addss (simpset())) 1);
qed "map_domain_owr";
(** Application **)
--- a/src/ZF/Coind/Static.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Coind/Static.ML Mon Nov 03 12:24:13 1997 +0100
@@ -22,7 +22,7 @@
ElabRel.mk_cases Exp.con_defs "<te,e_app(e1,e2),t>:ElabRel";
let open ElabRel in
-claset := !claset addSIs [elab_constI,elab_varI,elab_fnI,elab_fixI]
+claset_ref() := claset() addSIs [elab_constI,elab_varI,elab_fnI,elab_fixI]
addSEs [elab_constE,elab_varE,elab_fixE]
addIs [elab_appI]
addEs [elab_appE,elab_fnE]
--- a/src/ZF/Coind/Types.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Coind/Types.ML Mon Nov 03 12:24:13 1997 +0100
@@ -15,7 +15,7 @@
goal Types.thy "te_rec(te_emp,c_te_emp,f_te_owr) = c_te_emp";
by (rtac (te_rec_def RS def_Vrec RS trans) 1);
-by (simp_tac (!simpset addsimps (rank_te_owr1::TyEnv.case_eqns)) 1);
+by (simp_tac (simpset() addsimps (rank_te_owr1::TyEnv.case_eqns)) 1);
qed "te_rec_emp";
goal Types.thy
@@ -26,20 +26,20 @@
qed "te_rec_owr";
goalw Types.thy [te_dom_def] "te_dom(te_emp) = 0";
-by (simp_tac (!simpset addsimps [te_rec_emp]) 1);
+by (simp_tac (simpset() addsimps [te_rec_emp]) 1);
qed "te_dom_emp";
goalw Types.thy [te_dom_def] "te_dom(te_owr(te,x,v)) = te_dom(te) Un {x}";
-by (simp_tac (!simpset addsimps [te_rec_owr]) 1);
+by (simp_tac (simpset() addsimps [te_rec_owr]) 1);
qed "te_dom_owr";
goalw Types.thy [te_app_def] "te_app(te_owr(te,x,t),x) = t";
-by (simp_tac (!simpset addsimps [te_rec_owr]) 1);
+by (simp_tac (simpset() addsimps [te_rec_owr]) 1);
qed "te_app_owr1";
goalw Types.thy [te_app_def]
"!!x y. x ~= y ==> te_app(te_owr(te,x,t),y) = te_app(te,y)";
-by (asm_simp_tac (!simpset addsimps [te_rec_owr,(not_sym RS if_not_P)]) 1);
+by (asm_simp_tac (simpset() addsimps [te_rec_owr,(not_sym RS if_not_P)]) 1);
qed "te_app_owr2";
goal Types.thy
@@ -48,14 +48,14 @@
by (assume_tac 2);
by (assume_tac 2);
by (etac TyEnv.induct 1);
-by (simp_tac (!simpset addsimps [te_dom_emp]) 1);
+by (simp_tac (simpset() addsimps [te_dom_emp]) 1);
by (rtac impI 1);
by (rtac (excluded_middle RS disjE) 1);
by (stac te_app_owr2 1);
by (assume_tac 1);
-by (asm_full_simp_tac (!simpset addsimps [te_dom_owr]) 1);
+by (asm_full_simp_tac (simpset() addsimps [te_dom_owr]) 1);
by (Fast_tac 1);
-by (asm_simp_tac (!simpset addsimps [te_app_owr1]) 1);
+by (asm_simp_tac (simpset() addsimps [te_app_owr1]) 1);
qed "te_appI";
--- a/src/ZF/Coind/Values.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Coind/Values.ML Mon Nov 03 12:24:13 1997 +0100
@@ -88,7 +88,7 @@
"[| ve:ValEnv; v ~=0 |] ==> ve_dom(ve_owr(ve,x,v)) = ve_dom(ve) Un {x}";
by (cut_facts_tac prems 1);
by (etac ValEnvE 1);
-by (asm_full_simp_tac (!simpset addsimps Val_ValEnv.case_eqns) 1);
+by (asm_full_simp_tac (simpset() addsimps Val_ValEnv.case_eqns) 1);
by (stac map_domain_owr 1);
by (assume_tac 1);
by (rtac Un_commute 1);
@@ -97,14 +97,14 @@
goalw Values.thy [ve_app_def,ve_owr_def]
"!!ve. ve:ValEnv ==> ve_app(ve_owr(ve,x,v),x) = v";
by (etac ValEnvE 1);
-by (asm_full_simp_tac (!simpset addsimps Val_ValEnv.case_eqns) 1);
+by (asm_full_simp_tac (simpset() addsimps Val_ValEnv.case_eqns) 1);
by (rtac map_app_owr1 1);
qed "ve_app_owr1";
goalw Values.thy [ve_app_def,ve_owr_def]
"!!ve. ve:ValEnv ==> x ~= y ==> ve_app(ve_owr(ve,x,v),y) = ve_app(ve,y)";
by (etac ValEnvE 1);
-by (asm_full_simp_tac (!simpset addsimps Val_ValEnv.case_eqns) 1);
+by (asm_full_simp_tac (simpset() addsimps Val_ValEnv.case_eqns) 1);
by (rtac map_app_owr2 1);
by (Fast_tac 1);
qed "ve_app_owr2";
@@ -115,7 +115,7 @@
"!!ve.[| ve:ValEnv; x:ve_dom(ve) |] ==> ve_app(ve,x):Val";
by (etac ValEnvE 1);
by (hyp_subst_tac 1);
-by (asm_full_simp_tac (!simpset addsimps Val_ValEnv.case_eqns) 1);
+by (asm_full_simp_tac (simpset() addsimps Val_ValEnv.case_eqns) 1);
by (rtac pmap_appI 1);
by (assume_tac 1);
by (assume_tac 1);
@@ -125,7 +125,7 @@
"!!ve.[| ve:ValEnv; x:ve_dom(ve) |] ==> x:ExVar";
by (etac ValEnvE 1);
by (hyp_subst_tac 1);
-by (asm_full_simp_tac (!simpset addsimps Val_ValEnv.case_eqns) 1);
+by (asm_full_simp_tac (simpset() addsimps Val_ValEnv.case_eqns) 1);
by (rtac pmap_domainD 1);
by (assume_tac 1);
by (assume_tac 1);
@@ -140,7 +140,7 @@
"!!ve.[|ve:ValEnv; x:ExVar; v:Val |] ==> ve_owr(ve,x,v):ValEnv";
by (etac ValEnvE 1);
by (hyp_subst_tac 1);
-by (asm_full_simp_tac (!simpset addsimps Val_ValEnv.case_eqns) 1);
+by (asm_full_simp_tac (simpset() addsimps Val_ValEnv.case_eqns) 1);
by (rtac Val_ValEnv.ve_mk_I 1);
by (etac pmap_owrI 1);
by (assume_tac 1);
--- a/src/ZF/Epsilon.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Epsilon.ML Mon Nov 03 12:24:13 1997 +0100
@@ -64,8 +64,8 @@
"!!X A n. [| Transset(X); A<=X; n: nat |] ==> \
\ nat_rec(n, A, %m r. Union(r)) <= X";
by (etac nat_induct 1);
-by (asm_simp_tac (!simpset addsimps [nat_rec_0]) 1);
-by (asm_simp_tac (!simpset addsimps [nat_rec_succ]) 1);
+by (asm_simp_tac (simpset() addsimps [nat_rec_0]) 1);
+by (asm_simp_tac (simpset() addsimps [nat_rec_succ]) 1);
by (Blast_tac 1);
qed "eclose_least_lemma";
@@ -86,7 +86,7 @@
by (etac (arg_subset_eclose RS subsetD) 2);
by (etac base 2);
by (rewtac Transset_def);
-by (blast_tac (!claset addIs [step,ecloseD]) 1);
+by (blast_tac (claset() addIs [step,ecloseD]) 1);
qed "eclose_induct_down";
goal Epsilon.thy "!!X. Transset(X) ==> eclose(X) = X";
@@ -112,7 +112,7 @@
goalw Epsilon.thy [Transset_def]
"!!i j. [| Transset(i); j:i |] ==> Memrel(i)-``{j} = j";
-by (blast_tac (!claset addSIs [MemrelI] addSEs [MemrelE]) 1);
+by (blast_tac (claset() addSIs [MemrelI] addSEs [MemrelE]) 1);
qed "under_Memrel";
(* j : eclose(A) ==> Memrel(eclose(A)) -`` j = j *)
@@ -126,7 +126,7 @@
by (rtac (kmemj RS eclose_induct) 1);
by (rtac wfrec_ssubst 1);
by (rtac wfrec_ssubst 1);
-by (asm_simp_tac (!simpset addsimps [under_Memrel_eclose,
+by (asm_simp_tac (simpset() addsimps [under_Memrel_eclose,
jmemi RSN (2,mem_eclose_sing_trans)]) 1);
qed "wfrec_eclose_eq";
@@ -139,7 +139,7 @@
goalw Epsilon.thy [transrec_def]
"transrec(a,H) = H(a, lam x:a. transrec(x,H))";
by (rtac wfrec_ssubst 1);
-by (simp_tac (!simpset addsimps [wfrec_eclose_eq2, arg_in_eclose_sing,
+by (simp_tac (simpset() addsimps [wfrec_eclose_eq2, arg_in_eclose_sing,
under_Memrel_eclose]) 1);
qed "transrec";
@@ -192,7 +192,7 @@
val [major] = goal Epsilon.thy "Ord(i) ==> rank(i) = i";
by (rtac (major RS trans_induct) 1);
by (stac rank 1);
-by (asm_simp_tac (!simpset addsimps [Ord_equality]) 1);
+by (asm_simp_tac (simpset() addsimps [Ord_equality]) 1);
qed "rank_of_Ord";
goal Epsilon.thy "!!a b. a:b ==> rank(a) < rank(b)";
@@ -299,20 +299,20 @@
qed "transrec2_0";
goal thy "(THE j. i=j) = i";
-by (blast_tac (!claset addSIs [the_equality]) 1);
+by (blast_tac (claset() addSIs [the_equality]) 1);
qed "THE_eq";
goal thy "transrec2(succ(i),a,b) = b(i, transrec2(i,a,b))";
by (rtac (transrec2_def RS def_transrec RS trans) 1);
-by (simp_tac (!simpset addsimps [succ_not_0, THE_eq, if_P]
+by (simp_tac (simpset() addsimps [succ_not_0, THE_eq, if_P]
setloop split_tac [expand_if]) 1);
by (Blast_tac 1);
qed "transrec2_succ";
goal thy "!!i. Limit(i) ==> transrec2(i,a,b) = (UN j<i. transrec2(j,a,b))";
by (rtac (transrec2_def RS def_transrec RS trans) 1);
-by (simp_tac (!simpset setloop split_tac [expand_if]) 1);
-by (blast_tac (!claset addSDs [Limit_has_0] addSEs [succ_LimitE]) 1);
+by (simp_tac (simpset() setloop split_tac [expand_if]) 1);
+by (blast_tac (claset() addSDs [Limit_has_0] addSEs [succ_LimitE]) 1);
qed "transrec2_Limit";
Addsimps [transrec2_0, transrec2_succ];
--- a/src/ZF/EquivClass.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/EquivClass.ML Mon Nov 03 12:24:13 1997 +0100
@@ -80,13 +80,13 @@
goal EquivClass.thy
"!!A r. equiv(A,r) ==> <x,y>: r <-> r``{x} = r``{y} & x:A & y:A";
-by (blast_tac (!claset addIs [eq_equiv_class, equiv_class_eq]
+by (blast_tac (claset() addIs [eq_equiv_class, equiv_class_eq]
addDs [equiv_type]) 1);
qed "equiv_class_eq_iff";
goal EquivClass.thy
"!!A r. [| equiv(A,r); x: A; y: A |] ==> r``{x} = r``{y} <-> <x,y>: r";
-by (blast_tac (!claset addIs [eq_equiv_class, equiv_class_eq]
+by (blast_tac (claset() addIs [eq_equiv_class, equiv_class_eq]
addDs [equiv_type]) 1);
qed "eq_equiv_class_iff";
@@ -114,7 +114,7 @@
goalw EquivClass.thy [quotient_def]
"!!A r. [| equiv(A,r); X: A/r; Y: A/r |] ==> X=Y | (X Int Y <= 0)";
-by (safe_tac (!claset addSIs [equiv_class_eq]));
+by (safe_tac (claset() addSIs [equiv_class_eq]));
by (assume_tac 1);
by (rewrite_goals_tac [equiv_def,trans_def,sym_def]);
by (Blast_tac 1);
@@ -143,8 +143,8 @@
\ !!x. x : A ==> b(x) : B |] \
\ ==> (UN x:X. b(x)) : B";
by (cut_facts_tac prems 1);
-by (safe_tac (!claset));
-by (asm_simp_tac (!simpset addsimps (UN_equiv_class::prems)) 1);
+by (safe_tac (claset()));
+by (asm_simp_tac (simpset() addsimps (UN_equiv_class::prems)) 1);
qed "UN_equiv_class_type";
(*Sufficient conditions for injectiveness. Could weaken premises!
@@ -156,7 +156,7 @@
\ !!x y. [| x:A; y:A; b(x)=b(y) |] ==> <x,y>:r |] \
\ ==> X=Y";
by (cut_facts_tac prems 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac equiv_class_eq 1);
by (REPEAT (ares_tac prems 1));
by (etac box_equals 1);
@@ -176,10 +176,10 @@
"[| equiv(A,r); congruent2(r,b); a: A |] ==> \
\ congruent(r, %x1. UN x2:r``{a}. b(x1,x2))";
by (cut_facts_tac (equivA::prems) 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac (equivA RS equiv_type RS subsetD RS SigmaE2) 1);
by (assume_tac 1);
-by (asm_simp_tac (!simpset addsimps [equivA RS UN_equiv_class,
+by (asm_simp_tac (simpset() addsimps [equivA RS UN_equiv_class,
congruent2_implies_congruent]) 1);
by (rewrite_goals_tac [congruent2_def,equiv_def,refl_def]);
by (Blast_tac 1);
@@ -189,7 +189,7 @@
"[| equiv(A,r); congruent2(r,b); a1: A; a2: A |] \
\ ==> (UN x1:r``{a1}. UN x2:r``{a2}. b(x1,x2)) = b(a1,a2)";
by (cut_facts_tac prems 1);
-by (asm_simp_tac (!simpset addsimps [equivA RS UN_equiv_class,
+by (asm_simp_tac (simpset() addsimps [equivA RS UN_equiv_class,
congruent2_implies_congruent,
congruent2_implies_congruent_UN]) 1);
qed "UN_equiv_class2";
@@ -201,7 +201,7 @@
\ !!x1 x2. [| x1: A; x2: A |] ==> b(x1,x2) : B \
\ |] ==> (UN x1:X1. UN x2:X2. b(x1,x2)) : B";
by (cut_facts_tac prems 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (REPEAT (ares_tac (prems@[UN_equiv_class_type,
congruent2_implies_congruent_UN,
congruent2_implies_congruent, quotientI]) 1));
@@ -216,7 +216,7 @@
\ !! y z w. [| w: A; <y,z> : r |] ==> b(w,y) = b(w,z) \
\ |] ==> congruent2(r,b)";
by (cut_facts_tac prems 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac trans 1);
by (REPEAT (ares_tac prems 1
ORELSE etac (subsetD RS SigmaE2) 1 THEN assume_tac 2 THEN assume_tac 1));
@@ -244,10 +244,10 @@
val congt' = rewrite_rule [congruent_def] congt;
by (cut_facts_tac [ZinA] 1);
by (rewtac congruent_def);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac (equivA RS equiv_type RS subsetD RS SigmaE2) 1);
by (assume_tac 1);
-by (asm_simp_tac (!simpset addsimps [commute,
+by (asm_simp_tac (simpset() addsimps [commute,
[equivA, congt] MRS UN_equiv_class]) 1);
by (REPEAT (ares_tac [congt' RS spec RS spec RS mp] 1));
qed "congruent_commuteI";
--- a/src/ZF/Finite.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Finite.ML Mon Nov 03 12:24:13 1997 +0100
@@ -44,7 +44,7 @@
goal Finite.thy
"!!b c. [| b: Fin(A); c: Fin(A) |] ==> b Un c : Fin(A)";
by (etac Fin_induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [Un_cons])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [Un_cons])));
qed "Fin_UnI";
Addsimps [Fin_UnI];
@@ -58,9 +58,9 @@
(*Every subset of a finite set is finite.*)
goal Finite.thy "!!b A. b: Fin(A) ==> ALL z. z<=b --> z: Fin(A)";
by (etac Fin_induct 1);
-by (simp_tac (!simpset addsimps [subset_empty_iff]) 1);
-by (asm_simp_tac (!simpset addsimps subset_cons_iff::distrib_simps) 1);
-by (safe_tac (!claset));
+by (simp_tac (simpset() addsimps [subset_empty_iff]) 1);
+by (asm_simp_tac (simpset() addsimps subset_cons_iff::distrib_simps) 1);
+by (safe_tac (claset()));
by (eres_inst_tac [("b","z")] (cons_Diff RS subst) 1);
by (Asm_simp_tac 1);
qed "Fin_subset_lemma";
@@ -76,7 +76,7 @@
\ |] ==> c<=b --> P(b-c)";
by (rtac (major RS Fin_induct) 1);
by (stac Diff_cons 2);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps (prems@[cons_subset_iff,
+by (ALLGOALS (asm_simp_tac (simpset() addsimps (prems@[cons_subset_iff,
Diff_subset RS Fin_subset]))));
qed "Fin_0_induct_lemma";
@@ -93,9 +93,9 @@
(*Functions from a finite ordinal*)
val prems = goal Finite.thy "n: nat ==> n->A <= Fin(nat*A)";
by (nat_ind_tac "n" prems 1);
-by (simp_tac (!simpset addsimps [Pi_empty1, subset_iff, cons_iff]) 1);
-by (asm_simp_tac (!simpset addsimps [succ_def, mem_not_refl RS cons_fun_eq]) 1);
-by (fast_tac (!claset addSIs [Fin.consI]) 1);
+by (simp_tac (simpset() addsimps [Pi_empty1, subset_iff, cons_iff]) 1);
+by (asm_simp_tac (simpset() addsimps [succ_def, mem_not_refl RS cons_fun_eq]) 1);
+by (fast_tac (claset() addSIs [Fin.consI]) 1);
qed "nat_fun_subset_Fin";
@@ -114,14 +114,14 @@
goal Finite.thy "!!h. h: A -||>B ==> h: domain(h) -> B";
by (etac FiniteFun.induct 1);
-by (simp_tac (!simpset addsimps [empty_fun, domain_0]) 1);
-by (asm_simp_tac (!simpset addsimps [fun_extend3, domain_cons]) 1);
+by (simp_tac (simpset() addsimps [empty_fun, domain_0]) 1);
+by (asm_simp_tac (simpset() addsimps [fun_extend3, domain_cons]) 1);
qed "FiniteFun_is_fun";
goal Finite.thy "!!h. h: A -||>B ==> domain(h) : Fin(A)";
by (etac FiniteFun.induct 1);
-by (simp_tac (!simpset addsimps [domain_0]) 1);
-by (asm_simp_tac (!simpset addsimps [domain_cons]) 1);
+by (simp_tac (simpset() addsimps [domain_0]) 1);
+by (asm_simp_tac (simpset() addsimps [domain_cons]) 1);
qed "FiniteFun_domain_Fin";
bind_thm ("FiniteFun_apply_type", FiniteFun_is_fun RS apply_type);
@@ -129,12 +129,12 @@
(*Every subset of a finite function is a finite function.*)
goal Finite.thy "!!b A. b: A-||>B ==> ALL z. z<=b --> z: A-||>B";
by (etac FiniteFun.induct 1);
-by (simp_tac (!simpset addsimps subset_empty_iff::FiniteFun.intrs) 1);
-by (asm_simp_tac (!simpset addsimps subset_cons_iff::distrib_simps) 1);
-by (safe_tac (!claset));
+by (simp_tac (simpset() addsimps subset_empty_iff::FiniteFun.intrs) 1);
+by (asm_simp_tac (simpset() addsimps subset_cons_iff::distrib_simps) 1);
+by (safe_tac (claset()));
by (eres_inst_tac [("b","z")] (cons_Diff RS subst) 1);
by (dtac (spec RS mp) 1 THEN assume_tac 1);
-by (fast_tac (!claset addSIs FiniteFun.intrs) 1);
+by (fast_tac (claset() addSIs FiniteFun.intrs) 1);
qed "FiniteFun_subset_lemma";
goal Finite.thy "!!c b A. [| c<=b; b: A-||>B |] ==> c: A-||>B";
--- a/src/ZF/IMP/Com.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/IMP/Com.ML Mon Nov 03 12:24:13 1997 +0100
@@ -8,9 +8,9 @@
val assign_type = prove_goalw Com.thy [assign_def]
"!!n. [| sigma:loc -> nat; n:nat |] ==> sigma[n/x] : loc -> nat"
- (fn _ => [ fast_tac (!claset addIs [apply_type,lam_type,if_type]) 1 ]);
+ (fn _ => [ fast_tac (claset() addIs [apply_type,lam_type,if_type]) 1 ]);
-val type_cs = !claset addSDs [evala.dom_subset RS subsetD,
+val type_cs = claset() addSDs [evala.dom_subset RS subsetD,
evalb.dom_subset RS subsetD,
evalc.dom_subset RS subsetD];
--- a/src/ZF/IMP/Denotation.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/IMP/Denotation.ML Mon Nov 03 12:24:13 1997 +0100
@@ -23,7 +23,7 @@
"!!a.[|a:aexp; sigma:loc->nat|] ==> A(a,sigma):nat"
(fn _ => [(etac aexp.induct 1),
(rewrite_goals_tac A_rewrite_rules),
- (ALLGOALS (fast_tac (!claset addSIs [apply_type])))]);
+ (ALLGOALS (fast_tac (claset() addSIs [apply_type])))]);
(**** Type_intr for B ****)
@@ -31,7 +31,7 @@
"!!b. [|b:bexp; sigma:loc->nat|] ==> B(b,sigma):bool"
(fn _ => [(etac bexp.induct 1),
(rewrite_goals_tac B_rewrite_rules),
- (ALLGOALS (fast_tac (!claset
+ (ALLGOALS (fast_tac (claset()
addSIs [apply_type,A_type]@bool_typechecks)))]);
(**** C_subset ****)
@@ -40,7 +40,7 @@
"!!c. c:com ==> C(c) <= (loc->nat)*(loc->nat)"
(fn _ => [(etac com.induct 1),
(rewrite_tac C_rewrite_rules),
- (ALLGOALS (fast_tac (!claset addDs [lfp_subset RS subsetD])))]);
+ (ALLGOALS (fast_tac (claset() addDs [lfp_subset RS subsetD])))]);
(**** Type_elims for C ****)
@@ -49,7 +49,7 @@
\ !!c. [| x:loc->nat; y:loc->nat |] ==> R |] \
\ ==> R"
(fn prems => [(cut_facts_tac prems 1),
- (fast_tac (!claset addSIs prems
+ (fast_tac (claset() addSIs prems
addDs [(C_subset RS subsetD)]) 1)]);
val C_type_fst = prove_goal Denotation.thy
@@ -68,6 +68,6 @@
val Gamma_bnd_mono = prove_goalw Denotation.thy [bnd_mono_def,Gamma_def]
"!!c. c:com ==> bnd_mono ((loc->nat)*(loc->nat),Gamma(b,c))"
- (fn prems => [(best_tac (!claset addEs [C_type]) 1)]);
+ (fn prems => [(best_tac (claset() addEs [C_type]) 1)]);
(**** End ***)
--- a/src/ZF/IMP/Equiv.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/IMP/Equiv.ML Mon Nov 03 12:24:13 1997 +0100
@@ -10,7 +10,7 @@
by (res_inst_tac [("x","a")] aexp.induct 1); (* struct. ind. *)
by (resolve_tac prems 1); (* type prem. *)
by (rewrite_goals_tac A_rewrite_rules); (* rewr. Den. *)
-by (TRYALL (fast_tac (!claset addSIs (evala.intrs@prems)
+by (TRYALL (fast_tac (claset() addSIs (evala.intrs@prems)
addSEs aexp_elim_cases)));
qed "aexp_iff";
@@ -18,7 +18,7 @@
val aexp1 = prove_goal Equiv.thy
"[| <a,sigma> -a-> n; a: aexp; sigma: loc -> nat |] \
\ ==> A(a,sigma) = n" (* destruction rule *)
- (fn prems => [(fast_tac (!claset addSIs ((aexp_iff RS iffD1)::prems)) 1)]);
+ (fn prems => [(fast_tac (claset() addSIs ((aexp_iff RS iffD1)::prems)) 1)]);
val aexp2 = aexp_iff RS iffD2;
@@ -39,14 +39,14 @@
by (res_inst_tac [("x","b")] bexp.induct 1); (* struct. ind. *)
by (resolve_tac prems 1); (* type prem. *)
by (rewrite_goals_tac B_rewrite_rules); (* rewr. Den. *)
-by (TRYALL (fast_tac (!claset addSIs (evalb.intrs@prems@[aexp2])
+by (TRYALL (fast_tac (claset() addSIs (evalb.intrs@prems@[aexp2])
addSDs [aexp1] addSEs bexp_elim_cases)));
qed "bexp_iff";
val bexp1 = prove_goal Equiv.thy
"[| <b,sigma> -b-> w; b: bexp; sigma: loc -> nat |]\
\ ==> B(b,sigma) = w"
- (fn prems => [(fast_tac (!claset addSIs ((bexp_iff RS iffD1)::prems)) 1)]);
+ (fn prems => [(fast_tac (claset() addSIs ((bexp_iff RS iffD1)::prems)) 1)]);
val bexp2 = bexp_iff RS iffD2;
goal Equiv.thy "!!c. <c,sigma> -c-> sigma' ==> <sigma,sigma'> : C(c)";
@@ -59,25 +59,25 @@
by (Fast_tac 1);
(* assign *)
-by (asm_full_simp_tac (!simpset addsimps [aexp1,assign_type] @ op_type_intrs) 1);
+by (asm_full_simp_tac (simpset() addsimps [aexp1,assign_type] @ op_type_intrs) 1);
(* comp *)
by (Fast_tac 1);
(* if *)
-by (asm_simp_tac (!simpset addsimps [bexp1]) 1);
-by (asm_simp_tac (!simpset addsimps [bexp1]) 1);
+by (asm_simp_tac (simpset() addsimps [bexp1]) 1);
+by (asm_simp_tac (simpset() addsimps [bexp1]) 1);
(* while *)
by (etac (rewrite_rule [Gamma_def]
(Gamma_bnd_mono RS lfp_Tarski RS ssubst)) 1);
-by (asm_simp_tac (!simpset addsimps [bexp1]) 1);
-by (fast_tac (!claset addSIs [bexp1,idI]@evalb_type_intrs) 1);
+by (asm_simp_tac (simpset() addsimps [bexp1]) 1);
+by (fast_tac (claset() addSIs [bexp1,idI]@evalb_type_intrs) 1);
by (etac (rewrite_rule [Gamma_def]
(Gamma_bnd_mono RS lfp_Tarski RS ssubst)) 1);
-by (asm_simp_tac (!simpset addsimps [bexp1]) 1);
-by (fast_tac (!claset addSIs [bexp1,compI]@evalb_type_intrs) 1);
+by (asm_simp_tac (simpset() addsimps [bexp1]) 1);
+by (fast_tac (claset() addSIs [bexp1,compI]@evalb_type_intrs) 1);
val com1 = result();
@@ -90,7 +90,7 @@
"c : com ==> ALL x:C(c). <c,fst(x)> -c-> snd(x)";
by (rtac (prem RS com.induct) 1);
by (rewrite_tac C_rewrite_rules);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (ALLGOALS Asm_full_simp_tac);
(* skip *)
@@ -107,7 +107,7 @@
(* while *)
by (EVERY1 [forward_tac [Gamma_bnd_mono], etac induct, atac]);
by (rewtac Gamma_def);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (EVERY1 [dtac bspec, atac]);
by (ALLGOALS Asm_full_simp_tac);
@@ -120,8 +120,8 @@
goal Equiv.thy
"ALL c:com. C(c) = {io:(loc->nat)*(loc->nat). <c,fst(io)> -c-> snd(io)}";
-by (fast_tac (!claset addIs [C_subset RS subsetD]
+by (fast_tac (claset() addIs [C_subset RS subsetD]
addEs [com2 RS bspec]
addDs [com1]
- addss (!simpset)) 1);
+ addss (simpset())) 1);
val com_equivalence = result();
--- a/src/ZF/InfDatatype.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/InfDatatype.ML Mon Nov 03 12:24:13 1997 +0100
@@ -19,12 +19,12 @@
by (rtac le_UN_Ord_lt_csucc 2);
by (rtac ballI 4 THEN
etac fun_Limit_VfromE 4 THEN REPEAT_SOME assume_tac);
-by (fast_tac (!claset addEs [Least_le RS lt_trans1, ltE]) 2);
+by (fast_tac (claset() addEs [Least_le RS lt_trans1, ltE]) 2);
by (rtac Pi_type 1);
by (rename_tac "w" 2);
by (etac fun_Limit_VfromE 2 THEN REPEAT_SOME assume_tac);
by (subgoal_tac "f`w : Vfrom(A, LEAST i. f`w : Vfrom(A,i))" 1);
-by (fast_tac (!claset addEs [LeastI, ltE]) 2);
+by (fast_tac (claset() addEs [LeastI, ltE]) 2);
by (eresolve_tac [[subset_refl, UN_upper] MRS Vfrom_mono RS subsetD] 1);
by (assume_tac 1);
qed "fun_Vcsucc_lemma";
@@ -32,20 +32,20 @@
goal InfDatatype.thy
"!!K. [| W <= Vfrom(A,csucc(K)); |W| le K; InfCard(K) \
\ |] ==> EX j. W <= Vfrom(A,j) & j < csucc(K)";
-by (asm_full_simp_tac (!simpset addsimps [subset_iff_id, fun_Vcsucc_lemma]) 1);
+by (asm_full_simp_tac (simpset() addsimps [subset_iff_id, fun_Vcsucc_lemma]) 1);
qed "subset_Vcsucc";
(*Version for arbitrary index sets*)
goal InfDatatype.thy
"!!K. [| |W| le K; InfCard(K); W <= Vfrom(A,csucc(K)) |] ==> \
\ W -> Vfrom(A,csucc(K)) <= Vfrom(A,csucc(K))";
-by (safe_tac (!claset addSDs [fun_Vcsucc_lemma, subset_Vcsucc]));
+by (safe_tac (claset() addSDs [fun_Vcsucc_lemma, subset_Vcsucc]));
by (resolve_tac [Vfrom RS ssubst] 1);
by (dtac fun_is_rel 1);
(*This level includes the function, and is below csucc(K)*)
by (res_inst_tac [("a1", "succ(succ(j Un ja))")] (UN_I RS UnI2) 1);
by (eresolve_tac [subset_trans RS PowI] 2);
-by (fast_tac (!claset addIs [Pair_in_Vfrom, Vfrom_UnI1, Vfrom_UnI2]) 2);
+by (fast_tac (claset() addIs [Pair_in_Vfrom, Vfrom_UnI1, Vfrom_UnI2]) 2);
by (REPEAT (ares_tac [ltD, InfCard_csucc, InfCard_is_Limit,
Limit_has_succ, Un_least_lt] 1));
qed "fun_Vcsucc";
--- a/src/ZF/List.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/List.ML Mon Nov 03 12:24:13 1997 +0100
@@ -28,7 +28,7 @@
goal List.thy "list(A) = {0} + (A * list(A))";
let open list; val rew = rewrite_rule con_defs in
-by (blast_tac (!claset addSIs (map rew intrs) addEs [rew elim]) 1)
+by (blast_tac (claset() addSIs (map rew intrs) addEs [rew elim]) 1)
end;
qed "list_unfold";
@@ -44,7 +44,7 @@
goalw List.thy (list.defs@list.con_defs) "list(univ(A)) <= univ(A)";
by (rtac lfp_lowerbound 1);
by (rtac (A_subset_univ RS univ_mono) 2);
-by (blast_tac (!claset addSIs [zero_in_univ, Inl_in_univ, Inr_in_univ,
+by (blast_tac (claset() addSIs [zero_in_univ, Inl_in_univ, Inr_in_univ,
Pair_in_univ]) 1);
qed "list_univ";
@@ -61,7 +61,7 @@
\ !!x y. [| x: A; y: list(A) |] ==> h(x,y): C(Cons(x,y)) \
\ |] ==> list_case(c,h,l) : C(l)";
by (rtac (major RS list.induct) 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps (list.case_eqns @ prems))));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps (list.case_eqns @ prems))));
qed "list_case_type";
@@ -96,7 +96,7 @@
goal List.thy "!!l. l: list(A) ==> tl(l) : list(A)";
by (etac list.elim 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps list.intrs)));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps list.intrs)));
qed "tl_type";
(** drop **)
@@ -123,14 +123,14 @@
goalw List.thy [drop_def]
"!!i l. [| i:nat; l: list(A) |] ==> drop(i,l) : list(A)";
by (etac nat_induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [tl_type])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [tl_type])));
qed "drop_type";
(** list_rec -- by Vset recursion **)
goal List.thy "list_rec(Nil,c,h) = c";
by (rtac (list_rec_def RS def_Vrec RS trans) 1);
-by (simp_tac (!simpset addsimps list.case_eqns) 1);
+by (simp_tac (simpset() addsimps list.case_eqns) 1);
qed "list_rec_Nil";
goal List.thy "list_rec(Cons(a,l), c, h) = h(a, l, list_rec(l,c,h))";
@@ -148,7 +148,7 @@
\ !!x y r. [| x:A; y: list(A); r: C(y) |] ==> h(x,y,r): C(Cons(x,y)) \
\ |] ==> list_rec(l,c,h) : C(l)";
by (list_ind_tac "l" prems 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps prems)));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps prems)));
qed "list_rec_type";
(** Versions for use with definitions **)
@@ -240,7 +240,7 @@
"!!l. xs: list(A) ==> \
\ set_of_list (xs@ys) = set_of_list(xs) Un set_of_list(ys)";
by (etac list.induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [Un_cons])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [Un_cons])));
qed "set_of_list_append";
@@ -259,7 +259,7 @@
[list_rec_type, map_type, map_type2, app_type, length_type,
rev_type, flat_type, list_add_type];
-simpset := !simpset setSolver (type_auto_tac list_typechecks);
+simpset_ref() := simpset() setSolver (type_auto_tac list_typechecks);
(*** theorems about map ***)
@@ -285,7 +285,7 @@
val prems = goal List.thy
"ls: list(list(A)) ==> map(h, flat(ls)) = flat(map(map(h),ls))";
by (list_ind_tac "ls" prems 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [map_app_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [map_app_distrib])));
qed "map_flat";
val prems = goal List.thy
@@ -328,13 +328,13 @@
val prems = goal List.thy
"xs: list(A) ==> length(rev(xs)) = length(xs)";
by (list_ind_tac "xs" prems 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [length_app, add_commute_succ])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [length_app, add_commute_succ])));
qed "length_rev";
val prems = goal List.thy
"ls: list(list(A)) ==> length(flat(ls)) = list_add(map(length,ls))";
by (list_ind_tac "ls" prems 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [length_app])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [length_app])));
qed "length_flat";
(** Length and drop **)
@@ -360,7 +360,7 @@
by (etac ([asm_rl, length_type, Ord_nat] MRS Ord_trans) 1);
by (assume_tac 1);
by (ALLGOALS Asm_simp_tac);
-by (ALLGOALS (blast_tac (!claset addIs [succ_in_naturalD, length_type])));
+by (ALLGOALS (blast_tac (claset() addIs [succ_in_naturalD, length_type])));
qed "drop_length_lemma";
bind_thm ("drop_length", (drop_length_lemma RS bspec));
@@ -380,14 +380,14 @@
val prems = goal List.thy
"ls: list(list(A)) ==> flat(ls@ms) = flat(ls)@flat(ms)";
by (list_ind_tac "ls" prems 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [app_assoc])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [app_assoc])));
qed "flat_app_distrib";
(*** theorems about rev ***)
val prems = goal List.thy "l: list(A) ==> rev(map(h,l)) = map(h,rev(l))";
by (list_ind_tac "l" prems 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [map_app_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [map_app_distrib])));
qed "rev_map_distrib";
(*Simplifier needs the premises as assumptions because rewriting will not
@@ -397,18 +397,18 @@
goal List.thy
"!!xs. [| xs: list(A); ys: list(A) |] ==> rev(xs@ys) = rev(ys)@rev(xs)";
by (etac list.induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [app_right_Nil,app_assoc])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [app_right_Nil,app_assoc])));
qed "rev_app_distrib";
val prems = goal List.thy "l: list(A) ==> rev(rev(l))=l";
by (list_ind_tac "l" prems 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [rev_app_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [rev_app_distrib])));
qed "rev_rev_ident";
val prems = goal List.thy
"ls: list(list(A)) ==> rev(flat(ls)) = flat(map(rev,rev(ls)))";
by (list_ind_tac "ls" prems 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps
+by (ALLGOALS (asm_simp_tac (simpset() addsimps
[map_app_distrib, flat_app_distrib, rev_app_distrib, app_right_Nil])));
qed "rev_flat";
@@ -421,7 +421,7 @@
by (cut_facts_tac prems 1);
by (list_ind_tac "xs" prems 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps [add_0_right, add_assoc RS sym])));
+ (asm_simp_tac (simpset() addsimps [add_0_right, add_assoc RS sym])));
by (rtac (add_commute RS subst_context) 1);
by (REPEAT (ares_tac [refl, list_add_type] 1));
qed "list_add_app";
@@ -430,13 +430,13 @@
"l: list(nat) ==> list_add(rev(l)) = list_add(l)";
by (list_ind_tac "l" prems 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps [list_add_app, add_0_right])));
+ (asm_simp_tac (simpset() addsimps [list_add_app, add_0_right])));
qed "list_add_rev";
val prems = goal List.thy
"ls: list(list(nat)) ==> list_add(flat(ls)) = list_add(map(list_add,ls))";
by (list_ind_tac "ls" prems 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [list_add_app])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [list_add_app])));
by (REPEAT (ares_tac [refl, list_add_type, map_type, add_commute] 1));
qed "list_add_flat";
@@ -449,6 +449,6 @@
\ |] ==> P(l)";
by (rtac (major RS rev_rev_ident RS subst) 1);
by (rtac (major RS rev_type RS list.induct) 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps prems)));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps prems)));
qed "list_append_induct";
--- a/src/ZF/Nat.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Nat.ML Mon Nov 03 12:24:13 1997 +0100
@@ -56,7 +56,7 @@
val major::prems = goal Nat.thy
"[| n: nat; P(0); !!x. [| x: nat; P(x) |] ==> P(succ(x)) |] ==> P(n)";
by (rtac ([nat_def, nat_bnd_mono, major] MRS def_induct) 1);
-by (fast_tac (!claset addIs prems) 1);
+by (fast_tac (claset() addIs prems) 1);
qed "nat_induct";
(*Perform induction on n, then prove the n:nat subgoal using prems. *)
@@ -93,7 +93,7 @@
qed "Ord_nat";
goalw Nat.thy [Limit_def] "Limit(nat)";
-by (safe_tac (!claset addSIs [ltI, nat_succI, Ord_nat]));
+by (safe_tac (claset() addSIs [ltI, nat_succI, Ord_nat]));
by (etac ltD 1);
qed "Limit_nat";
@@ -104,7 +104,7 @@
by (rtac subset_imp_le 1);
by (rtac subsetI 1);
by (etac nat_induct 1);
-by (blast_tac (!claset addIs [Limit_has_succ RS ltD, ltI, Limit_is_Ord]) 2);
+by (blast_tac (claset() addIs [Limit_has_succ RS ltD, ltI, Limit_is_Ord]) 2);
by (REPEAT (ares_tac [Limit_has_0 RS ltD,
Ord_nat, Limit_is_Ord] 1));
qed "nat_le_Limit";
@@ -134,7 +134,7 @@
by (nat_ind_tac "n" prems 1);
by (ALLGOALS
(asm_simp_tac
- (!simpset addsimps (prems@distrib_simps@[le0_iff, le_succ_iff]))));
+ (simpset() addsimps (prems@distrib_simps@[le0_iff, le_succ_iff]))));
qed "nat_induct_from_lemma";
(*Induction starting from m rather than 0*)
@@ -186,11 +186,11 @@
(** nat_case **)
goalw Nat.thy [nat_case_def] "nat_case(a,b,0) = a";
-by (blast_tac (!claset addIs [the_equality]) 1);
+by (blast_tac (claset() addIs [the_equality]) 1);
qed "nat_case_0";
goalw Nat.thy [nat_case_def] "nat_case(a,b,succ(m)) = b(m)";
-by (blast_tac (!claset addIs [the_equality]) 1);
+by (blast_tac (claset() addIs [the_equality]) 1);
qed "nat_case_succ";
Addsimps [nat_case_0, nat_case_succ];
@@ -199,7 +199,7 @@
"[| n: nat; a: C(0); !!m. m: nat ==> b(m): C(succ(m)) \
\ |] ==> nat_case(a,b,n) : C(n)";
by (rtac (major RS nat_induct) 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps prems)));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps prems)));
qed "nat_case_type";
@@ -216,7 +216,7 @@
val [prem] = goal Nat.thy
"m: nat ==> nat_rec(succ(m),a,b) = b(m, nat_rec(m,a,b))";
by (rtac nat_rec_trans 1);
-by (simp_tac (!simpset addsimps [prem, Memrel_iff, vimage_singleton_iff]) 1);
+by (simp_tac (simpset() addsimps [prem, Memrel_iff, vimage_singleton_iff]) 1);
qed "nat_rec_succ";
(** The union of two natural numbers is a natural number -- their maximum **)
--- a/src/ZF/OrdQuant.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/OrdQuant.ML Mon Nov 03 12:24:13 1997 +0100
@@ -38,7 +38,7 @@
(*Congruence rule for rewriting*)
qed_goalw "oall_cong" thy [oall_def]
"[| a=a'; !!x. x<a' ==> P(x) <-> P'(x) |] ==> oall(a,P) <-> oall(a',P')"
- (fn prems=> [ (simp_tac (!simpset addsimps prems) 1) ]);
+ (fn prems=> [ (simp_tac (simpset() addsimps prems) 1) ]);
(*** existential quantifier for ordinals ***)
@@ -64,14 +64,14 @@
qed_goalw "oex_cong" thy [oex_def]
"[| a=a'; !!x. x<a' ==> P(x) <-> P'(x) \
\ |] ==> oex(a,P) <-> oex(a',P')"
- (fn prems=> [ (simp_tac (!simpset addsimps prems addcongs [conj_cong]) 1) ]);
+ (fn prems=> [ (simp_tac (simpset() addsimps prems addcongs [conj_cong]) 1) ]);
(*** Rules for Ordinal-Indexed Unions ***)
qed_goalw "OUN_I" thy [OUnion_def]
"!!i. [| a<i; b: B(a) |] ==> b: (UN z<i. B(z))"
- (fn _=> [ fast_tac (!claset addSEs [ltE]) 1 ]);
+ (fn _=> [ fast_tac (claset() addSEs [ltE]) 1 ]);
qed_goalw "OUN_E" thy [OUnion_def]
"[| b : (UN z<i. B(z)); !!a.[| b: B(a); a<i |] ==> R |] ==> R"
@@ -82,13 +82,13 @@
qed_goalw "OUN_iff" thy [oex_def]
"b : (UN x<i. B(x)) <-> (EX x<i. b : B(x))"
- (fn _=> [ (fast_tac (!claset addIs [OUN_I] addSEs [OUN_E]) 1) ]);
+ (fn _=> [ (fast_tac (claset() addIs [OUN_I] addSEs [OUN_E]) 1) ]);
qed_goal "OUN_cong" thy
"[| i=j; !!x. x<j ==> C(x)=D(x) |] ==> (UN x<i. C(x)) = (UN x<j. D(x))"
(fn prems=>
[ rtac equality_iffI 1,
- simp_tac (!simpset addcongs [oex_cong] addsimps (OUN_iff::prems)) 1 ]);
+ simp_tac (simpset() addcongs [oex_cong] addsimps (OUN_iff::prems)) 1 ]);
AddSIs [oallI];
AddIs [oexI, OUN_I];
@@ -98,7 +98,7 @@
val Ord_atomize = atomize (("oall", [ospec])::ZF_conn_pairs,
ZF_mem_pairs);
-simpset := !simpset setmksimps (map mk_meta_eq o Ord_atomize o gen_all)
+simpset_ref() := simpset() setmksimps (map mk_meta_eq o Ord_atomize o gen_all)
addsimps [oall_simp, ltD RS beta]
addcongs [oall_cong, oex_cong, OUN_cong];
@@ -107,6 +107,6 @@
\ |] ==> P(i)";
by (rtac (major RS conjE) 1);
by (etac Ord_induct 1 THEN assume_tac 1);
-by (fast_tac (!claset addIs prems) 1);
+by (fast_tac (claset() addIs prems) 1);
qed "lt_induct";
--- a/src/ZF/Order.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Order.ML Mon Nov 03 12:24:13 1997 +0100
@@ -38,18 +38,18 @@
goalw Order.thy [irrefl_def, part_ord_def, tot_ord_def,
trans_on_def, well_ord_def]
"!!r. [| wf[A](r); linear(A,r) |] ==> well_ord(A,r)";
-by (asm_simp_tac (!simpset addsimps [wf_on_not_refl]) 1);
-by (fast_tac (!claset addEs [linearE, wf_on_asym, wf_on_chain3]) 1);
+by (asm_simp_tac (simpset() addsimps [wf_on_not_refl]) 1);
+by (fast_tac (claset() addEs [linearE, wf_on_asym, wf_on_chain3]) 1);
qed "well_ordI";
goalw Order.thy [well_ord_def]
"!!r. well_ord(A,r) ==> wf[A](r)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
qed "well_ord_is_wf";
goalw Order.thy [well_ord_def, tot_ord_def, part_ord_def]
"!!r. well_ord(A,r) ==> trans[A](r)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
qed "well_ord_is_trans_on";
goalw Order.thy [well_ord_def, tot_ord_def]
@@ -108,12 +108,12 @@
goalw Order.thy [tot_ord_def]
"!!A B r. [| tot_ord(A,r); B<=A |] ==> tot_ord(B,r)";
-by (fast_tac (!claset addSEs [part_ord_subset, linear_subset]) 1);
+by (fast_tac (claset() addSEs [part_ord_subset, linear_subset]) 1);
qed "tot_ord_subset";
goalw Order.thy [well_ord_def]
"!!A B r. [| well_ord(A,r); B<=A |] ==> well_ord(B,r)";
-by (fast_tac (!claset addSEs [tot_ord_subset, wf_on_subset_A]) 1);
+by (fast_tac (claset() addSEs [tot_ord_subset, wf_on_subset_A]) 1);
qed "well_ord_subset";
@@ -128,7 +128,7 @@
qed "trans_on_Int_iff";
goalw Order.thy [part_ord_def] "part_ord(A,r Int A*A) <-> part_ord(A,r)";
-by (simp_tac (!simpset addsimps [irrefl_Int_iff, trans_on_Int_iff]) 1);
+by (simp_tac (simpset() addsimps [irrefl_Int_iff, trans_on_Int_iff]) 1);
qed "part_ord_Int_iff";
goalw Order.thy [linear_def] "linear(A,r Int A*A) <-> linear(A,r)";
@@ -136,7 +136,7 @@
qed "linear_Int_iff";
goalw Order.thy [tot_ord_def] "tot_ord(A,r Int A*A) <-> tot_ord(A,r)";
-by (simp_tac (!simpset addsimps [part_ord_Int_iff, linear_Int_iff]) 1);
+by (simp_tac (simpset() addsimps [part_ord_Int_iff, linear_Int_iff]) 1);
qed "tot_ord_Int_iff";
goalw Order.thy [wf_on_def, wf_def] "wf[A](r Int A*A) <-> wf[A](r)";
@@ -144,7 +144,7 @@
qed "wf_on_Int_iff";
goalw Order.thy [well_ord_def] "well_ord(A,r Int A*A) <-> well_ord(A,r)";
-by (simp_tac (!simpset addsimps [tot_ord_Int_iff, wf_on_Int_iff]) 1);
+by (simp_tac (simpset() addsimps [tot_ord_Int_iff, wf_on_Int_iff]) 1);
qed "well_ord_Int_iff";
@@ -159,7 +159,7 @@
qed "trans_on_0";
goalw Order.thy [part_ord_def] "part_ord(0,r)";
-by (simp_tac (!simpset addsimps [irrefl_0, trans_on_0]) 1);
+by (simp_tac (simpset() addsimps [irrefl_0, trans_on_0]) 1);
qed "part_ord_0";
goalw Order.thy [linear_def] "linear(0,r)";
@@ -167,7 +167,7 @@
qed "linear_0";
goalw Order.thy [tot_ord_def] "tot_ord(0,r)";
-by (simp_tac (!simpset addsimps [part_ord_0, linear_0]) 1);
+by (simp_tac (simpset() addsimps [part_ord_0, linear_0]) 1);
qed "tot_ord_0";
goalw Order.thy [wf_on_def, wf_def] "wf[0](r)";
@@ -175,7 +175,7 @@
qed "wf_on_0";
goalw Order.thy [well_ord_def] "well_ord(0,r)";
-by (simp_tac (!simpset addsimps [tot_ord_0, wf_on_0]) 1);
+by (simp_tac (simpset() addsimps [tot_ord_0, wf_on_0]) 1);
qed "well_ord_0";
@@ -204,12 +204,12 @@
"[| f: bij(A, B); \
\ !!x y. [| x:A; y:A |] ==> <x, y> : r <-> <f`x, f`y> : s \
\ |] ==> f: ord_iso(A,r,B,s)";
-by (blast_tac (!claset addSIs prems) 1);
+by (blast_tac (claset() addSIs prems) 1);
qed "ord_isoI";
goalw Order.thy [ord_iso_def, mono_map_def]
"!!f. f: ord_iso(A,r,B,s) ==> f: mono_map(A,r,B,s)";
-by (blast_tac (!claset addSDs [bij_is_fun]) 1);
+by (blast_tac (claset() addSDs [bij_is_fun]) 1);
qed "ord_iso_is_mono_map";
goalw Order.thy [ord_iso_def]
@@ -231,13 +231,13 @@
by (etac (bspec RS bspec RS iffD2) 1);
by (REPEAT (eresolve_tac [asm_rl,
bij_converse_bij RS bij_is_fun RS apply_type] 1));
-by (asm_simp_tac (!simpset addsimps [right_inverse_bij]) 1);
+by (asm_simp_tac (simpset() addsimps [right_inverse_bij]) 1);
qed "ord_iso_converse";
(*Rewriting with bijections and converse (function inverse)*)
val bij_inverse_ss =
- !simpset setSolver (type_auto_tac [ord_iso_is_bij, bij_is_fun, apply_type,
+ simpset() setSolver (type_auto_tac [ord_iso_is_bij, bij_is_fun, apply_type,
bij_converse_bij, comp_fun, comp_bij])
addsimps [right_inverse_bij, left_inverse_bij];
@@ -252,21 +252,21 @@
(*Symmetry of similarity*)
goalw Order.thy [ord_iso_def]
"!!f. f: ord_iso(A,r,B,s) ==> converse(f): ord_iso(B,s,A,r)";
-by (fast_tac (!claset addss bij_inverse_ss) 1);
+by (fast_tac (claset() addss bij_inverse_ss) 1);
qed "ord_iso_sym";
(*Transitivity of similarity*)
goalw Order.thy [mono_map_def]
"!!f. [| g: mono_map(A,r,B,s); f: mono_map(B,s,C,t) |] ==> \
\ (f O g): mono_map(A,r,C,t)";
-by (fast_tac (!claset addss bij_inverse_ss) 1);
+by (fast_tac (claset() addss bij_inverse_ss) 1);
qed "mono_map_trans";
(*Transitivity of similarity: the order-isomorphism relation*)
goalw Order.thy [ord_iso_def]
"!!f. [| g: ord_iso(A,r,B,s); f: ord_iso(B,s,C,t) |] ==> \
\ (f O g): ord_iso(A,r,C,t)";
-by (fast_tac (!claset addss bij_inverse_ss) 1);
+by (fast_tac (claset() addss bij_inverse_ss) 1);
qed "ord_iso_trans";
(** Two monotone maps can make an order-isomorphism **)
@@ -274,12 +274,12 @@
goalw Order.thy [ord_iso_def, mono_map_def]
"!!f g. [| f: mono_map(A,r,B,s); g: mono_map(B,s,A,r); \
\ f O g = id(B); g O f = id(A) |] ==> f: ord_iso(A,r,B,s)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (REPEAT_FIRST (ares_tac [fg_imp_bijective]));
by (Blast_tac 1);
by (subgoal_tac "<g`(f`x), g`(f`y)> : r" 1);
-by (blast_tac (!claset addIs [apply_funtype]) 2);
-by (asm_full_simp_tac (!simpset addsimps [comp_eq_id_iff RS iffD1]) 1);
+by (blast_tac (claset() addIs [apply_funtype]) 2);
+by (asm_full_simp_tac (simpset() addsimps [comp_eq_id_iff RS iffD1]) 1);
qed "mono_ord_isoI";
goal Order.thy
@@ -299,34 +299,34 @@
goalw Order.thy [part_ord_def, irrefl_def, trans_on_def, ord_iso_def]
"!!A B r. [| part_ord(B,s); f: ord_iso(A,r,B,s) |] ==> part_ord(A,r)";
by (Asm_simp_tac 1);
-by (fast_tac (!claset addIs [bij_is_fun RS apply_type]) 1);
+by (fast_tac (claset() addIs [bij_is_fun RS apply_type]) 1);
qed "part_ord_ord_iso";
goalw Order.thy [linear_def, ord_iso_def]
"!!A B r. [| linear(B,s); f: ord_iso(A,r,B,s) |] ==> linear(A,r)";
by (Asm_simp_tac 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (dres_inst_tac [("x1", "f`x"), ("x", "f`xa")] (bspec RS bspec) 1);
-by (safe_tac (!claset addSEs [bij_is_fun RS apply_type]));
+by (safe_tac (claset() addSEs [bij_is_fun RS apply_type]));
by (dres_inst_tac [("t", "op `(converse(f))")] subst_context 1);
-by (asm_full_simp_tac (!simpset addsimps [left_inverse_bij]) 1);
+by (asm_full_simp_tac (simpset() addsimps [left_inverse_bij]) 1);
qed "linear_ord_iso";
goalw Order.thy [wf_on_def, wf_def, ord_iso_def]
"!!A B r. [| wf[B](s); f: ord_iso(A,r,B,s) |] ==> wf[A](r)";
(*reversed &-congruence rule handles context of membership in A*)
-by (asm_full_simp_tac (!simpset addcongs [conj_cong2]) 1);
-by (safe_tac (!claset));
+by (asm_full_simp_tac (simpset() addcongs [conj_cong2]) 1);
+by (safe_tac (claset()));
by (dres_inst_tac [("x", "{f`z. z:Z Int A}")] spec 1);
-by (safe_tac (!claset addSIs [equalityI]));
+by (safe_tac (claset() addSIs [equalityI]));
by (ALLGOALS (blast_tac
- (!claset addSDs [equalityD1] addIs [bij_is_fun RS apply_type])));
+ (claset() addSDs [equalityD1] addIs [bij_is_fun RS apply_type])));
qed "wf_on_ord_iso";
goalw Order.thy [well_ord_def, tot_ord_def]
"!!A B r. [| well_ord(B,s); f: ord_iso(A,r,B,s) |] ==> well_ord(A,r)";
by (fast_tac
- (!claset addSEs [part_ord_ord_iso, linear_ord_iso, wf_on_ord_iso]) 1);
+ (claset() addSEs [part_ord_ord_iso, linear_ord_iso, wf_on_ord_iso]) 1);
qed "well_ord_ord_iso";
@@ -354,7 +354,7 @@
by (EVERY1 [dtac (ord_iso_is_bij RS bij_is_fun RS apply_type),
assume_tac]);
(*Now we also know f`x : pred(A,x,r); contradiction! *)
-by (asm_full_simp_tac (!simpset addsimps [well_ord_def, pred_def]) 1);
+by (asm_full_simp_tac (simpset() addsimps [well_ord_def, pred_def]) 1);
qed "well_ord_iso_predE";
(*Simple consequence of Lemma 6.1*)
@@ -368,8 +368,8 @@
by (REPEAT (*because there are two symmetric cases*)
(EVERY [eresolve_tac [pred_subset RSN (2, well_ord_subset) RS
well_ord_iso_predE] 1,
- blast_tac (!claset addSIs [predI]) 2,
- asm_simp_tac (!simpset addsimps [trans_pred_pred_eq]) 1]));
+ blast_tac (claset() addSIs [predI]) 2,
+ asm_simp_tac (simpset() addsimps [trans_pred_pred_eq]) 1]));
qed "well_ord_iso_pred_eq";
(*Does not assume r is a wellordering!*)
@@ -378,11 +378,11 @@
\ f `` pred(A,a,r) = pred(B, f`a, s)";
by (etac CollectE 1);
by (asm_simp_tac
- (!simpset addsimps [[bij_is_fun, Collect_subset] MRS image_fun]) 1);
+ (simpset() addsimps [[bij_is_fun, Collect_subset] MRS image_fun]) 1);
by (rtac equalityI 1);
-by (safe_tac (!claset addSEs [bij_is_fun RS apply_type]));
+by (safe_tac (claset() addSEs [bij_is_fun RS apply_type]));
by (rtac RepFun_eqI 1);
-by (blast_tac (!claset addSIs [right_inverse_bij RS sym]) 1);
+by (blast_tac (claset() addSIs [right_inverse_bij RS sym]) 1);
by (asm_simp_tac bij_inverse_ss 1);
qed "ord_iso_image_pred";
@@ -391,11 +391,11 @@
goal Order.thy
"!!r. [| f : ord_iso(A,r,B,s); a:A |] ==> \
\ restrict(f, pred(A,a,r)) : ord_iso(pred(A,a,r), r, pred(B, f`a, s), s)";
-by (asm_simp_tac (!simpset addsimps [ord_iso_image_pred RS sym]) 1);
+by (asm_simp_tac (simpset() addsimps [ord_iso_image_pred RS sym]) 1);
by (rewtac ord_iso_def);
by (etac CollectE 1);
by (rtac CollectI 1);
-by (asm_full_simp_tac (!simpset addsimps [pred_def]) 2);
+by (asm_full_simp_tac (simpset() addsimps [pred_def]) 2);
by (eresolve_tac [[bij_is_inj, pred_subset] MRS restrict_bij] 1);
qed "ord_iso_restrict_pred";
@@ -414,12 +414,12 @@
by (forward_tac [ord_iso_restrict_pred] 1 THEN
REPEAT1 (eresolve_tac [asm_rl, predI] 1));
by (asm_full_simp_tac
- (!simpset addsimps [well_ord_is_trans_on, trans_pred_pred_eq]) 1);
+ (simpset() addsimps [well_ord_is_trans_on, trans_pred_pred_eq]) 1);
by (eresolve_tac [ord_iso_sym RS ord_iso_trans] 1);
by (assume_tac 1);
qed "well_ord_iso_preserving";
-val bij_apply_cs = !claset addSIs [bij_converse_bij]
+val bij_apply_cs = claset() addSIs [bij_converse_bij]
addIs [ord_iso_is_bij, bij_is_fun, apply_funtype];
(*See Halmos, page 72*)
@@ -430,7 +430,7 @@
by (forward_tac [well_ord_iso_subset_lemma] 1);
by (res_inst_tac [("f","converse(f)"), ("g","g")] ord_iso_trans 1);
by (REPEAT_FIRST (ares_tac [subset_refl, ord_iso_sym]));
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (forward_tac [ord_iso_converse] 1);
by (EVERY (map (blast_tac bij_apply_cs) [1,1,1]));
by (asm_full_simp_tac bij_inverse_ss 1);
@@ -445,7 +445,7 @@
by (subgoals_tac ["f`x : B", "g`x : B", "linear(B,s)"] 1);
by (REPEAT (blast_tac bij_apply_cs 3));
by (dtac well_ord_ord_iso 2 THEN etac ord_iso_sym 2);
-by (asm_full_simp_tac (!simpset addsimps [tot_ord_def, well_ord_def]) 2);
+by (asm_full_simp_tac (simpset() addsimps [tot_ord_def, well_ord_def]) 2);
by (linear_case_tac 1);
by (DEPTH_SOLVE (eresolve_tac [asm_rl, well_ord_iso_unique_lemma RS notE] 1));
qed "well_ord_iso_unique";
@@ -467,12 +467,12 @@
goalw Order.thy [ord_iso_map_def]
"converse(ord_iso_map(A,r,B,s)) = ord_iso_map(B,s,A,r)";
-by (blast_tac (!claset addIs [ord_iso_sym]) 1);
+by (blast_tac (claset() addIs [ord_iso_sym]) 1);
qed "converse_ord_iso_map";
goalw Order.thy [ord_iso_map_def, function_def]
"!!B. well_ord(B,s) ==> function(ord_iso_map(A,r,B,s))";
-by (blast_tac (!claset addIs [well_ord_iso_pred_eq,
+by (blast_tac (claset() addIs [well_ord_iso_pred_eq,
ord_iso_sym, ord_iso_trans]) 1);
qed "function_ord_iso_map";
@@ -480,7 +480,7 @@
"!!B. well_ord(B,s) ==> ord_iso_map(A,r,B,s) \
\ : domain(ord_iso_map(A,r,B,s)) -> range(ord_iso_map(A,r,B,s))";
by (asm_simp_tac
- (!simpset addsimps [Pi_iff, function_ord_iso_map,
+ (simpset() addsimps [Pi_iff, function_ord_iso_map,
ord_iso_map_subset RS domain_times_range]) 1);
qed "ord_iso_map_fun";
@@ -488,15 +488,15 @@
"!!B. [| well_ord(A,r); well_ord(B,s) |] ==> ord_iso_map(A,r,B,s) \
\ : mono_map(domain(ord_iso_map(A,r,B,s)), r, \
\ range(ord_iso_map(A,r,B,s)), s)";
-by (asm_simp_tac (!simpset addsimps [ord_iso_map_fun]) 1);
-by (safe_tac (!claset));
+by (asm_simp_tac (simpset() addsimps [ord_iso_map_fun]) 1);
+by (safe_tac (claset()));
by (subgoals_tac ["x:A", "xa:A", "y:B", "ya:B"] 1);
by (REPEAT
- (blast_tac (!claset addSEs [ord_iso_map_subset RS subsetD RS SigmaE]) 2));
+ (blast_tac (claset() addSEs [ord_iso_map_subset RS subsetD RS SigmaE]) 2));
by (asm_simp_tac
- (!simpset addsimps [ord_iso_map_fun RSN (2,apply_equality)]) 1);
+ (simpset() addsimps [ord_iso_map_fun RSN (2,apply_equality)]) 1);
by (rewtac ord_iso_map_def);
-by (safe_tac (!claset addSEs [UN_E]));
+by (safe_tac (claset() addSEs [UN_E]));
by (rtac well_ord_iso_preserving 1 THEN REPEAT_FIRST assume_tac);
qed "ord_iso_map_mono_map";
@@ -507,7 +507,7 @@
by (rtac well_ord_mono_ord_isoI 1);
by (resolve_tac [converse_ord_iso_map RS subst] 4);
by (asm_simp_tac
- (!simpset addsimps [ord_iso_map_subset RS converse_converse]) 4);
+ (simpset() addsimps [ord_iso_map_subset RS converse_converse]) 4);
by (REPEAT (ares_tac [ord_iso_map_mono_map] 3));
by (ALLGOALS (etac well_ord_subset));
by (ALLGOALS (resolve_tac [domain_ord_iso_map, range_ord_iso_map]));
@@ -518,7 +518,7 @@
"!!B. [| well_ord(A,r); well_ord(B,s); \
\ a: A; a ~: domain(ord_iso_map(A,r,B,s)) \
\ |] ==> domain(ord_iso_map(A,r,B,s)) <= pred(A, a, r)";
-by (safe_tac (!claset addSIs [predI]));
+by (safe_tac (claset() addSIs [predI]));
(*Case analysis on xaa vs a in r *)
by (forw_inst_tac [("A","A")] well_ord_is_linear 1);
by (linear_case_tac 1);
@@ -530,7 +530,7 @@
by (forward_tac [ord_iso_restrict_pred] 1 THEN
REPEAT1 (eresolve_tac [asm_rl, predI] 1));
by (asm_full_simp_tac
- (!simpset addsimps [well_ord_is_trans_on, trans_pred_pred_eq]) 1);
+ (simpset() addsimps [well_ord_is_trans_on, trans_pred_pred_eq]) 1);
by (Blast_tac 1);
qed "domain_ord_iso_map_subset";
@@ -550,8 +550,8 @@
by (swap_res_tac [bexI] 1);
by (assume_tac 2);
by (rtac equalityI 1);
-(*not (!claset) below; that would use rules like domainE!*)
-by (blast_tac (!claset addSEs [predE]) 2);
+(*not (claset()) below; that would use rules like domainE!*)
+by (blast_tac (claset() addSEs [predE]) 2);
by (REPEAT (ares_tac [domain_ord_iso_map_subset] 1));
qed "domain_ord_iso_map_cases";
@@ -562,7 +562,7 @@
\ (EX y:B. range(ord_iso_map(A,r,B,s))= pred(B,y,s))";
by (resolve_tac [converse_ord_iso_map RS subst] 1);
by (asm_simp_tac
- (!simpset addsimps [range_converse, domain_ord_iso_map_cases]) 1);
+ (simpset() addsimps [range_converse, domain_ord_iso_map_cases]) 1);
qed "range_ord_iso_map_cases";
(*Kunen's Theorem 6.3: Fundamental Theorem for Well-Ordered Sets*)
@@ -575,13 +575,13 @@
by (forw_inst_tac [("B","B")] range_ord_iso_map_cases 2);
by (REPEAT_FIRST (eresolve_tac [asm_rl, disjE, bexE]));
by (ALLGOALS (dtac ord_iso_map_ord_iso THEN' assume_tac THEN'
- asm_full_simp_tac (!simpset addsimps [bexI])));
+ asm_full_simp_tac (simpset() addsimps [bexI])));
by (resolve_tac [wf_on_not_refl RS notE] 1);
by (etac well_ord_is_wf 1);
by (assume_tac 1);
by (subgoal_tac "<x,y>: ord_iso_map(A,r,B,s)" 1);
by (dtac rangeI 1);
-by (asm_full_simp_tac (!simpset addsimps [pred_def]) 1);
+by (asm_full_simp_tac (simpset() addsimps [pred_def]) 1);
by (rewtac ord_iso_map_def);
by (Blast_tac 1);
qed "well_ord_trichotomy";
@@ -591,27 +591,27 @@
goalw Order.thy [irrefl_def]
"!!A. irrefl(A,r) ==> irrefl(A,converse(r))";
-by (blast_tac (!claset addSIs [converseI]) 1);
+by (blast_tac (claset() addSIs [converseI]) 1);
qed "irrefl_converse";
goalw Order.thy [trans_on_def]
"!!A. trans[A](r) ==> trans[A](converse(r))";
-by (blast_tac (!claset addSIs [converseI]) 1);
+by (blast_tac (claset() addSIs [converseI]) 1);
qed "trans_on_converse";
goalw Order.thy [part_ord_def]
"!!A. part_ord(A,r) ==> part_ord(A,converse(r))";
-by (blast_tac (!claset addSIs [irrefl_converse, trans_on_converse]) 1);
+by (blast_tac (claset() addSIs [irrefl_converse, trans_on_converse]) 1);
qed "part_ord_converse";
goalw Order.thy [linear_def]
"!!A. linear(A,r) ==> linear(A,converse(r))";
-by (blast_tac (!claset addSIs [converseI]) 1);
+by (blast_tac (claset() addSIs [converseI]) 1);
qed "linear_converse";
goalw Order.thy [tot_ord_def]
"!!A. tot_ord(A,r) ==> tot_ord(A,converse(r))";
-by (blast_tac (!claset addSIs [part_ord_converse, linear_converse]) 1);
+by (blast_tac (claset() addSIs [part_ord_converse, linear_converse]) 1);
qed "tot_ord_converse";
@@ -630,7 +630,7 @@
by (res_inst_tac [("a","x")] ex1I 1);
by (Blast_tac 2);
by (rewrite_goals_tac [tot_ord_def, linear_def]);
-by (Blast.depth_tac (!claset) 7 1);
+by (Blast.depth_tac (claset()) 7 1);
qed "well_ord_imp_ex1_first";
goal thy "!!r. [| well_ord(A,r); B<=A; B~=0 |] ==> (THE b. first(b,B,r)) : B";
--- a/src/ZF/OrderArith.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/OrderArith.ML Mon Nov 03 12:24:13 1997 +0100
@@ -82,17 +82,17 @@
by (thin_tac "y : A + B" 2);
by (rtac ballI 2);
by (eres_inst_tac [("r","r"),("a","x")] wf_on_induct 2 THEN assume_tac 2);
-by (best_tac (!claset addSEs [raddE, bspec RS mp]) 2);
+by (best_tac (claset() addSEs [raddE, bspec RS mp]) 2);
(*Returning to main part of proof*)
by (REPEAT_FIRST (eresolve_tac [sumE, ssubst]));
by (Blast_tac 1);
by (eres_inst_tac [("r","s"),("a","ya")] wf_on_induct 1 THEN assume_tac 1);
-by (best_tac (!claset addSEs [raddE, bspec RS mp]) 1);
+by (best_tac (claset() addSEs [raddE, bspec RS mp]) 1);
qed "wf_on_radd";
goal OrderArith.thy
"!!r s. [| wf(r); wf(s) |] ==> wf(radd(field(r),r,field(s),s))";
-by (asm_full_simp_tac (!simpset addsimps [wf_iff_wf_on_field]) 1);
+by (asm_full_simp_tac (simpset() addsimps [wf_iff_wf_on_field]) 1);
by (rtac (field_radd RSN (2, wf_on_subset_A)) 1);
by (REPEAT (ares_tac [wf_on_radd] 1));
qed "wf_radd";
@@ -101,9 +101,9 @@
"!!r s. [| well_ord(A,r); well_ord(B,s) |] ==> \
\ well_ord(A+B, radd(A,r,B,s))";
by (rtac well_ordI 1);
-by (asm_full_simp_tac (!simpset addsimps [well_ord_def, wf_on_radd]) 1);
+by (asm_full_simp_tac (simpset() addsimps [well_ord_def, wf_on_radd]) 1);
by (asm_full_simp_tac
- (!simpset addsimps [well_ord_def, tot_ord_def, linear_radd]) 1);
+ (simpset() addsimps [well_ord_def, tot_ord_def, linear_radd]) 1);
qed "well_ord_radd";
(** An ord_iso congruence law **)
@@ -114,7 +114,7 @@
by (res_inst_tac
[("d", "case(%x. Inl(converse(f)`x), %y. Inr(converse(g)`y))")]
lam_bijective 1);
-by (safe_tac (!claset addSEs [sumE]));
+by (safe_tac (claset() addSEs [sumE]));
by (ALLGOALS (asm_simp_tac bij_inverse_ss));
qed "sum_bij";
@@ -122,14 +122,14 @@
"!!r s. [| f: ord_iso(A,r,A',r'); g: ord_iso(B,s,B',s') |] ==> \
\ (lam z:A+B. case(%x. Inl(f`x), %y. Inr(g`y), z)) \
\ : ord_iso(A+B, radd(A,r,B,s), A'+B', radd(A',r',B',s'))";
-by (safe_tac (!claset addSIs [sum_bij]));
+by (safe_tac (claset() addSIs [sum_bij]));
(*Do the beta-reductions now*)
by (ALLGOALS (Asm_full_simp_tac));
-by (safe_tac (!claset));
+by (safe_tac (claset()));
(*8 subgoals!*)
by (ALLGOALS
(asm_full_simp_tac
- (!simpset addcongs [conj_cong] addsimps [bij_is_fun RS apply_type])));
+ (simpset() addcongs [conj_cong] addsimps [bij_is_fun RS apply_type])));
qed "sum_ord_iso_cong";
(*Could we prove an ord_iso result? Perhaps
@@ -139,11 +139,11 @@
\ (lam z:A+B. case(%x. x, %y. y, z)) : bij(A+B, A Un B)";
by (res_inst_tac [("d", "%z. if(z:A, Inl(z), Inr(z))")]
lam_bijective 1);
-by (blast_tac (!claset addSIs [if_type]) 2);
+by (blast_tac (claset() addSIs [if_type]) 2);
by (DEPTH_SOLVE_1 (eresolve_tac [case_type, UnI1, UnI2] 1));
-by (safe_tac (!claset));
-by (ALLGOALS (asm_simp_tac (!simpset setloop split_tac [expand_if])));
-by (blast_tac (!claset addEs [equalityE]) 1);
+by (safe_tac (claset()));
+by (ALLGOALS (asm_simp_tac (simpset() setloop split_tac [expand_if])));
+by (blast_tac (claset() addEs [equalityE]) 1);
qed "sum_disjoint_bij";
(** Associativity **)
@@ -153,7 +153,7 @@
\ : bij((A+B)+C, A+(B+C))";
by (res_inst_tac [("d", "case(%x. Inl(Inl(x)), case(%x. Inl(Inr(x)), Inr))")]
lam_bijective 1);
-by (ALLGOALS (asm_simp_tac (!simpset setloop etac sumE)));
+by (ALLGOALS (asm_simp_tac (simpset() setloop etac sumE)));
qed "sum_assoc_bij";
goal OrderArith.thy
@@ -221,13 +221,13 @@
by (eres_inst_tac [("a","x")] wf_on_induct 1 THEN assume_tac 1);
by (rtac ballI 1);
by (eres_inst_tac [("a","b")] wf_on_induct 1 THEN assume_tac 1);
-by (best_tac (!claset addSEs [rmultE, bspec RS mp]) 1);
+by (best_tac (claset() addSEs [rmultE, bspec RS mp]) 1);
qed "wf_on_rmult";
goal OrderArith.thy
"!!r s. [| wf(r); wf(s) |] ==> wf(rmult(field(r),r,field(s),s))";
-by (asm_full_simp_tac (!simpset addsimps [wf_iff_wf_on_field]) 1);
+by (asm_full_simp_tac (simpset() addsimps [wf_iff_wf_on_field]) 1);
by (rtac (field_rmult RSN (2, wf_on_subset_A)) 1);
by (REPEAT (ares_tac [wf_on_rmult] 1));
qed "wf_rmult";
@@ -236,9 +236,9 @@
"!!r s. [| well_ord(A,r); well_ord(B,s) |] ==> \
\ well_ord(A*B, rmult(A,r,B,s))";
by (rtac well_ordI 1);
-by (asm_full_simp_tac (!simpset addsimps [well_ord_def, wf_on_rmult]) 1);
+by (asm_full_simp_tac (simpset() addsimps [well_ord_def, wf_on_rmult]) 1);
by (asm_full_simp_tac
- (!simpset addsimps [well_ord_def, tot_ord_def, linear_rmult]) 1);
+ (simpset() addsimps [well_ord_def, tot_ord_def, linear_rmult]) 1);
qed "well_ord_rmult";
@@ -249,7 +249,7 @@
\ (lam <x,y>:A*B. <f`x, g`y>) : bij(A*B, C*D)";
by (res_inst_tac [("d", "%<x,y>. <converse(f)`x, converse(g)`y>")]
lam_bijective 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (ALLGOALS (asm_simp_tac bij_inverse_ss));
qed "prod_bij";
@@ -257,16 +257,16 @@
"!!r s. [| f: ord_iso(A,r,A',r'); g: ord_iso(B,s,B',s') |] ==> \
\ (lam <x,y>:A*B. <f`x, g`y>) \
\ : ord_iso(A*B, rmult(A,r,B,s), A'*B', rmult(A',r',B',s'))";
-by (safe_tac (!claset addSIs [prod_bij]));
+by (safe_tac (claset() addSIs [prod_bij]));
by (ALLGOALS
- (asm_full_simp_tac (!simpset addsimps [bij_is_fun RS apply_type])));
+ (asm_full_simp_tac (simpset() addsimps [bij_is_fun RS apply_type])));
by (Blast_tac 1);
-by (blast_tac (!claset addIs [bij_is_inj RS inj_apply_equality]) 1);
+by (blast_tac (claset() addIs [bij_is_inj RS inj_apply_equality]) 1);
qed "prod_ord_iso_cong";
goal OrderArith.thy "(lam z:A. <x,z>) : bij(A, {x}*A)";
by (res_inst_tac [("d", "snd")] lam_bijective 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (ALLGOALS Asm_simp_tac);
qed "singleton_prod_bij";
@@ -276,7 +276,7 @@
\ (lam z:A. <x,z>) : ord_iso(A, r, {x}*A, rmult({x}, xr, A, r))";
by (resolve_tac [singleton_prod_bij RS ord_isoI] 1);
by (Asm_simp_tac 1);
-by (blast_tac (!claset addEs [well_ord_is_wf RS wf_on_not_refl RS notE]) 1);
+by (blast_tac (claset() addEs [well_ord_is_wf RS wf_on_not_refl RS notE]) 1);
qed "singleton_prod_ord_iso";
(*Here we build a complicated function term, then simplify it using
@@ -290,10 +290,10 @@
by (rtac singleton_prod_bij 1);
by (rtac sum_disjoint_bij 1);
by (Blast_tac 1);
-by (asm_simp_tac (!simpset addcongs [case_cong] addsimps [id_conv]) 1);
+by (asm_simp_tac (simpset() addcongs [case_cong] addsimps [id_conv]) 1);
by (resolve_tac [comp_lam RS trans RS sym] 1);
-by (fast_tac (!claset addSEs [case_type]) 1);
-by (asm_simp_tac (!simpset addsimps [case_case]) 1);
+by (fast_tac (claset() addSEs [case_type]) 1);
+by (asm_simp_tac (simpset() addsimps [case_case]) 1);
qed "prod_sum_singleton_bij";
goal OrderArith.thy
@@ -304,11 +304,11 @@
\ pred(A,a,r)*B Un {a}*pred(B,b,s), rmult(A,r,B,s))";
by (resolve_tac [prod_sum_singleton_bij RS ord_isoI] 1);
by (asm_simp_tac
- (!simpset addsimps [pred_iff, well_ord_is_wf RS wf_on_not_refl]) 1);
+ (simpset() addsimps [pred_iff, well_ord_is_wf RS wf_on_not_refl]) 1);
by (Asm_simp_tac 1);
by (REPEAT_FIRST (eresolve_tac [SigmaE, sumE, predE]));
by (ALLGOALS Asm_simp_tac);
-by (ALLGOALS (blast_tac (!claset addEs [well_ord_is_wf RS wf_on_asym])));
+by (ALLGOALS (blast_tac (claset() addEs [well_ord_is_wf RS wf_on_asym])));
qed "prod_sum_singleton_ord_iso";
(** Distributive law **)
@@ -318,7 +318,7 @@
\ : bij((A+B)*C, (A*C)+(B*C))";
by (res_inst_tac
[("d", "case(%<x,y>.<Inl(x),y>, %<x,y>.<Inr(x),y>)")] lam_bijective 1);
-by (safe_tac (!claset addSEs [sumE]));
+by (safe_tac (claset() addSEs [sumE]));
by (ALLGOALS Asm_simp_tac);
qed "sum_prod_distrib_bij";
@@ -336,7 +336,7 @@
goal OrderArith.thy
"(lam <<x,y>, z>:(A*B)*C. <x,<y,z>>) : bij((A*B)*C, A*(B*C))";
by (res_inst_tac [("d", "%<x, <y,z>>. <<x,y>, z>")] lam_bijective 1);
-by (ALLGOALS (asm_simp_tac (!simpset setloop etac SigmaE)));
+by (ALLGOALS (asm_simp_tac (simpset() setloop etac SigmaE)));
qed "prod_assoc_bij";
goal OrderArith.thy
@@ -376,17 +376,17 @@
goalw OrderArith.thy [irrefl_def, rvimage_def]
"!!A B. [| f: inj(A,B); irrefl(B,r) |] ==> irrefl(A, rvimage(A,f,r))";
-by (blast_tac (!claset addIs [inj_is_fun RS apply_type]) 1);
+by (blast_tac (claset() addIs [inj_is_fun RS apply_type]) 1);
qed "irrefl_rvimage";
goalw OrderArith.thy [trans_on_def, rvimage_def]
"!!A B. [| f: inj(A,B); trans[B](r) |] ==> trans[A](rvimage(A,f,r))";
-by (blast_tac (!claset addIs [inj_is_fun RS apply_type]) 1);
+by (blast_tac (claset() addIs [inj_is_fun RS apply_type]) 1);
qed "trans_on_rvimage";
goalw OrderArith.thy [part_ord_def]
"!!A B. [| f: inj(A,B); part_ord(B,r) |] ==> part_ord(A, rvimage(A,f,r))";
-by (blast_tac (!claset addSIs [irrefl_rvimage, trans_on_rvimage]) 1);
+by (blast_tac (claset() addSIs [irrefl_rvimage, trans_on_rvimage]) 1);
qed "part_ord_rvimage";
(** Linearity **)
@@ -395,15 +395,15 @@
"[| f: inj(A,B); linear(B,r) |] ==> linear(A,rvimage(A,f,r))";
by (rewtac linear_def); (*Note! the premises are NOT rewritten*)
by (REPEAT_FIRST (ares_tac [ballI]));
-by (asm_simp_tac (!simpset addsimps [rvimage_iff]) 1);
+by (asm_simp_tac (simpset() addsimps [rvimage_iff]) 1);
by (cut_facts_tac [finj] 1);
by (res_inst_tac [("x","f`x"), ("y","f`y")] (lin RS linearE) 1);
-by (REPEAT_SOME (blast_tac (!claset addIs [apply_funtype])));
+by (REPEAT_SOME (blast_tac (claset() addIs [apply_funtype])));
qed "linear_rvimage";
goalw OrderArith.thy [tot_ord_def]
"!!A B. [| f: inj(A,B); tot_ord(B,r) |] ==> tot_ord(A, rvimage(A,f,r))";
-by (blast_tac (!claset addSIs [part_ord_rvimage, linear_rvimage]) 1);
+by (blast_tac (claset() addSIs [part_ord_rvimage, linear_rvimage]) 1);
qed "tot_ord_rvimage";
@@ -415,8 +415,8 @@
by (subgoal_tac "ALL z:A. f`z=f`y --> z: Ba" 1);
by (Blast_tac 1);
by (eres_inst_tac [("a","f`y")] wf_on_induct 1);
-by (blast_tac (!claset addSIs [apply_funtype]) 1);
-by (blast_tac (!claset addSIs [apply_funtype]
+by (blast_tac (claset() addSIs [apply_funtype]) 1);
+by (blast_tac (claset() addSIs [apply_funtype]
addSDs [rvimage_iff RS iffD1]) 1);
qed "wf_on_rvimage";
@@ -425,13 +425,13 @@
"!!r. [| f: inj(A,B); well_ord(B,r) |] ==> well_ord(A, rvimage(A,f,r))";
by (rtac well_ordI 1);
by (rewrite_goals_tac [well_ord_def, tot_ord_def]);
-by (blast_tac (!claset addSIs [wf_on_rvimage, inj_is_fun]) 1);
-by (blast_tac (!claset addSIs [linear_rvimage]) 1);
+by (blast_tac (claset() addSIs [wf_on_rvimage, inj_is_fun]) 1);
+by (blast_tac (claset() addSIs [linear_rvimage]) 1);
qed "well_ord_rvimage";
goalw OrderArith.thy [ord_iso_def]
"!!A B. f: bij(A,B) ==> f: ord_iso(A, rvimage(A,f,s), B, s)";
-by (asm_full_simp_tac (!simpset addsimps [rvimage_iff]) 1);
+by (asm_full_simp_tac (simpset() addsimps [rvimage_iff]) 1);
qed "ord_iso_rvimage";
goalw OrderArith.thy [ord_iso_def, rvimage_def]
--- a/src/ZF/OrderType.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/OrderType.ML Mon Nov 03 12:24:13 1997 +0100
@@ -18,7 +18,7 @@
by (rtac well_ordI 1);
by (rtac (wf_Memrel RS wf_imp_wf_on) 1);
by (resolve_tac [prem RS ltE] 1);
-by (asm_simp_tac (!simpset addsimps [linear_def, Memrel_iff,
+by (asm_simp_tac (simpset() addsimps [linear_def, Memrel_iff,
[ltI, prem] MRS lt_trans2 RS ltD]) 1);
by (REPEAT (resolve_tac [ballI, Ord_linear] 1));
by (REPEAT (eresolve_tac [asm_rl, Ord_in_Ord] 1));
@@ -31,8 +31,8 @@
The smaller ordinal is an initial segment of the larger *)
goalw OrderType.thy [pred_def, lt_def]
"!!i j. j<i ==> pred(i, j, Memrel(i)) = j";
-by (asm_simp_tac (!simpset addsimps [Memrel_iff]) 1);
-by (blast_tac (!claset addIs [Ord_trans]) 1);
+by (asm_simp_tac (simpset() addsimps [Memrel_iff]) 1);
+by (blast_tac (claset() addIs [Ord_trans]) 1);
qed "lt_pred_Memrel";
goalw OrderType.thy [pred_def,Memrel_def]
@@ -46,10 +46,10 @@
by (etac ltE 1);
by (rtac (well_ord_Memrel RS well_ord_iso_predE) 1 THEN
assume_tac 3 THEN assume_tac 1);
-by (asm_full_simp_tac (!simpset addsimps [ord_iso_def]) 1);
+by (asm_full_simp_tac (simpset() addsimps [ord_iso_def]) 1);
(*Combining the two simplifications causes looping*)
-by (asm_simp_tac (!simpset addsimps [Memrel_iff]) 1);
-by (fast_tac (!claset addSEs [bij_is_fun RS apply_type] addEs [Ord_trans]) 1);
+by (asm_simp_tac (simpset() addsimps [Memrel_iff]) 1);
+by (fast_tac (claset() addSEs [bij_is_fun RS apply_type] addEs [Ord_trans]) 1);
qed "Ord_iso_implies_eq_lemma";
(*Kunen's Theorem 7.3 (ii), page 16. Isomorphic ordinals are equal*)
@@ -79,7 +79,7 @@
by (Asm_simp_tac 1);
by (etac (wfrec_on RS trans) 1);
by (assume_tac 1);
-by (asm_simp_tac (!simpset addsimps [subset_iff, image_lam,
+by (asm_simp_tac (simpset() addsimps [subset_iff, image_lam,
vimage_singleton_iff]) 1);
qed "ordermap_eq_image";
@@ -87,7 +87,7 @@
goal OrderType.thy
"!!r. [| wf[A](r); x:A |] ==> \
\ ordermap(A,r) ` x = {ordermap(A,r)`y . y : pred(A,x,r)}";
-by (asm_simp_tac (!simpset addsimps [ordermap_eq_image, pred_subset,
+by (asm_simp_tac (simpset() addsimps [ordermap_eq_image, pred_subset,
ordermap_type RS image_fun]) 1);
qed "ordermap_pred_unfold";
@@ -103,24 +103,24 @@
goalw OrderType.thy [well_ord_def, tot_ord_def, part_ord_def]
"!!r. [| well_ord(A,r); x:A |] ==> Ord(ordermap(A,r) ` x)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (wf_on_ind_tac "x" [] 1);
-by (asm_simp_tac (!simpset addsimps [ordermap_pred_unfold]) 1);
+by (asm_simp_tac (simpset() addsimps [ordermap_pred_unfold]) 1);
by (rtac (Ord_is_Transset RSN (2,OrdI)) 1);
by (rewrite_goals_tac [pred_def,Transset_def]);
by (Blast_tac 2);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (ordermap_elim_tac 1);
-by (fast_tac (!claset addSEs [trans_onD]) 1);
+by (fast_tac (claset() addSEs [trans_onD]) 1);
qed "Ord_ordermap";
goalw OrderType.thy [ordertype_def]
"!!r. well_ord(A,r) ==> Ord(ordertype(A,r))";
by (stac ([ordermap_type, subset_refl] MRS image_fun) 1);
by (rtac (Ord_is_Transset RSN (2,OrdI)) 1);
-by (blast_tac (!claset addIs [Ord_ordermap]) 2);
+by (blast_tac (claset() addIs [Ord_ordermap]) 2);
by (rewrite_goals_tac [Transset_def,well_ord_def]);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (ordermap_elim_tac 1);
by (Blast_tac 1);
qed "Ord_ordertype";
@@ -139,9 +139,9 @@
goalw OrderType.thy [well_ord_def, tot_ord_def]
"!!r. [| ordermap(A,r)`w : ordermap(A,r)`x; well_ord(A,r); \
\ w: A; x: A |] ==> <w,x>: r";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (linear_case_tac 1);
-by (blast_tac (!claset addSEs [mem_not_refl RS notE]) 1);
+by (blast_tac (claset() addSEs [mem_not_refl RS notE]) 1);
by (dtac ordermap_mono 1);
by (REPEAT_SOME assume_tac);
by (etac mem_asym 1);
@@ -154,10 +154,10 @@
goalw OrderType.thy [well_ord_def, tot_ord_def, bij_def, inj_def]
"!!r. well_ord(A,r) ==> ordermap(A,r) : bij(A, ordertype(A,r))";
-by (fast_tac (!claset addSIs [ordermap_type, ordermap_surj]
+by (fast_tac (claset() addSIs [ordermap_type, ordermap_surj]
addEs [linearE]
addDs [ordermap_mono]
- addss (!simpset addsimps [mem_not_refl])) 1);
+ addss (simpset() addsimps [mem_not_refl])) 1);
qed "ordermap_bij";
(*** Isomorphisms involving ordertype ***)
@@ -165,10 +165,10 @@
goalw OrderType.thy [ord_iso_def]
"!!r. well_ord(A,r) ==> \
\ ordermap(A,r) : ord_iso(A,r, ordertype(A,r), Memrel(ordertype(A,r)))";
-by (safe_tac (!claset addSEs [well_ord_is_wf]
+by (safe_tac (claset() addSEs [well_ord_is_wf]
addSIs [ordermap_type RS apply_type,
ordermap_mono, ordermap_bij]));
-by (blast_tac (!claset addSDs [converse_ordermap_mono]) 1);
+by (blast_tac (claset() addSDs [converse_ordermap_mono]) 1);
qed "ordertype_ord_iso";
goal OrderType.thy
@@ -177,7 +177,7 @@
by (forward_tac [well_ord_ord_iso] 1 THEN assume_tac 1);
by (rtac Ord_iso_implies_eq 1
THEN REPEAT (etac Ord_ordertype 1));
-by (deepen_tac (!claset addIs [ord_iso_trans, ord_iso_sym]
+by (deepen_tac (claset() addIs [ord_iso_trans, ord_iso_sym]
addSEs [ordertype_ord_iso]) 0 1);
qed "ordertype_eq";
@@ -202,8 +202,8 @@
by (rtac ord_iso_trans 1);
by (eresolve_tac [le_well_ord_Memrel RS ordertype_ord_iso] 2);
by (resolve_tac [id_bij RS ord_isoI] 1);
-by (asm_simp_tac (!simpset addsimps [id_conv, Memrel_iff]) 1);
-by (fast_tac (!claset addEs [ltE, Ord_in_Ord, Ord_trans]) 1);
+by (asm_simp_tac (simpset() addsimps [id_conv, Memrel_iff]) 1);
+by (fast_tac (claset() addEs [ltE, Ord_in_Ord, Ord_trans]) 1);
qed "le_ordertype_Memrel";
(*"Ord(i) ==> ordertype(i, Memrel(i)) = i"*)
@@ -230,15 +230,15 @@
\ ordermap(pred(A,y,r), r) ` z = ordermap(A, r) ` z";
by (forward_tac [[well_ord_is_wf, pred_subset] MRS wf_on_subset_A] 1);
by (wf_on_ind_tac "z" [] 1);
-by (safe_tac (!claset addSEs [predE]));
+by (safe_tac (claset() addSEs [predE]));
by (asm_simp_tac
- (!simpset addsimps [ordermap_pred_unfold, well_ord_is_wf, pred_iff]) 1);
+ (simpset() addsimps [ordermap_pred_unfold, well_ord_is_wf, pred_iff]) 1);
(*combining these two simplifications LOOPS! *)
-by (asm_simp_tac (!simpset addsimps [pred_pred_eq]) 1);
-by (asm_full_simp_tac (!simpset addsimps [pred_def]) 1);
+by (asm_simp_tac (simpset() addsimps [pred_pred_eq]) 1);
+by (asm_full_simp_tac (simpset() addsimps [pred_def]) 1);
by (rtac (refl RSN (2,RepFun_cong)) 1);
by (dtac well_ord_is_trans_on 1);
-by (fast_tac (!claset addSEs [trans_onD]) 1);
+by (fast_tac (claset() addSEs [trans_onD]) 1);
qed "ordermap_pred_eq_ordermap";
goalw OrderType.thy [ordertype_def]
@@ -251,9 +251,9 @@
goal OrderType.thy
"!!r. [| well_ord(A,r); x:A |] ==> \
\ ordertype(pred(A,x,r),r) <= ordertype(A,r)";
-by (asm_simp_tac (!simpset addsimps [ordertype_unfold,
+by (asm_simp_tac (simpset() addsimps [ordertype_unfold,
pred_subset RSN (2, well_ord_subset)]) 1);
-by (fast_tac (!claset addIs [ordermap_pred_eq_ordermap]
+by (fast_tac (claset() addIs [ordermap_pred_eq_ordermap]
addEs [predE]) 1);
qed "ordertype_pred_subset";
@@ -273,10 +273,10 @@
"!!A r. well_ord(A,r) ==> \
\ ordertype(A,r) = {ordertype(pred(A,x,r),r). x:A}";
by (rtac equalityI 1);
-by (safe_tac (!claset addSIs [ordertype_pred_lt RS ltD]));
+by (safe_tac (claset() addSIs [ordertype_pred_lt RS ltD]));
by (fast_tac
- (!claset addss
- (!simpset addsimps [ordertype_def,
+ (claset() addss
+ (simpset() addsimps [ordertype_def,
well_ord_is_wf RS ordermap_eq_image,
ordermap_type RS image_fun,
ordermap_pred_eq_ordermap,
@@ -292,15 +292,15 @@
by (rtac conjI 1);
by (etac well_ord_Memrel 1);
by (rewrite_goals_tac [Ord_def, Transset_def, pred_def, Memrel_def]);
-by (Blast.depth_tac (!claset) 8 1);
+by (Blast.depth_tac (claset()) 8 1);
qed "Ord_is_Ord_alt";
(*proof by lcp*)
goalw OrderType.thy [Ord_alt_def, Ord_def, Transset_def, well_ord_def,
tot_ord_def, part_ord_def, trans_on_def]
"!!i. Ord_alt(i) ==> Ord(i)";
-by (asm_full_simp_tac (!simpset addsimps [Memrel_iff, pred_Memrel]) 1);
-by (blast_tac (!claset addSEs [equalityE]) 1);
+by (asm_full_simp_tac (simpset() addsimps [Memrel_iff, pred_Memrel]) 1);
+by (blast_tac (claset() addSEs [equalityE]) 1);
qed "Ord_alt_is_Ord";
@@ -312,7 +312,7 @@
goal OrderType.thy "(lam z:A+0. case(%x. x, %y. y, z)) : bij(A+0, A)";
by (res_inst_tac [("d", "Inl")] lam_bijective 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (ALLGOALS Asm_simp_tac);
qed "bij_sum_0";
@@ -320,12 +320,12 @@
"!!A r. well_ord(A,r) ==> ordertype(A+0, radd(A,r,0,s)) = ordertype(A,r)";
by (resolve_tac [bij_sum_0 RS ord_isoI RS ordertype_eq] 1);
by (assume_tac 2);
-by (fast_tac (!claset addss (!simpset addsimps [radd_Inl_iff, Memrel_iff])) 1);
+by (fast_tac (claset() addss (simpset() addsimps [radd_Inl_iff, Memrel_iff])) 1);
qed "ordertype_sum_0_eq";
goal OrderType.thy "(lam z:0+A. case(%x. x, %y. y, z)) : bij(0+A, A)";
by (res_inst_tac [("d", "Inr")] lam_bijective 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (ALLGOALS Asm_simp_tac);
qed "bij_0_sum";
@@ -333,7 +333,7 @@
"!!A r. well_ord(A,r) ==> ordertype(0+A, radd(0,s,A,r)) = ordertype(A,r)";
by (resolve_tac [bij_0_sum RS ord_isoI RS ordertype_eq] 1);
by (assume_tac 2);
-by (fast_tac (!claset addss (!simpset addsimps [radd_Inr_iff, Memrel_iff])) 1);
+by (fast_tac (claset() addss (simpset() addsimps [radd_Inr_iff, Memrel_iff])) 1);
qed "ordertype_0_sum_eq";
(** Initial segments of radd. Statements by Grabczewski **)
@@ -344,10 +344,10 @@
\ (lam x:pred(A,a,r). Inl(x)) \
\ : bij(pred(A,a,r), pred(A+B, Inl(a), radd(A,r,B,s)))";
by (res_inst_tac [("d", "case(%x. x, %y. y)")] lam_bijective 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (ALLGOALS
(asm_full_simp_tac
- (!simpset addsimps [radd_Inl_iff, radd_Inr_Inl_iff])));
+ (simpset() addsimps [radd_Inl_iff, radd_Inr_Inl_iff])));
qed "pred_Inl_bij";
goal OrderType.thy
@@ -356,7 +356,7 @@
\ ordertype(pred(A,a,r), r)";
by (resolve_tac [pred_Inl_bij RS ord_isoI RS ord_iso_sym RS ordertype_eq] 1);
by (REPEAT_FIRST (ares_tac [pred_subset, well_ord_subset]));
-by (asm_full_simp_tac (!simpset addsimps [radd_Inl_iff, pred_def]) 1);
+by (asm_full_simp_tac (simpset() addsimps [radd_Inl_iff, pred_def]) 1);
qed "ordertype_pred_Inl_eq";
goalw OrderType.thy [pred_def, id_def]
@@ -364,7 +364,7 @@
\ id(A+pred(B,b,s)) \
\ : bij(A+pred(B,b,s), pred(A+B, Inr(b), radd(A,r,B,s)))";
by (res_inst_tac [("d", "%z. z")] lam_bijective 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (ALLGOALS (Asm_full_simp_tac));
qed "pred_Inr_bij";
@@ -373,7 +373,7 @@
\ ordertype(pred(A+B, Inr(b), radd(A,r,B,s)), radd(A,r,B,s)) = \
\ ordertype(A+pred(B,b,s), radd(A,r,pred(B,b,s),s))";
by (resolve_tac [pred_Inr_bij RS ord_isoI RS ord_iso_sym RS ordertype_eq] 1);
-by (fast_tac (!claset addss (!simpset addsimps [pred_def, id_def])) 2);
+by (fast_tac (claset() addss (simpset() addsimps [pred_def, id_def])) 2);
by (REPEAT_FIRST (ares_tac [well_ord_radd, pred_subset, well_ord_subset]));
qed "ordertype_pred_Inr_eq";
@@ -387,12 +387,12 @@
(** Ordinal addition with zero **)
goalw OrderType.thy [oadd_def] "!!i. Ord(i) ==> i++0 = i";
-by (asm_simp_tac (!simpset addsimps [Memrel_0, ordertype_sum_0_eq,
+by (asm_simp_tac (simpset() addsimps [Memrel_0, ordertype_sum_0_eq,
ordertype_Memrel, well_ord_Memrel]) 1);
qed "oadd_0";
goalw OrderType.thy [oadd_def] "!!i. Ord(i) ==> 0++i = i";
-by (asm_simp_tac (!simpset addsimps [Memrel_0, ordertype_0_sum_eq,
+by (asm_simp_tac (simpset() addsimps [Memrel_0, ordertype_0_sum_eq,
ordertype_Memrel, well_ord_Memrel]) 1);
qed "oadd_0_left";
@@ -406,7 +406,7 @@
by (rtac ltI 1);
by (REPEAT (ares_tac [Ord_ordertype, well_ord_radd, well_ord_Memrel] 2));
by (asm_simp_tac
- (!simpset addsimps [ordertype_pred_unfold,
+ (simpset() addsimps [ordertype_pred_unfold,
well_ord_radd, well_ord_Memrel,
ordertype_pred_Inl_eq,
lt_pred_Memrel, leI RS le_ordertype_Memrel]
@@ -424,7 +424,7 @@
goal OrderType.thy
"!!A B. A<=B ==> id(A) : ord_iso(A, Memrel(A), A, Memrel(B))";
by (resolve_tac [id_bij RS ord_isoI] 1);
-by (asm_simp_tac (!simpset addsimps [id_conv, Memrel_iff]) 1);
+by (asm_simp_tac (simpset() addsimps [id_conv, Memrel_iff]) 1);
by (Blast_tac 1);
qed "id_ord_iso_Memrel";
@@ -445,7 +445,7 @@
by (rtac RepFun_eqI 1);
by (etac InrI 2);
by (asm_simp_tac
- (!simpset addsimps [ordertype_pred_Inr_eq, well_ord_Memrel,
+ (simpset() addsimps [ordertype_pred_Inr_eq, well_ord_Memrel,
lt_pred_Memrel, leI RS le_ordertype_Memrel,
ordertype_sum_Memrel]) 1);
qed "oadd_lt_mono2";
@@ -455,12 +455,12 @@
by (rtac Ord_linear_lt 1);
by (REPEAT_SOME assume_tac);
by (ALLGOALS
- (blast_tac (!claset addDs [oadd_lt_mono2] addEs [lt_irrefl, lt_asym])));
+ (blast_tac (claset() addDs [oadd_lt_mono2] addEs [lt_irrefl, lt_asym])));
qed "oadd_lt_cancel2";
goal OrderType.thy
"!!i j k. [| Ord(i); Ord(j); Ord(k) |] ==> i++j < i++k <-> j<k";
-by (blast_tac (!claset addSIs [oadd_lt_mono2] addSDs [oadd_lt_cancel2]) 1);
+by (blast_tac (claset() addSIs [oadd_lt_mono2] addSDs [oadd_lt_cancel2]) 1);
qed "oadd_lt_iff2";
goal OrderType.thy
@@ -468,8 +468,8 @@
by (rtac Ord_linear_lt 1);
by (REPEAT_SOME assume_tac);
by (ALLGOALS
- (fast_tac (!claset addDs [oadd_lt_mono2]
- addss (!simpset addsimps [lt_not_refl]))));
+ (fast_tac (claset() addDs [oadd_lt_mono2]
+ addss (simpset() addsimps [lt_not_refl]))));
qed "oadd_inject";
goalw OrderType.thy [oadd_def]
@@ -477,11 +477,11 @@
(*Rotate the hypotheses so that simplification will work*)
by (etac revcut_rl 1);
by (asm_full_simp_tac
- (!simpset addsimps [ordertype_pred_unfold, well_ord_radd,
+ (simpset() addsimps [ordertype_pred_unfold, well_ord_radd,
well_ord_Memrel]) 1);
by (eresolve_tac [ltD RS RepFunE] 1);
-by (fast_tac (!claset addss
- (!simpset addsimps [ordertype_pred_Inl_eq, well_ord_Memrel,
+by (fast_tac (claset() addss
+ (simpset() addsimps [ordertype_pred_Inl_eq, well_ord_Memrel,
ltI, lt_pred_Memrel, le_ordertype_Memrel, leI,
ordertype_pred_Inr_eq,
ordertype_sum_Memrel])) 1);
@@ -507,14 +507,14 @@
by (rtac (subsetI RS equalityI) 1);
by (eresolve_tac [ltI RS lt_oadd_disj RS disjE] 1);
by (REPEAT (ares_tac [Ord_oadd] 1));
-by (fast_tac (!claset addIs [lt_oadd1, oadd_lt_mono2]
- addss (!simpset addsimps [Ord_mem_iff_lt, Ord_oadd])) 3);
+by (fast_tac (claset() addIs [lt_oadd1, oadd_lt_mono2]
+ addss (simpset() addsimps [Ord_mem_iff_lt, Ord_oadd])) 3);
by (Blast_tac 2);
-by (blast_tac (!claset addSEs [ltE]) 1);
+by (blast_tac (claset() addSEs [ltE]) 1);
qed "oadd_unfold";
goal OrderType.thy "!!i. Ord(i) ==> i++1 = succ(i)";
-by (asm_simp_tac (!simpset addsimps [oadd_unfold, Ord_1, oadd_0]) 1);
+by (asm_simp_tac (simpset() addsimps [oadd_unfold, Ord_1, oadd_0]) 1);
by (Blast_tac 1);
qed "oadd_1";
@@ -522,7 +522,7 @@
"!!i. [| Ord(i); Ord(j) |] ==> i++succ(j) = succ(i++j)";
(*ZF_ss prevents looping*)
by (asm_simp_tac (ZF_ss addsimps [Ord_oadd, oadd_1 RS sym]) 1);
-by (asm_simp_tac (!simpset addsimps [oadd_1, oadd_assoc, Ord_1]) 1);
+by (asm_simp_tac (simpset() addsimps [oadd_1, oadd_assoc, Ord_1]) 1);
qed "oadd_succ";
@@ -531,7 +531,7 @@
val prems = goal OrderType.thy
"[| Ord(i); !!x. x:A ==> Ord(j(x)); a:A |] ==> \
\ i ++ (UN x:A. j(x)) = (UN x:A. i++j(x))";
-by (blast_tac (!claset addIs (prems @ [ltI, Ord_UN, Ord_oadd,
+by (blast_tac (claset() addIs (prems @ [ltI, Ord_UN, Ord_oadd,
lt_oadd1 RS ltD, oadd_lt_mono2 RS ltD])
addSEs [ltE, ltI RS lt_oadd_disj RS disjE]) 1);
qed "oadd_UN";
@@ -539,7 +539,7 @@
goal OrderType.thy
"!!i j. [| Ord(i); Limit(j) |] ==> i++j = (UN k:j. i++k)";
by (forward_tac [Limit_has_0 RS ltD] 1);
-by (asm_simp_tac (!simpset addsimps [Limit_is_Ord RS Ord_in_Ord,
+by (asm_simp_tac (simpset() addsimps [Limit_is_Ord RS Ord_in_Ord,
oadd_UN RS sym, Union_eq_UN RS sym,
Limit_Union_eq]) 1);
qed "oadd_Limit";
@@ -548,13 +548,13 @@
goal OrderType.thy "!!i j. [| Ord(i); Ord(j) |] ==> i le j++i";
by (eres_inst_tac [("i","i")] trans_induct3 1);
-by (asm_simp_tac (!simpset addsimps [Ord_0_le]) 1);
-by (asm_simp_tac (!simpset addsimps [oadd_succ, succ_leI]) 1);
-by (asm_simp_tac (!simpset addsimps [oadd_Limit]) 1);
+by (asm_simp_tac (simpset() addsimps [Ord_0_le]) 1);
+by (asm_simp_tac (simpset() addsimps [oadd_succ, succ_leI]) 1);
+by (asm_simp_tac (simpset() addsimps [oadd_Limit]) 1);
by (rtac le_trans 1);
by (rtac le_implies_UN_le_UN 2);
by (Blast_tac 2);
-by (asm_simp_tac (!simpset addsimps [Union_eq_UN RS sym, Limit_Union_eq,
+by (asm_simp_tac (simpset() addsimps [Union_eq_UN RS sym, Limit_Union_eq,
le_refl, Limit_is_Ord]) 1);
qed "oadd_le_self2";
@@ -563,8 +563,8 @@
by (forward_tac [le_Ord2] 1);
by (etac trans_induct3 1);
by (Asm_simp_tac 1);
-by (asm_simp_tac (!simpset addsimps [oadd_succ, succ_le_iff]) 1);
-by (asm_simp_tac (!simpset addsimps [oadd_Limit]) 1);
+by (asm_simp_tac (simpset() addsimps [oadd_succ, succ_le_iff]) 1);
+by (asm_simp_tac (simpset() addsimps [oadd_Limit]) 1);
by (rtac le_implies_UN_le_UN 1);
by (Blast_tac 1);
qed "oadd_le_mono1";
@@ -576,12 +576,12 @@
qed "oadd_lt_mono";
goal OrderType.thy "!!i j. [| i' le i; j' le j |] ==> i'++j' le i++j";
-by (asm_simp_tac (!simpset addsimps [oadd_succ RS sym, le_Ord2, oadd_lt_mono]) 1);
+by (asm_simp_tac (simpset() addsimps [oadd_succ RS sym, le_Ord2, oadd_lt_mono]) 1);
qed "oadd_le_mono";
goal OrderType.thy
"!!i j k. [| Ord(i); Ord(j); Ord(k) |] ==> i++j le i++k <-> j le k";
-by (asm_simp_tac (!simpset addsimps [oadd_lt_iff2, oadd_succ RS sym,
+by (asm_simp_tac (simpset() addsimps [oadd_lt_iff2, oadd_succ RS sym,
Ord_succ]) 1);
qed "oadd_le_iff2";
@@ -593,32 +593,32 @@
goal OrderType.thy
"!!A B. A<=B ==> (lam y:B. if(y:A, Inl(y), Inr(y))) : bij(B, A+(B-A))";
by (res_inst_tac [("d", "case(%x. x, %y. y)")] lam_bijective 1);
-by (blast_tac (!claset addSIs [if_type]) 1);
-by (fast_tac (!claset addSIs [case_type]) 1);
+by (blast_tac (claset() addSIs [if_type]) 1);
+by (fast_tac (claset() addSIs [case_type]) 1);
by (etac sumE 2);
-by (ALLGOALS (asm_simp_tac (!simpset setloop split_tac [expand_if])));
+by (ALLGOALS (asm_simp_tac (simpset() setloop split_tac [expand_if])));
qed "bij_sum_Diff";
goal OrderType.thy
"!!i j. i le j ==> \
\ ordertype(i+(j-i), radd(i,Memrel(j),j-i,Memrel(j))) = \
\ ordertype(j, Memrel(j))";
-by (safe_tac (!claset addSDs [le_subset_iff RS iffD1]));
+by (safe_tac (claset() addSDs [le_subset_iff RS iffD1]));
by (resolve_tac [bij_sum_Diff RS ord_isoI RS ord_iso_sym RS ordertype_eq] 1);
by (etac well_ord_Memrel 3);
by (assume_tac 1);
by (asm_simp_tac
- (!simpset setloop split_tac [expand_if] addsimps [Memrel_iff]) 1);
+ (simpset() setloop split_tac [expand_if] addsimps [Memrel_iff]) 1);
by (forw_inst_tac [("j", "y")] Ord_in_Ord 1 THEN assume_tac 1);
by (forw_inst_tac [("j", "x")] Ord_in_Ord 1 THEN assume_tac 1);
-by (asm_simp_tac (!simpset addsimps [Ord_mem_iff_lt, lt_Ord, not_lt_iff_le]) 1);
-by (blast_tac (!claset addIs [lt_trans2, lt_trans]) 1);
+by (asm_simp_tac (simpset() addsimps [Ord_mem_iff_lt, lt_Ord, not_lt_iff_le]) 1);
+by (blast_tac (claset() addIs [lt_trans2, lt_trans]) 1);
qed "ordertype_sum_Diff";
goalw OrderType.thy [oadd_def, odiff_def]
"!!i j. i le j ==> \
\ i ++ (j--i) = ordertype(i+(j-i), radd(i,Memrel(j),j-i,Memrel(j)))";
-by (safe_tac (!claset addSDs [le_subset_iff RS iffD1]));
+by (safe_tac (claset() addSDs [le_subset_iff RS iffD1]));
by (resolve_tac [sum_ord_iso_cong RS ordertype_eq] 1);
by (etac id_ord_iso_Memrel 1);
by (resolve_tac [ordertype_ord_iso RS ord_iso_sym] 1);
@@ -627,7 +627,7 @@
qed "oadd_ordertype_Diff";
goal OrderType.thy "!!i j. i le j ==> i ++ (j--i) = j";
-by (asm_simp_tac (!simpset addsimps [oadd_ordertype_Diff, ordertype_sum_Diff,
+by (asm_simp_tac (simpset() addsimps [oadd_ordertype_Diff, ordertype_sum_Diff,
ordertype_Memrel, lt_Ord2 RS Ord_succD]) 1);
qed "oadd_odiff_inverse";
@@ -643,14 +643,14 @@
"!!i j. [| Ord(i); Ord(j) |] ==> (i++j) -- i = j";
by (rtac oadd_inject 1);
by (REPEAT (ares_tac [Ord_ordertype, Ord_oadd, Ord_odiff] 2));
-by (asm_simp_tac (!simpset addsimps [oadd_odiff_inverse, oadd_le_self]) 1);
+by (asm_simp_tac (simpset() addsimps [oadd_odiff_inverse, oadd_le_self]) 1);
qed "odiff_oadd_inverse";
val [i_lt_j, k_le_i] = goal OrderType.thy
"[| i<j; k le i |] ==> i--k < j--k";
by (rtac (k_le_i RS lt_Ord RSN (2,oadd_lt_cancel2)) 1);
by (simp_tac
- (!simpset addsimps [i_lt_j, k_le_i, [k_le_i, leI] MRS le_trans,
+ (simpset() addsimps [i_lt_j, k_le_i, [k_le_i, leI] MRS le_trans,
oadd_odiff_inverse]) 1);
by (REPEAT (resolve_tac (Ord_odiff ::
([i_lt_j, k_le_i] RL [lt_Ord, lt_Ord2])) 1));
@@ -671,8 +671,8 @@
\ pred(A*B, <a,b>, rmult(A,r,B,s)) = \
\ pred(A,a,r)*B Un ({a} * pred(B,b,s))";
by (rtac equalityI 1);
-by (safe_tac (!claset));
-by (ALLGOALS (asm_full_simp_tac (!simpset addsimps [rmult_iff])));
+by (safe_tac (claset()));
+by (ALLGOALS (asm_full_simp_tac (simpset() addsimps [rmult_iff])));
by (ALLGOALS (Blast_tac));
qed "pred_Pair_eq";
@@ -681,11 +681,11 @@
\ ordertype(pred(A*B, <a,b>, rmult(A,r,B,s)), rmult(A,r,B,s)) = \
\ ordertype(pred(A,a,r)*B + pred(B,b,s), \
\ radd(A*B, rmult(A,r,B,s), B, s))";
-by (asm_simp_tac (!simpset addsimps [pred_Pair_eq]) 1);
+by (asm_simp_tac (simpset() addsimps [pred_Pair_eq]) 1);
by (resolve_tac [ordertype_eq RS sym] 1);
by (rtac prod_sum_singleton_ord_iso 1);
by (REPEAT_FIRST (ares_tac [pred_subset, well_ord_rmult RS well_ord_subset]));
-by (blast_tac (!claset addSEs [predE]) 1);
+by (blast_tac (claset() addSEs [predE]) 1);
qed "ordertype_pred_Pair_eq";
goalw OrderType.thy [oadd_def, omult_def]
@@ -693,7 +693,7 @@
\ ordertype(pred(i*j, <i',j'>, rmult(i,Memrel(i),j,Memrel(j))), \
\ rmult(i,Memrel(i),j,Memrel(j))) = \
\ j**i' ++ j'";
-by (asm_simp_tac (!simpset addsimps [ordertype_pred_Pair_eq, lt_pred_Memrel,
+by (asm_simp_tac (simpset() addsimps [ordertype_pred_Pair_eq, lt_pred_Memrel,
ltD, lt_Ord2, well_ord_Memrel]) 1);
by (rtac trans 1);
by (resolve_tac [ordertype_ord_iso RS sum_ord_iso_cong RS ordertype_eq] 2);
@@ -702,35 +702,35 @@
by (REPEAT_FIRST (eresolve_tac [SigmaE, sumE, ltE, ssubst]));
by (REPEAT_FIRST (ares_tac [well_ord_rmult, well_ord_radd, well_ord_Memrel,
Ord_ordertype]));
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [Memrel_iff])));
-by (safe_tac (!claset));
-by (ALLGOALS (blast_tac (!claset addIs [Ord_trans])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [Memrel_iff])));
+by (safe_tac (claset()));
+by (ALLGOALS (blast_tac (claset() addIs [Ord_trans])));
qed "ordertype_pred_Pair_lemma";
goalw OrderType.thy [omult_def]
"!!i j. [| Ord(i); Ord(j); k<j**i |] ==> \
\ EX j' i'. k = j**i' ++ j' & j'<j & i'<i";
-by (asm_full_simp_tac (!simpset addsimps [ordertype_pred_unfold,
+by (asm_full_simp_tac (simpset() addsimps [ordertype_pred_unfold,
well_ord_rmult, well_ord_Memrel]) 1);
-by (safe_tac (!claset addSEs [ltE]));
-by (asm_simp_tac (!simpset addsimps [ordertype_pred_Pair_lemma, ltI,
+by (safe_tac (claset() addSEs [ltE]));
+by (asm_simp_tac (simpset() addsimps [ordertype_pred_Pair_lemma, ltI,
symmetric omult_def]) 1);
-by (blast_tac (!claset addIs [ltI]) 1);
+by (blast_tac (claset() addIs [ltI]) 1);
qed "lt_omult";
goalw OrderType.thy [omult_def]
"!!i j. [| j'<j; i'<i |] ==> j**i' ++ j' < j**i";
by (rtac ltI 1);
by (asm_simp_tac
- (!simpset addsimps [Ord_ordertype, well_ord_rmult, well_ord_Memrel,
+ (simpset() addsimps [Ord_ordertype, well_ord_rmult, well_ord_Memrel,
lt_Ord2]) 2);
by (asm_simp_tac
- (!simpset addsimps [ordertype_pred_unfold,
+ (simpset() addsimps [ordertype_pred_unfold,
well_ord_rmult, well_ord_Memrel, lt_Ord2]) 1);
by (rtac bexI 1);
-by (blast_tac (!claset addSEs [ltE]) 2);
+by (blast_tac (claset() addSEs [ltE]) 2);
by (asm_simp_tac
- (!simpset addsimps [ordertype_pred_Pair_lemma, ltI,
+ (simpset() addsimps [ordertype_pred_Pair_lemma, ltI,
symmetric omult_def]) 1);
qed "omult_oadd_lt";
@@ -740,8 +740,8 @@
by (resolve_tac [lt_omult RS exE] 1);
by (etac ltI 3);
by (REPEAT (ares_tac [Ord_omult] 1));
-by (blast_tac (!claset addSEs [ltE]) 1);
-by (blast_tac (!claset addIs [omult_oadd_lt RS ltD, ltI]) 1);
+by (blast_tac (claset() addSEs [ltE]) 1);
+by (blast_tac (claset() addIs [omult_oadd_lt RS ltD, ltI]) 1);
qed "omult_unfold";
(*** Basic laws for ordinal multiplication ***)
@@ -765,7 +765,7 @@
by (res_inst_tac [("c", "snd"), ("d", "%z.<0,z>")] lam_bijective 1);
by (REPEAT_FIRST (eresolve_tac [snd_type, SigmaE, succE, emptyE,
well_ord_Memrel, ordertype_Memrel]));
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [rmult_iff, Memrel_iff])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [rmult_iff, Memrel_iff])));
qed "omult_1";
goalw OrderType.thy [omult_def] "!!i. Ord(i) ==> 1**i = i";
@@ -773,7 +773,7 @@
by (res_inst_tac [("c", "fst"), ("d", "%z.<z,0>")] lam_bijective 1);
by (REPEAT_FIRST (eresolve_tac [fst_type, SigmaE, succE, emptyE,
well_ord_Memrel, ordertype_Memrel]));
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [rmult_iff, Memrel_iff])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [rmult_iff, Memrel_iff])));
qed "omult_1_left";
Addsimps [omult_1, omult_1_left];
@@ -798,7 +798,7 @@
(*ZF_ss prevents looping*)
by (asm_simp_tac (ZF_ss addsimps [oadd_1 RS sym]) 1);
by (asm_simp_tac
- (!simpset addsimps [omult_1, oadd_omult_distrib, Ord_1]) 1);
+ (simpset() addsimps [omult_1, oadd_omult_distrib, Ord_1]) 1);
qed "omult_succ";
(** Associative law **)
@@ -822,14 +822,14 @@
val prems = goal OrderType.thy
"[| Ord(i); !!x. x:A ==> Ord(j(x)) |] ==> \
\ i ** (UN x:A. j(x)) = (UN x:A. i**j(x))";
-by (asm_simp_tac (!simpset addsimps (prems@[Ord_UN, omult_unfold])) 1);
+by (asm_simp_tac (simpset() addsimps (prems@[Ord_UN, omult_unfold])) 1);
by (Blast_tac 1);
qed "omult_UN";
goal OrderType.thy
"!!i j. [| Ord(i); Limit(j) |] ==> i**j = (UN k:j. i**k)";
by (asm_simp_tac
- (!simpset addsimps [Limit_is_Ord RS Ord_in_Ord, omult_UN RS sym,
+ (simpset() addsimps [Limit_is_Ord RS Ord_in_Ord, omult_UN RS sym,
Union_eq_UN RS sym, Limit_Union_eq]) 1);
qed "omult_Limit";
@@ -838,8 +838,8 @@
(*As a special case we have "[| 0<i; 0<j |] ==> 0 < i**j" *)
goal OrderType.thy "!!i j. [| k<i; 0<j |] ==> k < i**j";
-by (safe_tac (!claset addSEs [ltE] addSIs [ltI, Ord_omult]));
-by (asm_simp_tac (!simpset addsimps [omult_unfold]) 1);
+by (safe_tac (claset() addSEs [ltE] addSIs [ltI, Ord_omult]));
+by (asm_simp_tac (simpset() addsimps [omult_unfold]) 1);
by (REPEAT_FIRST (ares_tac [bexI]));
by (Asm_simp_tac 1);
qed "lt_omult1";
@@ -853,26 +853,26 @@
by (forward_tac [lt_Ord] 1);
by (forward_tac [le_Ord2] 1);
by (etac trans_induct3 1);
-by (asm_simp_tac (!simpset addsimps [le_refl, Ord_0]) 1);
-by (asm_simp_tac (!simpset addsimps [omult_succ, oadd_le_mono]) 1);
-by (asm_simp_tac (!simpset addsimps [omult_Limit]) 1);
+by (asm_simp_tac (simpset() addsimps [le_refl, Ord_0]) 1);
+by (asm_simp_tac (simpset() addsimps [omult_succ, oadd_le_mono]) 1);
+by (asm_simp_tac (simpset() addsimps [omult_Limit]) 1);
by (rtac le_implies_UN_le_UN 1);
by (Blast_tac 1);
qed "omult_le_mono1";
goal OrderType.thy "!!i j k. [| k<j; 0<i |] ==> i**k < i**j";
by (rtac ltI 1);
-by (asm_simp_tac (!simpset addsimps [omult_unfold, lt_Ord2]) 1);
-by (safe_tac (!claset addSEs [ltE] addSIs [Ord_omult]));
+by (asm_simp_tac (simpset() addsimps [omult_unfold, lt_Ord2]) 1);
+by (safe_tac (claset() addSEs [ltE] addSIs [Ord_omult]));
by (REPEAT_FIRST (ares_tac [bexI]));
-by (asm_simp_tac (!simpset addsimps [Ord_omult]) 1);
+by (asm_simp_tac (simpset() addsimps [Ord_omult]) 1);
qed "omult_lt_mono2";
goal OrderType.thy "!!i j k. [| k le j; Ord(i) |] ==> i**k le i**j";
by (rtac subset_imp_le 1);
-by (safe_tac (!claset addSEs [ltE, make_elim Ord_succD] addSIs [Ord_omult]));
-by (asm_full_simp_tac (!simpset addsimps [omult_unfold]) 1);
-by (deepen_tac (!claset addEs [Ord_trans]) 0 1);
+by (safe_tac (claset() addSEs [ltE, make_elim Ord_succD] addSIs [Ord_omult]));
+by (asm_full_simp_tac (simpset() addsimps [omult_unfold]) 1);
+by (deepen_tac (claset() addEs [Ord_trans]) 0 1);
qed "omult_le_mono2";
goal OrderType.thy "!!i j. [| i' le i; j' le j |] ==> i'**j' le i**j";
@@ -891,17 +891,17 @@
goal OrderType.thy "!!i j. [| Ord(i); 0<j |] ==> i le j**i";
by (forward_tac [lt_Ord2] 1);
by (eres_inst_tac [("i","i")] trans_induct3 1);
-by (asm_simp_tac (!simpset addsimps [omult_0, Ord_0 RS le_refl]) 1);
-by (asm_simp_tac (!simpset addsimps [omult_succ, succ_le_iff]) 1);
+by (asm_simp_tac (simpset() addsimps [omult_0, Ord_0 RS le_refl]) 1);
+by (asm_simp_tac (simpset() addsimps [omult_succ, succ_le_iff]) 1);
by (etac lt_trans1 1);
by (res_inst_tac [("b", "j**x")] (oadd_0 RS subst) 1 THEN
rtac oadd_lt_mono2 2);
by (REPEAT (ares_tac [Ord_omult] 1));
-by (asm_simp_tac (!simpset addsimps [omult_Limit]) 1);
+by (asm_simp_tac (simpset() addsimps [omult_Limit]) 1);
by (rtac le_trans 1);
by (rtac le_implies_UN_le_UN 2);
by (Blast_tac 2);
-by (asm_simp_tac (!simpset addsimps [Union_eq_UN RS sym, Limit_Union_eq,
+by (asm_simp_tac (simpset() addsimps [Union_eq_UN RS sym, Limit_Union_eq,
Limit_is_Ord RS le_refl]) 1);
qed "omult_le_self2";
@@ -912,8 +912,8 @@
by (rtac Ord_linear_lt 1);
by (REPEAT_SOME assume_tac);
by (ALLGOALS
- (best_tac (!claset addDs [omult_lt_mono2]
- addss (!simpset addsimps [lt_not_refl]))));
+ (best_tac (claset() addDs [omult_lt_mono2]
+ addss (simpset() addsimps [lt_not_refl]))));
qed "omult_inject";
--- a/src/ZF/Ordinal.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Ordinal.ML Mon Nov 03 12:24:13 1997 +0100
@@ -17,7 +17,7 @@
qed "Transset_iff_Pow";
goalw Ordinal.thy [Transset_def] "Transset(A) <-> Union(succ(A)) = A";
-by (blast_tac (!claset addSEs [equalityE]) 1);
+by (blast_tac (claset() addSEs [equalityE]) 1);
qed "Transset_iff_Union_succ";
(** Consequences of downwards closure **)
@@ -30,19 +30,19 @@
val [prem1,prem2] = goalw Ordinal.thy [Pair_def]
"[| Transset(C); <a,b>: C |] ==> a:C & b: C";
by (cut_facts_tac [prem2] 1);
-by (blast_tac (!claset addSDs [prem1 RS Transset_doubleton_D]) 1);
+by (blast_tac (claset() addSDs [prem1 RS Transset_doubleton_D]) 1);
qed "Transset_Pair_D";
val prem1::prems = goal Ordinal.thy
"[| Transset(C); A*B <= C; b: B |] ==> A <= C";
by (cut_facts_tac prems 1);
-by (blast_tac (!claset addSDs [prem1 RS Transset_Pair_D]) 1);
+by (blast_tac (claset() addSDs [prem1 RS Transset_Pair_D]) 1);
qed "Transset_includes_domain";
val prem1::prems = goal Ordinal.thy
"[| Transset(C); A*B <= C; a: A |] ==> B <= C";
by (cut_facts_tac prems 1);
-by (blast_tac (!claset addSDs [prem1 RS Transset_Pair_D]) 1);
+by (blast_tac (claset() addSDs [prem1 RS Transset_Pair_D]) 1);
qed "Transset_includes_range";
(** Closure properties **)
@@ -75,13 +75,13 @@
val [Transprem] = goalw Ordinal.thy [Transset_def]
"[| !!i. i:A ==> Transset(i) |] ==> Transset(Union(A))";
-by (blast_tac (!claset addDs [Transprem RS bspec RS subsetD]) 1);
+by (blast_tac (claset() addDs [Transprem RS bspec RS subsetD]) 1);
qed "Transset_Union_family";
val [prem,Transprem] = goalw Ordinal.thy [Transset_def]
"[| j:A; !!i. i:A ==> Transset(i) |] ==> Transset(Inter(A))";
by (cut_facts_tac [prem] 1);
-by (blast_tac (!claset addDs [Transprem RS bspec RS subsetD]) 1);
+by (blast_tac (claset() addDs [Transprem RS bspec RS subsetD]) 1);
qed "Transset_Inter_family";
(*** Natural Deduction rules for Ord ***)
@@ -145,18 +145,18 @@
bind_thm ("Ord_1", Ord_0 RS Ord_succ);
goal Ordinal.thy "Ord(succ(i)) <-> Ord(i)";
-by (blast_tac (!claset addIs [Ord_succ] addDs [Ord_succD]) 1);
+by (blast_tac (claset() addIs [Ord_succ] addDs [Ord_succD]) 1);
qed "Ord_succ_iff";
Addsimps [Ord_0, Ord_succ_iff];
AddSIs [Ord_0, Ord_succ];
goalw Ordinal.thy [Ord_def] "!!i j. [| Ord(i); Ord(j) |] ==> Ord(i Un j)";
-by (blast_tac (!claset addSIs [Transset_Un]) 1);
+by (blast_tac (claset() addSIs [Transset_Un]) 1);
qed "Ord_Un";
goalw Ordinal.thy [Ord_def] "!!i j. [| Ord(i); Ord(j) |] ==> Ord(i Int j)";
-by (blast_tac (!claset addSIs [Transset_Int]) 1);
+by (blast_tac (claset() addSIs [Transset_Int]) 1);
qed "Ord_Int";
val nonempty::prems = goal Ordinal.thy
@@ -179,11 +179,11 @@
goal Ordinal.thy "~ (ALL i. i:X <-> Ord(i))";
by (rtac notI 1);
by (forw_inst_tac [("x", "X")] spec 1);
-by (safe_tac (!claset addSEs [mem_irrefl]));
+by (safe_tac (claset() addSEs [mem_irrefl]));
by (swap_res_tac [Ord_is_Transset RSN (2,OrdI)] 1);
by (Blast_tac 2);
by (rewtac Transset_def);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (Asm_full_simp_tac 1);
by (REPEAT (eresolve_tac [asm_rl, Ord_in_Ord] 1));
qed "ON_class";
@@ -226,7 +226,7 @@
bind_thm ("lt0E", not_lt0 RS notE);
goal Ordinal.thy "!!i j k. [| i<j; j<k |] ==> i<k";
-by (blast_tac (!claset addSIs [ltI] addSEs [ltE] addIs [Ord_trans]) 1);
+by (blast_tac (claset() addSIs [ltI] addSEs [ltE] addIs [Ord_trans]) 1);
qed "lt_trans";
goalw Ordinal.thy [lt_def] "!!i j. [| i<j; j<i |] ==> P";
@@ -244,16 +244,16 @@
(** le is less than or equals; recall i le j abbrevs i<succ(j) !! **)
goalw Ordinal.thy [lt_def] "i le j <-> i<j | (i=j & Ord(j))";
-by (blast_tac (!claset addSIs [Ord_succ] addSDs [Ord_succD]) 1);
+by (blast_tac (claset() addSIs [Ord_succ] addSDs [Ord_succD]) 1);
qed "le_iff";
(*Equivalently, i<j ==> i < succ(j)*)
goal Ordinal.thy "!!i j. i<j ==> i le j";
-by (asm_simp_tac (!simpset addsimps [le_iff]) 1);
+by (asm_simp_tac (simpset() addsimps [le_iff]) 1);
qed "leI";
goal Ordinal.thy "!!i. [| i=j; Ord(j) |] ==> i le j";
-by (asm_simp_tac (!simpset addsimps [le_iff]) 1);
+by (asm_simp_tac (simpset() addsimps [le_iff]) 1);
qed "le_eqI";
val le_refl = refl RS le_eqI;
@@ -270,12 +270,12 @@
qed "leE";
goal Ordinal.thy "!!i j. [| i le j; j le i |] ==> i=j";
-by (asm_full_simp_tac (!simpset addsimps [le_iff]) 1);
-by (blast_tac (!claset addEs [lt_asym]) 1);
+by (asm_full_simp_tac (simpset() addsimps [le_iff]) 1);
+by (blast_tac (claset() addEs [lt_asym]) 1);
qed "le_anti_sym";
goal Ordinal.thy "i le 0 <-> i=0";
-by (blast_tac (!claset addSIs [Ord_0 RS le_refl] addSEs [leE]) 1);
+by (blast_tac (claset() addSIs [Ord_0 RS le_refl] addSEs [leE]) 1);
qed "le0_iff";
bind_thm ("le0D", le0_iff RS iffD1);
@@ -285,7 +285,7 @@
Addsimps [le0_iff];
(*blast_tac will NOT see lt_asym*)
-val le_cs = !claset addSIs [leCI] addSEs [leE] addEs [lt_asym];
+val le_cs = claset() addSIs [leCI] addSEs [leE] addEs [lt_asym];
(*** Natural Deduction rules for Memrel ***)
@@ -446,7 +446,7 @@
qed "not_lt_iff_le";
goal Ordinal.thy "!!i j. [| Ord(i); Ord(j) |] ==> ~ i le j <-> j<i";
-by (asm_simp_tac (!simpset addsimps [not_lt_iff_le RS iff_sym]) 1);
+by (asm_simp_tac (simpset() addsimps [not_lt_iff_le RS iff_sym]) 1);
qed "not_le_iff_lt";
(*This is identical to 0<succ(i) *)
@@ -469,7 +469,7 @@
by (rtac (not_lt_iff_le RS iffD1) 1);
by (assume_tac 1);
by (assume_tac 1);
-by (blast_tac (!claset addEs [ltE, mem_irrefl]) 1);
+by (blast_tac (claset() addEs [ltE, mem_irrefl]) 1);
qed "subset_imp_le";
goal Ordinal.thy "!!i j. i le j ==> i<=j";
@@ -479,13 +479,13 @@
qed "le_imp_subset";
goal Ordinal.thy "j le i <-> j<=i & Ord(i) & Ord(j)";
-by (blast_tac (!claset addDs [Ord_succD, subset_imp_le, le_imp_subset]
+by (blast_tac (claset() addDs [Ord_succD, subset_imp_le, le_imp_subset]
addEs [ltE]) 1);
qed "le_subset_iff";
goal Ordinal.thy "i le succ(j) <-> i le j | i=succ(j) & Ord(i)";
-by (simp_tac (!simpset addsimps [le_iff]) 1);
-by (blast_tac (!claset addIs [Ord_succ] addDs [Ord_succD]) 1);
+by (simp_tac (simpset() addsimps [le_iff]) 1);
+by (blast_tac (claset() addIs [Ord_succ] addDs [Ord_succD]) 1);
qed "le_succ_iff";
(*Just a variant of subset_imp_le*)
@@ -498,11 +498,11 @@
(** Transitive laws **)
goal Ordinal.thy "!!i j. [| i le j; j<k |] ==> i<k";
-by (blast_tac (!claset addSEs [leE] addIs [lt_trans]) 1);
+by (blast_tac (claset() addSEs [leE] addIs [lt_trans]) 1);
qed "lt_trans1";
goal Ordinal.thy "!!i j. [| i<j; j le k |] ==> i<k";
-by (blast_tac (!claset addSEs [leE] addIs [lt_trans]) 1);
+by (blast_tac (claset() addSEs [leE] addIs [lt_trans]) 1);
qed "lt_trans2";
goal Ordinal.thy "!!i j. [| i le j; j le k |] ==> i le k";
@@ -512,14 +512,14 @@
goal Ordinal.thy "!!i j. i<j ==> succ(i) le j";
by (rtac (not_lt_iff_le RS iffD1) 1);
by (blast_tac le_cs 3);
-by (ALLGOALS (blast_tac (!claset addEs [ltE])));
+by (ALLGOALS (blast_tac (claset() addEs [ltE])));
qed "succ_leI";
(*Identical to succ(i) < succ(j) ==> i<j *)
goal Ordinal.thy "!!i j. succ(i) le j ==> i<j";
by (rtac (not_le_iff_lt RS iffD1) 1);
by (fast_tac le_cs 3);
-by (ALLGOALS (blast_tac (!claset addEs [ltE, make_elim Ord_succD])));
+by (ALLGOALS (blast_tac (claset() addEs [ltE, make_elim Ord_succD])));
qed "succ_leE";
goal Ordinal.thy "succ(i) le j <-> i<j";
@@ -529,7 +529,7 @@
Addsimps [succ_le_iff];
goal Ordinal.thy "!!i j. succ(i) le succ(j) ==> i le j";
-by (blast_tac (!claset addSDs [succ_leE]) 1);
+by (blast_tac (claset() addSDs [succ_leE]) 1);
qed "succ_le_imp_le";
(** Union and Intersection **)
@@ -548,13 +548,13 @@
goal Ordinal.thy "!!i j k. [| i<k; j<k |] ==> i Un j < k";
by (res_inst_tac [("i","i"),("j","j")] Ord_linear_le 1);
by (stac Un_commute 4);
-by (asm_full_simp_tac (!simpset addsimps [le_subset_iff, subset_Un_iff]) 4);
-by (asm_full_simp_tac (!simpset addsimps [le_subset_iff, subset_Un_iff]) 3);
+by (asm_full_simp_tac (simpset() addsimps [le_subset_iff, subset_Un_iff]) 4);
+by (asm_full_simp_tac (simpset() addsimps [le_subset_iff, subset_Un_iff]) 3);
by (REPEAT (eresolve_tac [asm_rl, ltE] 1));
qed "Un_least_lt";
goal Ordinal.thy "!!i j. [| Ord(i); Ord(j) |] ==> i Un j < k <-> i<k & j<k";
-by (safe_tac (!claset addSIs [Un_least_lt]));
+by (safe_tac (claset() addSIs [Un_least_lt]));
by (rtac (Un_upper2_le RS lt_trans1) 2);
by (rtac (Un_upper1_le RS lt_trans1) 1);
by (REPEAT_SOME assume_tac);
@@ -564,15 +564,15 @@
"[| Ord(i); Ord(j); Ord(k) |] ==> i Un j : k <-> i:k & j:k";
by (cut_facts_tac [[ordi,ordj] MRS
read_instantiate [("k","k")] Un_least_lt_iff] 1);
-by (asm_full_simp_tac (!simpset addsimps [lt_def,ordi,ordj,ordk]) 1);
+by (asm_full_simp_tac (simpset() addsimps [lt_def,ordi,ordj,ordk]) 1);
qed "Un_least_mem_iff";
(*Replacing k by succ(k') yields the similar rule for le!*)
goal Ordinal.thy "!!i j k. [| i<k; j<k |] ==> i Int j < k";
by (res_inst_tac [("i","i"),("j","j")] Ord_linear_le 1);
by (stac Int_commute 4);
-by (asm_full_simp_tac (!simpset addsimps [le_subset_iff, subset_Int_iff]) 4);
-by (asm_full_simp_tac (!simpset addsimps [le_subset_iff, subset_Int_iff]) 3);
+by (asm_full_simp_tac (simpset() addsimps [le_subset_iff, subset_Int_iff]) 4);
+by (asm_full_simp_tac (simpset() addsimps [le_subset_iff, subset_Int_iff]) 3);
by (REPEAT (eresolve_tac [asm_rl, ltE] 1));
qed "Int_greatest_lt";
@@ -626,19 +626,19 @@
qed "le_implies_UN_le_UN";
goal Ordinal.thy "!!i. Ord(i) ==> (UN y:i. succ(y)) = i";
-by (blast_tac (!claset addIs [Ord_trans]) 1);
+by (blast_tac (claset() addIs [Ord_trans]) 1);
qed "Ord_equality";
(*Holds for all transitive sets, not just ordinals*)
goal Ordinal.thy "!!i. Ord(i) ==> Union(i) <= i";
-by (blast_tac (!claset addIs [Ord_trans]) 1);
+by (blast_tac (claset() addIs [Ord_trans]) 1);
qed "Ord_Union_subset";
(*** Limit ordinals -- general properties ***)
goalw Ordinal.thy [Limit_def] "!!i. Limit(i) ==> Union(i) = i";
-by (fast_tac (!claset addSIs [ltI] addSEs [ltE] addEs [Ord_trans]) 1);
+by (fast_tac (claset() addSIs [ltI] addSEs [ltE] addEs [Ord_trans]) 1);
qed "Limit_Union_eq";
goalw Ordinal.thy [Limit_def] "!!i. Limit(i) ==> Ord(i)";
@@ -669,13 +669,13 @@
qed "succ_LimitE";
goal Ordinal.thy "!!i. [| Limit(i); i le succ(j) |] ==> i le j";
-by (safe_tac (!claset addSEs [succ_LimitE, leE]));
+by (safe_tac (claset() addSEs [succ_LimitE, leE]));
qed "Limit_le_succD";
(** Traditional 3-way case analysis on ordinals **)
goal Ordinal.thy "!!i. Ord(i) ==> i=0 | (EX j. Ord(j) & i=succ(j)) | Limit(i)";
-by (blast_tac (!claset addSIs [non_succ_LimitI, Ord_0_lt]
+by (blast_tac (claset() addSIs [non_succ_LimitI, Ord_0_lt]
addSDs [Ord_succD]) 1);
qed "Ord_cases_disj";
@@ -697,5 +697,5 @@
\ |] ==> P(i)";
by (resolve_tac [major RS trans_induct] 1);
by (etac Ord_cases 1);
-by (ALLGOALS (blast_tac (!claset addIs prems)));
+by (ALLGOALS (blast_tac (claset() addIs prems)));
qed "trans_induct3";
--- a/src/ZF/Perm.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Perm.ML Mon Nov 03 12:24:13 1997 +0100
@@ -18,11 +18,11 @@
qed "surj_is_fun";
goalw Perm.thy [surj_def] "!!f A B. f : Pi(A,B) ==> f: surj(A,range(f))";
-by (blast_tac (!claset addIs [apply_equality, range_of_fun, domain_type]) 1);
+by (blast_tac (claset() addIs [apply_equality, range_of_fun, domain_type]) 1);
qed "fun_is_surj";
goalw Perm.thy [surj_def] "!!f A B. f: surj(A,B) ==> range(f)=B";
-by (best_tac (!claset addIs [apply_Pair] addEs [range_type]) 1);
+by (best_tac (claset() addIs [apply_Pair] addEs [range_type]) 1);
qed "surj_range";
(** A function with a right inverse is a surjection **)
@@ -30,7 +30,7 @@
val prems = goalw Perm.thy [surj_def]
"[| f: A->B; !!y. y:B ==> d(y): A; !!y. y:B ==> f`d(y) = y \
\ |] ==> f: surj(A,B)";
-by (blast_tac (!claset addIs prems) 1);
+by (blast_tac (claset() addIs prems) 1);
qed "f_imp_surjective";
val prems = goal Perm.thy
@@ -39,12 +39,12 @@
\ !!y. y:B ==> c(d(y)) = y \
\ |] ==> (lam x:A. c(x)) : surj(A,B)";
by (res_inst_tac [("d", "d")] f_imp_surjective 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps ([lam_type]@prems)) ));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps ([lam_type]@prems)) ));
qed "lam_surjective";
(*Cantor's theorem revisited*)
goalw Perm.thy [surj_def] "f ~: surj(A,Pow(A))";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (cut_facts_tac [cantor] 1);
by (fast_tac subset_cs 1);
qed "cantor_surj";
@@ -70,8 +70,8 @@
(** A function with a left inverse is an injection **)
goal Perm.thy "!!f. [| f: A->B; ALL x:A. d(f`x)=x |] ==> f: inj(A,B)";
-by (asm_simp_tac (!simpset addsimps [inj_def]) 1);
-by (deepen_tac (!claset addEs [subst_context RS box_equals]) 0 1);
+by (asm_simp_tac (simpset() addsimps [inj_def]) 1);
+by (deepen_tac (claset() addEs [subst_context RS box_equals]) 0 1);
bind_thm ("f_imp_injective", ballI RSN (2,result()));
val prems = goal Perm.thy
@@ -79,7 +79,7 @@
\ !!x. x:A ==> d(c(x)) = x \
\ |] ==> (lam x:A. c(x)) : inj(A,B)";
by (res_inst_tac [("d", "d")] f_imp_injective 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps ([lam_type]@prems)) ));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps ([lam_type]@prems)) ));
qed "lam_injective";
(** Bijections **)
@@ -142,26 +142,26 @@
val id_inj = subset_refl RS id_subset_inj;
goalw Perm.thy [id_def,surj_def] "id(A): surj(A,A)";
-by (blast_tac (!claset addIs [lam_type, beta]) 1);
+by (blast_tac (claset() addIs [lam_type, beta]) 1);
qed "id_surj";
goalw Perm.thy [bij_def] "id(A): bij(A,A)";
-by (blast_tac (!claset addIs [id_inj, id_surj]) 1);
+by (blast_tac (claset() addIs [id_inj, id_surj]) 1);
qed "id_bij";
goalw Perm.thy [id_def] "A <= B <-> id(A) : A->B";
-by (fast_tac (!claset addSIs [lam_type] addDs [apply_type]
- addss (!simpset)) 1);
+by (fast_tac (claset() addSIs [lam_type] addDs [apply_type]
+ addss (simpset())) 1);
qed "subset_iff_id";
(*** Converse of a function ***)
goalw Perm.thy [inj_def] "!!f. f: inj(A,B) ==> converse(f) : range(f)->A";
-by (asm_simp_tac (!simpset addsimps [Pi_iff, function_def]) 1);
+by (asm_simp_tac (simpset() addsimps [Pi_iff, function_def]) 1);
by (etac CollectE 1);
-by (asm_simp_tac (!simpset addsimps [apply_iff]) 1);
-by (blast_tac (!claset addDs [fun_is_rel]) 1);
+by (asm_simp_tac (simpset() addsimps [apply_iff]) 1);
+by (blast_tac (claset() addDs [fun_is_rel]) 1);
qed "inj_converse_fun";
(** Equations for converse(f) **)
@@ -169,12 +169,12 @@
(*The premises are equivalent to saying that f is injective...*)
goal Perm.thy
"!!f. [| f: A->B; converse(f): C->A; a: A |] ==> converse(f)`(f`a) = a";
-by (blast_tac (!claset addIs [apply_Pair, apply_equality, converseI]) 1);
+by (blast_tac (claset() addIs [apply_Pair, apply_equality, converseI]) 1);
qed "left_inverse_lemma";
goal Perm.thy
"!!f. [| f: inj(A,B); a: A |] ==> converse(f)`(f`a) = a";
-by (blast_tac (!claset addIs [left_inverse_lemma, inj_converse_fun,
+by (blast_tac (claset() addIs [left_inverse_lemma, inj_converse_fun,
inj_is_fun]) 1);
qed "left_inverse";
@@ -197,8 +197,8 @@
many ways of expressing sufficient conditions.*)
goal Perm.thy "!!f. [| f: bij(A,B); b: B |] ==> f`(converse(f)`b) = b";
-by (fast_tac (!claset addss
- (!simpset addsimps [bij_def, right_inverse, surj_range])) 1);
+by (fast_tac (claset() addss
+ (simpset() addsimps [bij_def, right_inverse, surj_range])) 1);
qed "right_inverse_bij";
(** Converses of injections, surjections, bijections **)
@@ -211,12 +211,12 @@
qed "inj_converse_inj";
goal Perm.thy "!!f A B. f: inj(A,B) ==> converse(f): surj(range(f), A)";
-by (blast_tac (!claset addIs [f_imp_surjective, inj_converse_fun, left_inverse,
+by (blast_tac (claset() addIs [f_imp_surjective, inj_converse_fun, left_inverse,
inj_is_fun, range_of_fun RS apply_type]) 1);
qed "inj_converse_surj";
goalw Perm.thy [bij_def] "!!f A B. f: bij(A,B) ==> converse(f): bij(B,A)";
-by (fast_tac (!claset addEs [surj_range RS subst, inj_converse_inj,
+by (fast_tac (claset() addEs [surj_range RS subst, inj_converse_inj,
inj_converse_surj]) 1);
qed "bij_converse_bij";
(*Adding this as an SI seems to cause looping*)
@@ -313,7 +313,7 @@
goal Perm.thy "!!f g. [| g: A->B; f: B->C |] ==> (f O g) : A->C";
by (asm_full_simp_tac
- (!simpset addsimps [Pi_def, comp_function, Pow_iff, comp_rel]
+ (simpset() addsimps [Pi_def, comp_function, Pow_iff, comp_rel]
setloop etac conjE) 1);
by (stac (range_rel_subset RS domain_comp_eq) 1 THEN assume_tac 2);
by (Blast_tac 1);
@@ -334,7 +334,7 @@
by (rtac comp_fun 1);
by (rtac lam_funtype 2);
by (typechk_tac (prem::ZF_typechecks));
-by (asm_simp_tac (!simpset
+by (asm_simp_tac (simpset()
setSolver type_auto_tac [lam_type, lam_funtype, prem]) 1);
qed "comp_lam";
@@ -342,18 +342,18 @@
by (res_inst_tac [("d", "%y. converse(g) ` (converse(f) ` y)")]
f_imp_injective 1);
by (REPEAT (ares_tac [comp_fun, inj_is_fun] 1));
-by (asm_simp_tac (!simpset addsimps [left_inverse]
+by (asm_simp_tac (simpset() addsimps [left_inverse]
setSolver type_auto_tac [inj_is_fun, apply_type]) 1);
qed "comp_inj";
goalw Perm.thy [surj_def]
"!!f g. [| g: surj(A,B); f: surj(B,C) |] ==> (f O g) : surj(A,C)";
-by (blast_tac (!claset addSIs [comp_fun,comp_fun_apply]) 1);
+by (blast_tac (claset() addSIs [comp_fun,comp_fun_apply]) 1);
qed "comp_surj";
goalw Perm.thy [bij_def]
"!!f g. [| g: bij(A,B); f: bij(B,C) |] ==> (f O g) : bij(A,C)";
-by (blast_tac (!claset addIs [comp_inj,comp_surj]) 1);
+by (blast_tac (claset() addIs [comp_inj,comp_surj]) 1);
qed "comp_bij";
@@ -363,26 +363,26 @@
goalw Perm.thy [inj_def]
"!!f g. [| (f O g): inj(A,C); g: A->B; f: B->C |] ==> g: inj(A,B)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (REPEAT (eresolve_tac [asm_rl, bspec RS bspec RS mp] 1));
-by (asm_simp_tac (!simpset ) 1);
+by (asm_simp_tac (simpset() ) 1);
qed "comp_mem_injD1";
goalw Perm.thy [inj_def,surj_def]
"!!f g. [| (f O g): inj(A,C); g: surj(A,B); f: B->C |] ==> f: inj(B,C)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (res_inst_tac [("x1", "x")] (bspec RS bexE) 1);
by (eres_inst_tac [("x1", "w")] (bspec RS bexE) 3);
by (REPEAT (assume_tac 1));
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (res_inst_tac [("t", "op `(g)")] subst_context 1);
by (REPEAT (eresolve_tac [asm_rl, bspec RS bspec RS mp] 1));
-by (asm_simp_tac (!simpset ) 1);
+by (asm_simp_tac (simpset() ) 1);
qed "comp_mem_injD2";
goalw Perm.thy [surj_def]
"!!f g. [| (f O g): surj(A,C); g: A->B; f: B->C |] ==> f: surj(B,C)";
-by (blast_tac (!claset addSIs [comp_fun_apply RS sym, apply_funtype]) 1);
+by (blast_tac (claset() addSIs [comp_fun_apply RS sym, apply_funtype]) 1);
qed "comp_mem_surjD1";
goal Perm.thy
@@ -392,10 +392,10 @@
goalw Perm.thy [inj_def,surj_def]
"!!f g. [| (f O g): surj(A,C); g: A->B; f: inj(B,C) |] ==> g: surj(A,B)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (eres_inst_tac [("x1", "f`y")] (bspec RS bexE) 1);
by (REPEAT (ares_tac [apply_type] 1 ORELSE dtac comp_fun_applyD 1));
-by (blast_tac (!claset addSIs [apply_funtype]) 1);
+by (blast_tac (claset() addSIs [apply_funtype]) 1);
qed "comp_mem_surjD2";
@@ -404,9 +404,9 @@
(*left inverse of composition; one inclusion is
f: A->B ==> id(A) <= converse(f) O f *)
goalw Perm.thy [inj_def] "!!f. f: inj(A,B) ==> converse(f) O f = id(A)";
-by (fast_tac (!claset addIs [apply_Pair]
+by (fast_tac (claset() addIs [apply_Pair]
addEs [domain_type]
- addss (!simpset addsimps [apply_iff])) 1);
+ addss (simpset() addsimps [apply_iff])) 1);
qed "left_comp_inverse";
(*right inverse of composition; one inclusion is
@@ -417,8 +417,8 @@
val appfD = (prem RS CollectD1) RSN (3,apply_equality2);
by (cut_facts_tac [prem] 1);
by (rtac equalityI 1);
-by (best_tac (!claset addEs [domain_type, range_type, make_elim appfD]) 1);
-by (blast_tac (!claset addIs [apply_Pair]) 1);
+by (best_tac (claset() addEs [domain_type, range_type, make_elim appfD]) 1);
+by (blast_tac (claset() addIs [apply_Pair]) 1);
qed "right_comp_inverse";
(** Proving that a function is a bijection **)
@@ -426,7 +426,7 @@
goalw Perm.thy [id_def]
"!!f A B. [| f: A->B; g: B->A |] ==> \
\ f O g = id(B) <-> (ALL y:B. f`(g`y)=y)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (dres_inst_tac [("t", "%h. h`y ")] subst_context 1);
by (Asm_full_simp_tac 1);
by (rtac fun_extension 1);
@@ -437,7 +437,7 @@
goalw Perm.thy [bij_def]
"!!f A B. [| f: A->B; g: B->A; f O g = id(B); g O f = id(A) \
\ |] ==> f : bij(A,B)";
-by (asm_full_simp_tac (!simpset addsimps [comp_eq_id_iff]) 1);
+by (asm_full_simp_tac (simpset() addsimps [comp_eq_id_iff]) 1);
by (REPEAT (ares_tac [conjI, f_imp_injective, f_imp_surjective] 1
ORELSE eresolve_tac [bspec, apply_type] 1));
qed "fg_imp_bijective";
@@ -447,7 +447,7 @@
qed "nilpotent_imp_bijective";
goal Perm.thy "!!f A B. [| converse(f): B->A; f: A->B |] ==> f : bij(A,B)";
-by (asm_simp_tac (!simpset addsimps [fg_imp_bijective, comp_eq_id_iff,
+by (asm_simp_tac (simpset() addsimps [fg_imp_bijective, comp_eq_id_iff,
left_inverse_lemma, right_inverse_lemma]) 1);
qed "invertible_imp_bijective";
@@ -460,15 +460,15 @@
by (res_inst_tac [("d","%z. if(z:B, converse(f)`z, converse(g)`z)")]
lam_injective 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps [inj_is_fun RS apply_type, left_inverse]
+ (asm_simp_tac (simpset() addsimps [inj_is_fun RS apply_type, left_inverse]
setloop (split_tac [expand_if] ORELSE' etac UnE))));
-by (blast_tac (!claset addIs [inj_is_fun RS apply_type] addDs [equals0D]) 1);
+by (blast_tac (claset() addIs [inj_is_fun RS apply_type] addDs [equals0D]) 1);
qed "inj_disjoint_Un";
goalw Perm.thy [surj_def]
"!!f g. [| f: surj(A,B); g: surj(C,D); A Int C = 0 |] ==> \
\ (f Un g) : surj(A Un C, B Un D)";
-by (blast_tac (!claset addIs [fun_disjoint_apply1, fun_disjoint_apply2,
+by (blast_tac (claset() addIs [fun_disjoint_apply1, fun_disjoint_apply2,
fun_disjoint_Un, trans]) 1);
qed "surj_disjoint_Un";
@@ -488,7 +488,7 @@
val prems = goalw Perm.thy [surj_def]
"f: Pi(A,B) ==> f: surj(A, f``A)";
val rls = apply_equality :: (prems RL [apply_Pair,Pi_type]);
-by (fast_tac (!claset addIs rls) 1);
+by (fast_tac (claset() addIs rls) 1);
qed "surj_image";
goal Perm.thy "!!f. [| f: Pi(C,B); A<=C |] ==> restrict(f,A)``A = f``A";
@@ -501,7 +501,7 @@
goalw Perm.thy [inj_def]
"!!f. [| f: inj(A,B); C<=A |] ==> restrict(f,C): inj(C,B)";
-by (safe_tac (!claset addSEs [restrict_type2]));
+by (safe_tac (claset() addSEs [restrict_type2]));
by (REPEAT (eresolve_tac [asm_rl, bspec RS bspec RS mp, subsetD,
box_equals, restrict] 1));
qed "restrict_inj";
@@ -515,7 +515,7 @@
goalw Perm.thy [inj_def,bij_def]
"!!f. [| f: inj(A,B); C<=A |] ==> restrict(f,C): bij(C, f``C)";
-by (blast_tac (!claset addSIs [restrict, restrict_surj]
+by (blast_tac (claset() addSIs [restrict, restrict_surj]
addIs [box_equals, surj_is_fun]) 1);
qed "restrict_bij";
@@ -523,7 +523,7 @@
(*** Lemmas for Ramsey's Theorem ***)
goalw Perm.thy [inj_def] "!!f. [| f: inj(A,B); B<=D |] ==> f: inj(A,D)";
-by (blast_tac (!claset addIs [fun_weaken_type]) 1);
+by (blast_tac (claset() addIs [fun_weaken_type]) 1);
qed "inj_weaken_type";
val [major] = goal Perm.thy
@@ -532,15 +532,15 @@
by (Blast_tac 1);
by (cut_facts_tac [major] 1);
by (rewtac inj_def);
-by (fast_tac (!claset addEs [range_type, mem_irrefl]
+by (fast_tac (claset() addEs [range_type, mem_irrefl]
addDs [apply_equality]) 1);
qed "inj_succ_restrict";
goalw Perm.thy [inj_def]
"!!f. [| f: inj(A,B); a~:A; b~:B |] ==> \
\ cons(<a,b>,f) : inj(cons(a,A), cons(b,B))";
-by (fast_tac (!claset addIs [apply_type]
- addss (!simpset addsimps [fun_extend, fun_extend_apply2,
+by (fast_tac (claset() addIs [apply_type]
+ addss (simpset() addsimps [fun_extend, fun_extend_apply2,
fun_extend_apply1])) 1);
qed "inj_extend";
--- a/src/ZF/QPair.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/QPair.ML Mon Nov 03 12:24:13 1997 +0100
@@ -85,7 +85,7 @@
qed_goalw "QSigma_cong" thy [QSigma_def]
"[| A=A'; !!x. x:A' ==> B(x)=B'(x) |] ==> \
\ QSigma(A,B) = QSigma(A',B')"
- (fn prems=> [ (simp_tac (!simpset addsimps prems) 1) ]);
+ (fn prems=> [ (simp_tac (simpset() addsimps prems) 1) ]);
qed_goal "QSigma_empty1" thy "QSigma(0,B) = 0"
(fn _ => [ (Blast_tac 1) ]);
@@ -100,11 +100,11 @@
qed_goalw "qfst_conv" thy [qfst_def] "qfst(<a;b>) = a"
(fn _=>
- [ (blast_tac (!claset addIs [the_equality]) 1) ]);
+ [ (blast_tac (claset() addIs [the_equality]) 1) ]);
qed_goalw "qsnd_conv" thy [qsnd_def] "qsnd(<a;b>) = b"
(fn _=>
- [ (blast_tac (!claset addIs [the_equality]) 1) ]);
+ [ (blast_tac (claset() addIs [the_equality]) 1) ]);
Addsimps [qfst_conv, qsnd_conv];
@@ -137,7 +137,7 @@
\ |] ==> qsplit(%x y. c(x,y), p) : C(p)"
(fn major::prems=>
[ (rtac (major RS QSigmaE) 1),
- (asm_simp_tac (!simpset addsimps prems) 1) ]);
+ (asm_simp_tac (simpset() addsimps prems) 1) ]);
goalw thy [qsplit_def]
"!!u. u: A<*>B ==> \
@@ -286,7 +286,7 @@
qed "qsum_subset_iff";
goal thy "A <+> B = C <+> D <-> A=C & B=D";
-by (simp_tac (!simpset addsimps [extension,qsum_subset_iff]) 1);
+by (simp_tac (simpset() addsimps [extension,qsum_subset_iff]) 1);
by (Blast_tac 1);
qed "qsum_equal_iff";
@@ -309,7 +309,7 @@
\ |] ==> qcase(c,d,u) : C(u)";
by (rtac (major RS qsumE) 1);
by (ALLGOALS (etac ssubst));
-by (ALLGOALS (asm_simp_tac (!simpset addsimps prems)));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps prems)));
qed "qcase_type";
(** Rules for the Part primitive **)
--- a/src/ZF/QUniv.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/QUniv.ML Mon Nov 03 12:24:13 1997 +0100
@@ -20,7 +20,7 @@
val [prem] = goalw QUniv.thy [sum_def]
"Transset(C) ==> (A+B) Int C <= (A Int C) + (B Int C)";
by (stac Int_Un_distrib 1);
-by (blast_tac (!claset addSDs [prem RS Transset_Pair_D]) 1);
+by (blast_tac (claset() addSDs [prem RS Transset_Pair_D]) 1);
qed "Transset_sum_Int_subset";
(** Introduction and elimination rules avoid tiresome folding/unfolding **)
@@ -187,13 +187,13 @@
goalw Univ.thy [Pair_def]
"!!X. [| <a,b> : Vfrom(X,succ(i)); Transset(X) |] ==> \
\ a: Vfrom(X,i) & b: Vfrom(X,i)";
-by (blast_tac (!claset addSDs [doubleton_in_Vfrom_D, Vfrom_doubleton_D]) 1);
+by (blast_tac (claset() addSDs [doubleton_in_Vfrom_D, Vfrom_doubleton_D]) 1);
qed "Pair_in_Vfrom_D";
goal Univ.thy
"!!X. Transset(X) ==> \
\ (a*b) Int Vfrom(X, succ(i)) <= (a Int Vfrom(X,i)) * (b Int Vfrom(X,i))";
-by (blast_tac (!claset addSDs [Pair_in_Vfrom_D]) 1);
+by (blast_tac (claset() addSDs [Pair_in_Vfrom_D]) 1);
qed "product_Int_Vfrom_subset";
(*** Intersecting <a;b> with Vfrom... ***)
@@ -232,6 +232,6 @@
by (rtac (Transset_0 RS QPair_Int_Vfrom_succ_subset RS subset_trans) 1);
by (rtac (succI1 RS UN_upper) 1);
(*Limit(i) case*)
-by (asm_simp_tac (!simpset addsimps [Limit_Vfrom_eq, Int_UN_distrib, subset_refl,
+by (asm_simp_tac (simpset() addsimps [Limit_Vfrom_eq, Int_UN_distrib, subset_refl,
UN_mono, QPair_Int_Vset_subset_trans]) 1);
qed "QPair_Int_Vset_subset_UN";
--- a/src/ZF/Resid/Confluence.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Resid/Confluence.ML Mon Nov 03 12:24:13 1997 +0100
@@ -16,7 +16,7 @@
by (resolve_tac [impI RS allI RS allI] 1);
by (etac Spar_red.induct 1);
by (Fast_tac 1);
-by (fast_tac (!claset addIs [Spar_red.trans]) 1);
+by (fast_tac (claset() addIs [Spar_red.trans]) 1);
qed "strip_lemma_r";
@@ -29,7 +29,7 @@
by (dres_inst_tac [("x1","z")] (spec RS mp) 1);
by (REPEAT(eresolve_tac [exE,conjE] 2));
by (dres_inst_tac [("x1","ua")] (spec RS mp) 2);
-by (fast_tac (!claset addIs [Spar_red.trans]) 3);
+by (fast_tac (claset() addIs [Spar_red.trans]) 3);
by (TRYALL assume_tac );
qed "strip_lemma_l";
@@ -45,7 +45,7 @@
by (Clarify_tac 1);
by (forw_inst_tac [("v","va")] paving 1);
by (TRYALL assume_tac);
-by (fast_tac (!claset addIs [completeness] addss (!simpset)) 1);
+by (fast_tac (claset() addIs [completeness] addss (simpset())) 1);
qed "parallel_moves";
bind_thm ("confluence_parallel_reduction",
@@ -53,7 +53,7 @@
goalw Confluence.thy [confluence_def]
"!!u.[|confluence(Spar_red)|]==> confluence(Sred)";
-by(blast_tac (!claset addIs [par_red_red, red_par_red]) 1);
+by(blast_tac (claset() addIs [par_red_red, red_par_red]) 1);
val lemma1 = result();
bind_thm ("confluence_beta_reduction",
--- a/src/ZF/Resid/Conversion.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Resid/Conversion.ML Mon Nov 03 12:24:13 1997 +0100
@@ -24,11 +24,11 @@
"!!u. m<--->n ==> EX p.(m --->p) & (n ---> p)";
by (etac Sconv.induct 1);
by (etac Sconv1.induct 1);
-by (blast_tac (!claset addIs [red1D1,redD2]) 1);
-by (blast_tac (!claset addIs [red1D1,redD2]) 1);
-by (blast_tac (!claset addIs [red1D1,redD2]) 1);
+by (blast_tac (claset() addIs [red1D1,redD2]) 1);
+by (blast_tac (claset() addIs [red1D1,redD2]) 1);
+by (blast_tac (claset() addIs [red1D1,redD2]) 1);
by (cut_facts_tac [confluence_beta_reduction] 1);
by (rewtac confluence_def);
-by (blast_tac (!claset addIs [Sred.trans]) 1);
+by (blast_tac (claset() addIs [Sred.trans]) 1);
qed "Church_Rosser";
--- a/src/ZF/Resid/Cube.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Resid/Cube.ML Mon Nov 03 12:24:13 1997 +0100
@@ -53,11 +53,11 @@
by (rtac (preservation RS ssubst) 1
THEN etac comp_sym 1 THEN assume_tac 1);
by (stac (prism RS sym) 1);
-by (asm_full_simp_tac (!simpset addsimps
+by (asm_full_simp_tac (simpset() addsimps
[prism RS sym,union_l,union_preserve_regular,
comp_sym_iff, union_sym]) 4);
-by (asm_full_simp_tac (!simpset addsimps [union_r, comp_sym_iff]) 1);
-by (asm_full_simp_tac (!simpset addsimps
+by (asm_full_simp_tac (simpset() addsimps [union_r, comp_sym_iff]) 1);
+by (asm_full_simp_tac (simpset() addsimps
[union_preserve_regular, comp_sym_iff]) 1);
by (etac comp_trans 1);
by (atac 1);
@@ -73,10 +73,10 @@
\ EX uv vu. (w|>u) |> vu = (w|>v) |> uv & (w|>u)~vu &\
\ regular(vu) & (w|>v)~uv & regular(uv) ";
by (subgoal_tac "u~v" 1);
-by (safe_tac (!claset addSIs [exI]));
+by (safe_tac (claset() addSIs [exI]));
by (rtac cube 1);
by (ALLGOALS (asm_simp_tac (prism_ss addsimps [comp_sym_iff])));
-by (ALLGOALS (blast_tac (!claset addIs [residuals_preserve_comp,
+by (ALLGOALS (blast_tac (claset() addIs [residuals_preserve_comp,
comp_trans, comp_sym])));
qed "paving";
--- a/src/ZF/Resid/Reduction.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Resid/Reduction.ML Mon Nov 03 12:24:13 1997 +0100
@@ -31,7 +31,7 @@
[Spar_red.one_step, substL_type, redD1, redD2, par_redD1,
par_redD2, par_red1D2, unmark_type]);
-val reducL_ss = !simpset setloop (SELECT_GOAL (safe_tac (!claset)));
+val reducL_ss = simpset() setloop (SELECT_GOAL (safe_tac (claset())));
(* ------------------------------------------------------------------------- *)
(* Lemmas for reduction *)
@@ -60,14 +60,14 @@
goal Reduction.thy
"!!u.[|m ---> m'; n--->n'|]==> Apl(m,n)--->Apl(m',n')";
by (res_inst_tac [("n","Apl(m',n)")] Sred.trans 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [red_Apll,red_Aplr]) ));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [red_Apll,red_Aplr]) ));
qed "red_Apl";
goal Reduction.thy
"!!u.[|m:lambda; m':lambda; n:lambda; n':lambda; m ---> m'; n--->n'|]==> \
\ Apl(Fun(m),n)---> n'/m'";
by (res_inst_tac [("n","Apl(Fun(m'),n')")] Sred.trans 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [red_Apl,red_Fun]) ));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [red_Apl,red_Fun]) ));
qed "red_beta";
@@ -83,20 +83,20 @@
goal Reduction.thy "!!u. m-1->n ==> m=1=>n";
by (etac Sred1.induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [refl_par_red1]) ));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [refl_par_red1]) ));
qed "red1_par_red1";
goal Reduction.thy "!!u. m--->n ==> m===>n";
by (etac Sred.induct 1);
by (resolve_tac [Spar_red.trans] 3);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [refl_par_red1,red1_par_red1]) ));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [refl_par_red1,red1_par_red1]) ));
qed "red_par_red";
goal Reduction.thy "!!u. m===>n ==> m--->n";
by (etac Spar_red.induct 1);
by (etac Spar_red1.induct 1);
by (resolve_tac [Sred.trans] 5);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [red_Fun,red_beta,red_Apl]) ));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [red_Fun,red_beta,red_Apl]) ));
qed "par_red_red";
@@ -110,7 +110,7 @@
by Safe_tac;
by (ALLGOALS (REPEAT o (resolve_tac [exI,conjI])));
by (TRYALL(resolve_tac [res_redex,res_App,res_Fun,res_Var]));
-by (ALLGOALS (asm_simp_tac (!simpset)));
+by (ALLGOALS (asm_simp_tac (simpset())));
qed "simulation";
@@ -122,7 +122,7 @@
"!!u. u:redexes ==> \
\ ALL k:nat. unmark(lift_rec(u,k)) = lift_rec(unmark(u),k)";
by (eresolve_tac [redexes.induct] 1);
-by (ALLGOALS (asm_full_simp_tac (addsplit (!simpset))));
+by (ALLGOALS (asm_full_simp_tac (addsplit (simpset()))));
qed "unmmark_lift_rec";
goal Reduction.thy
@@ -130,7 +130,7 @@
\ unmark(subst_rec(u,v,k)) = subst_rec(unmark(u),unmark(v),k)";
by (eresolve_tac [redexes.induct] 1);
by (ALLGOALS (asm_full_simp_tac
- ((addsplit (!simpset)) addsimps [unmmark_lift_rec])));
+ ((addsplit (simpset())) addsimps [unmmark_lift_rec])));
qed "unmmark_subst_rec";
@@ -149,6 +149,6 @@
goal Reduction.thy
"!!u.[|u:lambda; u~v; regular(v)|]==> u =1=> unmark(u|>v)";
by (dtac completeness_l 1);
-by (ALLGOALS (asm_full_simp_tac (!simpset addsimps [lambda_unmark]) ));
+by (ALLGOALS (asm_full_simp_tac (simpset() addsimps [lambda_unmark]) ));
qed "completeness";
--- a/src/ZF/Resid/Residuals.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Resid/Residuals.ML Mon Nov 03 12:24:13 1997 +0100
@@ -62,7 +62,7 @@
by (resolve_tac prems 1);
by (resolve_tac [residuals_intro RS mp RS exE] 1);
by (resolve_tac [the_equality RS ssubst] 3);
-by (ALLGOALS (fast_tac (!claset addIs [residuals_function])));
+by (ALLGOALS (fast_tac (claset() addIs [residuals_function])));
qed "comp_resfuncE";
@@ -70,7 +70,7 @@
(* Residual function *)
(* ------------------------------------------------------------------------- *)
-val resfunc_cs = (!claset addIs [the_equality,residuals_function]
+val resfunc_cs = (claset() addIs [the_equality,residuals_function]
addSEs [comp_resfuncE]);
goalw Residuals.thy [res_func_def]
@@ -99,12 +99,12 @@
"!!n.[|s~t; regular(t)|]==> regular(t) --> s |> t:redexes";
by (etac Scomp.induct 1);
by (ALLGOALS (asm_full_simp_tac
- (!simpset addsimps [res_Var,res_Fun,res_App,res_redex]
- setloop (SELECT_GOAL (safe_tac (!claset))))));
+ (simpset() addsimps [res_Var,res_Fun,res_App,res_redex]
+ setloop (SELECT_GOAL (safe_tac (claset()))))));
by (dres_inst_tac [("psi", "Fun(?u) |> ?v : redexes")] asm_rl 1);
by (asm_full_simp_tac
- (!simpset addsimps [res_Fun]
- setloop (SELECT_GOAL (safe_tac (!claset)))) 1);
+ (simpset() addsimps [res_Fun]
+ setloop (SELECT_GOAL (safe_tac (claset())))) 1);
qed "resfunc_type";
Addsimps ([res_Var, res_Fun, res_App, res_redex, lift_rec_preserve_comp,
@@ -112,7 +112,7 @@
subst_rec_preserve_reg] @
redexes.free_iffs);
-val res1L_ss = !simpset setloop (SELECT_GOAL (safe_tac (!claset)));
+val res1L_ss = simpset() setloop (SELECT_GOAL (safe_tac (claset())));
(* ------------------------------------------------------------------------- *)
(* Commutation theorem *)
@@ -135,7 +135,7 @@
\ lift_rec(u,n) |> lift_rec(v,n) = lift_rec(u |> v,n))";
by (etac Scomp.induct 1);
by Safe_tac;
-by (ALLGOALS (asm_full_simp_tac ((addsplit (!simpset)) addsimps [lift_subst])));
+by (ALLGOALS (asm_full_simp_tac ((addsplit (simpset())) addsimps [lift_subst])));
by (dres_inst_tac [("psi", "ALL x:nat. Fun(?u(x)) |> ?v(x) = ?w(x)")] asm_rl 1);
by (Asm_full_simp_tac 1);
qed "residuals_lift_rec";
@@ -147,16 +147,16 @@
by (etac Scomp.induct 1);
by Safe_tac;
by (ALLGOALS
- (asm_full_simp_tac ((addsplit (!simpset)) addsimps ([residuals_lift_rec]))));
+ (asm_full_simp_tac ((addsplit (simpset())) addsimps ([residuals_lift_rec]))));
by (dres_inst_tac [("psi", "ALL x.?P(x)")] asm_rl 1);
-by (asm_full_simp_tac (!simpset addsimps ([substitution])) 1);
+by (asm_full_simp_tac (simpset() addsimps ([substitution])) 1);
qed "residuals_subst_rec";
goal Residuals.thy
"!!u.[|u1~u2; v1~v2; regular(u2); regular(v2)|]==>\
\ (v1/u1) |> (v2/u2) = (v1 |> v2)/(u1 |> u2)";
-by (asm_simp_tac (!simpset addsimps ([residuals_subst_rec])) 1);
+by (asm_simp_tac (simpset() addsimps ([residuals_subst_rec])) 1);
qed "commutation";
(* ------------------------------------------------------------------------- *)
@@ -178,7 +178,7 @@
goal Residuals.thy
"!!u. u~v ==> regular(u) --> regular(v) --> regular(u|>v)";
by (etac Scomp.induct 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (TRYALL (dres_inst_tac [("psi", "regular(Fun(?u) |> ?v)")] asm_rl));
by (ALLGOALS (asm_full_simp_tac res1L_ss));
qed "residuals_preserve_reg";
@@ -196,11 +196,11 @@
goal Residuals.thy
"!!u. u ~ v ==> regular(v) --> u|>v = (u un v)|>v";
by (etac Scomp.induct 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (dres_inst_tac [("psi", "Fun(?u) |> ?v = ?w")] asm_rl 3);
by (ALLGOALS (asm_full_simp_tac (res1L_ss addsimps
[union_preserve_comp,comp_sym_iff])));
-by (asm_full_simp_tac (!simpset addsimps
+by (asm_full_simp_tac (simpset() addsimps
[union_preserve_comp RS comp_sym,
comp_sym RS union_preserve_comp RS comp_sym]) 1);
qed_spec_mp "preservation";
--- a/src/ZF/Resid/SubUnion.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Resid/SubUnion.ML Mon Nov 03 12:24:13 1997 +0100
@@ -78,7 +78,7 @@
goal SubUnion.thy
"u ~ v <-> v ~ u";
-by (fast_tac (!claset addIs [comp_sym]) 1);
+by (fast_tac (claset() addIs [comp_sym]) 1);
qed "comp_sym_iff";
@@ -109,7 +109,7 @@
goal SubUnion.thy
"!!u. u ~ v ==> u un v = v un u";
by (etac Scomp.induct 1);
-by (ALLGOALS(asm_simp_tac (!simpset addsimps [or_commute])));
+by (ALLGOALS(asm_simp_tac (simpset() addsimps [or_commute])));
qed "union_sym";
(* ------------------------------------------------------------------------- *)
@@ -120,7 +120,7 @@
"!!u. u ~ v ==> regular(u)-->regular(v)-->regular(u un v)";
by (etac Scomp.induct 1);
by (ALLGOALS(asm_full_simp_tac
- (!simpset setloop(SELECT_GOAL (safe_tac (!claset))))));
+ (simpset() setloop(SELECT_GOAL (safe_tac (claset()))))));
by (dres_inst_tac [("psi", "regular(Fun(?u) un ?v)")] asm_rl 1);
by (Asm_full_simp_tac 1);
qed_spec_mp "union_preserve_regular";
--- a/src/ZF/Resid/Substitution.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Resid/Substitution.ML Mon Nov 03 12:24:13 1997 +0100
@@ -26,13 +26,13 @@
"!!i.[|succ(x)<n; n:nat; x:nat|]==> x < n#-1 ";
by (rtac succ_leE 1);
by (forward_tac [nat_into_Ord RS le_refl RS lt_trans] 1 THEN assume_tac 1);
-by (asm_simp_tac (!simpset addsimps [succ_pred]) 1);
+by (asm_simp_tac (simpset() addsimps [succ_pred]) 1);
qed "lt_pred";
goal Arith.thy
"!!i.[|n < succ(x); p<n; p:nat; n:nat; x:nat|]==> n#-1 < x ";
by (rtac succ_leE 1);
-by (asm_simp_tac (!simpset addsimps [succ_pred]) 1);
+by (asm_simp_tac (simpset() addsimps [succ_pred]) 1);
qed "gt_pred";
@@ -76,36 +76,36 @@
goalw Substitution.thy [subst_rec_def]
"!!n.[|i:nat; k:nat; u:redexes|]==> \
\ subst_rec(u,Var(i),k) = if(k<i,Var(i#-1),if(k=i,u,Var(i)))";
-by (asm_full_simp_tac (!simpset addsimps [gt_not_eq,leI]) 1);
+by (asm_full_simp_tac (simpset() addsimps [gt_not_eq,leI]) 1);
qed "subst_Var";
goalw Substitution.thy [subst_rec_def]
"!!n.[|n:nat; u:redexes|]==> subst_rec(u,Var(n),n) = u";
-by (asm_full_simp_tac (!simpset) 1);
+by (asm_full_simp_tac (simpset()) 1);
qed "subst_eq";
goalw Substitution.thy [subst_rec_def]
"!!n.[|n:nat; u:redexes; p:nat; p<n|]==> \
\ subst_rec(u,Var(n),p) = Var(n#-1)";
-by (asm_full_simp_tac (!simpset) 1);
+by (asm_full_simp_tac (simpset()) 1);
qed "subst_gt";
goalw Substitution.thy [subst_rec_def]
"!!n.[|n:nat; u:redexes; p:nat; n<p|]==> \
\ subst_rec(u,Var(n),p) = Var(n)";
-by (asm_full_simp_tac (!simpset addsimps [gt_not_eq,leI]) 1);
+by (asm_full_simp_tac (simpset() addsimps [gt_not_eq,leI]) 1);
qed "subst_lt";
goalw Substitution.thy [subst_rec_def]
"!!n.[|p:nat; u:redexes|]==> \
\ subst_rec(u,Fun(t),p) = Fun(subst_rec(lift(u),t,succ(p))) ";
-by (asm_full_simp_tac (!simpset) 1);
+by (asm_full_simp_tac (simpset()) 1);
qed "subst_Fun";
goalw Substitution.thy [subst_rec_def]
"!!n.[|p:nat; u:redexes|]==> \
\ subst_rec(u,App(b,f,a),p) = App(b,subst_rec(u,f,p),subst_rec(u,a,p))";
-by (asm_full_simp_tac (!simpset) 1);
+by (asm_full_simp_tac (simpset()) 1);
qed "subst_App";
fun addsplit ss = (ss setloop (split_inside_tac [expand_if])
@@ -116,7 +116,7 @@
"!!n. u:redexes ==> ALL k:nat. lift_rec(u,k):redexes";
by (eresolve_tac [redexes.induct] 1);
by (ALLGOALS(asm_full_simp_tac
- ((addsplit (!simpset)) addsimps [lift_rec_Fun,lift_rec_App])));
+ ((addsplit (simpset())) addsimps [lift_rec_Fun,lift_rec_App])));
qed "lift_rec_type_a";
val lift_rec_type = lift_rec_type_a RS bspec;
@@ -124,7 +124,7 @@
"!!n. v:redexes ==> ALL n:nat. ALL u:redexes. subst_rec(u,v,n):redexes";
by (eresolve_tac [redexes.induct] 1);
by (ALLGOALS(asm_full_simp_tac
- ((addsplit (!simpset)) addsimps [subst_Fun,subst_App,
+ ((addsplit (simpset())) addsimps [subst_Fun,subst_App,
lift_rec_type])));
qed "subst_type_a";
val subst_type = subst_type_a RS bspec RS bspec;
@@ -148,14 +148,14 @@
by (excluded_middle_tac "na < xa" 1);
by ((forward_tac [lt_trans2] 2) THEN (assume_tac 2));
by (ALLGOALS(asm_full_simp_tac
- ((addsplit (!simpset)) addsimps [leI])));
+ ((addsplit (simpset())) addsimps [leI])));
qed "lift_lift_rec";
goalw Substitution.thy []
"!!n.[|u:redexes; n:nat|]==> \
\ lift_rec(lift(u),succ(n)) = lift(lift_rec(u,n))";
-by (asm_simp_tac (!simpset addsimps [lift_lift_rec]) 1);
+by (asm_simp_tac (simpset() addsimps [lift_lift_rec]) 1);
qed "lift_lift";
goal Substitution.thy
@@ -164,24 +164,24 @@
\ lift_rec(subst_rec(u,v,n),m) = \
\ subst_rec(lift_rec(u,m),lift_rec(v,succ(m)),n)";
by ((eresolve_tac [redexes.induct] 1)
- THEN (ALLGOALS(asm_simp_tac (!simpset addsimps [lift_lift]))));
+ THEN (ALLGOALS(asm_simp_tac (simpset() addsimps [lift_lift]))));
by Safe_tac;
by (excluded_middle_tac "na < x" 1);
-by (asm_full_simp_tac (!simpset) 1);
+by (asm_full_simp_tac (simpset()) 1);
by (eres_inst_tac [("j","na")] leE 1);
-by (asm_full_simp_tac ((addsplit (!simpset))
+by (asm_full_simp_tac ((addsplit (simpset()))
addsimps [leI,gt_pred,succ_pred]) 1);
by (hyp_subst_tac 1);
-by (asm_full_simp_tac (!simpset) 1);
+by (asm_full_simp_tac (simpset()) 1);
by (forw_inst_tac [("j","x")] lt_trans2 1);
by (assume_tac 1);
-by (asm_full_simp_tac (!simpset addsimps [leI]) 1);
+by (asm_full_simp_tac (simpset() addsimps [leI]) 1);
qed "lift_rec_subst_rec";
goalw Substitution.thy []
"!!n.[|v:redexes; u:redexes; n:nat|]==> \
\ lift_rec(u/v,n) = lift_rec(u,n)/lift_rec(v,succ(n))";
-by (asm_full_simp_tac (!simpset addsimps [lift_rec_subst_rec]) 1);
+by (asm_full_simp_tac (simpset() addsimps [lift_rec_subst_rec]) 1);
qed "lift_subst";
@@ -191,19 +191,19 @@
\ lift_rec(subst_rec(u,v,n),m) = \
\ subst_rec(lift_rec(u,m),lift_rec(v,m),succ(n))";
by ((eresolve_tac [redexes.induct] 1)
- THEN (ALLGOALS(asm_simp_tac (!simpset addsimps [lift_lift]))));
+ THEN (ALLGOALS(asm_simp_tac (simpset() addsimps [lift_lift]))));
by Safe_tac;
by (excluded_middle_tac "na < x" 1);
-by (asm_full_simp_tac (!simpset) 1);
+by (asm_full_simp_tac (simpset()) 1);
by (eres_inst_tac [("i","x")] leE 1);
by (forward_tac [lt_trans1] 1 THEN assume_tac 1);
by (ALLGOALS(asm_full_simp_tac
- (!simpset addsimps [succ_pred,leI,gt_pred])));
+ (simpset() addsimps [succ_pred,leI,gt_pred])));
by (hyp_subst_tac 1);
-by (asm_full_simp_tac (!simpset addsimps [leI]) 1);
+by (asm_full_simp_tac (simpset() addsimps [leI]) 1);
by (excluded_middle_tac "na < xa" 1);
-by (asm_full_simp_tac (!simpset) 1);
-by (asm_full_simp_tac (!simpset addsimps [leI]) 1);
+by (asm_full_simp_tac (simpset()) 1);
+by (asm_full_simp_tac (simpset() addsimps [leI]) 1);
qed "lift_rec_subst_rec_lt";
@@ -215,8 +215,8 @@
by Safe_tac;
by (excluded_middle_tac "na < x" 1);
(* x <= na *)
-by (asm_full_simp_tac (!simpset) 1);
-by (asm_full_simp_tac (!simpset) 1);
+by (asm_full_simp_tac (simpset()) 1);
+by (asm_full_simp_tac (simpset()) 1);
qed "subst_rec_lift_rec";
goal Substitution.thy
@@ -225,35 +225,35 @@
\ subst_rec(subst_rec(w,u,n),subst_rec(lift_rec(w,m),v,succ(n)),m)=\
\ subst_rec(w,subst_rec(u,v,m),n)";
by ((eresolve_tac [redexes.induct] 1) THEN
- (ALLGOALS(asm_simp_tac (!simpset addsimps
+ (ALLGOALS(asm_simp_tac (simpset() addsimps
[lift_lift RS sym,lift_rec_subst_rec_lt]))));
by Safe_tac;
by (excluded_middle_tac "na le succ(xa)" 1);
-by (asm_full_simp_tac (!simpset) 1);
+by (asm_full_simp_tac (simpset()) 1);
by (forward_tac [nat_into_Ord RS le_refl RS lt_trans] 1 THEN assume_tac 1);
by (etac leE 1);
-by (asm_simp_tac (!simpset addsimps [succ_pred,lt_pred]) 2);
+by (asm_simp_tac (simpset() addsimps [succ_pred,lt_pred]) 2);
by (forward_tac [succ_leI RS lt_trans] 1 THEN assume_tac 1);
by (forw_inst_tac [("i","x")]
(nat_into_Ord RS le_refl RS lt_trans) 1 THEN assume_tac 1);
-by (asm_simp_tac (!simpset addsimps [succ_pred,lt_pred]) 1);
+by (asm_simp_tac (simpset() addsimps [succ_pred,lt_pred]) 1);
by (eres_inst_tac [("i","na")] leE 1);
by (asm_full_simp_tac
- (!simpset addsimps [succ_pred,subst_rec_lift_rec,leI]) 2);
+ (simpset() addsimps [succ_pred,subst_rec_lift_rec,leI]) 2);
by (excluded_middle_tac "na < x" 1);
-by (asm_full_simp_tac (!simpset) 1);
+by (asm_full_simp_tac (simpset()) 1);
by (eres_inst_tac [("j","na")] leE 1);
-by (asm_simp_tac (!simpset addsimps [gt_pred]) 1);
-by (asm_simp_tac (!simpset addsimps [subst_rec_lift_rec]) 1);
+by (asm_simp_tac (simpset() addsimps [gt_pred]) 1);
+by (asm_simp_tac (simpset() addsimps [subst_rec_lift_rec]) 1);
by (forward_tac [lt_trans2] 1 THEN assume_tac 1);
-by (asm_simp_tac (!simpset addsimps [gt_pred]) 1);
+by (asm_simp_tac (simpset() addsimps [gt_pred]) 1);
qed "subst_rec_subst_rec";
goalw Substitution.thy []
"!!n.[|v:redexes; u:redexes; w:redexes; n:nat|]==> \
\ subst_rec(w,u,n)/subst_rec(lift(w),v,succ(n)) = subst_rec(w,u/v,n)";
-by (asm_simp_tac (!simpset addsimps [subst_rec_subst_rec]) 1);
+by (asm_simp_tac (simpset() addsimps [subst_rec_subst_rec]) 1);
qed "substitution";
(* ------------------------------------------------------------------------- *)
@@ -265,27 +265,27 @@
goal Substitution.thy
"!!n.[|n:nat; u ~ v|]==> ALL m:nat. lift_rec(u,m) ~ lift_rec(v,m)";
by (etac Scomp.induct 1);
-by (ALLGOALS(asm_simp_tac (!simpset addsimps [comp_refl])));
+by (ALLGOALS(asm_simp_tac (simpset() addsimps [comp_refl])));
qed "lift_rec_preserve_comp";
goal Substitution.thy
"!!n. u2 ~ v2 ==> ALL m:nat. ALL u1:redexes. ALL v1:redexes.\
\ u1 ~ v1--> subst_rec(u1,u2,m) ~ subst_rec(v1,v2,m)";
by (etac Scomp.induct 1);
-by (ALLGOALS(asm_full_simp_tac ((addsplit (!simpset)) addsimps
+by (ALLGOALS(asm_full_simp_tac ((addsplit (simpset())) addsimps
([lift_rec_preserve_comp,comp_refl]))));
qed "subst_rec_preserve_comp";
goal Substitution.thy
"!!n. regular(u) ==> ALL m:nat. regular(lift_rec(u,m))";
by (eresolve_tac [Sreg.induct] 1);
-by (ALLGOALS(asm_full_simp_tac (addsplit (!simpset))));
+by (ALLGOALS(asm_full_simp_tac (addsplit (simpset()))));
qed "lift_rec_preserve_reg";
goal Substitution.thy
"!!n. regular(v) ==> \
\ ALL m:nat. ALL u:redexes. regular(u)-->regular(subst_rec(u,v,m))";
by (eresolve_tac [Sreg.induct] 1);
-by (ALLGOALS(asm_full_simp_tac ((addsplit (!simpset)) addsimps
+by (ALLGOALS(asm_full_simp_tac ((addsplit (simpset())) addsimps
[lift_rec_preserve_reg])));
qed "subst_rec_preserve_reg";
--- a/src/ZF/Resid/Terms.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Resid/Terms.ML Mon Nov 03 12:24:13 1997 +0100
@@ -61,14 +61,14 @@
goal Terms.thy
"!!u.[|v:lambda|]==> ALL k:nat. lift_rec(v,k):lambda";
by (eresolve_tac [lambda.induct] 1);
-by (ALLGOALS(asm_full_simp_tac (addsplit (!simpset))));
+by (ALLGOALS(asm_full_simp_tac (addsplit (simpset()))));
qed "liftL_typea";
val liftL_type =liftL_typea RS bspec ;
goal Terms.thy
"!!n.[|v:lambda|]==> ALL n:nat. ALL u:lambda. subst_rec(u,v,n):lambda";
by (eresolve_tac [lambda.induct] 1);
-by (ALLGOALS(asm_full_simp_tac ((addsplit (!simpset)) addsimps [liftL_type])));
+by (ALLGOALS(asm_full_simp_tac ((addsplit (simpset())) addsimps [liftL_type])));
qed "substL_typea";
val substL_type = substL_typea RS bspec RS bspec ;
--- a/src/ZF/Sum.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Sum.ML Mon Nov 03 12:24:13 1997 +0100
@@ -120,7 +120,7 @@
qed "sum_subset_iff";
goal Sum.thy "A+B = C+D <-> A=C & B=D";
-by (simp_tac (!simpset addsimps [extension,sum_subset_iff]) 1);
+by (simp_tac (simpset() addsimps [extension,sum_subset_iff]) 1);
by (Blast_tac 1);
qed "sum_equal_iff";
@@ -132,11 +132,11 @@
(*** Eliminator -- case ***)
goalw Sum.thy sum_defs "case(c, d, Inl(a)) = c(a)";
-by (simp_tac (!simpset addsimps [cond_0]) 1);
+by (simp_tac (simpset() addsimps [cond_0]) 1);
qed "case_Inl";
goalw Sum.thy sum_defs "case(c, d, Inr(b)) = d(b)";
-by (simp_tac (!simpset addsimps [cond_1]) 1);
+by (simp_tac (simpset() addsimps [cond_1]) 1);
qed "case_Inr";
Addsimps [case_Inl, case_Inr];
@@ -148,7 +148,7 @@
\ |] ==> case(c,d,u) : C(u)";
by (rtac (major RS sumE) 1);
by (ALLGOALS (etac ssubst));
-by (ALLGOALS (asm_simp_tac (!simpset addsimps prems)));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps prems)));
qed "case_type";
goal Sum.thy
@@ -165,7 +165,7 @@
\ !!y. y:B ==> d(y)=d'(y) \
\ |] ==> case(c,d,z) = case(c',d',z)";
by (resolve_tac [major RS sumE] 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps prems)));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps prems)));
qed "case_cong";
goal Sum.thy
--- a/src/ZF/Trancl.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Trancl.ML Mon Nov 03 12:24:13 1997 +0100
@@ -51,11 +51,11 @@
(*The premise ensures that r consists entirely of pairs*)
val prems = goal Trancl.thy "r <= Sigma(A,B) ==> r <= r^*";
by (cut_facts_tac prems 1);
-by (blast_tac (!claset addIs [r_into_rtrancl]) 1);
+by (blast_tac (claset() addIs [r_into_rtrancl]) 1);
qed "r_subset_rtrancl";
goal Trancl.thy "field(r^*) = field(r)";
-by (blast_tac (!claset addIs [r_into_rtrancl]
+by (blast_tac (claset() addIs [r_into_rtrancl]
addSDs [rtrancl_type RS subsetD]) 1);
qed "rtrancl_field";
@@ -68,7 +68,7 @@
\ !!x y z.[| P(<x,y>); <x,y>: r^*; <y,z>: r |] ==> P(<x,z>) |] \
\ ==> P(<a,b>)";
by (rtac ([rtrancl_def, rtrancl_bnd_mono, major] MRS def_induct) 1);
-by (blast_tac (!claset addIs prems) 1);
+by (blast_tac (claset() addIs prems) 1);
qed "rtrancl_full_induct";
(*nice induction rule.
@@ -85,7 +85,7 @@
by (EVERY1 [etac (spec RS mp), rtac refl]);
(*now do the induction*)
by (resolve_tac [major RS rtrancl_full_induct] 1);
-by (ALLGOALS (blast_tac (!claset addIs prems)));
+by (ALLGOALS (blast_tac (claset() addIs prems)));
qed "rtrancl_induct";
(*transitivity of transitive closure!! -- by induction.*)
@@ -103,7 +103,7 @@
by (subgoal_tac "a = b | (EX y. <a,y> : r^* & <y,b> : r)" 1);
(*see HOL/trancl*)
by (rtac (major RS rtrancl_induct) 2);
-by (ALLGOALS (fast_tac (!claset addSEs prems)));
+by (ALLGOALS (fast_tac (claset() addSEs prems)));
qed "rtranclE";
@@ -111,24 +111,24 @@
(*Transitivity of r^+ is proved by transitivity of r^* *)
goalw Trancl.thy [trans_def,trancl_def] "trans(r^+)";
-by (blast_tac (!claset addIs [rtrancl_into_rtrancl RS
+by (blast_tac (claset() addIs [rtrancl_into_rtrancl RS
(trans_rtrancl RS transD RS compI)]) 1);
qed "trans_trancl";
(** Conversions between trancl and rtrancl **)
goalw Trancl.thy [trancl_def] "!!r. <a,b> : r^+ ==> <a,b> : r^*";
-by (blast_tac (!claset addIs [rtrancl_into_rtrancl]) 1);
+by (blast_tac (claset() addIs [rtrancl_into_rtrancl]) 1);
qed "trancl_into_rtrancl";
(*r^+ contains all pairs in r *)
goalw Trancl.thy [trancl_def] "!!r. <a,b> : r ==> <a,b> : r^+";
-by (blast_tac (!claset addSIs [rtrancl_refl]) 1);
+by (blast_tac (claset() addSIs [rtrancl_refl]) 1);
qed "r_into_trancl";
(*The premise ensures that r consists entirely of pairs*)
goal Trancl.thy "!!r. r <= Sigma(A,B) ==> r <= r^+";
-by (blast_tac (!claset addIs [r_into_trancl]) 1);
+by (blast_tac (claset() addIs [r_into_trancl]) 1);
qed "r_subset_trancl";
(*intro rule by definition: from r^* and r *)
@@ -158,7 +158,7 @@
(*now solve first subgoal: this formula is sufficient*)
by (Blast_tac 1);
by (etac rtrancl_induct 1);
-by (ALLGOALS (fast_tac (!claset addIs (rtrancl_into_trancl1::prems))));
+by (ALLGOALS (fast_tac (claset() addIs (rtrancl_into_trancl1::prems))));
qed "trancl_induct";
(*elimination of r^+ -- NOT an induction rule*)
@@ -168,14 +168,14 @@
\ !!y.[| <a,y> : r^+; <y,b> : r |] ==> P \
\ |] ==> P";
by (subgoal_tac "<a,b> : r | (EX y. <a,y> : r^+ & <y,b> : r)" 1);
-by (fast_tac (!claset addIs prems) 1);
+by (fast_tac (claset() addIs prems) 1);
by (rtac (rewrite_rule [trancl_def] major RS compEpair) 1);
by (etac rtranclE 1);
-by (ALLGOALS (blast_tac (!claset addIs [rtrancl_into_trancl1])));
+by (ALLGOALS (blast_tac (claset() addIs [rtrancl_into_trancl1])));
qed "tranclE";
goalw Trancl.thy [trancl_def] "r^+ <= field(r)*field(r)";
-by (blast_tac (!claset addEs [rtrancl_type RS subsetD RS SigmaE2]) 1);
+by (blast_tac (claset() addEs [rtrancl_type RS subsetD RS SigmaE2]) 1);
qed "trancl_type";
val [prem] = goalw Trancl.thy [trancl_def] "r<=s ==> r^+ <= s^+";
--- a/src/ZF/Univ.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Univ.ML Mon Nov 03 12:24:13 1997 +0100
@@ -37,7 +37,7 @@
by (eps_ind_tac "x" 1);
by (stac Vfrom 1);
by (stac Vfrom 1);
-by (blast_tac (!claset addSIs [rank_lt RS ltD]) 1);
+by (blast_tac (claset() addSIs [rank_lt RS ltD]) 1);
qed "Vfrom_rank_subset1";
goal Univ.thy "Vfrom(A,rank(x)) <= Vfrom(A,x)";
@@ -93,13 +93,13 @@
goal Univ.thy "!!a. a: Vfrom(A,i) ==> {a} : Vfrom(A,succ(i))";
by (rtac subset_mem_Vfrom 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
qed "singleton_in_Vfrom";
goal Univ.thy
"!!A. [| a: Vfrom(A,i); b: Vfrom(A,i) |] ==> {a,b} : Vfrom(A,succ(i))";
by (rtac subset_mem_Vfrom 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
qed "doubleton_in_Vfrom";
goalw Univ.thy [Pair_def]
@@ -255,7 +255,7 @@
qed "Inr_in_VLimit";
goal Univ.thy "!!i. Limit(i) ==> Vfrom(C,i)+Vfrom(C,i) <= Vfrom(C,i)";
-by (blast_tac (!claset addSIs [Inl_in_VLimit, Inr_in_VLimit]) 1);
+by (blast_tac (claset() addSIs [Inl_in_VLimit, Inr_in_VLimit]) 1);
qed "sum_VLimit";
bind_thm ("sum_subset_VLimit", [sum_mono, sum_VLimit] MRS subset_trans);
@@ -267,7 +267,7 @@
goal Univ.thy "!!i A. Transset(A) ==> Transset(Vfrom(A,i))";
by (eps_ind_tac "i" 1);
by (stac Vfrom 1);
-by (blast_tac (!claset addSIs [Transset_Union_family, Transset_Un,
+by (blast_tac (claset() addSIs [Transset_Union_family, Transset_Un,
Transset_Pow]) 1);
qed "Transset_Vfrom";
@@ -323,7 +323,7 @@
by (dtac Transset_Vfrom 1);
by (rtac subset_mem_Vfrom 1);
by (rewtac Transset_def);
-by (blast_tac (!claset addIs [Pair_in_Vfrom]) 1);
+by (blast_tac (claset() addIs [Pair_in_Vfrom]) 1);
qed "prod_in_Vfrom";
val [aprem,bprem,limiti,transset] = goal Univ.thy
@@ -342,7 +342,7 @@
by (dtac Transset_Vfrom 1);
by (rtac subset_mem_Vfrom 1);
by (rewtac Transset_def);
-by (blast_tac (!claset addIs [zero_in_Vfrom, Pair_in_Vfrom,
+by (blast_tac (claset() addIs [zero_in_Vfrom, Pair_in_Vfrom,
i_subset_Vfrom RS subsetD]) 1);
qed "sum_in_Vfrom";
@@ -368,7 +368,7 @@
by (rtac (succI1 RS UN_upper) 2);
by (rtac Pow_mono 1);
by (rewtac Transset_def);
-by (blast_tac (!claset addIs [Pair_in_Vfrom]) 1);
+by (blast_tac (claset() addIs [Pair_in_Vfrom]) 1);
qed "fun_in_Vfrom";
val [aprem,bprem,limiti,transset] = goal Univ.thy
@@ -391,7 +391,7 @@
goal Univ.thy
"!!a. [| a: Vfrom(A,i); Limit(i); Transset(A) |] ==> Pow(a) : Vfrom(A,i)";
-by (blast_tac (!claset addEs [Limit_VfromE]
+by (blast_tac (claset() addEs [Limit_VfromE]
addIs [Limit_has_succ, Pow_in_Vfrom, Limit_VfromI]) 1);
qed "Pow_in_VLimit";
@@ -412,7 +412,7 @@
val [ordi] = goal Univ.thy "Ord(i) ==> ALL b. b : Vset(i) --> rank(b) < i";
by (rtac (ordi RS trans_induct) 1);
by (stac Vset 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (stac rank 1);
by (rtac UN_succ_least_lt 1);
by (Blast_tac 2);
@@ -423,7 +423,7 @@
by (rtac (ordi RS trans_induct) 1);
by (rtac allI 1);
by (stac Vset 1);
-by (blast_tac (!claset addSIs [rank_lt RS ltD]) 1);
+by (blast_tac (claset() addSIs [rank_lt RS ltD]) 1);
val lemma = result();
goal Univ.thy "!!x i. rank(x)<i ==> x : Vset(i)";
@@ -445,7 +445,7 @@
goal Univ.thy "!!i. Ord(i) ==> rank(Vset(i)) = i";
by (stac rank 1);
by (rtac equalityI 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (EVERY' [rtac UN_I,
etac (i_subset_Vfrom RS subsetD),
etac (Ord_in_Ord RS rank_of_Ord RS ssubst),
@@ -481,14 +481,14 @@
val rank_rls = [rank_Inl, rank_Inr, rank_pair1, rank_pair2];
val rank_trans_rls = rank_rls @ (rank_rls RLN (2, [lt_trans]));
-val rank_ss = !simpset addsimps [VsetI] addsimps rank_trans_rls;
+val rank_ss = simpset() addsimps [VsetI] addsimps rank_trans_rls;
(** Recursion over Vset levels! **)
(*NOT SUITABLE FOR REWRITING: recursive!*)
goalw Univ.thy [Vrec_def] "Vrec(a,H) = H(a, lam x:Vset(rank(a)). Vrec(x,H))";
by (stac transrec 1);
-by (simp_tac (!simpset addsimps [Ord_rank, Ord_succ, VsetD RS ltD RS beta,
+by (simp_tac (simpset() addsimps [Ord_rank, Ord_succ, VsetD RS ltD RS beta,
VsetI RS beta, le_refl]) 1);
qed "Vrec";
@@ -597,7 +597,7 @@
qed "two_in_univ";
goalw Univ.thy [bool_def] "bool <= univ(A)";
-by (blast_tac (!claset addSIs [zero_in_univ,one_in_univ]) 1);
+by (blast_tac (claset() addSIs [zero_in_univ,one_in_univ]) 1);
qed "bool_subset_univ";
bind_thm ("bool_into_univ", (bool_subset_univ RS subsetD));
@@ -632,19 +632,19 @@
goal Univ.thy
"!!i. [| b: Fin(Vfrom(A,i)); Limit(i) |] ==> EX j. b <= Vfrom(A,j) & j<i";
by (etac Fin_induct 1);
-by (blast_tac (!claset addSDs [Limit_has_0]) 1);
-by (safe_tac (!claset));
+by (blast_tac (claset() addSDs [Limit_has_0]) 1);
+by (safe_tac (claset()));
by (etac Limit_VfromE 1);
by (assume_tac 1);
-by (blast_tac (!claset addSIs [Un_least_lt] addIs [Vfrom_UnI1, Vfrom_UnI2]) 1);
+by (blast_tac (claset() addSIs [Un_least_lt] addIs [Vfrom_UnI1, Vfrom_UnI2]) 1);
val Fin_Vfrom_lemma = result();
goal Univ.thy "!!i. Limit(i) ==> Fin(Vfrom(A,i)) <= Vfrom(A,i)";
by (rtac subsetI 1);
by (dtac Fin_Vfrom_lemma 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (resolve_tac [Vfrom RS ssubst] 1);
-by (blast_tac (!claset addSDs [ltD]) 1);
+by (blast_tac (claset() addSDs [ltD]) 1);
val Fin_VLimit = result();
bind_thm ("Fin_subset_VLimit", [Fin_mono, Fin_VLimit] MRS subset_trans);
--- a/src/ZF/WF.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/WF.ML Mon Nov 03 12:24:13 1997 +0100
@@ -33,7 +33,7 @@
qed "wf_on_field_imp_wf";
goal WF.thy "wf(r) <-> wf[field(r)](r)";
-by (blast_tac (!claset addIs [wf_imp_wf_on, wf_on_field_imp_wf]) 1);
+by (blast_tac (claset() addIs [wf_imp_wf_on, wf_on_field_imp_wf]) 1);
qed "wf_iff_wf_on_field";
goalw WF.thy [wf_on_def, wf_def] "!!A B r. [| wf[A](r); B<=A |] ==> wf[B](r)";
@@ -79,9 +79,9 @@
\ |] ==> P(a)";
by (res_inst_tac [ ("x", "{z:domain(r) Un {a}. ~P(z)}") ] (major RS allE) 1);
by (etac disjE 1);
-by (blast_tac (!claset addEs [equalityE]) 1);
-by (asm_full_simp_tac (!simpset addsimps [domainI]) 1);
-by (blast_tac (!claset addSDs [minor]) 1);
+by (blast_tac (claset() addEs [equalityE]) 1);
+by (asm_full_simp_tac (simpset() addsimps [domainI]) 1);
+by (blast_tac (claset() addSDs [minor]) 1);
qed "wf_induct";
(*Perform induction on i, then prove the wf(r) subgoal using prems. *)
@@ -99,7 +99,7 @@
by (wf_ind_tac "a" [wfr] 1);
by (rtac impI 1);
by (eresolve_tac prems 1);
-by (blast_tac (!claset addIs (prems RL [subsetD])) 1);
+by (blast_tac (claset() addIs (prems RL [subsetD])) 1);
qed "wf_induct2";
goal domrange.thy "!!r A. field(r Int A*A) <= A";
@@ -179,11 +179,11 @@
by (bchain_tac 1);
by (eres_inst_tac [("a","y")] (wfr RS wf_on_induct) 1);
by (cut_facts_tac [subs] 1);
-by (blast_tac (!claset addEs [tranclE]) 1);
+by (blast_tac (claset() addEs [tranclE]) 1);
qed "wf_on_trancl";
goal WF.thy "!!r. wf(r) ==> wf(r^+)";
-by (asm_full_simp_tac (!simpset addsimps [wf_iff_wf_on_field]) 1);
+by (asm_full_simp_tac (simpset() addsimps [wf_iff_wf_on_field]) 1);
by (rtac (trancl_type RS field_rel_subset RSN (2, wf_on_subset_A)) 1);
by (etac wf_on_trancl 1);
by (Blast_tac 1);
@@ -220,7 +220,7 @@
eresolve_tac [underD, transD, spec RS mp]));
(*** NOTE! some simplifications need a different solver!! ***)
-val wf_super_ss = !simpset setSolver indhyp_tac;
+val wf_super_ss = simpset() setSolver indhyp_tac;
val prems = goalw WF.thy [is_recfun_def]
"[| wf(r); trans(r); is_recfun(r,a,H,f); is_recfun(r,b,H,g) |] ==> \
@@ -295,7 +295,7 @@
\ wftrec(r,a,H) = H(a, lam x: r-``{a}. wftrec(r,x,H))";
by (stac (rewrite_rule [is_recfun_def] unfold_the_recfun) 1);
by (ALLGOALS (asm_simp_tac
- (!simpset addsimps [vimage_singleton_iff RS iff_sym, the_recfun_cut])));
+ (simpset() addsimps [vimage_singleton_iff RS iff_sym, the_recfun_cut])));
qed "wftrec";
(** Removal of the premise trans(r) **)
@@ -333,6 +333,6 @@
"!!A r. [| wf[A](r); a: A |] ==> \
\ wfrec[A](r,a,H) = H(a, lam x: (r-``{a}) Int A. wfrec[A](r,x,H))";
by (etac (wfrec RS trans) 1);
-by (asm_simp_tac (!simpset addsimps [vimage_Int_square, cons_subset_iff]) 1);
+by (asm_simp_tac (simpset() addsimps [vimage_Int_square, cons_subset_iff]) 1);
qed "wfrec_on";
--- a/src/ZF/ZF.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ZF.ML Mon Nov 03 12:24:13 1997 +0100
@@ -54,7 +54,7 @@
(*Trival rewrite rule; (ALL x:A.P)<->P holds only if A is nonempty!*)
qed_goal "ball_triv" ZF.thy "(ALL x:A. P) <-> ((EX x. x:A) --> P)"
- (fn _=> [ simp_tac (!simpset addsimps [Ball_def]) 1 ]);
+ (fn _=> [ simp_tac (simpset() addsimps [Ball_def]) 1 ]);
Addsimps [ball_triv];
(*Congruence rule for rewriting*)
@@ -87,7 +87,7 @@
(*We do not even have (EX x:A. True) <-> True unless A is nonempty!!*)
qed_goal "bex_triv" ZF.thy "(EX x:A. P) <-> ((EX x. x:A) & P)"
- (fn _=> [ simp_tac (!simpset addsimps [Bex_def]) 1 ]);
+ (fn _=> [ simp_tac (simpset() addsimps [Bex_def]) 1 ]);
Addsimps [bex_triv];
qed_goalw "bex_cong" ZF.thy [Bex_def]
@@ -263,7 +263,7 @@
qed_goalw "RepFun_cong" ZF.thy [RepFun_def]
"[| A=B; !!x. x:B ==> f(x)=g(x) |] ==> RepFun(A,f) = RepFun(B,g)"
- (fn prems=> [ (simp_tac (!simpset addsimps prems) 1) ]);
+ (fn prems=> [ (simp_tac (simpset() addsimps prems) 1) ]);
Addcongs [RepFun_cong];
@@ -304,7 +304,7 @@
qed_goalw "Collect_cong" ZF.thy [Collect_def]
"[| A=B; !!x. x:B ==> P(x) <-> Q(x) |] ==> Collect(A,P) = Collect(B,Q)"
- (fn prems=> [ (simp_tac (!simpset addsimps prems) 1) ]);
+ (fn prems=> [ (simp_tac (simpset() addsimps prems) 1) ]);
AddSIs [CollectI];
AddSEs [CollectE];
@@ -345,7 +345,7 @@
qed_goal "UN_cong" ZF.thy
"[| A=B; !!x. x:B ==> C(x)=D(x) |] ==> (UN x:A. C(x)) = (UN x:B. D(x))"
- (fn prems=> [ (simp_tac (!simpset addsimps prems) 1) ]);
+ (fn prems=> [ (simp_tac (simpset() addsimps prems) 1) ]);
(*No "Addcongs [UN_cong]" because UN is a combination of constants*)
@@ -367,8 +367,8 @@
(* Intersection is well-behaved only if the family is non-empty! *)
qed_goal "InterI" ZF.thy
"[| !!x. x: C ==> A: x; EX c. c:C |] ==> A : Inter(C)"
- (fn prems=> [ (simp_tac (!simpset addsimps [Inter_iff]) 1),
- blast_tac (!claset addIs prems) 1 ]);
+ (fn prems=> [ (simp_tac (simpset() addsimps [Inter_iff]) 1),
+ blast_tac (claset() addIs prems) 1 ]);
(*A "destruct" rule -- every B in C contains A as an element, but
A:B can hold when B:C does not! This rule is analogous to "spec". *)
@@ -395,7 +395,7 @@
qed_goal "INT_I" ZF.thy
"[| !!x. x: A ==> b: B(x); a: A |] ==> b: (INT x:A. B(x))"
- (fn prems=> [ blast_tac (!claset addIs prems) 1 ]);
+ (fn prems=> [ blast_tac (claset() addIs prems) 1 ]);
qed_goal "INT_E" ZF.thy
"[| b : (INT x:A. B(x)); a: A |] ==> b : B(a)"
@@ -405,7 +405,7 @@
qed_goal "INT_cong" ZF.thy
"[| A=B; !!x. x:B ==> C(x)=D(x) |] ==> (INT x:A. C(x)) = (INT x:B. D(x))"
- (fn prems=> [ (simp_tac (!simpset addsimps prems) 1) ]);
+ (fn prems=> [ (simp_tac (simpset() addsimps prems) 1) ]);
(*No "Addcongs [INT_cong]" because INT is a combination of constants*)
@@ -429,7 +429,7 @@
qed_goal "not_mem_empty" ZF.thy "a ~: 0"
(fn _=>
[ (cut_facts_tac [foundation] 1),
- (best_tac (!claset addDs [equalityD2]) 1) ]);
+ (best_tac (claset() addDs [equalityD2]) 1) ]);
bind_thm ("emptyE", not_mem_empty RS notE);
@@ -442,7 +442,7 @@
Addsimps [empty_subsetI];
qed_goal "equals0I" ZF.thy "[| !!y. y:A ==> False |] ==> A=0"
- (fn prems=> [ blast_tac (!claset addDs prems) 1 ]);
+ (fn prems=> [ blast_tac (claset() addDs prems) 1 ]);
qed_goal "equals0D" ZF.thy "!!P. [| A=0; a:A |] ==> P"
(fn _=> [ Full_simp_tac 1, Blast_tac 1 ]);
--- a/src/ZF/Zorn.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/Zorn.ML Mon Nov 03 12:24:13 1997 +0100
@@ -51,7 +51,7 @@
\ !!Y. [| Y <= TFin(S,next); ALL y:Y. P(y) |] ==> P(Union(Y)) \
\ |] ==> P(n)";
by (rtac (major RS TFin.induct) 1);
-by (ALLGOALS (fast_tac (!claset addIs prems)));
+by (ALLGOALS (fast_tac (claset() addIs prems)));
qed "TFin_induct";
(*Perform induction on n, then prove the major premise using prems. *)
@@ -131,7 +131,7 @@
by (rtac (major RS TFin_induct) 1);
by (dtac TFin_subsetD 1);
by (REPEAT (assume_tac 1));
-by (fast_tac (!claset addEs [ssubst]) 1);
+by (fast_tac (claset() addEs [ssubst]) 1);
by (blast_tac (subset_cs addIs [TFin_is_subset]) 1);
qed "equal_next_upper";
@@ -184,7 +184,7 @@
by (dtac choice_super 1);
by (assume_tac 1);
by (assume_tac 1);
-by (asm_full_simp_tac (!simpset addsimps [super_def]) 1);
+by (asm_full_simp_tac (simpset() addsimps [super_def]) 1);
qed "choice_not_equals";
(*This justifies Definition 4.4*)
@@ -199,14 +199,14 @@
by (rewtac increasing_def);
by (rtac CollectI 1);
by (rtac lam_type 1);
-by (asm_simp_tac (!simpset setloop split_tac [expand_if]) 1);
-by (fast_tac (!claset addSIs [super_subset_chain RS subsetD,
+by (asm_simp_tac (simpset() setloop split_tac [expand_if]) 1);
+by (fast_tac (claset() addSIs [super_subset_chain RS subsetD,
chain_subset_Pow RS subsetD,
choice_super]) 1);
(*Now, verify that it increases*)
-by (asm_simp_tac (!simpset addsimps [Pow_iff, subset_refl]
+by (asm_simp_tac (simpset() addsimps [Pow_iff, subset_refl]
setloop split_tac [expand_if]) 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (dtac choice_super 1);
by (REPEAT (assume_tac 1));
by (rewtac super_def);
@@ -223,12 +223,12 @@
\ |] ==> c: chain(S)";
by (etac TFin_induct 1);
by (asm_simp_tac
- (!simpset addsimps [chain_subset_Pow RS subsetD,
+ (simpset() addsimps [chain_subset_Pow RS subsetD,
choice_super RS (super_subset_chain RS subsetD)]
setloop split_tac [expand_if]) 1);
by (rewtac chain_def);
by (rtac CollectI 1 THEN Blast_tac 1);
-by (safe_tac(!claset));
+by (safe_tac(claset()));
by (res_inst_tac [("m1","B"), ("n1","Ba")] (TFin_subset_linear RS disjE) 1);
by (ALLGOALS Fast_tac);
qed "TFin_chain_lemma4";
@@ -248,7 +248,7 @@
by (assume_tac 2);
by (rtac refl 2);
by (asm_full_simp_tac
- (!simpset addsimps [subset_refl RS TFin_UnionI RS
+ (simpset() addsimps [subset_refl RS TFin_UnionI RS
(TFin.dom_subset RS subsetD)]
setloop split_tac [expand_if]) 1);
by (eresolve_tac [choice_not_equals RS notE] 1);
@@ -268,19 +268,19 @@
goal Zorn.thy
"!!S. ALL c: chain(S). Union(c) : S ==> EX y:S. ALL z:S. y<=z --> y=z";
by (resolve_tac [Hausdorff RS exE] 1);
-by (asm_full_simp_tac (!simpset addsimps [maxchain_def]) 1);
+by (asm_full_simp_tac (simpset() addsimps [maxchain_def]) 1);
by (rename_tac "c" 1);
by (res_inst_tac [("x", "Union(c)")] bexI 1);
by (Blast_tac 2);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rename_tac "z" 1);
by (rtac classical 1);
by (subgoal_tac "cons(z,c): super(S,c)" 1);
-by (blast_tac (!claset addEs [equalityE]) 1);
+by (blast_tac (claset() addEs [equalityE]) 1);
by (rewtac super_def);
-by (safe_tac (!claset));
-by (fast_tac (!claset addEs [chain_extend]) 1);
-by (blast_tac (!claset addEs [equalityE]) 1);
+by (safe_tac (claset()));
+by (fast_tac (claset() addEs [chain_extend]) 1);
+by (blast_tac (claset() addEs [equalityE]) 1);
qed "Zorn";
@@ -305,7 +305,7 @@
goal Zorn.thy "!!Z. [| Z <= TFin(S,next); z:Z |] ==> Inter(Z) : Z";
by (rtac classical 1);
by (subgoal_tac "Z = {Union(TFin(S,next))}" 1);
-by (asm_simp_tac (!simpset addsimps [Inter_singleton]) 1);
+by (asm_simp_tac (simpset() addsimps [Inter_singleton]) 1);
by (etac equal_singleton 1);
by (rtac (Union_upper RS equalityI) 1);
by (rtac (subset_refl RS TFin_UnionI RS TFin_well_lemma5 RS bspec) 2);
@@ -340,7 +340,7 @@
"!!S. [| ch : (PROD X:Pow(S) - {0}. X); X<=S; X~=S \
\ |] ==> ch ` (S-X) : S-X";
by (etac apply_type 1);
-by (blast_tac (!claset addSEs [equalityE]) 1);
+by (blast_tac (claset() addSEs [equalityE]) 1);
qed "choice_Diff";
(*This justifies Definition 6.1*)
@@ -358,12 +358,12 @@
(*Verify that it increases*)
by (rtac allI 2);
by (rtac impI 2);
-by (asm_simp_tac (!simpset addsimps [Pow_iff, subset_consI, subset_refl]
+by (asm_simp_tac (simpset() addsimps [Pow_iff, subset_consI, subset_refl]
setloop split_tac [expand_if]) 2);
(*Type checking is surprisingly hard!*)
-by (asm_simp_tac (!simpset addsimps [Pow_iff, cons_subset_iff, subset_refl]
+by (asm_simp_tac (simpset() addsimps [Pow_iff, cons_subset_iff, subset_refl]
setloop split_tac [expand_if]) 1);
-by (blast_tac (!claset addSIs [choice_Diff RS DiffD1]) 1);
+by (blast_tac (claset() addSIs [choice_Diff RS DiffD1]) 1);
qed "Zermelo_next_exists";
@@ -377,18 +377,18 @@
by (res_inst_tac [("d", "%y. ch`(S-y)")] lam_injective 1);
by (rtac DiffI 1);
by (resolve_tac [Collect_subset RS TFin_UnionI] 1);
-by (blast_tac (!claset addSIs [Collect_subset RS TFin_UnionI]
+by (blast_tac (claset() addSIs [Collect_subset RS TFin_UnionI]
addEs [equalityE]) 1);
by (subgoal_tac "x ~: Union({y: TFin(S,next). x~: y})" 1);
-by (blast_tac (!claset addEs [equalityE]) 2);
+by (blast_tac (claset() addEs [equalityE]) 2);
by (subgoal_tac "Union({y: TFin(S,next). x~: y}) ~= S" 1);
-by (blast_tac (!claset addEs [equalityE]) 2);
+by (blast_tac (claset() addEs [equalityE]) 2);
(*For proving x : next`Union(...);
Abrial & Laffitte's justification appears to be faulty.*)
by (subgoal_tac "~ next ` Union({y: TFin(S,next). x~: y}) <= \
\ Union({y: TFin(S,next). x~: y})" 1);
by (asm_simp_tac
- (!simpset delsimps [Union_iff]
+ (simpset() delsimps [Union_iff]
addsimps [Collect_subset RS TFin_UnionI RS TFin_is_subset,
Pow_iff, cons_subset_iff, subset_refl,
choice_Diff RS DiffD2]
@@ -397,7 +397,7 @@
by (blast_tac (subset_cs addSIs [Collect_subset RS TFin_UnionI, TFin_nextI]) 2);
(*End of the lemmas!*)
by (asm_full_simp_tac
- (!simpset addsimps [Collect_subset RS TFin_UnionI RS TFin_is_subset,
+ (simpset() addsimps [Collect_subset RS TFin_UnionI RS TFin_is_subset,
Pow_iff, cons_subset_iff, subset_refl]
setloop split_tac [expand_if]) 1);
by (REPEAT (eresolve_tac [asm_rl, consE, sym, notE] 1));
--- a/src/ZF/domrange.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/domrange.ML Mon Nov 03 12:24:13 1997 +0100
@@ -101,7 +101,7 @@
qed_goalw "fieldCI" ZF.thy [field_def]
"(~ <c,a>:r ==> <a,b>: r) ==> a : field(r)"
- (fn [prem]=> [ (blast_tac (!claset addIs [prem]) 1) ]);
+ (fn [prem]=> [ (blast_tac (claset() addIs [prem]) 1) ]);
qed_goalw "fieldE" ZF.thy [field_def]
"[| a : field(r); \
@@ -191,7 +191,7 @@
AddIs [vimageI];
AddSEs [vimageE];
-val ZF_cs = !claset delrules [equalityI];
+val ZF_cs = claset() delrules [equalityI];
(** The Union of a set of relations is a relation -- Lemma for fun_Union **)
goal ZF.thy "!!S. (ALL x:S. EX A B. x <= A*B) ==> \
--- a/src/ZF/equalities.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/equalities.ML Mon Nov 03 12:24:13 1997 +0100
@@ -56,11 +56,11 @@
qed "Int_Un_distrib";
goal ZF.thy "A<=B <-> A Int B = A";
-by (blast_tac (!claset addSEs [equalityE]) 1);
+by (blast_tac (claset() addSEs [equalityE]) 1);
qed "subset_Int_iff";
goal ZF.thy "A<=B <-> B Int A = A";
-by (blast_tac (!claset addSEs [equalityE]) 1);
+by (blast_tac (claset() addSEs [equalityE]) 1);
qed "subset_Int_iff2";
goal ZF.thy "!!A B C. C<=A ==> (A-B) Int C = C-B";
@@ -90,11 +90,11 @@
qed "Un_Int_distrib";
goal ZF.thy "A<=B <-> A Un B = B";
-by (blast_tac (!claset addSEs [equalityE]) 1);
+by (blast_tac (claset() addSEs [equalityE]) 1);
qed "subset_Un_iff";
goal ZF.thy "A<=B <-> B Un A = B";
-by (blast_tac (!claset addSEs [equalityE]) 1);
+by (blast_tac (claset() addSEs [equalityE]) 1);
qed "subset_Un_iff2";
(** Simple properties of Diff -- set difference **)
@@ -112,7 +112,7 @@
qed "Diff_0";
goal ZF.thy "A-B=0 <-> A<=B";
-by (blast_tac (!claset addEs [equalityE]) 1);
+by (blast_tac (claset() addEs [equalityE]) 1);
qed "Diff_eq_0_iff";
(*NOT SUITABLE FOR REWRITING since {a} == cons(a,0)*)
@@ -160,7 +160,7 @@
(*Halmos, Naive Set Theory, page 16.*)
goal ZF.thy "(A Int B) Un C = A Int (B Un C) <-> C<=A";
-by (blast_tac (!claset addSEs [equalityE]) 1);
+by (blast_tac (claset() addSEs [equalityE]) 1);
qed "Un_Int_assoc_iff";
@@ -179,7 +179,7 @@
qed "Union_Int_subset";
goal ZF.thy "Union(C) Int A = 0 <-> (ALL B:C. B Int A = 0)";
-by (blast_tac (!claset addSEs [equalityE]) 1);
+by (blast_tac (claset() addSEs [equalityE]) 1);
qed "Union_disjoint";
goalw ZF.thy [Inter_def] "Inter(0) = 0";
@@ -533,7 +533,7 @@
goal ZF.thy "{f(x).x:A}=0 <-> A=0";
(*blast_tac takes too long to find a good depth*)
-by (Blast.depth_tac (!claset addSEs [equalityE]) 10 1);
+by (Blast.depth_tac (claset() addSEs [equalityE]) 10 1);
qed "RepFun_eq_0_iff";
(** Collect **)
@@ -551,7 +551,7 @@
qed "Collect_Diff";
goal ZF.thy "{x:cons(a,B). P(x)} = if(P(a), cons(a, {x:B. P(x)}), {x:B. P(x)})";
-by (simp_tac (!simpset setloop split_tac [expand_if]) 1);
+by (simp_tac (simpset() setloop split_tac [expand_if]) 1);
by (Blast_tac 1);
qed "Collect_cons";
--- a/src/ZF/ex/Acc.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Acc.ML Mon Nov 03 12:24:13 1997 +0100
@@ -17,7 +17,7 @@
(*The intended introduction rule*)
val prems = goal Acc.thy
"[| !!b. <b,a>:r ==> b: acc(r); a: field(r) |] ==> a: acc(r)";
-by (fast_tac (!claset addIs (prems@acc.intrs)) 1);
+by (fast_tac (claset() addIs (prems@acc.intrs)) 1);
qed "accI";
goal Acc.thy "!!a b r. [| b: acc(r); <a,b>: r |] ==> a: acc(r)";
--- a/src/ZF/ex/BT.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/BT.ML Mon Nov 03 12:24:13 1997 +0100
@@ -28,7 +28,7 @@
goalw BT.thy (bt.defs@bt.con_defs) "bt(univ(A)) <= univ(A)";
by (rtac lfp_lowerbound 1);
by (rtac (A_subset_univ RS univ_mono) 2);
-by (fast_tac (!claset addSIs [zero_in_univ, Inl_in_univ, Inr_in_univ,
+by (fast_tac (claset() addSIs [zero_in_univ, Inl_in_univ, Inr_in_univ,
Pair_in_univ]) 1);
qed "bt_univ";
@@ -66,7 +66,7 @@
\ h(x,y,z,r,s): C(Br(x,y,z)) \
\ |] ==> bt_rec(t,c,h) : C(t)";
by (bt_ind_tac "t" prems 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps prems)));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps prems)));
qed "bt_rec_type";
(** Versions for use with definitions **)
@@ -129,13 +129,13 @@
val prems = goal BT.thy
"t: bt(A) ==> n_leaves(bt_reflect(t)) = n_leaves(t)";
by (bt_ind_tac "t" prems 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [add_commute, n_leaves_type])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [add_commute, n_leaves_type])));
qed "n_leaves_reflect";
val prems = goal BT.thy
"t: bt(A) ==> n_leaves(t) = succ(n_nodes(t))";
by (bt_ind_tac "t" prems 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [add_succ_right])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [add_succ_right])));
qed "n_leaves_nodes";
(*** theorems about bt_reflect ***)
--- a/src/ZF/ex/Bin.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Bin.ML Mon Nov 03 12:24:13 1997 +0100
@@ -45,7 +45,7 @@
\ |] ==> bin_rec(w,a,b,h) : C(w)";
by (bin_ind_tac "w" prems 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps (prems@[bin_rec_Plus, bin_rec_Minus,
+ (asm_simp_tac (simpset() addsimps (prems@[bin_rec_Plus, bin_rec_Minus,
bin_rec_Bcons]))));
qed "bin_rec_type";
@@ -90,7 +90,7 @@
goalw Bin.thy [norm_Bcons_def]
"norm_Bcons(Bcons(w,x),b) = Bcons(Bcons(w,x),b)";
-by (asm_simp_tac (!simpset addsimps bin.case_eqns) 1);
+by (asm_simp_tac (simpset() addsimps bin.case_eqns) 1);
qed "norm_Bcons_Bcons";
val norm_Bcons_simps = [norm_Bcons_Plus_0, norm_Bcons_Plus_1,
@@ -110,7 +110,7 @@
goalw Bin.thy [norm_Bcons_def]
"!!w. [| w: bin; b: bool |] ==> norm_Bcons(w,b) : bin";
by (etac bin.elim 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps bin.case_eqns)));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps bin.case_eqns)));
by (typechk_tac (bin_typechecks0@bool_typechecks));
qed "norm_Bcons_type";
@@ -160,7 +160,7 @@
"!!z v. [| z $+ v = z' $+ v'; \
\ z: integ; z': integ; v: integ; v': integ; w: integ |] \
\ ==> z $+ (v $+ w) = z' $+ (v' $+ w)";
-by (asm_simp_tac (!simpset addsimps ([zadd_assoc RS sym])) 1);
+by (asm_simp_tac (simpset() addsimps ([zadd_assoc RS sym])) 1);
qed "zadd_assoc_cong";
goal Integ.thy
@@ -181,9 +181,9 @@
"!!w. [| w: bin; b: bool |] ==> \
\ integ_of_bin(norm_Bcons(w,b)) = integ_of_bin(Bcons(w,b))";
by (etac bin.elim 1);
-by (asm_simp_tac (!simpset addsimps norm_Bcons_simps) 3);
+by (asm_simp_tac (simpset() addsimps norm_Bcons_simps) 3);
by (ALLGOALS (etac boolE));
-by (ALLGOALS (asm_simp_tac (!simpset addsimps (norm_Bcons_simps))));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps (norm_Bcons_simps))));
qed "integ_of_bin_norm_Bcons";
goal Bin.thy
@@ -193,7 +193,7 @@
by (Simp_tac 1);
by (etac boolE 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps integ_of_bin_norm_Bcons::zadd_ac)));
+ (asm_simp_tac (simpset() addsimps integ_of_bin_norm_Bcons::zadd_ac)));
qed "integ_of_bin_succ";
goal Bin.thy
@@ -203,7 +203,7 @@
by (Simp_tac 1);
by (etac boolE 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps integ_of_bin_norm_Bcons::zadd_ac)));
+ (asm_simp_tac (simpset() addsimps integ_of_bin_norm_Bcons::zadd_ac)));
qed "integ_of_bin_pred";
(*These two results replace the definitions of bin_succ and bin_pred*)
@@ -221,7 +221,7 @@
by (Simp_tac 1);
by (etac boolE 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps (zadd_ac@[zminus_zadd_distrib]))));
+ (asm_simp_tac (simpset() addsimps (zadd_ac@[zminus_zadd_distrib]))));
qed "integ_of_bin_minus";
@@ -266,7 +266,7 @@
by (Simp_tac 1);
by (rtac ballI 1);
by (bin_ind_tac "wa" [] 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps zadd_ac setloop (etac boolE))));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps zadd_ac setloop (etac boolE))));
val integ_of_bin_add_lemma = result();
bind_thm("integ_of_bin_add", integ_of_bin_add_lemma RS bspec);
@@ -287,9 +287,9 @@
by (Asm_simp_tac 1);
by (Asm_simp_tac 1);
by (etac boolE 1);
-by (asm_simp_tac (!simpset addsimps [zadd_zmult_distrib]) 2);
+by (asm_simp_tac (simpset() addsimps [zadd_zmult_distrib]) 2);
by (asm_simp_tac
- (!simpset addsimps ([zadd_zmult_distrib, zmult_1] @ zadd_ac)) 1);
+ (simpset() addsimps ([zadd_zmult_distrib, zmult_1] @ zadd_ac)) 1);
qed "integ_of_bin_mult";
(**** Computations ****)
@@ -363,7 +363,7 @@
(*** The computation simpset ***)
-val bin_comp_ss = simpset_of "Integ"
+val bin_comp_ss = simpset_of Integ.thy
addsimps [integ_of_bin_add RS sym, (*invoke bin_add*)
integ_of_bin_minus RS sym, (*invoke bin_minus*)
integ_of_bin_mult RS sym, (*invoke bin_mult*)
--- a/src/ZF/ex/Brouwer.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Brouwer.ML Mon Nov 03 12:24:13 1997 +0100
@@ -14,7 +14,7 @@
goal Brouwer.thy "brouwer = {0} + brouwer + (nat -> brouwer)";
let open brouwer; val rew = rewrite_rule con_defs in
-by (fast_tac (!claset addSIs (map rew intrs) addEs [rew elim]) 1)
+by (fast_tac (claset() addSIs (map rew intrs) addEs [rew elim]) 1)
end;
qed "brouwer_unfold";
@@ -28,8 +28,8 @@
\ |] ==> P(b)";
by (rtac (major RS brouwer.induct) 1);
by (REPEAT_SOME (ares_tac prems));
-by (fast_tac (!claset addEs [fun_weaken_type]) 1);
-by (fast_tac (!claset addDs [apply_type]) 1);
+by (fast_tac (claset() addEs [fun_weaken_type]) 1);
+by (fast_tac (claset() addDs [apply_type]) 1);
qed "brouwer_induct2";
@@ -37,7 +37,7 @@
goal Brouwer.thy "Well(A,B) = (SUM x:A. B(x) -> Well(A,B))";
let open Well; val rew = rewrite_rule con_defs in
-by (fast_tac (!claset addSIs (map rew intrs) addEs [rew elim]) 1)
+by (fast_tac (claset() addSIs (map rew intrs) addEs [rew elim]) 1)
end;
qed "Well_unfold";
@@ -49,8 +49,8 @@
\ |] ==> P(w)";
by (rtac (major RS Well.induct) 1);
by (REPEAT_SOME (ares_tac prems));
-by (fast_tac (!claset addEs [fun_weaken_type]) 1);
-by (fast_tac (!claset addDs [apply_type]) 1);
+by (fast_tac (claset() addEs [fun_weaken_type]) 1);
+by (fast_tac (claset() addDs [apply_type]) 1);
qed "Well_induct2";
@@ -58,5 +58,5 @@
Well to prove this.*)
goal Brouwer.thy "Well(bool, %x. x) = 1 + (1 -> Well(bool, %x. x))";
by (resolve_tac [Well_unfold RS trans] 1);
-by (simp_tac (!simpset addsimps [Sigma_bool, Pi_empty1, succ_def]) 1);
+by (simp_tac (simpset() addsimps [Sigma_bool, Pi_empty1, succ_def]) 1);
qed "Well_bool_unfold";
--- a/src/ZF/ex/CoUnit.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/CoUnit.ML Mon Nov 03 12:24:13 1997 +0100
@@ -47,7 +47,7 @@
by (rtac (singletonI RS counit2.coinduct) 1);
by (rtac (qunivI RS singleton_subsetI) 1);
by (rtac ([lfp_subset, empty_subsetI RS univ_mono] MRS subset_trans) 1);
-by (fast_tac (!claset addSIs [Con2_bnd_mono RS lfp_Tarski]) 1);
+by (fast_tac (claset() addSIs [Con2_bnd_mono RS lfp_Tarski]) 1);
qed "lfp_Con2_in_counit2";
(*Lemma for proving finality. Borrowed from ex/llist_eq.ML!*)
--- a/src/ZF/ex/Comb.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Comb.ML Mon Nov 03 12:24:13 1997 +0100
@@ -23,8 +23,8 @@
"!!x y r. [| diamond(r); <x,y>:r^+ |] ==> \
\ ALL y'. <x,y'>:r --> (EX z. <y',z>: r^+ & <y,z>: r)";
by (etac trancl_induct 1);
-by (blast_tac (!claset addIs [r_into_trancl]) 1);
-by (slow_best_tac (!claset addSDs [spec RS mp]
+by (blast_tac (claset() addIs [r_into_trancl]) 1);
+by (slow_best_tac (claset() addSDs [spec RS mp]
addIs [r_into_trancl, trans_trancl RS transD]) 1);
val diamond_strip_lemmaE = result() RS spec RS mp RS exE;
@@ -33,7 +33,7 @@
by (rtac (impI RS allI RS allI) 1);
by (etac trancl_induct 1);
by (ALLGOALS (*Seems to be a brittle, undirected search*)
- (slow_best_tac (!claset addIs [r_into_trancl, trans_trancl RS transD]
+ (slow_best_tac (claset() addIs [r_into_trancl, trans_trancl RS transD]
addEs [major RS diamond_strip_lemmaE])));
qed "diamond_trancl";
@@ -53,7 +53,7 @@
val contract_combD2 = contract.dom_subset RS subsetD RS SigmaD2;
goal Comb.thy "field(contract) = comb";
-by (blast_tac (!claset addIs [contract.K] addSEs [contract_combE2]) 1);
+by (blast_tac (claset() addIs [contract.K] addSEs [contract_combE2]) 1);
qed "field_contract_eq";
bind_thm ("reduction_refl",
@@ -71,7 +71,7 @@
(*Example only: not used*)
goalw Comb.thy [I_def] "!!p. p:comb ==> I#p ---> p";
-by (blast_tac (!claset addIs reduction_rls) 1);
+by (blast_tac (claset() addIs reduction_rls) 1);
qed "reduce_I";
goalw Comb.thy [I_def] "I: comb";
@@ -100,18 +100,18 @@
by (forward_tac [rtrancl_type RS subsetD RS SigmaD1] 1);
by (dtac (field_contract_eq RS equalityD1 RS subsetD) 1);
by (etac rtrancl_induct 1);
-by (blast_tac (!claset addIs reduction_rls) 1);
+by (blast_tac (claset() addIs reduction_rls) 1);
by (etac (trans_rtrancl RS transD) 1);
-by (blast_tac (!claset addIs (contract_combD2::reduction_rls)) 1);
+by (blast_tac (claset() addIs (contract_combD2::reduction_rls)) 1);
qed "Ap_reduce1";
goal Comb.thy "!!p r. [| p ---> q; r: comb |] ==> r#p ---> r#q";
by (forward_tac [rtrancl_type RS subsetD RS SigmaD1] 1);
by (dtac (field_contract_eq RS equalityD1 RS subsetD) 1);
by (etac rtrancl_induct 1);
-by (blast_tac (!claset addIs reduction_rls) 1);
+by (blast_tac (claset() addIs reduction_rls) 1);
by (etac (trans_rtrancl RS transD) 1);
-by (blast_tac (!claset addIs (contract_combD2::reduction_rls)) 1);
+by (blast_tac (claset() addIs (contract_combD2::reduction_rls)) 1);
qed "Ap_reduce2";
(** Counterexample to the diamond property for -1-> **)
@@ -129,7 +129,7 @@
qed "KIII_contract3";
goalw Comb.thy [diamond_def] "~ diamond(contract)";
-by (blast_tac (!claset addIs [KIII_contract1,KIII_contract2,KIII_contract3]
+by (blast_tac (claset() addIs [KIII_contract1,KIII_contract2,KIII_contract3]
addSEs [I_contract_E]) 1);
qed "not_diamond_contract";
@@ -143,7 +143,7 @@
val parcontract_combD2 = parcontract.dom_subset RS subsetD RS SigmaD2;
goal Comb.thy "field(parcontract) = comb";
-by (blast_tac (!claset addIs [parcontract.K]
+by (blast_tac (claset() addIs [parcontract.K]
addSEs [parcontract_combE2]) 1);
qed "field_parcontract_eq";
@@ -167,7 +167,7 @@
goal Comb.thy
"!!p q r. S#p#q =1=> r ==> (EX p' q'. r = S#p'#q' & p =1=> p' & q =1=> q')";
-by (blast_tac (!claset addSDs [S1_parcontractD]) 1);
+by (blast_tac (claset() addSDs [S1_parcontractD]) 1);
qed "S2_parcontractD";
(*Church-Rosser property for parallel contraction*)
@@ -175,7 +175,7 @@
by (rtac (impI RS allI RS allI) 1);
by (etac parcontract.induct 1);
by (ALLGOALS
- (blast_tac (!claset addSDs [K1_parcontractD, S2_parcontractD]
+ (blast_tac (claset() addSDs [K1_parcontractD, S2_parcontractD]
addIs [parcontract_combD2])));
qed "diamond_parcontract";
@@ -190,19 +190,19 @@
by (forward_tac [rtrancl_type RS subsetD RS SigmaD1] 1);
by (dtac (field_contract_eq RS equalityD1 RS subsetD) 1);
by (etac rtrancl_induct 1);
-by (blast_tac (!claset addIs [r_into_trancl]) 1);
-by (blast_tac (!claset addIs [contract_imp_parcontract,
+by (blast_tac (claset() addIs [r_into_trancl]) 1);
+by (blast_tac (claset() addIs [contract_imp_parcontract,
r_into_trancl, trans_trancl RS transD]) 1);
qed "reduce_imp_parreduce";
goal Comb.thy "!!p q. p=1=>q ==> p--->q";
by (etac parcontract.induct 1);
-by (blast_tac (!claset addIs reduction_rls) 1);
-by (blast_tac (!claset addIs reduction_rls) 1);
-by (blast_tac (!claset addIs reduction_rls) 1);
+by (blast_tac (claset() addIs reduction_rls) 1);
+by (blast_tac (claset() addIs reduction_rls) 1);
+by (blast_tac (claset() addIs reduction_rls) 1);
by (blast_tac
- (!claset addIs [trans_rtrancl RS transD,
+ (claset() addIs [trans_rtrancl RS transD,
Ap_reduce1, Ap_reduce2, parcontract_combD1,
parcontract_combD2]) 1);
qed "parcontract_imp_reduce";
--- a/src/ZF/ex/Data.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Data.ML Mon Nov 03 12:24:13 1997 +0100
@@ -11,7 +11,7 @@
goal Data.thy "data(A,B) = ({0} + A) + (A*B + A*B*data(A,B))";
let open data; val rew = rewrite_rule con_defs in
-by (fast_tac (!claset addSIs (map rew intrs) addEs [rew elim]) 1)
+by (fast_tac (claset() addSIs (map rew intrs) addEs [rew elim]) 1)
end;
qed "data_unfold";
@@ -26,7 +26,7 @@
goalw Data.thy (data.defs@data.con_defs) "data(univ(A),univ(A)) <= univ(A)";
by (rtac lfp_lowerbound 1);
by (rtac ([A_subset_univ, Un_upper1] MRS subset_trans RS univ_mono) 2);
-by (fast_tac (!claset addSIs [zero_in_univ, Inl_in_univ, Inr_in_univ,
+by (fast_tac (claset() addSIs [zero_in_univ, Inl_in_univ, Inr_in_univ,
Pair_in_univ]) 1);
qed "data_univ";
--- a/src/ZF/ex/Enum.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Enum.ML Mon Nov 03 12:24:13 1997 +0100
@@ -11,6 +11,6 @@
open Enum;
goal Enum.thy "C00 ~= C01";
-by (simp_tac (!simpset addsimps enum.free_iffs) 1);
+by (simp_tac (simpset() addsimps enum.free_iffs) 1);
result();
--- a/src/ZF/ex/Integ.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Integ.ML Mon Nov 03 12:24:13 1997 +0100
@@ -40,7 +40,7 @@
goalw Integ.thy [intrel_def]
"!!x1 x2. [| x1#+y2 = x2#+y1; x1: nat; y1: nat; x2: nat; y2: nat |] ==> \
\ <<x1,y1>,<x2,y2>>: intrel";
-by (fast_tac (!claset addIs prems) 1);
+by (fast_tac (claset() addIs prems) 1);
qed "intrelI";
(*intrelE is hard to derive because fast_tac tries hyp_subst_tac so soon*)
@@ -65,7 +65,7 @@
goalw Integ.thy [equiv_def, refl_def, sym_def, trans_def]
"equiv(nat*nat, intrel)";
-by (fast_tac (!claset addSEs [sym, integ_trans_lemma]) 1);
+by (fast_tac (claset() addSEs [sym, integ_trans_lemma]) 1);
qed "equiv_intrel";
@@ -79,7 +79,7 @@
goalw Integ.thy [integ_def,quotient_def,znat_def]
"!!m. m : nat ==> $#m : integ";
-by (fast_tac (!claset addSIs [nat_0I]) 1);
+by (fast_tac (claset() addSIs [nat_0I]) 1);
qed "znat_type";
goalw Integ.thy [znat_def]
@@ -94,8 +94,8 @@
goalw Integ.thy [congruent_def]
"congruent(intrel, %<x,y>. intrel``{<y,x>})";
-by (safe_tac (!claset));
-by (asm_full_simp_tac (!simpset addsimps add_ac) 1);
+by (safe_tac (claset()));
+by (asm_full_simp_tac (simpset() addsimps add_ac) 1);
qed "zminus_congruent";
(*Resolve th against the corresponding facts for zminus*)
@@ -110,24 +110,24 @@
goalw Integ.thy [integ_def,zminus_def]
"!!z w. [| $~z = $~w; z: integ; w: integ |] ==> z=w";
by (etac (zminus_ize UN_equiv_class_inject) 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
(*The setloop is only needed because assumptions are in the wrong order!*)
-by (asm_full_simp_tac (!simpset addsimps add_ac
+by (asm_full_simp_tac (simpset() addsimps add_ac
setloop dtac eq_intrelD) 1);
qed "zminus_inject";
goalw Integ.thy [zminus_def]
"!!x y.[| x: nat; y: nat |] ==> $~ (intrel``{<x,y>}) = intrel `` {<y,x>}";
-by (asm_simp_tac (!simpset addsimps [zminus_ize UN_equiv_class, SigmaI]) 1);
+by (asm_simp_tac (simpset() addsimps [zminus_ize UN_equiv_class, SigmaI]) 1);
qed "zminus";
goalw Integ.thy [integ_def] "!!z. z : integ ==> $~ ($~ z) = z";
by (REPEAT (eresolve_tac [quotientE,SigmaE,ssubst] 1));
-by (asm_simp_tac (!simpset addsimps [zminus]) 1);
+by (asm_simp_tac (simpset() addsimps [zminus]) 1);
qed "zminus_zminus";
goalw Integ.thy [integ_def, znat_def] "$~ ($#0) = $#0";
-by (simp_tac (!simpset addsimps [zminus]) 1);
+by (simp_tac (simpset() addsimps [zminus]) 1);
qed "zminus_0";
@@ -135,16 +135,16 @@
(*No natural number is negative!*)
goalw Integ.thy [znegative_def, znat_def] "~ znegative($# n)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (dres_inst_tac [("psi", "?lhs=?rhs")] asm_rl 1);
by (dres_inst_tac [("psi", "?lhs<?rhs")] asm_rl 1);
-by (fast_tac (!claset addss
- (!simpset addsimps [add_le_self2 RS le_imp_not_lt])) 1);
+by (fast_tac (claset() addss
+ (simpset() addsimps [add_le_self2 RS le_imp_not_lt])) 1);
qed "not_znegative_znat";
goalw Integ.thy [znegative_def, znat_def]
"!!n. n: nat ==> znegative($~ $# succ(n))";
-by (asm_simp_tac (!simpset addsimps [zminus]) 1);
+by (asm_simp_tac (simpset() addsimps [zminus]) 1);
by (REPEAT
(ares_tac [refl, exI, conjI, nat_0_le,
refl RS intrelI RS imageI, consI1, nat_0I, nat_succI] 1));
@@ -155,21 +155,21 @@
goalw Integ.thy [congruent_def]
"congruent(intrel, %<x,y>. (y#-x) #+ (x#-y))";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (ALLGOALS Asm_simp_tac);
by (etac rev_mp 1);
by (res_inst_tac [("m","x1"),("n","y1")] diff_induct 1 THEN
REPEAT (assume_tac 1));
by (Asm_simp_tac 3);
by (asm_simp_tac (*this one's very sensitive to order of rewrites*)
- (!simpset delsimps [add_succ_right]
+ (simpset() delsimps [add_succ_right]
addsimps [diff_add_inverse,diff_add_0]) 2);
by (Asm_simp_tac 1);
by (rtac impI 1);
by (etac subst 1);
by (res_inst_tac [("m1","x")] (add_commute RS ssubst) 1 THEN
REPEAT (assume_tac 1));
-by (asm_simp_tac (!simpset addsimps [diff_add_inverse, diff_add_0]) 1);
+by (asm_simp_tac (simpset() addsimps [diff_add_inverse, diff_add_0]) 1);
qed "zmagnitude_congruent";
@@ -186,17 +186,17 @@
"!!x y. [| x: nat; y: nat |] ==> \
\ zmagnitude (intrel``{<x,y>}) = (y #- x) #+ (x #- y)";
by (asm_simp_tac
- (!simpset addsimps [zmagnitude_ize UN_equiv_class, SigmaI]) 1);
+ (simpset() addsimps [zmagnitude_ize UN_equiv_class, SigmaI]) 1);
qed "zmagnitude";
goalw Integ.thy [znat_def]
"!!n. n: nat ==> zmagnitude($# n) = n";
-by (asm_simp_tac (!simpset addsimps [zmagnitude]) 1);
+by (asm_simp_tac (simpset() addsimps [zmagnitude]) 1);
qed "zmagnitude_znat";
goalw Integ.thy [znat_def]
"!!n. n: nat ==> zmagnitude($~ $# n) = n";
-by (asm_simp_tac (!simpset addsimps [zmagnitude, zminus]) 1);
+by (asm_simp_tac (simpset() addsimps [zmagnitude, zminus]) 1);
qed "zmagnitude_zminus_znat";
@@ -209,14 +209,14 @@
\ let <x1,y1>=z1; <x2,y2>=z2 \
\ in intrel``{<x1#+x2, y1#+y2>})";
(*Proof via congruent2_commuteI seems longer*)
-by (safe_tac (!claset));
-by (asm_simp_tac (!simpset addsimps [add_assoc, Let_def]) 1);
+by (safe_tac (claset()));
+by (asm_simp_tac (simpset() addsimps [add_assoc, Let_def]) 1);
(*The rest should be trivial, but rearranging terms is hard;
add_ac does not help rewriting with the assumptions.*)
by (res_inst_tac [("m1","x1a")] (add_left_commute RS ssubst) 1);
by (res_inst_tac [("m1","x2a")] (add_left_commute RS ssubst) 3);
by (typechk_tac [add_type]);
-by (asm_simp_tac (!simpset addsimps [add_assoc RS sym]) 1);
+by (asm_simp_tac (simpset() addsimps [add_assoc RS sym]) 1);
qed "zadd_congruent2";
(*Resolve th against the corresponding facts for zadd*)
@@ -225,7 +225,7 @@
goalw Integ.thy [integ_def,zadd_def]
"!!z w. [| z: integ; w: integ |] ==> z $+ w : integ";
by (rtac (zadd_ize UN_equiv_class_type2) 1);
-by (simp_tac (!simpset addsimps [Let_def]) 3);
+by (simp_tac (simpset() addsimps [Let_def]) 3);
by (REPEAT (ares_tac [split_type, add_type, quotientI, SigmaI] 1));
qed "zadd_type";
@@ -233,25 +233,25 @@
"!!x1 y1. [| x1: nat; y1: nat; x2: nat; y2: nat |] ==> \
\ (intrel``{<x1,y1>}) $+ (intrel``{<x2,y2>}) = \
\ intrel `` {<x1#+x2, y1#+y2>}";
-by (asm_simp_tac (!simpset addsimps [zadd_ize UN_equiv_class2, SigmaI]) 1);
-by (simp_tac (!simpset addsimps [Let_def]) 1);
+by (asm_simp_tac (simpset() addsimps [zadd_ize UN_equiv_class2, SigmaI]) 1);
+by (simp_tac (simpset() addsimps [Let_def]) 1);
qed "zadd";
goalw Integ.thy [integ_def,znat_def] "!!z. z : integ ==> $#0 $+ z = z";
by (REPEAT (eresolve_tac [quotientE, SigmaE, ssubst] 1));
-by (asm_simp_tac (!simpset addsimps [zadd]) 1);
+by (asm_simp_tac (simpset() addsimps [zadd]) 1);
qed "zadd_0";
goalw Integ.thy [integ_def]
"!!z w. [| z: integ; w: integ |] ==> $~ (z $+ w) = $~ z $+ $~ w";
by (REPEAT (eresolve_tac [quotientE, SigmaE, ssubst] 1));
-by (asm_simp_tac (!simpset addsimps [zminus,zadd]) 1);
+by (asm_simp_tac (simpset() addsimps [zminus,zadd]) 1);
qed "zminus_zadd_distrib";
goalw Integ.thy [integ_def]
"!!z w. [| z: integ; w: integ |] ==> z $+ w = w $+ z";
by (REPEAT (eresolve_tac [quotientE, SigmaE, ssubst] 1));
-by (asm_simp_tac (!simpset addsimps (add_ac @ [zadd])) 1);
+by (asm_simp_tac (simpset() addsimps (add_ac @ [zadd])) 1);
qed "zadd_commute";
goalw Integ.thy [integ_def]
@@ -259,31 +259,31 @@
\ (z1 $+ z2) $+ z3 = z1 $+ (z2 $+ z3)";
by (REPEAT (eresolve_tac [quotientE, SigmaE, ssubst] 1));
(*rewriting is much faster without intrel_iff, etc.*)
-by (asm_simp_tac (!simpset addsimps [zadd, add_assoc]) 1);
+by (asm_simp_tac (simpset() addsimps [zadd, add_assoc]) 1);
qed "zadd_assoc";
(*For AC rewriting*)
qed_goal "zadd_left_commute" Integ.thy
"!!z1 z2 z3. [| z1:integ; z2:integ; z3: integ |] ==> \
\ z1$+(z2$+z3) = z2$+(z1$+z3)"
- (fn _ => [asm_simp_tac (!simpset addsimps [zadd_assoc RS sym, zadd_commute]) 1]);
+ (fn _ => [asm_simp_tac (simpset() addsimps [zadd_assoc RS sym, zadd_commute]) 1]);
(*Integer addition is an AC operator*)
val zadd_ac = [zadd_assoc, zadd_commute, zadd_left_commute];
goalw Integ.thy [znat_def]
"!!m n. [| m: nat; n: nat |] ==> $# (m #+ n) = ($#m) $+ ($#n)";
-by (asm_simp_tac (!simpset addsimps [zadd]) 1);
+by (asm_simp_tac (simpset() addsimps [zadd]) 1);
qed "znat_add";
goalw Integ.thy [integ_def,znat_def] "!!z. z : integ ==> z $+ ($~ z) = $#0";
by (REPEAT (eresolve_tac [quotientE, SigmaE, ssubst] 1));
-by (asm_simp_tac (!simpset addsimps [zminus, zadd, add_commute]) 1);
+by (asm_simp_tac (simpset() addsimps [zminus, zadd, add_commute]) 1);
qed "zadd_zminus_inverse";
goal Integ.thy "!!z. z : integ ==> ($~ z) $+ z = $#0";
by (asm_simp_tac
- (!simpset addsimps [zadd_commute, zminus_type, zadd_zminus_inverse]) 1);
+ (simpset() addsimps [zadd_commute, zminus_type, zadd_zminus_inverse]) 1);
qed "zadd_zminus_inverse2";
goal Integ.thy "!!z. z:integ ==> z $+ $#0 = z";
@@ -305,15 +305,15 @@
\ split(%x1 y1. split(%x2 y2. \
\ intrel``{<x1#*x2 #+ y1#*y2, x1#*y2 #+ y1#*x2>}, p2), p1))";
by (rtac (equiv_intrel RS congruent2_commuteI) 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (ALLGOALS Asm_simp_tac);
(*Proof that zmult is congruent in one argument*)
by (asm_simp_tac
- (!simpset addsimps (add_ac @ [add_mult_distrib_left RS sym])) 2);
+ (simpset() addsimps (add_ac @ [add_mult_distrib_left RS sym])) 2);
by (asm_simp_tac
- (!simpset addsimps ([add_assoc RS sym, add_mult_distrib_left RS sym])) 2);
+ (simpset() addsimps ([add_assoc RS sym, add_mult_distrib_left RS sym])) 2);
(*Proof that zmult is commutative on representatives*)
-by (asm_simp_tac (!simpset addsimps (mult_ac@add_ac)) 1);
+by (asm_simp_tac (simpset() addsimps (mult_ac@add_ac)) 1);
qed "zmult_congruent2";
@@ -331,36 +331,36 @@
"!!x1 x2. [| x1: nat; y1: nat; x2: nat; y2: nat |] ==> \
\ (intrel``{<x1,y1>}) $* (intrel``{<x2,y2>}) = \
\ intrel `` {<x1#*x2 #+ y1#*y2, x1#*y2 #+ y1#*x2>}";
-by (asm_simp_tac (!simpset addsimps [zmult_ize UN_equiv_class2, SigmaI]) 1);
+by (asm_simp_tac (simpset() addsimps [zmult_ize UN_equiv_class2, SigmaI]) 1);
qed "zmult";
goalw Integ.thy [integ_def,znat_def] "!!z. z : integ ==> $#0 $* z = $#0";
by (REPEAT (eresolve_tac [quotientE, SigmaE, ssubst] 1));
-by (asm_simp_tac (!simpset addsimps [zmult]) 1);
+by (asm_simp_tac (simpset() addsimps [zmult]) 1);
qed "zmult_0";
goalw Integ.thy [integ_def,znat_def]
"!!z. z : integ ==> $#1 $* z = z";
by (REPEAT (eresolve_tac [quotientE, SigmaE, ssubst] 1));
-by (asm_simp_tac (!simpset addsimps [zmult, add_0_right]) 1);
+by (asm_simp_tac (simpset() addsimps [zmult, add_0_right]) 1);
qed "zmult_1";
goalw Integ.thy [integ_def]
"!!z w. [| z: integ; w: integ |] ==> ($~ z) $* w = $~ (z $* w)";
by (REPEAT (eresolve_tac [quotientE, SigmaE, ssubst] 1));
-by (asm_simp_tac (!simpset addsimps ([zminus, zmult] @ add_ac)) 1);
+by (asm_simp_tac (simpset() addsimps ([zminus, zmult] @ add_ac)) 1);
qed "zmult_zminus";
goalw Integ.thy [integ_def]
"!!z w. [| z: integ; w: integ |] ==> ($~ z) $* ($~ w) = (z $* w)";
by (REPEAT (eresolve_tac [quotientE, SigmaE, ssubst] 1));
-by (asm_simp_tac (!simpset addsimps ([zminus, zmult] @ add_ac)) 1);
+by (asm_simp_tac (simpset() addsimps ([zminus, zmult] @ add_ac)) 1);
qed "zmult_zminus_zminus";
goalw Integ.thy [integ_def]
"!!z w. [| z: integ; w: integ |] ==> z $* w = w $* z";
by (REPEAT (eresolve_tac [quotientE, SigmaE, ssubst] 1));
-by (asm_simp_tac (!simpset addsimps ([zmult] @ add_ac @ mult_ac)) 1);
+by (asm_simp_tac (simpset() addsimps ([zmult] @ add_ac @ mult_ac)) 1);
qed "zmult_commute";
goalw Integ.thy [integ_def]
@@ -368,7 +368,7 @@
\ (z1 $* z2) $* z3 = z1 $* (z2 $* z3)";
by (REPEAT (eresolve_tac [quotientE, SigmaE, ssubst] 1));
by (asm_simp_tac
- (!simpset addsimps ([zmult, add_mult_distrib_left,
+ (simpset() addsimps ([zmult, add_mult_distrib_left,
add_mult_distrib] @ add_ac @ mult_ac)) 1);
qed "zmult_assoc";
@@ -376,7 +376,7 @@
qed_goal "zmult_left_commute" Integ.thy
"!!z1 z2 z3. [| z1:integ; z2:integ; z3: integ |] ==> \
\ z1$*(z2$*z3) = z2$*(z1$*z3)"
- (fn _ => [asm_simp_tac (!simpset addsimps [zmult_assoc RS sym,
+ (fn _ => [asm_simp_tac (simpset() addsimps [zmult_assoc RS sym,
zmult_commute]) 1]);
(*Integer multiplication is an AC operator*)
@@ -386,8 +386,8 @@
"!!z1 z2 z3. [| z1: integ; z2: integ; w: integ |] ==> \
\ (z1 $+ z2) $* w = (z1 $* w) $+ (z2 $* w)";
by (REPEAT (eresolve_tac [quotientE, SigmaE, ssubst] 1));
-by (asm_simp_tac (!simpset addsimps [zadd, zmult, add_mult_distrib]) 1);
-by (asm_simp_tac (!simpset addsimps (add_ac @ mult_ac)) 1);
+by (asm_simp_tac (simpset() addsimps [zadd, zmult, add_mult_distrib]) 1);
+by (asm_simp_tac (simpset() addsimps (add_ac @ mult_ac)) 1);
qed "zadd_zmult_distrib";
val integ_typechecks =
--- a/src/ZF/ex/LList.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/LList.ML Mon Nov 03 12:24:13 1997 +0100
@@ -23,7 +23,7 @@
goal LList.thy "llist(A) = {0} <+> (A <*> llist(A))";
let open llist; val rew = rewrite_rule con_defs in
-by (fast_tac (!claset addSIs (subsetI ::map rew intrs) addEs [rew elim]) 1)
+by (fast_tac (claset() addSIs (subsetI ::map rew intrs) addEs [rew elim]) 1)
end;
qed "llist_unfold";
@@ -52,7 +52,7 @@
(*LNil case*)
by (Asm_simp_tac 1);
(*LCons case*)
-by (deepen_tac (!claset addIs [Ord_trans, Int_lower1 RS subset_trans]) 2 1);
+by (deepen_tac (claset() addIs [Ord_trans, Int_lower1 RS subset_trans]) 2 1);
qed "llist_quniv_lemma";
goal LList.thy "llist(quniv(A)) <= quniv(A)";
@@ -77,7 +77,7 @@
by (REPEAT (resolve_tac [allI, impI] 1));
by (etac lleq.elim 1);
by (rewrite_goals_tac (QInr_def::llist.con_defs));
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (fast_tac (subset_cs addSEs [Ord_trans, make_elim bspec]) 1);
qed "lleq_Int_Vset_subset_lemma";
@@ -89,7 +89,7 @@
val [prem] = goal LList.thy "<l,l'> : lleq(A) ==> <l',l> : lleq(A)";
by (rtac (prem RS converseI RS lleq.coinduct) 1);
by (rtac (lleq.dom_subset RS converse_type) 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (etac lleq.elim 1);
by (ALLGOALS Fast_tac);
qed "lleq_symmetric";
@@ -104,7 +104,7 @@
"[| l=l'; l: llist(A) |] ==> <l,l'> : lleq(A)";
by (res_inst_tac [("X", "{<l,l>. l: llist(A)}")] lleq.coinduct 1);
by (rtac (lprem RS RepFunI RS (eqprem RS subst)) 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (etac llist.elim 1);
by (ALLGOALS Fast_tac);
qed "equal_llist_implies_leq";
@@ -139,7 +139,7 @@
goal LList.thy "!!a A. a:A ==> lconst(a): llist(A)";
by (rtac (singletonI RS llist.coinduct) 1);
by (etac (lconst_in_quniv RS singleton_subsetI) 1);
-by (fast_tac (!claset addSIs [lconst]) 1);
+by (fast_tac (claset() addSIs [lconst]) 1);
qed "lconst_type";
(*** flip --- equations merely assumed; certain consequences proved ***)
@@ -147,7 +147,7 @@
Addsimps [flip_LNil, flip_LCons, not_type];
goal QUniv.thy "!!b. b:bool ==> b Int X <= univ(eclose(A))";
-by (fast_tac (!claset addIs [Int_lower1 RS subset_trans] addSEs [boolE]) 1);
+by (fast_tac (claset() addIs [Int_lower1 RS subset_trans] addSEs [boolE]) 1);
qed "bool_Int_subset_univ";
AddSIs [not_type];
@@ -163,9 +163,9 @@
by (etac llist.elim 1);
by (ALLGOALS Asm_simp_tac);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps ([QInl_def,QInr_def]@llist.con_defs))));
+ (asm_simp_tac (simpset() addsimps ([QInl_def,QInr_def]@llist.con_defs))));
(*LCons case*)
-by (deepen_tac (!claset addIs [Ord_trans, Int_lower1 RS subset_trans]) 2 1);
+by (deepen_tac (claset() addIs [Ord_trans, Int_lower1 RS subset_trans]) 2 1);
qed "flip_llist_quniv_lemma";
goal LList.thy "!!l. l: llist(bool) ==> flip(l) : quniv(bool)";
@@ -177,7 +177,7 @@
by (res_inst_tac [("X", "{flip(l) . l:llist(bool)}")]
llist.coinduct 1);
by (rtac (prem RS RepFunI) 1);
-by (fast_tac (!claset addSIs [flip_in_quniv]) 1);
+by (fast_tac (claset() addSIs [flip_in_quniv]) 1);
by (etac RepFunE 1);
by (etac llist.elim 1);
by (ALLGOALS Asm_simp_tac);
@@ -189,10 +189,10 @@
by (res_inst_tac [("X1", "{<flip(flip(l)),l> . l:llist(bool)}")]
(lleq.coinduct RS lleq_implies_equal) 1);
by (rtac (prem RS RepFunI) 1);
-by (fast_tac (!claset addSIs [flip_type]) 1);
+by (fast_tac (claset() addSIs [flip_type]) 1);
by (etac RepFunE 1);
by (etac llist.elim 1);
by (Asm_simp_tac 1);
-by (asm_simp_tac (!simpset addsimps [flip_type, not_not]) 1);
-by (fast_tac (!claset addSIs [not_type]) 1);
+by (asm_simp_tac (simpset() addsimps [flip_type, not_not]) 1);
+by (fast_tac (claset() addSIs [not_type]) 1);
qed "flip_flip";
--- a/src/ZF/ex/Limit.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Limit.ML Mon Nov 03 12:24:13 1997 +0100
@@ -70,13 +70,13 @@
\ rel(D,x,z); \
\ !!x y. [| rel(D,x,y); rel(D,y,x); x:set(D); y:set(D)|] ==> x=y |] ==> \
\ po(D)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
brr prems 1;
qed "poI";
val prems = goalw Limit.thy [cpo_def]
"[| po(D); !!X. chain(D,X) ==> islub(D,X,x(D,X))|] ==> cpo(D)";
-by (safe_tac (!claset addSIs [exI]));
+by (safe_tac (claset() addSIs [exI]));
brr prems 1;
qed "cpoI";
@@ -116,7 +116,7 @@
val prems = goalw Limit.thy [islub_def] (* islub_isub *)
"islub(D,X,x) ==> isub(D,X,x)";
-by (simp_tac (!simpset addsimps prems) 1);
+by (simp_tac (simpset() addsimps prems) 1);
qed "islub_isub";
val prems = goal Limit.thy
@@ -139,30 +139,30 @@
val prems = goalw Limit.thy [islub_def] (* islubI *)
"[|isub(D,X,x); !!y. isub(D,X,y) ==> rel(D,x,y)|] ==> islub(D,X,x)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (REPEAT(ares_tac prems 1));
qed "islubI";
val prems = goalw Limit.thy [isub_def] (* isubI *)
"[|x:set(D); !!n. n:nat ==> rel(D,X`n,x)|] ==> isub(D,X,x)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (REPEAT(ares_tac prems 1));
qed "isubI";
val prems = goalw Limit.thy [isub_def] (* isubE *)
"!!z.[|isub(D,X,x);[|x:set(D); !!n. n:nat==>rel(D,X`n,x)|] ==> P|] ==> P";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (Asm_simp_tac 1);
qed "isubE";
val prems = goalw Limit.thy [isub_def] (* isubD1 *)
"isub(D,X,x) ==> x:set(D)";
-by (simp_tac (!simpset addsimps prems) 1);
+by (simp_tac (simpset() addsimps prems) 1);
qed "isubD1";
val prems = goalw Limit.thy [isub_def] (* isubD2 *)
"[|isub(D,X,x); n:nat|]==>rel(D,X`n,x)";
-by (simp_tac (!simpset addsimps prems) 1);
+by (simp_tac (simpset() addsimps prems) 1);
qed "isubD2";
val prems = goal Limit.thy
@@ -198,7 +198,7 @@
val prems = goalw Limit.thy [chain_def]
"chain(D,X) ==> X : nat -> set(D)";
-by (asm_simp_tac (!simpset addsimps prems) 1);
+by (asm_simp_tac (simpset() addsimps prems) 1);
qed "chain_fun";
val prems = goalw Limit.thy [chain_def]
@@ -236,8 +236,8 @@
by (assume_tac 3);
by (rtac (hd prems) 2);
by (res_inst_tac [("n","m")] nat_induct 1);
-by (safe_tac (!claset));
-by (asm_full_simp_tac (!simpset addsimps prems) 2);
+by (safe_tac (claset()));
+by (asm_full_simp_tac (simpset() addsimps prems) 2);
by (rtac cpo_trans 4);
by (rtac (le_succ_eq RS subst) 3);
brr(cpo_refl::chain_in::chain_rel::nat_0I::nat_succI::prems) 1;
@@ -264,7 +264,7 @@
"pcpo(D) ==> EX! x. x:set(D) & (ALL y:set(D). rel(D,x,y))";
by (rtac (hd prems RS conjunct2 RS bexE) 1);
by (rtac ex1I 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (assume_tac 1);
by (etac bspec 1);
by (assume_tac 1);
@@ -311,7 +311,7 @@
by (rtac lam_type 1);
by (resolve_tac prems 1);
by (rtac ballI 1);
-by (asm_simp_tac (!simpset addsimps [nat_succI]) 1);
+by (asm_simp_tac (simpset() addsimps [nat_succI]) 1);
brr(cpo_refl::prems) 1;
qed "chain_const";
@@ -337,8 +337,8 @@
val prems = goalw Limit.thy [isub_def,suffix_def] (* isub_suffix *)
"[|chain(D,X); cpo(D); n:nat|] ==> isub(D,suffix(X,n),x) <-> isub(D,X,x)";
-by (simp_tac (!simpset addsimps prems) 1);
-by (safe_tac (!claset));
+by (simp_tac (simpset() addsimps prems) 1);
+by (safe_tac (claset()));
by (dtac bspec 2);
by (assume_tac 3); (* to instantiate unknowns properly *)
by (rtac cpo_trans 1);
@@ -350,12 +350,12 @@
val prems = goalw Limit.thy [islub_def] (* islub_suffix *)
"[|chain(D,X); cpo(D); n:nat|] ==> islub(D,suffix(X,n),x) <-> islub(D,X,x)";
-by (asm_simp_tac (!simpset addsimps isub_suffix::prems) 1);
+by (asm_simp_tac (simpset() addsimps isub_suffix::prems) 1);
qed "islub_suffix";
val prems = goalw Limit.thy [lub_def] (* lub_suffix *)
"[|chain(D,X); cpo(D); n:nat|] ==> lub(D,suffix(X,n)) = lub(D,X)";
-by (asm_simp_tac (!simpset addsimps islub_suffix::prems) 1);
+by (asm_simp_tac (simpset() addsimps islub_suffix::prems) 1);
qed "lub_suffix";
(*----------------------------------------------------------------------*)
@@ -438,7 +438,7 @@
val prems = goalw Limit.thy [matrix_def] (* matrix_fun *)
"matrix(D,M) ==> M : nat -> (nat -> set(D))";
-by (simp_tac (!simpset addsimps prems) 1);
+by (simp_tac (simpset() addsimps prems) 1);
qed "matrix_fun";
val prems = goalw Limit.thy [] (* matrix_in_fun *)
@@ -455,17 +455,17 @@
val prems = goalw Limit.thy [matrix_def] (* matrix_rel_1_0 *)
"[|matrix(D,M); n:nat; m:nat|] ==> rel(D,M`n`m,M`succ(n)`m)";
-by (simp_tac (!simpset addsimps prems) 1);
+by (simp_tac (simpset() addsimps prems) 1);
qed "matrix_rel_1_0";
val prems = goalw Limit.thy [matrix_def] (* matrix_rel_0_1 *)
"[|matrix(D,M); n:nat; m:nat|] ==> rel(D,M`n`m,M`n`succ(m))";
-by (simp_tac (!simpset addsimps prems) 1);
+by (simp_tac (simpset() addsimps prems) 1);
qed "matrix_rel_0_1";
val prems = goalw Limit.thy [matrix_def] (* matrix_rel_1_1 *)
"[|matrix(D,M); n:nat; m:nat|] ==> rel(D,M`n`m,M`succ(n)`succ(m))";
-by (simp_tac (!simpset addsimps prems) 1);
+by (simp_tac (simpset() addsimps prems) 1);
qed "matrix_rel_1_1";
val prems = goal Limit.thy (* fun_swap *)
@@ -479,13 +479,13 @@
val prems = goalw Limit.thy [matrix_def] (* matrix_sym_axis *)
"!!z. matrix(D,M) ==> matrix(D,lam m:nat. lam n:nat. M`n`m)";
-by (Simp_tac 1 THEN safe_tac (!claset) THEN
-REPEAT(asm_simp_tac (!simpset addsimps [fun_swap]) 1));
+by (Simp_tac 1 THEN safe_tac (claset()) THEN
+REPEAT(asm_simp_tac (simpset() addsimps [fun_swap]) 1));
qed "matrix_sym_axis";
val prems = goalw Limit.thy [chain_def] (* matrix_chain_diag *)
"matrix(D,M) ==> chain(D,lam n:nat. M`n`n)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac lam_type 1);
by (rtac matrix_in 1);
by (REPEAT(ares_tac prems 1));
@@ -496,7 +496,7 @@
val prems = goalw Limit.thy [chain_def] (* matrix_chain_left *)
"[|matrix(D,M); n:nat|] ==> chain(D,M`n)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac apply_type 1);
by (rtac matrix_fun 1);
by (REPEAT(ares_tac prems 1));
@@ -506,15 +506,15 @@
val prems = goalw Limit.thy [chain_def] (* matrix_chain_right *)
"[|matrix(D,M); m:nat|] ==> chain(D,lam n:nat. M`n`m)";
-by (safe_tac (!claset));
-by (asm_simp_tac(!simpset addsimps prems) 2);
+by (safe_tac (claset()));
+by (asm_simp_tac(simpset() addsimps prems) 2);
brr(lam_type::matrix_in::matrix_rel_1_0::prems) 1;
qed "matrix_chain_right";
val prems = goalw Limit.thy [matrix_def] (* matrix_chainI *)
"[|!!x. x:nat==>chain(D,M`x); !!y. y:nat==>chain(D,lam x:nat. M`x`y); \
\ M:nat->nat->set(D); cpo(D)|] ==> matrix(D,M)";
-by (safe_tac (!claset addSIs [ballI]));
+by (safe_tac (claset() addSIs [ballI]));
by (cut_inst_tac[("y1","m"),("n","n")](hd(tl prems) RS chain_rel) 2);
by (Asm_full_simp_tac 4);
by (rtac cpo_trans 5);
@@ -537,7 +537,7 @@
"[|isub(D,(lam n:nat. M`n`n),y); matrix(D,M); cpo(D)|] ==> \
\ isub(D,(lam n:nat. lub(D,lam m:nat. M`n`m)),y)";
by (rewtac isub_def);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac isubD1 1);
by (resolve_tac prems 1);
by (Asm_simp_tac 1);
@@ -551,11 +551,11 @@
by (assume_tac 1);
by (resolve_tac prems 1);
by (rewtac isub_def);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac isubD1 1);
by (resolve_tac prems 1);
by (cut_inst_tac[("P","n le na")]excluded_middle 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac cpo_trans 1);
by (resolve_tac prems 1);
by (rtac (not_le_iff_lt RS iffD1 RS leI RS chain_rel_gen) 1);
@@ -575,7 +575,7 @@
val prems = goalw Limit.thy [chain_def] (* matrix_chain_lub *)
"[|matrix(D,M); cpo(D)|] ==> chain(D,lam n:nat. lub(D,lam m:nat. M`n`m))";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac lam_type 1);
by (rtac islub_in 1);
by (rtac cpo_lub 1);
@@ -587,7 +587,7 @@
by (Asm_simp_tac 1);
by (rtac matrix_rel_0_1 1);
by (REPEAT(ares_tac prems 1));
-by (asm_simp_tac (!simpset addsimps
+by (asm_simp_tac (simpset() addsimps
[hd prems RS matrix_chain_left RS chain_fun RS eta]) 1);
by (rtac dominate_islub 1);
by (rtac cpo_lub 3);
@@ -613,7 +613,7 @@
by (rtac bexI 1);
by (assume_tac 2);
by (Asm_simp_tac 1);
-by (asm_simp_tac (!simpset addsimps
+by (asm_simp_tac (simpset() addsimps
[hd prems RS matrix_chain_left RS chain_fun RS eta]) 1);
by (rtac islub_ub 1);
by (rtac cpo_lub 1);
@@ -637,9 +637,9 @@
"[|matrix(D,M); cpo(D)|] ==> \
\ lub(D,(lam n:nat. lub(D,lam m:nat. M`n`m))) = \
\ lub(D,(lam n:nat. M`n`n))";
-by (simp_tac (!simpset addsimps [lemma1,lemma2]) 1);
+by (simp_tac (simpset() addsimps [lemma1,lemma2]) 1);
by (rewtac islub_def);
-by (simp_tac (!simpset addsimps [hd(tl prems) RS (hd prems RS isub_eq)]) 1);
+by (simp_tac (simpset() addsimps [hd(tl prems) RS (hd prems RS isub_eq)]) 1);
qed "lub_matrix_diag";
val [matrix,cpo] = goalw Limit.thy [] (* lub_matrix_diag_sym *)
@@ -658,7 +658,7 @@
"[|f:set(D)->set(E); \
\ !!x y. [|rel(D,x,y); x:set(D); y:set(D)|] ==> rel(E,f`x,f`y)|] ==> \
\ f:mono(D,E)";
-by (fast_tac(!claset addSIs prems) 1);
+by (fast_tac(claset() addSIs prems) 1);
qed "monoI";
val prems = goal Limit.thy
@@ -683,7 +683,7 @@
\ !!x y. [|rel(D,x,y); x:set(D); y:set(D)|] ==> rel(E,f`x,f`y); \
\ !!X. chain(D,X) ==> f`lub(D,X) = lub(E,lam n:nat. f`(X`n))|] ==> \
\ f:cont(D,E)";
-by (fast_tac(!claset addSIs prems) 1);
+by (fast_tac(claset() addSIs prems) 1);
qed "contI";
val prems = goal Limit.thy
@@ -722,7 +722,7 @@
"[|f:mono(D,E); chain(D,X)|] ==> chain(E,lam n:nat. f`(X`n))";
by (rewtac chain_def);
by (Simp_tac 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac lam_type 1);
by (rtac mono_map 1);
by (resolve_tac prems 1);
@@ -767,8 +767,8 @@
"[|!!x. x:set(D) ==> rel(E,f`x,g`x); f:cont(D,E); g:cont(D,E)|] ==> \
\ rel(cf(D,E),f,g)";
by (rtac rel_I 1);
-by (simp_tac (!simpset addsimps [cf_def]) 1);
-by (safe_tac (!claset));
+by (simp_tac (simpset() addsimps [cf_def]) 1);
+by (safe_tac (claset()));
brr prems 1;
qed "rel_cfI";
@@ -845,11 +845,11 @@
by (REPEAT(ares_tac ((chain_cf RS chain_fun)::prems) 1));
by (stac beta 1);
by (REPEAT(ares_tac((cpo_lub RS islub_in)::prems) 1));
-by (asm_simp_tac(!simpset addsimps[hd prems RS chain_in RS cf_cont RS cont_lub]) 1);
+by (asm_simp_tac(simpset() addsimps[hd prems RS chain_in RS cf_cont RS cont_lub]) 1);
by (forward_tac[hd prems RS matrix_lemma RS lub_matrix_diag]1);
brr prems 1;
by (Asm_full_simp_tac 1);
-by (asm_simp_tac(!simpset addsimps[chain_in RS beta]) 1);
+by (asm_simp_tac(simpset() addsimps[chain_in RS beta]) 1);
by (dtac (hd prems RS matrix_lemma RS lub_matrix_diag_sym) 1);
brr prems 1;
by (Asm_full_simp_tac 1);
@@ -920,7 +920,7 @@
by (rtac contI 1);
by (Asm_simp_tac 2);
brr(lam_type::cpo_refl::prems) 1;
-by (asm_simp_tac(!simpset addsimps(chain_in::(cpo_lub RS islub_in)::
+by (asm_simp_tac(simpset() addsimps(chain_in::(cpo_lub RS islub_in)::
lub_const::prems)) 1);
qed "const_cont";
@@ -951,14 +951,14 @@
(*----------------------------------------------------------------------*)
val id_thm = prove_goalw Perm.thy [id_def] "x:X ==> (id(X)`x) = x"
- (fn prems => [simp_tac(!simpset addsimps prems) 1]);
+ (fn prems => [simp_tac(simpset() addsimps prems) 1]);
val prems = goal Limit.thy (* id_cont *)
"cpo(D) ==> id(set(D)):cont(D,D)";
by (rtac contI 1);
by (rtac id_type 1);
-by (asm_simp_tac (!simpset addsimps[id_thm]) 1);
-by (asm_simp_tac(!simpset addsimps(id_thm::(cpo_lub RS islub_in)::
+by (asm_simp_tac (simpset() addsimps[id_thm]) 1);
+by (asm_simp_tac(simpset() addsimps(id_thm::(cpo_lub RS islub_in)::
chain_in::(chain_fun RS eta)::prems)) 1);
qed "id_cont";
@@ -975,7 +975,7 @@
by (stac comp_cont_apply 1);
by (stac cont_lub 4);
by (stac cont_lub 6);
-by (asm_full_simp_tac(!simpset addsimps (* RS: new subgoals contain unknowns *)
+by (asm_full_simp_tac(simpset() addsimps (* RS: new subgoals contain unknowns *)
[hd prems RS (hd(tl prems) RS comp_cont_apply),chain_in]) 8);
brr((cpo_lub RS islub_in)::cont_chain::prems) 1;
qed "comp_pres_cont";
@@ -1014,11 +1014,11 @@
brr(comp_fun::(cf_cont RS cont_fun)::(cpo_lub RS islub_in)::cpo_cf::
chain_cf_comp::prems) 1;
by (cut_facts_tac[hd prems,hd(tl prems)]1);
-by (asm_simp_tac(!simpset addsimps((chain_in RS cf_cont RSN(3,chain_in RS
+by (asm_simp_tac(simpset() addsimps((chain_in RS cf_cont RSN(3,chain_in RS
cf_cont RS comp_cont_apply))::(tl(tl prems)))) 1);
by (stac comp_cont_apply 1);
brr((cpo_lub RS islub_in RS cf_cont)::cpo_cf::prems) 1;
-by (asm_simp_tac(!simpset addsimps(lub_cf::
+by (asm_simp_tac(simpset() addsimps(lub_cf::
(hd(tl prems)RS chain_cf RSN(2,hd prems RS chain_in RS cf_cont RS cont_lub))::
(hd(tl prems) RS chain_cf RS cpo_lub RS islub_in)::prems)) 1);
by (cut_inst_tac[("M","lam xa:nat. lam xb:nat. X`xa`(Y`xb`x)")]
@@ -1050,7 +1050,7 @@
\ [| e:cont(D,E); p:cont(E,D); p O e = id(set(D)); \
\ rel(cf(E,E))(e O p)(id(set(E)))|] ==> Q |] ==> Q";
by (rtac (hd(tl prems)) 1);
-by (REPEAT(asm_simp_tac(!simpset addsimps[hd prems]) 1));
+by (REPEAT(asm_simp_tac(simpset() addsimps[hd prems]) 1));
qed "projpairE";
val prems = goal Limit.thy (* projpair_e_cont *)
@@ -1218,7 +1218,7 @@
val prems = goalw Limit.thy [projpair_def] (* projpair_id *)
"cpo(D) ==> projpair(D,D,id(set(D)),id(set(D)))";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
brr(id_cont::id_comp::id_type::prems) 1;
by (stac id_comp 1); (* Matches almost anything *)
brr(id_cont::id_type::cpo_refl::cpo_cf::cont_cf::prems) 1;
@@ -1245,7 +1245,7 @@
val prems = goalw Limit.thy [projpair_def] (* lemma *)
"[|emb(D,D',e); emb(D',E,e'); cpo(D); cpo(D'); cpo(E)|] ==> \
\ projpair(D,E,e' O e,(Rp(D,D',e)) O (Rp(D',E,e')))";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
brr(comp_pres_cont::Rp_cont::emb_cont::prems) 1;
by (rtac (comp_assoc RS subst) 1);
by (res_inst_tac[("t1","e'")](comp_assoc RS ssubst) 1);
@@ -1288,7 +1288,7 @@
by (rtac CollectI 1);
by (rtac domainI 1);
by (rtac CollectI 1);
-by (simp_tac(!simpset addsimps prems) 1);
+by (simp_tac(simpset() addsimps prems) 1);
by (rtac (hd prems) 1);
by (Simp_tac 1);
by (rtac ballI 1);
@@ -1297,7 +1297,7 @@
by (assume_tac 1);
by (rtac rel_I 1);
by (rtac CollectI 1);
-by (fast_tac(!claset addSIs prems) 1);
+by (fast_tac(claset() addSIs prems) 1);
by (rtac ballI 1);
by (Simp_tac 1);
by (dtac ((hd prems) RS apply_type) 1);
@@ -1317,7 +1317,7 @@
\ g:(PROD n:nat. set(DD`n))|] ==> rel(iprod(DD),f,g)";
by (rtac rel_I 1);
by (Simp_tac 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
brr prems 1;
qed "rel_iprodI";
@@ -1325,7 +1325,7 @@
"[|rel(iprod(DD),f,g); n:nat|] ==> rel(DD`n,f`n,g`n)";
by (cut_facts_tac[hd prems RS rel_E]1);
by (Asm_full_simp_tac 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (etac bspec 1);
by (resolve_tac prems 1);
qed "rel_iprodE";
@@ -1336,22 +1336,22 @@
val prems = goalw Limit.thy [chain_def] (* chain_iprod *)
"[|chain(iprod(DD),X); !!n. n:nat ==> cpo(DD`n); n:nat|] ==> \
\ chain(DD`n,lam m:nat. X`m`n)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac lam_type 1);
by (rtac apply_type 1);
by (rtac iprodE 1);
by (etac (hd prems RS conjunct1 RS apply_type) 1);
by (resolve_tac prems 1);
-by (asm_simp_tac(!simpset addsimps prems) 1);
+by (asm_simp_tac(simpset() addsimps prems) 1);
by (rtac rel_iprodE 1);
-by (asm_simp_tac (!simpset addsimps prems) 1);
+by (asm_simp_tac (simpset() addsimps prems) 1);
by (resolve_tac prems 1);
qed "chain_iprod";
val prems = goalw Limit.thy [islub_def,isub_def] (* islub_iprod *)
"[|chain(iprod(DD),X); !!n. n:nat ==> cpo(DD`n)|] ==> \
\ islub(iprod(DD),X,lam n:nat. lub(DD`n,lam m:nat. X`m`n))";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac iprodI 1);
by (rtac lam_type 1);
brr((chain_iprod RS cpo_lub RS islub_in)::prems) 1;
@@ -1366,7 +1366,7 @@
by (Asm_simp_tac 1);
brr(islub_least::(chain_iprod RS cpo_lub)::prems) 1;
by (rewtac isub_def);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (etac (iprodE RS apply_type) 1);
by (assume_tac 1);
by (Asm_simp_tac 1);
@@ -1403,9 +1403,9 @@
"[|set(D)<=set(E); \
\ !!x y. [|x:set(D); y:set(D)|] ==> rel(D,x,y)<->rel(E,x,y); \
\ !!X. chain(D,X) ==> lub(E,X) : set(D)|] ==> subcpo(D,E)";
-by (safe_tac (!claset));
-by (asm_full_simp_tac(!simpset addsimps prems) 2);
-by (asm_simp_tac(!simpset addsimps prems) 2);
+by (safe_tac (claset()));
+by (asm_full_simp_tac(simpset() addsimps prems) 2);
+by (asm_simp_tac(simpset() addsimps prems) 2);
brr(prems@[subsetD]) 1;
qed "subcpoI";
@@ -1459,16 +1459,16 @@
"[|subcpo(D,E); cpo(E)|] ==> cpo(D)";
brr[cpoI,poI]1;
(* Changing the order of the assumptions, otherwise full_simp doesn't work. *)
-by (asm_full_simp_tac(!simpset addsimps[hd prems RS subcpo_rel_eq]) 1);
+by (asm_full_simp_tac(simpset() addsimps[hd prems RS subcpo_rel_eq]) 1);
brr(cpo_refl::(hd prems RS subcpo_subset RS subsetD)::prems) 1;
by (dtac (imp_refl RS mp) 1);
by (dtac (imp_refl RS mp) 1);
-by (asm_full_simp_tac(!simpset addsimps[hd prems RS subcpo_rel_eq]) 1);
+by (asm_full_simp_tac(simpset() addsimps[hd prems RS subcpo_rel_eq]) 1);
brr(cpo_trans::(hd prems RS subcpo_subset RS subsetD)::prems) 1;
(* Changing the order of the assumptions, otherwise full_simp doesn't work. *)
by (dtac (imp_refl RS mp) 1);
by (dtac (imp_refl RS mp) 1);
-by (asm_full_simp_tac(!simpset addsimps[hd prems RS subcpo_rel_eq]) 1);
+by (asm_full_simp_tac(simpset() addsimps[hd prems RS subcpo_rel_eq]) 1);
brr(cpo_antisym::(hd prems RS subcpo_subset RS subsetD)::prems) 1;
brr(islub_subcpo::prems) 1;
qed "subcpo_cpo";
@@ -1498,13 +1498,13 @@
by (rtac conjI 2);
by (rtac conjI 3);
by (resolve_tac prems 3);
-by (simp_tac(!simpset addsimps [rewrite_rule[set_def](hd prems)]) 1);
+by (simp_tac(simpset() addsimps [rewrite_rule[set_def](hd prems)]) 1);
by (resolve_tac prems 1);
by (rtac cpo_refl 1);
by (resolve_tac prems 1);
by (rtac rel_I 1);
by (rtac CollectI 1);
-by (fast_tac(!claset addSIs [rewrite_rule[set_def](hd prems)]) 1);
+by (fast_tac(claset() addSIs [rewrite_rule[set_def](hd prems)]) 1);
by (Simp_tac 1);
brr(conjI::cpo_refl::prems) 1;
*)
@@ -1564,7 +1564,7 @@
val prems = goalw Limit.thy [emb_chain_def] (* emb_chainI *)
"[|!!n. n:nat ==> cpo(DD`n); \
\ !!n. n:nat ==> emb(DD`n,DD`succ(n),ee`n)|] ==> emb_chain(DD,ee)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
brr prems 1;
qed "emb_chainI";
@@ -1598,7 +1598,7 @@
val prems = goalw Limit.thy [Dinf_def] (* DinfD2 *)
"[|x:set(Dinf(DD,ee)); n:nat|] ==> \
\ Rp(DD`n,DD`succ(n),ee`n)`(x`succ(n)) = x`n";
-by (asm_simp_tac(!simpset addsimps[(hd prems RS mkcpoD2),hd(tl prems)]) 1);
+by (asm_simp_tac(simpset() addsimps[(hd prems RS mkcpoD2),hd(tl prems)]) 1);
qed "DinfD2";
val Dinf_eq = DinfD2;
@@ -1641,7 +1641,7 @@
by (stac (Rp_cont RS cont_lub) 1);
brr(emb_chain_cpo::emb_chain_emb::nat_succI::chain_iprod::chain_Dinf::prems) 1;
(* Useful simplification, ugly in HOL. *)
-by (asm_simp_tac(!simpset addsimps(DinfD2::chain_in::[])) 1);
+by (asm_simp_tac(simpset() addsimps(DinfD2::chain_in::[])) 1);
brr(cpo_iprod::emb_chain_cpo::prems) 1;
qed "subcpo_Dinf";
@@ -1670,7 +1670,7 @@
val prems = goalw Limit.thy [e_less_def] (* e_less_eq *)
"!!x. m:nat ==> e_less(DD,ee,m,m) = id(set(DD`m))";
-by (asm_simp_tac (!simpset addsimps[diff_self_eq_0]) 1);
+by (asm_simp_tac (simpset() addsimps[diff_self_eq_0]) 1);
qed "e_less_eq";
(* ARITH_CONV proves the following in HOL. Would like something similar
@@ -1680,13 +1680,13 @@
"!!z. [|n:nat; m:nat|] ==> succ(m#+n)#-m = succ(n)";
(*Uses add_succ_right the wrong way round!*)
by (asm_simp_tac
- (simpset_of"Nat" addsimps [add_succ_right RS sym, diff_add_inverse]) 1);
+ (simpset_of Nat.thy addsimps [add_succ_right RS sym, diff_add_inverse]) 1);
val lemma_succ_sub = result();
val prems = goalw Limit.thy [e_less_def] (* e_less_add *)
"!!x. [|m:nat; k:nat|] ==> \
\ e_less(DD,ee,m,succ(m#+k)) = (ee`(m#+k))O(e_less(DD,ee,m,m#+k))";
-by (asm_simp_tac (!simpset addsimps [lemma_succ_sub,diff_add_inverse]) 1);
+by (asm_simp_tac (simpset() addsimps [lemma_succ_sub,diff_add_inverse]) 1);
qed "e_less_add";
(* Again, would like more theorems about arithmetic. *)
@@ -1695,14 +1695,14 @@
val add1 = prove_goal Limit.thy
"!!x. n:nat ==> succ(n) = n #+ 1"
(fn prems =>
- [asm_simp_tac (!simpset addsimps[add_succ_right,add_0_right]) 1]);
+ [asm_simp_tac (simpset() addsimps[add_succ_right,add_0_right]) 1]);
val prems = goal Limit.thy (* succ_sub1 *)
"x:nat ==> 0 < x --> succ(x#-1)=x";
by (res_inst_tac[("n","x")]nat_induct 1);
by (resolve_tac prems 1);
by (Fast_tac 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (Asm_simp_tac 1);
by (Asm_simp_tac 1);
qed "succ_sub1";
@@ -1712,16 +1712,16 @@
by (res_inst_tac[("n","m")]nat_induct 1);
by (resolve_tac prems 1);
by (rtac impI 1);
-by (asm_full_simp_tac(!simpset addsimps prems) 1);
-by (safe_tac (!claset));
-by (asm_full_simp_tac(!simpset addsimps prems) 1); (* Surprise, surprise. *)
+by (asm_full_simp_tac(simpset() addsimps prems) 1);
+by (safe_tac (claset()));
+by (asm_full_simp_tac(simpset() addsimps prems) 1); (* Surprise, surprise. *)
qed "succ_le_pos";
goal Limit.thy (* lemma_le_exists *)
"!!z. [|n:nat; m:nat|] ==> m le n --> (EX k:nat. n = m #+ k)";
by (res_inst_tac[("n","m")]nat_induct 1);
by (assume_tac 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac bexI 1);
by (rtac (add_0 RS sym) 1);
by (assume_tac 1);
@@ -1729,7 +1729,7 @@
(* Great, by luck I found le_cs. Such cs's and ss's should be documented. *)
by (fast_tac le_cs 1);
by (asm_simp_tac
- (simpset_of"Nat" addsimps[add_succ, add_succ_right RS sym]) 1);
+ (simpset_of Nat.thy addsimps[add_succ, add_succ_right RS sym]) 1);
by (rtac bexI 1);
by (stac (succ_sub1 RS mp) 1);
(* Instantiation. *)
@@ -1754,7 +1754,7 @@
\ e_less(DD,ee,m,succ(n)) = ee`n O e_less(DD,ee,m,n)";
by (rtac le_exists 1);
by (resolve_tac prems 1);
-by (asm_simp_tac(!simpset addsimps(e_less_add::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(e_less_add::prems)) 1);
brr prems 1;
qed "e_less_le";
@@ -1762,13 +1762,13 @@
val prems = goal Limit.thy (* e_less_succ *)
"m:nat ==> e_less(DD,ee,m,succ(m)) = ee`m O id(set(DD`m))";
-by (asm_simp_tac(!simpset addsimps(e_less_le::e_less_eq::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(e_less_le::e_less_eq::prems)) 1);
qed "e_less_succ";
val prems = goal Limit.thy (* e_less_succ_emb *)
"[|!!n. n:nat ==> emb(DD`n,DD`succ(n),ee`n); m:nat|] ==> \
\ e_less(DD,ee,m,succ(m)) = ee`m";
-by (asm_simp_tac(!simpset addsimps(e_less_succ::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(e_less_succ::prems)) 1);
by (stac comp_id 1);
brr(emb_cont::cont_fun::refl::prems) 1;
qed "e_less_succ_emb";
@@ -1781,9 +1781,9 @@
\ emb(DD`m,DD`(m#+k),e_less(DD,ee,m,m#+k))";
by (res_inst_tac[("n","k")]nat_induct 1);
by (resolve_tac prems 1);
-by (asm_simp_tac(!simpset addsimps(add_0_right::e_less_eq::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(add_0_right::e_less_eq::prems)) 1);
brr(emb_id::emb_chain_cpo::prems) 1;
-by (asm_simp_tac(!simpset addsimps(add_succ_right::e_less_add::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(add_succ_right::e_less_add::prems)) 1);
brr(emb_comp::emb_chain_emb::emb_chain_cpo::add_type::nat_succI::prems) 1;
qed "emb_e_less_add";
@@ -1793,7 +1793,7 @@
(* same proof as e_less_le *)
by (rtac le_exists 1);
by (resolve_tac prems 1);
-by (asm_simp_tac(!simpset addsimps(emb_e_less_add::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(emb_e_less_add::prems)) 1);
brr prems 1;
qed "emb_e_less";
@@ -1841,14 +1841,14 @@
val prems = goalw Limit.thy [e_gr_def] (* e_gr_eq *)
"!!x. m:nat ==> e_gr(DD,ee,m,m) = id(set(DD`m))";
-by (asm_simp_tac (!simpset addsimps[diff_self_eq_0]) 1);
+by (asm_simp_tac (simpset() addsimps[diff_self_eq_0]) 1);
qed "e_gr_eq";
val prems = goalw Limit.thy [e_gr_def] (* e_gr_add *)
"!!x. [|n:nat; k:nat|] ==> \
\ e_gr(DD,ee,succ(n#+k),n) = \
\ e_gr(DD,ee,n#+k,n) O Rp(DD`(n#+k),DD`succ(n#+k),ee`(n#+k))";
-by (asm_simp_tac (!simpset addsimps [lemma_succ_sub,diff_add_inverse]) 1);
+by (asm_simp_tac (simpset() addsimps [lemma_succ_sub,diff_add_inverse]) 1);
qed "e_gr_add";
val prems = goal Limit.thy (* e_gr_le *)
@@ -1856,14 +1856,14 @@
\ e_gr(DD,ee,succ(m),n) = e_gr(DD,ee,m,n) O Rp(DD`m,DD`succ(m),ee`m)";
by (rtac le_exists 1);
by (resolve_tac prems 1);
-by (asm_simp_tac(!simpset addsimps(e_gr_add::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(e_gr_add::prems)) 1);
brr prems 1;
qed "e_gr_le";
val prems = goal Limit.thy (* e_gr_succ *)
"m:nat ==> \
\ e_gr(DD,ee,succ(m),m) = id(set(DD`m)) O Rp(DD`m,DD`succ(m),ee`m)";
-by (asm_simp_tac(!simpset addsimps(e_gr_le::e_gr_eq::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(e_gr_le::e_gr_eq::prems)) 1);
qed "e_gr_succ";
(* Cpo asm's due to THE uniqueness. *)
@@ -1871,7 +1871,7 @@
val prems = goal Limit.thy (* e_gr_succ_emb *)
"[|emb_chain(DD,ee); m:nat|] ==> \
\ e_gr(DD,ee,succ(m),m) = Rp(DD`m,DD`succ(m),ee`m)";
-by (asm_simp_tac(!simpset addsimps(e_gr_succ::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(e_gr_succ::prems)) 1);
by (stac id_comp 1);
brr(Rp_cont::cont_fun::refl::emb_chain_cpo::emb_chain_emb::nat_succI::prems) 1;
qed "e_gr_succ_emb";
@@ -1881,8 +1881,8 @@
\ e_gr(DD,ee,n#+k,n): set(DD`(n#+k))->set(DD`n)";
by (res_inst_tac[("n","k")]nat_induct 1);
by (resolve_tac prems 1);
-by (asm_simp_tac(!simpset addsimps(add_0_right::e_gr_eq::id_type::prems)) 1);
-by (asm_simp_tac(!simpset addsimps(add_succ_right::e_gr_add::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(add_0_right::e_gr_eq::id_type::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(add_succ_right::e_gr_add::prems)) 1);
brr(comp_fun::Rp_cont::cont_fun::emb_chain_emb::emb_chain_cpo::add_type::
nat_succI::prems) 1;
qed "e_gr_fun_add";
@@ -1892,7 +1892,7 @@
\ e_gr(DD,ee,m,n): set(DD`m)->set(DD`n)";
by (rtac le_exists 1);
by (resolve_tac prems 1);
-by (asm_simp_tac(!simpset addsimps(e_gr_fun_add::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(e_gr_fun_add::prems)) 1);
brr prems 1;
qed "e_gr_fun";
@@ -1938,16 +1938,16 @@
\ n le m --> e_gr(DD,ee,m,n):cont(DD`m,DD`n)";
by (res_inst_tac[("n","m")]nat_induct 1);
by (resolve_tac prems 1);
-by (asm_full_simp_tac(!simpset addsimps
+by (asm_full_simp_tac(simpset() addsimps
(le0_iff::e_gr_eq::nat_0I::prems)) 1);
brr(impI::id_cont::emb_chain_cpo::nat_0I::prems) 1;
-by (asm_full_simp_tac(!simpset addsimps[le_succ_iff]) 1);
+by (asm_full_simp_tac(simpset() addsimps[le_succ_iff]) 1);
by (etac disjE 1);
by (etac impE 1);
by (assume_tac 1);
-by (asm_simp_tac(!simpset addsimps(e_gr_le::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(e_gr_le::prems)) 1);
brr(comp_pres_cont::Rp_cont::emb_chain_cpo::emb_chain_emb::nat_succI::prems) 1;
-by (asm_simp_tac(!simpset addsimps(e_gr_eq::nat_succI::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(e_gr_eq::nat_succI::prems)) 1);
brr(id_cont::emb_chain_cpo::nat_succI::prems) 1;
qed "e_gr_cont_lemma";
@@ -1996,7 +1996,7 @@
by (resolve_tac prems 2);
by (res_inst_tac[("n","k")]nat_induct 1);
by (resolve_tac prems 1);
-by (asm_full_simp_tac(!simpset addsimps
+by (asm_full_simp_tac(simpset() addsimps
(add_0_right::e_gr_eq::e_less_eq::(id_type RS id_comp)::prems)) 1);
by (simp_tac(ZF_ss addsimps[le_succ_iff]) 1);
by (rtac impI 1);
@@ -2021,7 +2021,7 @@
val prems = goalw Limit.thy [eps_def] (* emb_eps *)
"[|m le n; emb_chain(DD,ee); m:nat; n:nat|] ==> \
\ emb(DD`m,DD`n,eps(DD,ee,m,n))";
-by (asm_simp_tac(!simpset addsimps prems) 1);
+by (asm_simp_tac(simpset() addsimps prems) 1);
brr(emb_e_less::prems) 1;
qed "emb_eps";
@@ -2029,56 +2029,56 @@
"[|emb_chain(DD,ee); m:nat; n:nat|] ==> \
\ eps(DD,ee,m,n): set(DD`m)->set(DD`n)";
by (rtac (expand_if RS iffD2) 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
brr((e_less_cont RS cont_fun)::prems) 1;
brr((not_le_iff_lt RS iffD1 RS leI)::e_gr_fun::nat_into_Ord::prems) 1;
qed "eps_fun";
val eps_id = prove_goalw Limit.thy [eps_def]
"n:nat ==> eps(DD,ee,n,n) = id(set(DD`n))"
- (fn prems => [simp_tac(!simpset addsimps(e_less_eq::nat_le_refl::prems)) 1]);
+ (fn prems => [simp_tac(simpset() addsimps(e_less_eq::nat_le_refl::prems)) 1]);
val eps_e_less_add = prove_goalw Limit.thy [eps_def]
"[|m:nat; n:nat|] ==> eps(DD,ee,m,m#+n) = e_less(DD,ee,m,m#+n)"
- (fn prems => [simp_tac(!simpset addsimps(add_le_self::prems)) 1]);
+ (fn prems => [simp_tac(simpset() addsimps(add_le_self::prems)) 1]);
val eps_e_less = prove_goalw Limit.thy [eps_def]
"[|m le n; m:nat; n:nat|] ==> eps(DD,ee,m,n) = e_less(DD,ee,m,n)"
- (fn prems => [simp_tac(!simpset addsimps prems) 1]);
+ (fn prems => [simp_tac(simpset() addsimps prems) 1]);
val shift_asm = imp_refl RS mp;
val prems = goalw Limit.thy [eps_def] (* eps_e_gr_add *)
"[|n:nat; k:nat|] ==> eps(DD,ee,n#+k,n) = e_gr(DD,ee,n#+k,n)";
by (rtac (expand_if RS iffD2) 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (etac leE 1);
(* Must control rewriting by instantiating a variable. *)
-by (asm_full_simp_tac(!simpset addsimps
+by (asm_full_simp_tac(simpset() addsimps
((hd prems RS nat_into_Ord RS not_le_iff_lt RS iff_sym)::nat_into_Ord::
add_le_self::prems)) 1);
-by (asm_simp_tac(!simpset addsimps(e_less_eq::e_gr_eq::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(e_less_eq::e_gr_eq::prems)) 1);
qed "eps_e_gr_add";
val prems = goalw Limit.thy [] (* eps_e_gr *)
"[|n le m; m:nat; n:nat|] ==> eps(DD,ee,m,n) = e_gr(DD,ee,m,n)";
by (rtac le_exists 1);
by (resolve_tac prems 1);
-by (asm_simp_tac(!simpset addsimps(eps_e_gr_add::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(eps_e_gr_add::prems)) 1);
brr prems 1;
qed "eps_e_gr";
val prems = goal Limit.thy (* eps_succ_ee *)
"[|!!n. n:nat ==> emb(DD`n,DD`succ(n),ee`n); m:nat|] ==> \
\ eps(DD,ee,m,succ(m)) = ee`m";
-by (asm_simp_tac(!simpset addsimps(eps_e_less::le_succ_iff::e_less_succ_emb::
+by (asm_simp_tac(simpset() addsimps(eps_e_less::le_succ_iff::e_less_succ_emb::
prems)) 1);
qed "eps_succ_ee";
val prems = goal Limit.thy (* eps_succ_Rp *)
"[|emb_chain(DD,ee); m:nat|] ==> \
\ eps(DD,ee,succ(m),m) = Rp(DD`m,DD`succ(m),ee`m)";
-by (asm_simp_tac(!simpset addsimps(eps_e_gr::le_succ_iff::e_gr_succ_emb::
+by (asm_simp_tac(simpset() addsimps(eps_e_gr::le_succ_iff::e_gr_succ_emb::
prems)) 1);
qed "eps_succ_Rp";
@@ -2087,8 +2087,8 @@
by (rtac nat_linear_le 1);
by (resolve_tac prems 1);
by (rtac (hd(rev prems)) 1);
-by (asm_simp_tac(!simpset addsimps(eps_e_less::e_less_cont::prems)) 1);
-by (asm_simp_tac(!simpset addsimps(eps_e_gr::e_gr_cont::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(eps_e_less::e_less_cont::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(eps_e_gr::e_gr_cont::prems)) 1);
qed "eps_cont";
(* Theorems about splitting. *)
@@ -2096,7 +2096,7 @@
val prems = goal Limit.thy (* eps_split_add_left *)
"[|n le k; emb_chain(DD,ee); m:nat; n:nat; k:nat|] ==> \
\ eps(DD,ee,m,m#+k) = eps(DD,ee,m#+n,m#+k) O eps(DD,ee,m,m#+n)";
-by (asm_simp_tac(!simpset addsimps
+by (asm_simp_tac(simpset() addsimps
(eps_e_less::add_le_self::add_le_mono::prems)) 1);
brr(e_less_split_add::prems) 1;
qed "eps_split_add_left";
@@ -2104,7 +2104,7 @@
val prems = goal Limit.thy (* eps_split_add_left_rev *)
"[|n le k; emb_chain(DD,ee); m:nat; n:nat; k:nat|] ==> \
\ eps(DD,ee,m,m#+n) = eps(DD,ee,m#+k,m#+n) O eps(DD,ee,m,m#+k)";
-by (asm_simp_tac(!simpset addsimps
+by (asm_simp_tac(simpset() addsimps
(eps_e_less_add::eps_e_gr::add_le_self::add_le_mono::prems)) 1);
brr(e_less_e_gr_split_add::prems) 1;
qed "eps_split_add_left_rev";
@@ -2112,7 +2112,7 @@
val prems = goal Limit.thy (* eps_split_add_right *)
"[|m le k; emb_chain(DD,ee); m:nat; n:nat; k:nat|] ==> \
\ eps(DD,ee,n#+k,n) = eps(DD,ee,n#+m,n) O eps(DD,ee,n#+k,n#+m)";
-by (asm_simp_tac(!simpset addsimps
+by (asm_simp_tac(simpset() addsimps
(eps_e_gr::add_le_self::add_le_mono::prems)) 1);
brr(e_gr_split_add::prems) 1;
qed "eps_split_add_right";
@@ -2120,7 +2120,7 @@
val prems = goal Limit.thy (* eps_split_add_right_rev *)
"[|m le k; emb_chain(DD,ee); m:nat; n:nat; k:nat|] ==> \
\ eps(DD,ee,n#+m,n) = eps(DD,ee,n#+k,n) O eps(DD,ee,n#+m,n#+k)";
-by (asm_simp_tac(!simpset addsimps
+by (asm_simp_tac(simpset() addsimps
(eps_e_gr_add::eps_e_less::add_le_self::add_le_mono::prems)) 1);
brr(e_gr_e_less_split_add::prems) 1;
qed "eps_split_add_right_rev";
@@ -2231,22 +2231,22 @@
by (assume_tac 2);
by (asm_simp_tac(ZF_ss addsimps [add1]) 1);
brr(add_le_self::nat_0I::nat_succI::prems) 1;
-by (asm_simp_tac(!simpset addsimps(eps_succ_Rp::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(eps_succ_Rp::prems)) 1);
by (stac comp_fun_apply 1);
brr(eps_fun::nat_succI::(Rp_cont RS cont_fun)::emb_chain_emb::
emb_chain_cpo::refl::prems) 1;
(* Now the second part of the proof. Slightly different than HOL. *)
-by (asm_simp_tac(!simpset addsimps(eps_e_less::nat_succI::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(eps_e_less::nat_succI::prems)) 1);
by (etac (le_iff RS iffD1 RS disjE) 1);
-by (asm_simp_tac(!simpset addsimps(e_less_le::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(e_less_le::prems)) 1);
by (stac comp_fun_apply 1);
brr(e_less_cont::cont_fun::emb_chain_emb::emb_cont::prems) 1;
by (stac embRp_eq_thm 1);
brr(emb_chain_emb::(e_less_cont RS cont_fun RS apply_type)::emb_chain_cpo::
nat_succI::prems) 1;
-by (asm_simp_tac(!simpset addsimps(eps_e_less::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(eps_e_less::prems)) 1);
by (dtac shift_asm 1);
-by (asm_full_simp_tac(!simpset addsimps(eps_succ_Rp::e_less_eq::id_apply::
+by (asm_full_simp_tac(simpset() addsimps(eps_succ_Rp::e_less_eq::id_apply::
nat_succI::prems)) 1);
qed "rho_emb_fun";
@@ -2260,7 +2260,7 @@
val rho_emb_id = prove_goal Limit.thy
"!!z. [| x:set(DD`n); n:nat|] ==> rho_emb(DD,ee,n)`x`n = x"
- (fn prems => [asm_simp_tac(!simpset addsimps[rho_emb_apply2,eps_id,id_thm]) 1]);
+ (fn prems => [asm_simp_tac(simpset() addsimps[rho_emb_apply2,eps_id,id_thm]) 1]);
(* Shorter proof, 23 against 62. *)
@@ -2279,11 +2279,11 @@
brr(lam_type::(rho_emb_fun RS apply_type)::chain_in::prems) 1;
by (Asm_simp_tac 1);
by (rtac rel_DinfI 1);
-by (asm_simp_tac(!simpset addsimps (rho_emb_apply2::chain_in::[])) 1);
+by (asm_simp_tac(simpset() addsimps (rho_emb_apply2::chain_in::[])) 1);
brr((eps_cont RS cont_mono)::chain_rel::Dinf_prod::
(rho_emb_fun RS apply_type)::chain_in::nat_succI::prems) 1;
(* Now, back to the result of applying lub_Dinf *)
-by (asm_simp_tac(!simpset addsimps (rho_emb_apply2::chain_in::[])) 1);
+by (asm_simp_tac(simpset() addsimps (rho_emb_apply2::chain_in::[])) 1);
by (stac rho_emb_apply1 1);
brr((cpo_lub RS islub_in)::emb_chain_cpo::prems) 1;
by (rtac fun_extension 1);
@@ -2291,7 +2291,7 @@
emb_chain_cpo::prems) 1;
brr(cont_chain::eps_cont::emb_chain_cpo::prems) 1;
by (Asm_simp_tac 1);
-by (asm_simp_tac(!simpset addsimps((eps_cont RS cont_lub)::prems)) 1);
+by (asm_simp_tac(simpset() addsimps((eps_cont RS cont_lub)::prems)) 1);
qed "rho_emb_cont";
(* 32 vs 61, using safe_tac with imp in asm would be unfortunate (5steps) *)
@@ -2302,10 +2302,10 @@
by (rtac impE 1 THEN atac 3 THEN rtac(hd prems) 2); (* For induction proof *)
by (res_inst_tac[("n","n")]nat_induct 1);
by (rtac impI 2);
-by (asm_full_simp_tac (!simpset addsimps (e_less_eq::prems)) 2);
+by (asm_full_simp_tac (simpset() addsimps (e_less_eq::prems)) 2);
by (stac id_thm 2);
brr(apply_type::Dinf_prod::cpo_refl::emb_chain_cpo::nat_0I::prems) 1;
-by (asm_full_simp_tac (!simpset addsimps [le_succ_iff]) 1);
+by (asm_full_simp_tac (simpset() addsimps [le_succ_iff]) 1);
by (rtac impI 1);
by (etac disjE 1);
by (dtac mp 1 THEN atac 1);
@@ -2330,7 +2330,7 @@
brr((hd(tl(tl prems)) RS Dinf_prod RS apply_type)::cont_fun::Rp_cont::
e_less_cont::emb_cont::emb_chain_emb::emb_chain_cpo::apply_type::
embRp_rel::(disjI1 RS (le_succ_iff RS iffD2))::nat_succI::prems) 1;
-by (asm_full_simp_tac (!simpset addsimps (e_less_eq::prems)) 1);
+by (asm_full_simp_tac (simpset() addsimps (e_less_eq::prems)) 1);
by (stac id_thm 1);
brr(apply_type::Dinf_prod::cpo_refl::emb_chain_cpo::nat_succI::prems) 1;
val lemma1 = result();
@@ -2343,10 +2343,10 @@
by (rtac impE 1 THEN atac 3 THEN rtac(hd prems) 2); (* For induction proof *)
by (res_inst_tac[("n","m")]nat_induct 1);
by (rtac impI 2);
-by (asm_full_simp_tac (!simpset addsimps (e_gr_eq::prems)) 2);
+by (asm_full_simp_tac (simpset() addsimps (e_gr_eq::prems)) 2);
by (stac id_thm 2);
brr(apply_type::Dinf_prod::cpo_refl::emb_chain_cpo::nat_0I::prems) 1;
-by (asm_full_simp_tac (!simpset addsimps [le_succ_iff]) 1);
+by (asm_full_simp_tac (simpset() addsimps [le_succ_iff]) 1);
by (rtac impI 1);
by (etac disjE 1);
by (dtac mp 1 THEN atac 1);
@@ -2355,7 +2355,7 @@
by (stac Dinf_eq 7);
brr(emb_chain_emb::emb_chain_cpo::Rp_cont::e_gr_cont::cont_fun::emb_cont::
apply_type::Dinf_prod::nat_succI::prems) 1;
-by (asm_full_simp_tac (!simpset addsimps (e_gr_eq::prems)) 1);
+by (asm_full_simp_tac (simpset() addsimps (e_gr_eq::prems)) 1);
by (stac id_thm 1);
brr(apply_type::Dinf_prod::cpo_refl::emb_chain_cpo::nat_succI::prems) 1;
val lemma2 = result();
@@ -2381,7 +2381,7 @@
brr(rel_Dinf::prems) 1;
by (stac beta 1);
brr(cpo_Dinf::islub_in::cpo_lub::prems) 1;
-by (asm_simp_tac(!simpset addsimps(chain_in::lub_Dinf::prems)) 1);
+by (asm_simp_tac(simpset() addsimps(chain_in::lub_Dinf::prems)) 1);
qed "lam_Dinf_cont";
val prems = goalw Limit.thy [rho_proj_def] (* rho_projpair *)
@@ -2433,7 +2433,7 @@
"[| !!n. n:nat ==> emb(DD`n,E,r(n)); \
\ !!m n. [|m le n; m:nat; n:nat|] ==> r(n) O eps(DD,ee,m,n) = r(m) |] ==> \
\ commute(DD,ee,E,r)";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
brr prems 1;
qed "commuteI";
@@ -2459,7 +2459,7 @@
by (rtac fun_extension 6); (* Next, clean up and instantiate unknowns *)
brr(comp_fun::rho_emb_fun::eps_fun::Dinf_prod::apply_type::prems) 1;
by (asm_simp_tac
- (!simpset addsimps(rho_emb_apply2::(eps_fun RS apply_type)::prems)) 1);
+ (simpset() addsimps(rho_emb_apply2::(eps_fun RS apply_type)::prems)) 1);
by (rtac (comp_fun_apply RS subst) 1);
by (rtac (eps_split_left RS subst) 4);
brr(eps_fun::refl::prems) 1;
@@ -2549,7 +2549,7 @@
brr(embRp_rel::emb_rho_emb::emb_chain_cpo::cpo_Dinf::prems) 1;
by (rtac rel_cfI 1);
by (asm_simp_tac
- (!simpset addsimps(id_thm::lub_cf::rho_emb_chain::cpo_Dinf::prems)) 1);
+ (simpset() addsimps(id_thm::lub_cf::rho_emb_chain::cpo_Dinf::prems)) 1);
by (rtac rel_DinfI 1); (* Addtional assumptions *)
by (stac lub_Dinf 1);
brr(rho_emb_chain_apply1::prems) 1;
@@ -2649,7 +2649,7 @@
val lemma = result();
val lemma_assoc = prove_goal Limit.thy "a O b O c O d = a O (b O c) O d"
- (fn prems => [simp_tac (!simpset addsimps[comp_assoc]) 1]);
+ (fn prems => [simp_tac (simpset() addsimps[comp_assoc]) 1]);
fun elem n l = if n = 1 then hd l else elem(n-1)(tl l);
@@ -2663,16 +2663,16 @@
\ (E,G, \
\ lub(cf(E,G), lam n:nat. f(n) O Rp(DD`n,E,r(n))), \
\ lub(cf(G,E), lam n:nat. r(n) O Rp(DD`n,G,f(n))))";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (stac comp_lubs 3);
(* The following one line is 15 lines in HOL, and includes existentials. *)
brr(cf_cont::islub_in::cpo_lub::cpo_cf::theta_chain::theta_proj_chain::prems) 1;
-by (simp_tac (!simpset addsimps[comp_assoc]) 1);
-by (simp_tac (!simpset addsimps[(tl prems) MRS lemma]) 1);
+by (simp_tac (simpset() addsimps[comp_assoc]) 1);
+by (simp_tac (simpset() addsimps[(tl prems) MRS lemma]) 1);
by (stac comp_lubs 2);
brr(cf_cont::islub_in::cpo_lub::cpo_cf::theta_chain::theta_proj_chain::prems) 1;
-by (simp_tac (!simpset addsimps[comp_assoc]) 1);
-by (simp_tac (!simpset addsimps[
+by (simp_tac (simpset() addsimps[comp_assoc]) 1);
+by (simp_tac (simpset() addsimps[
[elem 3 prems,elem 2 prems,elem 4 prems,elem 6 prems, elem 5 prems]
MRS lemma]) 1);
by (rtac dominate_islub 1);
@@ -2721,7 +2721,7 @@
by (stac beta 5);
by (rtac lam_type 1);
by (stac beta 1);
-by (ALLGOALS(asm_simp_tac (!simpset addsimps prems)));
+by (ALLGOALS(asm_simp_tac (simpset() addsimps prems)));
brr(lam_type::comp_pres_cont::Rp_cont::emb_cont::emb_r::emb_f::
emb_chain_cpo::prems) 1;
val lemma = result();
@@ -2742,7 +2742,7 @@
"[| commute(DD,ee,E,r); commute(DD,ee,G,f); \
\ emb_chain(DD,ee); cpo(E); cpo(G); cpo(DD`x); x:nat |] ==> \
\ suffix(lam n:nat. (f(n) O Rp(DD`n,E,r(n))) O r(x),x) = (lam n:nat. f(x))";
-by (simp_tac (!simpset addsimps prems) 1);
+by (simp_tac (simpset() addsimps prems) 1);
by (rtac fun_extension 1);
brr(lam_type::comp_fun::cont_fun::Rp_cont::emb_cont::emb_r::emb_f::
add_type::emb_chain_cpo::prems) 1;
@@ -2759,7 +2759,7 @@
val mediatingI = prove_goalw Limit.thy [mediating_def]
"[|emb(E,G,t); !!n. n:nat ==> f(n) = t O r(n) |]==>mediating(E,G,r,f,t)"
- (fn prems => [safe_tac (!claset),trr prems 1]);
+ (fn prems => [safe_tac (claset()),trr prems 1]);
val mediating_emb = prove_goalw Limit.thy [mediating_def]
"!!z. mediating(E,G,r,f,t) ==> emb(E,G,t)"
@@ -2797,7 +2797,7 @@
by (rtac (hd(tl prems) RS subst) 2);
by (res_inst_tac[("b","t")](lub_const RS subst) 2);
by (stac comp_lubs 4);
-by (simp_tac (!simpset addsimps(comp_assoc::(hd prems RS mediating_eq)::prems)) 9);
+by (simp_tac (simpset() addsimps(comp_assoc::(hd prems RS mediating_eq)::prems)) 9);
brr(cont_fun::emb_cont::mediating_emb::cont_cf::cpo_cf::chain_const::
commute_chain::emb_chain_cpo::prems) 1;
qed "lub_universal_unique";
@@ -2816,7 +2816,7 @@
\ (ALL t. mediating(Dinf(DD,ee),G,rho_emb(DD,ee),f,t) --> \
\ t = lub(cf(Dinf(DD,ee),G), \
\ lam n:nat. f(n) O Rp(DD`n,Dinf(DD,ee),rho_emb(DD,ee,n))))";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
brr(lub_universal_mediating::rho_emb_commute::rho_emb_lub::cpo_Dinf::prems) 1;
brr(lub_universal_unique::rho_emb_commute::rho_emb_lub::cpo_Dinf::prems) 1;
qed "Dinf_universal";
--- a/src/ZF/ex/ListN.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/ListN.ML Mon Nov 03 12:24:13 1997 +0100
@@ -20,13 +20,13 @@
goal ListN.thy "<n,l> : listn(A) <-> l:list(A) & length(l)=n";
by (rtac iffI 1);
by (etac listn.induct 1);
-by (safe_tac (!claset addSIs (list_typechecks @
+by (safe_tac (claset() addSIs (list_typechecks @
[length_Nil, length_Cons, list_into_listn])));
qed "listn_iff";
goal ListN.thy "listn(A)``{n} = {l:list(A). length(l)=n}";
by (rtac equality_iffI 1);
-by (simp_tac (!simpset addsimps [listn_iff,separation,image_singleton_iff]) 1);
+by (simp_tac (simpset() addsimps [listn_iff,separation,image_singleton_iff]) 1);
qed "listn_image_eq";
goalw ListN.thy listn.defs "!!A B. A<=B ==> listn(A) <= listn(B)";
@@ -39,7 +39,7 @@
"!!n l. [| <n,l> : listn(A); <n',l'> : listn(A) |] ==> \
\ <n#+n', l@l'> : listn(A)";
by (etac listn.induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps listn.intrs)));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps listn.intrs)));
qed "listn_append";
val Nil_listn_case = listn.mk_cases list.con_defs "<i,Nil> : listn(A)"
--- a/src/ZF/ex/Mutil.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Mutil.ML Mon Nov 03 12:24:13 1997 +0100
@@ -23,22 +23,22 @@
bind_thm("Finite_evnodd", evnodd_subset RS subset_imp_lepoll RS lepoll_Finite);
goalw thy [evnodd_def] "evnodd(A Un B, b) = evnodd(A,b) Un evnodd(B,b)";
-by (simp_tac (!simpset addsimps [Collect_Un]) 1);
+by (simp_tac (simpset() addsimps [Collect_Un]) 1);
qed "evnodd_Un";
goalw thy [evnodd_def] "evnodd(A - B, b) = evnodd(A,b) - evnodd(B,b)";
-by (simp_tac (!simpset addsimps [Collect_Diff]) 1);
+by (simp_tac (simpset() addsimps [Collect_Diff]) 1);
qed "evnodd_Diff";
goalw thy [evnodd_def]
"evnodd(cons(<i,j>,C), b) = \
\ if((i#+j) mod 2 = b, cons(<i,j>, evnodd(C,b)), evnodd(C,b))";
-by (asm_simp_tac (!simpset addsimps [evnodd_def, Collect_cons]
+by (asm_simp_tac (simpset() addsimps [evnodd_def, Collect_cons]
setloop split_tac [expand_if]) 1);
qed "evnodd_cons";
goalw thy [evnodd_def] "evnodd(0, b) = 0";
-by (simp_tac (!simpset addsimps [evnodd_def]) 1);
+by (simp_tac (simpset() addsimps [evnodd_def]) 1);
qed "evnodd_0";
Addsimps [evnodd_cons, evnodd_0];
@@ -46,7 +46,7 @@
(*** Dominoes ***)
goal thy "!!d. d:domino ==> Finite(d)";
-by (blast_tac (!claset addSIs [Finite_cons, Finite_0] addEs [domino.elim]) 1);
+by (blast_tac (claset() addSIs [Finite_cons, Finite_0] addEs [domino.elim]) 1);
qed "domino_Finite";
goal thy "!!d. [| d:domino; b<2 |] ==> EX i' j'. evnodd(d,b) = {<i',j'>}";
@@ -55,9 +55,9 @@
by (res_inst_tac [("k1", "i#+j")] (mod2_cases RS disjE) 1);
by (REPEAT_FIRST (ares_tac [add_type]));
(*Four similar cases: case (i#+j) mod 2 = b, 2#-b, ...*)
-by (REPEAT (asm_simp_tac (!simpset addsimps [mod_succ, succ_neq_self]
+by (REPEAT (asm_simp_tac (simpset() addsimps [mod_succ, succ_neq_self]
setloop split_tac [expand_if]) 1
- THEN blast_tac (!claset addDs [ltD]) 1));
+ THEN blast_tac (claset() addDs [ltD]) 1));
qed "domino_singleton";
@@ -68,51 +68,51 @@
goal thy "!!t. t: tiling(A) ==> \
\ u: tiling(A) --> t Int u = 0 --> t Un u : tiling(A)";
by (etac tiling.induct 1);
-by (simp_tac (!simpset addsimps tiling.intrs) 1);
-by (asm_full_simp_tac (!simpset addsimps [Un_assoc,
+by (simp_tac (simpset() addsimps tiling.intrs) 1);
+by (asm_full_simp_tac (simpset() addsimps [Un_assoc,
subset_empty_iff RS iff_sym]) 1);
-by (blast_tac (!claset addIs tiling.intrs) 1);
+by (blast_tac (claset() addIs tiling.intrs) 1);
qed_spec_mp "tiling_UnI";
goal thy "!!t. t:tiling(domino) ==> Finite(t)";
by (eresolve_tac [tiling.induct] 1);
by (resolve_tac [Finite_0] 1);
-by (blast_tac (!claset addSIs [Finite_Un] addIs [domino_Finite]) 1);
+by (blast_tac (claset() addSIs [Finite_Un] addIs [domino_Finite]) 1);
qed "tiling_domino_Finite";
goal thy "!!t. t: tiling(domino) ==> |evnodd(t,0)| = |evnodd(t,1)|";
by (eresolve_tac [tiling.induct] 1);
-by (simp_tac (!simpset addsimps [evnodd_def]) 1);
+by (simp_tac (simpset() addsimps [evnodd_def]) 1);
by (res_inst_tac [("b1","0")] (domino_singleton RS exE) 1);
by (Simp_tac 2 THEN assume_tac 1);
by (res_inst_tac [("b1","1")] (domino_singleton RS exE) 1);
by (Simp_tac 2 THEN assume_tac 1);
by (Step_tac 1);
by (subgoal_tac "ALL p b. p:evnodd(a,b) --> p~:evnodd(ta,b)" 1);
-by (asm_simp_tac (!simpset addsimps [evnodd_Un, Un_cons, tiling_domino_Finite,
+by (asm_simp_tac (simpset() addsimps [evnodd_Un, Un_cons, tiling_domino_Finite,
evnodd_subset RS subset_Finite,
Finite_imp_cardinal_cons]) 1);
-by (blast_tac (!claset addSDs [evnodd_subset RS subsetD] addEs [equalityE]) 1);
+by (blast_tac (claset() addSDs [evnodd_subset RS subsetD] addEs [equalityE]) 1);
qed "tiling_domino_0_1";
goal thy "!!i n. [| i: nat; n: nat |] ==> {i} * (n #+ n) : tiling(domino)";
by (nat_ind_tac "n" [] 1);
-by (simp_tac (!simpset addsimps tiling.intrs) 1);
-by (asm_simp_tac (!simpset addsimps [Un_assoc RS sym, Sigma_succ2]) 1);
+by (simp_tac (simpset() addsimps tiling.intrs) 1);
+by (asm_simp_tac (simpset() addsimps [Un_assoc RS sym, Sigma_succ2]) 1);
by (resolve_tac tiling.intrs 1);
by (assume_tac 2);
by (subgoal_tac (*seems the easiest way of turning one to the other*)
"{i}*{succ(n1#+n1)} Un {i}*{n1#+n1} = {<i,n1#+n1>, <i,succ(n1#+n1)>}" 1);
by (Blast_tac 2);
-by (asm_simp_tac (!simpset addsimps [domino.horiz]) 1);
-by (blast_tac (!claset addEs [mem_irrefl, mem_asym]) 1);
+by (asm_simp_tac (simpset() addsimps [domino.horiz]) 1);
+by (blast_tac (claset() addEs [mem_irrefl, mem_asym]) 1);
qed "dominoes_tile_row";
goal thy "!!m n. [| m: nat; n: nat |] ==> m * (n #+ n) : tiling(domino)";
by (nat_ind_tac "m" [] 1);
-by (simp_tac (!simpset addsimps tiling.intrs) 1);
-by (asm_simp_tac (!simpset addsimps [Sigma_succ1]) 1);
-by (blast_tac (!claset addIs [tiling_UnI, dominoes_tile_row]
+by (simp_tac (simpset() addsimps tiling.intrs) 1);
+by (asm_simp_tac (simpset() addsimps [Sigma_succ1]) 1);
+by (blast_tac (claset() addIs [tiling_UnI, dominoes_tile_row]
addEs [mem_irrefl]) 1);
qed "dominoes_tile_matrix";
@@ -124,23 +124,23 @@
by (resolve_tac [notI] 1);
by (dresolve_tac [tiling_domino_0_1] 1);
by (subgoal_tac "|evnodd(t',0)| < |evnodd(t',1)|" 1);
-by (asm_full_simp_tac (!simpset addsimps [lt_not_refl]) 1);
+by (asm_full_simp_tac (simpset() addsimps [lt_not_refl]) 1);
by (subgoal_tac "t : tiling(domino)" 1);
(*Requires a small simpset that won't move the succ applications*)
by (asm_simp_tac (ZF_ss addsimps [nat_succI, add_type,
dominoes_tile_matrix]) 2);
by (subgoal_tac "(m#+m)#+(n#+n) = (m#+n)#+(m#+n)" 1);
-by (asm_simp_tac (!simpset addsimps add_ac) 2);
+by (asm_simp_tac (simpset() addsimps add_ac) 2);
by (asm_full_simp_tac
- (!simpset addsimps [evnodd_Diff, mod2_add_self,
+ (simpset() addsimps [evnodd_Diff, mod2_add_self,
mod2_succ_succ, tiling_domino_0_1 RS sym]) 1);
by (resolve_tac [lt_trans] 1);
by (REPEAT
(rtac Finite_imp_cardinal_Diff 1
THEN
- asm_simp_tac (!simpset addsimps [tiling_domino_Finite, Finite_evnodd,
+ asm_simp_tac (simpset() addsimps [tiling_domino_Finite, Finite_evnodd,
Finite_Diff]) 1
THEN
- asm_simp_tac (!simpset addsimps [evnodd_iff, nat_0_le RS ltD,
+ asm_simp_tac (simpset() addsimps [evnodd_iff, nat_0_le RS ltD,
mod2_add_self]) 1));
qed "mutil_not_tiling";
--- a/src/ZF/ex/Ntree.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Ntree.ML Mon Nov 03 12:24:13 1997 +0100
@@ -15,7 +15,7 @@
goal Ntree.thy "ntree(A) = A * (UN n: nat. n -> ntree(A))";
let open ntree; val rew = rewrite_rule con_defs in
-by (fast_tac (!claset addSIs (map rew intrs) addEs [rew elim]) 1)
+by (fast_tac (claset() addSIs (map rew intrs) addEs [rew elim]) 1)
end;
qed "ntree_unfold";
@@ -28,8 +28,8 @@
by (rtac (major RS ntree.induct) 1);
by (etac UN_E 1);
by (REPEAT_SOME (ares_tac prems));
-by (fast_tac (!claset addEs [fun_weaken_type]) 1);
-by (fast_tac (!claset addDs [apply_type]) 1);
+by (fast_tac (claset() addEs [fun_weaken_type]) 1);
+by (fast_tac (claset() addDs [apply_type]) 1);
qed "ntree_induct";
(*Induction on ntree(A) to prove an equation*)
@@ -43,7 +43,7 @@
by (cut_facts_tac prems 1);
by (rtac fun_extension 1);
by (REPEAT_SOME (ares_tac [comp_fun]));
-by (asm_simp_tac (!simpset addsimps [comp_fun_apply]) 1);
+by (asm_simp_tac (simpset() addsimps [comp_fun_apply]) 1);
qed "ntree_induct_eqn";
(** Lemmas to justify using "Ntree" in other recursive type definitions **)
@@ -58,7 +58,7 @@
goalw Ntree.thy (ntree.defs@ntree.con_defs) "ntree(univ(A)) <= univ(A)";
by (rtac lfp_lowerbound 1);
by (rtac (A_subset_univ RS univ_mono) 2);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (REPEAT (ares_tac [Pair_in_univ, nat_fun_univ RS subsetD] 1));
qed "ntree_univ";
@@ -69,7 +69,7 @@
goal Ntree.thy "maptree(A) = A * (maptree(A) -||> maptree(A))";
let open maptree; val rew = rewrite_rule con_defs in
-by (fast_tac (!claset addSIs (map rew intrs) addEs [rew elim]) 1)
+by (fast_tac (claset() addSIs (map rew intrs) addEs [rew elim]) 1)
end;
qed "maptree_unfold";
@@ -93,7 +93,7 @@
goal Ntree.thy "maptree2(A,B) = A * (B -||> maptree2(A,B))";
let open maptree2; val rew = rewrite_rule con_defs in
-by (fast_tac (!claset addSIs (map rew intrs) addEs [rew elim]) 1)
+by (fast_tac (claset() addSIs (map rew intrs) addEs [rew elim]) 1)
end;
qed "maptree2_unfold";
--- a/src/ZF/ex/Primes.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Primes.ML Mon Nov 03 12:24:13 1997 +0100
@@ -23,24 +23,24 @@
goalw thy [dvd_def] "!!m. m:nat ==> m dvd 0";
-by (fast_tac (!claset addIs [nat_0I, mult_0_right RS sym]) 1);
+by (fast_tac (claset() addIs [nat_0I, mult_0_right RS sym]) 1);
qed "dvd_0_right";
goalw thy [dvd_def] "!!m. 0 dvd m ==> m = 0";
-by (fast_tac (!claset addss (!simpset)) 1);
+by (fast_tac (claset() addss (simpset())) 1);
qed "dvd_0_left";
goalw thy [dvd_def] "!!m. m:nat ==> m dvd m";
-by (fast_tac (!claset addIs [nat_1I, mult_1_right RS sym]) 1);
+by (fast_tac (claset() addIs [nat_1I, mult_1_right RS sym]) 1);
qed "dvd_refl";
goalw thy [dvd_def] "!!m n p. [| m dvd n; n dvd p |] ==> m dvd p";
-by (fast_tac (!claset addIs [mult_assoc, mult_type] ) 1);
+by (fast_tac (claset() addIs [mult_assoc, mult_type] ) 1);
qed "dvd_trans";
goalw thy [dvd_def] "!!m n. [| m dvd n; n dvd m |] ==> m=n";
-by (fast_tac (!claset addDs [mult_eq_self_implies_10]
- addss (!simpset addsimps [mult_assoc, mult_eq_1_iff])) 1);
+by (fast_tac (claset() addDs [mult_eq_self_implies_10]
+ addss (simpset() addsimps [mult_assoc, mult_eq_1_iff])) 1);
qed "dvd_anti_sym";
@@ -58,29 +58,29 @@
goalw thy [egcd_def]
"!!m. [| 0<n; m:nat; n:nat |] ==> egcd(m,n) = egcd(n, m mod n)";
by (res_inst_tac [("P", "%z. ?left(z) = ?right")] (transrec RS ssubst) 1);
-by (asm_simp_tac (!simpset addsimps [ltD RS mem_imp_not_eq RS not_sym,
+by (asm_simp_tac (simpset() addsimps [ltD RS mem_imp_not_eq RS not_sym,
mod_less_divisor RS ltD]) 1);
qed "egcd_lt_0";
goal thy "!!m. m:nat ==> egcd(m,0) dvd m";
-by (asm_simp_tac (!simpset addsimps [egcd_0,dvd_refl]) 1);
+by (asm_simp_tac (simpset() addsimps [egcd_0,dvd_refl]) 1);
qed "egcd_0_dvd_m";
goal thy "!!m. m:nat ==> egcd(m,0) dvd 0";
-by (asm_simp_tac (!simpset addsimps [egcd_0,dvd_0_right]) 1);
+by (asm_simp_tac (simpset() addsimps [egcd_0,dvd_0_right]) 1);
qed "egcd_0_dvd_0";
goalw thy [dvd_def] "!!k. [| k dvd a; k dvd b |] ==> k dvd (a #+ b)";
-by (fast_tac (!claset addIs [add_mult_distrib_left RS sym, add_type]) 1);
+by (fast_tac (claset() addIs [add_mult_distrib_left RS sym, add_type]) 1);
qed "dvd_add";
goalw thy [dvd_def] "!!k. [| k dvd a; q:nat |] ==> k dvd (q #* a)";
-by (fast_tac (!claset addIs [mult_left_commute, mult_type]) 1);
+by (fast_tac (claset() addIs [mult_left_commute, mult_type]) 1);
qed "dvd_mult";
goal thy "!!k. [| k dvd b; k dvd (a mod b); 0 < b; a:nat |] ==> k dvd a";
by (deepen_tac
- (!claset addIs [mod_div_equality RS subst]
+ (claset() addIs [mod_div_equality RS subst]
addDs [dvdD]
addSIs [dvd_add, dvd_mult, mult_type,mod_type,div_type]) 0 1);
qed "gcd_ind";
@@ -93,12 +93,12 @@
by (rtac ballI 1);
by (excluded_middle_tac "x=0" 1);
(* case x = 0 *)
-by (asm_simp_tac (!simpset addsimps [egcd_0]) 2);
+by (asm_simp_tac (simpset() addsimps [egcd_0]) 2);
(* case x > 0 *)
-by (asm_simp_tac (!simpset addsimps [egcd_lt_0, nat_into_Ord RS Ord_0_lt]) 1);
+by (asm_simp_tac (simpset() addsimps [egcd_lt_0, nat_into_Ord RS Ord_0_lt]) 1);
by (eres_inst_tac [("x","a mod x")] ballE 1);
by (Asm_simp_tac 1);
-by (asm_full_simp_tac (!simpset addsimps [mod_less_divisor RS ltD,
+by (asm_full_simp_tac (simpset() addsimps [mod_less_divisor RS ltD,
nat_into_Ord RS Ord_0_lt]) 1);
qed "egcd_type";
@@ -111,28 +111,28 @@
by (rtac ballI 1);
by (excluded_middle_tac "x=0" 1);
(* case x = 0 *)
-by (asm_simp_tac (!simpset addsimps [egcd_0,dvd_refl,dvd_0_right]) 2);
+by (asm_simp_tac (simpset() addsimps [egcd_0,dvd_refl,dvd_0_right]) 2);
(* case x > 0 *)
-by (asm_simp_tac (!simpset addsimps [egcd_lt_0, nat_into_Ord RS Ord_0_lt]) 1);
+by (asm_simp_tac (simpset() addsimps [egcd_lt_0, nat_into_Ord RS Ord_0_lt]) 1);
by (eres_inst_tac [("x","a mod x")] ballE 1);
by (Asm_simp_tac 1);
-by (asm_full_simp_tac (!simpset addsimps [mod_less_divisor RS ltD,
+by (asm_full_simp_tac (simpset() addsimps [mod_less_divisor RS ltD,
nat_into_Ord RS Ord_0_lt]) 2);
-by (best_tac (!claset addIs [gcd_ind, nat_into_Ord RS Ord_0_lt]) 1);
+by (best_tac (claset() addIs [gcd_ind, nat_into_Ord RS Ord_0_lt]) 1);
qed "egcd_prop1";
(* if f divides a and b then f divides egcd(a,b) *)
goalw thy [dvd_def] "!!a. [| f dvd a; f dvd b; 0<b |] ==> f dvd (a mod b)";
-by (safe_tac (!claset addSIs [mult_type, mod_type]));
+by (safe_tac (claset() addSIs [mult_type, mod_type]));
ren "m n" 1;
by (rtac (zero_lt_mult_iff RS iffD1 RS conjE) 1);
by (REPEAT_SOME assume_tac);
by (res_inst_tac
[("x", "(((m div n)#*n #+ m mod n) #- ((f#*m) div (f#*n)) #* n)")]
bexI 1);
-by (asm_simp_tac (!simpset addsimps [diff_mult_distrib2, div_cancel,
+by (asm_simp_tac (simpset() addsimps [diff_mult_distrib2, div_cancel,
mult_mod_distrib, add_mult_distrib_left,
diff_add_inverse]) 1);
by (Asm_simp_tac 1);
@@ -147,29 +147,29 @@
by (rtac allI 1);
by (excluded_middle_tac "x=0" 1);
(* case x = 0 *)
-by (asm_simp_tac (!simpset addsimps [egcd_0,dvd_refl,dvd_0_right,
+by (asm_simp_tac (simpset() addsimps [egcd_0,dvd_refl,dvd_0_right,
dvd_imp_nat2]) 2);
(* case x > 0 *)
-by (safe_tac (!claset));
-by (asm_simp_tac (!simpset addsimps [egcd_lt_0, nat_into_Ord RS Ord_0_lt,
+by (safe_tac (claset()));
+by (asm_simp_tac (simpset() addsimps [egcd_lt_0, nat_into_Ord RS Ord_0_lt,
dvd_imp_nat2]) 1);
by (eres_inst_tac [("x","a mod x")] ballE 1);
by (asm_full_simp_tac
- (!simpset addsimps [mod_less_divisor RS ltD, dvd_imp_nat2,
+ (simpset() addsimps [mod_less_divisor RS ltD, dvd_imp_nat2,
nat_into_Ord RS Ord_0_lt, egcd_lt_0]) 2);
-by (fast_tac (!claset addSIs [dvd_mod, nat_into_Ord RS Ord_0_lt]) 1);
+by (fast_tac (claset() addSIs [dvd_mod, nat_into_Ord RS Ord_0_lt]) 1);
qed "egcd_prop2";
(* GCD PROOF : GCD exists and egcd fits the definition *)
goalw thy [gcd_def] "!!b. [| a: nat; b:nat |] ==> gcd(egcd(a,b), a, b)";
-by (asm_simp_tac (!simpset addsimps [egcd_prop1]) 1);
-by (fast_tac (!claset addIs [egcd_prop2 RS spec RS mp, dvd_imp_nat1]) 1);
+by (asm_simp_tac (simpset() addsimps [egcd_prop1]) 1);
+by (fast_tac (claset() addIs [egcd_prop2 RS spec RS mp, dvd_imp_nat1]) 1);
qed "gcd";
(* GCD is unique *)
goalw thy [gcd_def] "!!a. gcd(m,a,b) & gcd(n,a,b) --> m=n";
-by (fast_tac (!claset addIs [dvd_anti_sym]) 1);
+by (fast_tac (claset() addIs [dvd_anti_sym]) 1);
qed "gcd_unique";
--- a/src/ZF/ex/Primrec.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Primrec.ML Mon Nov 03 12:24:13 1997 +0100
@@ -22,7 +22,7 @@
(** Useful special cases of evaluation ***)
-simpset := !simpset setSolver (type_auto_tac pr_typechecks);
+simpset_ref() := simpset() setSolver (type_auto_tac pr_typechecks);
goalw Primrec.thy [SC_def]
"!!x l. [| x:nat; l: list(nat) |] ==> SC ` (Cons(x,l)) = succ(x)";
@@ -61,7 +61,7 @@
(* c: primrec ==> c: list(nat) -> nat *)
val primrec_into_fun = primrec.dom_subset RS subsetD;
-simpset := !simpset setSolver (type_auto_tac ([primrec_into_fun] @
+simpset_ref() := simpset() setSolver (type_auto_tac ([primrec_into_fun] @
pr_typechecks @ primrec.intrs));
goalw Primrec.thy [ACK_def] "!!i. i:nat ==> ACK(i): primrec";
@@ -87,12 +87,12 @@
(*PROPERTY A 1*)
goalw Primrec.thy [ACK_def] "!!j. j:nat ==> ack(0,j) = succ(j)";
-by (asm_simp_tac (!simpset addsimps [SC]) 1);
+by (asm_simp_tac (simpset() addsimps [SC]) 1);
qed "ack_0";
(*PROPERTY A 2*)
goalw Primrec.thy [ACK_def] "ack(succ(i), 0) = ack(i,1)";
-by (asm_simp_tac (!simpset addsimps [CONST,PREC_0]) 1);
+by (asm_simp_tac (simpset() addsimps [CONST,PREC_0]) 1);
qed "ack_succ_0";
(*PROPERTY A 3*)
@@ -101,7 +101,7 @@
goalw Primrec.thy [ACK_def]
"!!i j. [| i:nat; j:nat |] ==> \
\ ack(succ(i), succ(j)) = ack(i, ack(succ(i), j))";
-by (asm_simp_tac (!simpset addsimps [CONST,PREC_succ,COMP_1,PROJ_0]) 1);
+by (asm_simp_tac (simpset() addsimps [CONST,PREC_succ,COMP_1,PROJ_0]) 1);
qed "ack_succ_succ";
Addsimps [ack_0, ack_succ_0, ack_succ_succ, ack_type, nat_into_Ord];
@@ -122,7 +122,7 @@
(*PROPERTY A 5-, the single-step lemma*)
goal Primrec.thy "!!i j. [| i:nat; j:nat |] ==> ack(i,j) < ack(i, succ(j))";
by (etac nat_induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [lt_ack2])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [lt_ack2])));
qed "ack_lt_ack_succ2";
(*PROPERTY A 5, monotonicity for < *)
@@ -183,7 +183,7 @@
(*PROPERTY A 9*)
goal Primrec.thy "!!j. j:nat ==> ack(succ(1),j) = succ(succ(succ(j#+j)))";
by (etac nat_induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [ack_1, add_succ_right])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [ack_1, add_succ_right])));
qed "ack_2";
(*PROPERTY A 10*)
@@ -202,7 +202,7 @@
"!!i1 i2 j. [| i1:nat; i2:nat; j:nat |] ==> \
\ ack(i1,j) #+ ack(i2,j) < ack(succ(succ(succ(succ(i1#+i2)))), j)";
by (res_inst_tac [("j", "ack(succ(1), ack(i1 #+ i2, j))")] lt_trans 1);
-by (asm_simp_tac (!simpset addsimps [ack_2]) 1);
+by (asm_simp_tac (simpset() addsimps [ack_2]) 1);
by (rtac (ack_nest_bound RS lt_trans2) 2);
by (Asm_simp_tac 5);
by (rtac (add_le_mono RS leI RS leI) 1);
@@ -217,7 +217,7 @@
\ i#+j < ack(succ(succ(succ(succ(k)))), j)";
by (res_inst_tac [("j", "ack(k,j) #+ ack(0,j)")] lt_trans 1);
by (rtac (ack_add_bound RS lt_trans2) 2);
-by (asm_simp_tac (!simpset addsimps [add_0_right]) 5);
+by (asm_simp_tac (simpset() addsimps [add_0_right]) 5);
by (REPEAT (ares_tac ([add_lt_mono, lt_ack2] @ ack_typechecks) 1));
qed "ack_add_bound2";
@@ -228,32 +228,32 @@
goalw Primrec.thy [SC_def]
"!!l. l: list(nat) ==> SC ` l < ack(1, list_add(l))";
by (etac list.elim 1);
-by (asm_simp_tac (!simpset addsimps [succ_iff]) 1);
-by (asm_simp_tac (!simpset addsimps [ack_1, add_le_self]) 1);
+by (asm_simp_tac (simpset() addsimps [succ_iff]) 1);
+by (asm_simp_tac (simpset() addsimps [ack_1, add_le_self]) 1);
qed "SC_case";
(*PROPERTY A 4'? Extra lemma needed for CONST case, constant functions*)
goal Primrec.thy "!!j. [| i:nat; j:nat |] ==> i < ack(i,j)";
by (etac nat_induct 1);
-by (asm_simp_tac (!simpset addsimps [nat_0_le]) 1);
+by (asm_simp_tac (simpset() addsimps [nat_0_le]) 1);
by (etac ([succ_leI, ack_lt_ack_succ1] MRS lt_trans1) 1);
by (tc_tac []);
qed "lt_ack1";
goalw Primrec.thy [CONST_def]
"!!l. [| l: list(nat); k: nat |] ==> CONST(k) ` l < ack(k, list_add(l))";
-by (asm_simp_tac (!simpset addsimps [lt_ack1]) 1);
+by (asm_simp_tac (simpset() addsimps [lt_ack1]) 1);
qed "CONST_case";
goalw Primrec.thy [PROJ_def]
"!!l. l: list(nat) ==> ALL i:nat. PROJ(i) ` l < ack(0, list_add(l))";
by (Asm_simp_tac 1);
by (etac list.induct 1);
-by (asm_simp_tac (!simpset addsimps [nat_0_le]) 1);
+by (asm_simp_tac (simpset() addsimps [nat_0_le]) 1);
by (Asm_simp_tac 1);
by (rtac ballI 1);
by (eres_inst_tac [("n","x")] natE 1);
-by (asm_simp_tac (!simpset addsimps [add_le_self]) 1);
+by (asm_simp_tac (simpset() addsimps [add_le_self]) 1);
by (Asm_simp_tac 1);
by (etac (bspec RS lt_trans2) 1);
by (rtac (add_le_self2 RS succ_leI) 2);
@@ -271,9 +271,9 @@
\ list_add(map(%f. f ` l, fs)) < ack(k, list_add(l))";
by (etac list.induct 1);
by (DO_GOAL [res_inst_tac [("x","0")] bexI,
- asm_simp_tac (!simpset addsimps [lt_ack1, nat_0_le]),
+ asm_simp_tac (simpset() addsimps [lt_ack1, nat_0_le]),
resolve_tac nat_typechecks] 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (Asm_simp_tac 1);
by (rtac (ballI RS bexI) 1);
by (rtac (add_lt_mono RS lt_trans) 1);
@@ -310,7 +310,7 @@
\ l: list(nat) \
\ |] ==> PREC(f,g)`l #+ list_add(l) < ack(succ(kf#+kg), list_add(l))";
by (etac list.elim 1);
-by (asm_simp_tac (!simpset addsimps [[nat_le_refl, lt_ack2] MRS lt_trans]) 1);
+by (asm_simp_tac (simpset() addsimps [[nat_le_refl, lt_ack2] MRS lt_trans]) 1);
by (Asm_simp_tac 1);
by (etac ssubst 1); (*get rid of the needless assumption*)
by (eres_inst_tac [("n","a")] nat_induct 1);
@@ -325,7 +325,7 @@
by (etac bspec 2);
by (rtac (nat_le_refl RS add_le_mono) 1);
by (tc_tac []);
-by (asm_simp_tac (!simpset addsimps [add_le_self2]) 1);
+by (asm_simp_tac (simpset() addsimps [add_le_self2]) 1);
(*final part of the simplification*)
by (Asm_simp_tac 1);
by (rtac (add_le_self2 RS ack_le_mono1 RS lt_trans1) 1);
@@ -352,7 +352,7 @@
goal Primrec.thy
"!!f. f:primrec ==> EX k:nat. ALL l:list(nat). f`l < ack(k, list_add(l))";
by (etac primrec.induct 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (DEPTH_SOLVE
(ares_tac ([SC_case, CONST_case, PROJ_case, COMP_case, PREC_case,
bexI, ballI] @ nat_typechecks) 1));
@@ -365,6 +365,6 @@
by (rtac lt_irrefl 1);
by (dres_inst_tac [("x", "[x]")] bspec 1);
by (Asm_simp_tac 1);
-by (asm_full_simp_tac (!simpset addsimps [add_0_right]) 1);
+by (asm_full_simp_tac (simpset() addsimps [add_0_right]) 1);
qed "ack_not_primrec";
--- a/src/ZF/ex/PropLog.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/PropLog.ML Mon Nov 03 12:24:13 1997 +0100
@@ -41,17 +41,17 @@
(** The function is_true **)
goalw PropLog.thy [is_true_def] "is_true(Fls,t) <-> False";
-by (simp_tac (!simpset addsimps [one_not_0 RS not_sym]) 1);
+by (simp_tac (simpset() addsimps [one_not_0 RS not_sym]) 1);
qed "is_true_Fls";
goalw PropLog.thy [is_true_def] "is_true(#v,t) <-> v:t";
-by (simp_tac (!simpset addsimps [one_not_0 RS not_sym]
+by (simp_tac (simpset() addsimps [one_not_0 RS not_sym]
setloop (split_tac [expand_if])) 1);
qed "is_true_Var";
goalw PropLog.thy [is_true_def]
"is_true(p=>q,t) <-> (is_true(p,t)-->is_true(q,t))";
-by (simp_tac (!simpset setloop (split_tac [expand_if])) 1);
+by (simp_tac (simpset() setloop (split_tac [expand_if])) 1);
qed "is_true_Imp";
(** The function hyps **)
@@ -117,11 +117,11 @@
(*The deduction theorem*)
goal PropLog.thy "!!p q H. [| cons(p,H) |- q; p:prop |] ==> H |- p=>q";
by (etac thms.induct 1);
-by (fast_tac (!claset addIs [thms_I, thms.H RS weaken_right]) 1);
-by (fast_tac (!claset addIs [thms.K RS weaken_right]) 1);
-by (fast_tac (!claset addIs [thms.S RS weaken_right]) 1);
-by (fast_tac (!claset addIs [thms.DN RS weaken_right]) 1);
-by (fast_tac (!claset addIs [thms.S RS thms_MP RS thms_MP]) 1);
+by (fast_tac (claset() addIs [thms_I, thms.H RS weaken_right]) 1);
+by (fast_tac (claset() addIs [thms.K RS weaken_right]) 1);
+by (fast_tac (claset() addIs [thms.S RS weaken_right]) 1);
+by (fast_tac (claset() addIs [thms.DN RS weaken_right]) 1);
+by (fast_tac (claset() addIs [thms.S RS thms_MP RS thms_MP]) 1);
qed "deduction";
@@ -143,7 +143,7 @@
(*Soundness of the rules wrt truth-table semantics*)
goalw PropLog.thy [logcon_def] "!!H. H |- p ==> H |= p";
by (etac thms.induct 1);
-by (fast_tac (!claset addSDs [is_true_Imp RS iffD1 RS mp]) 5);
+by (fast_tac (claset() addSDs [is_true_Imp RS iffD1 RS mp]) 5);
by (ALLGOALS Asm_simp_tac);
qed "soundness";
@@ -173,10 +173,10 @@
"p: prop ==> hyps(p,t) |- if(is_true(p,t), p, p=>Fls)";
by (rtac (expand_if RS iffD2) 1);
by (rtac (major RS prop.induct) 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [thms_I, thms.H])));
-by (safe_tac (!claset addSEs [Fls_Imp RS weaken_left_Un1,
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [thms_I, thms.H])));
+by (safe_tac (claset() addSEs [Fls_Imp RS weaken_left_Un1,
Fls_Imp RS weaken_left_Un2]));
-by (ALLGOALS (fast_tac (!claset addIs [weaken_left_Un1, weaken_left_Un2,
+by (ALLGOALS (fast_tac (claset() addIs [weaken_left_Un1, weaken_left_Un2,
weaken_right, Imp_Fls])));
qed "hyps_thms_if";
@@ -216,8 +216,8 @@
"p: prop ==> hyps(p, t-{v}) <= cons(#v=>Fls, hyps(p,t)-{#v})";
by (rtac (major RS prop.induct) 1);
by (Simp_tac 1);
-by (asm_simp_tac (!simpset setloop (split_tac [expand_if])) 1);
-by (fast_tac (!claset addSEs prop.free_SEs) 1);
+by (asm_simp_tac (simpset() setloop (split_tac [expand_if])) 1);
+by (fast_tac (claset() addSEs prop.free_SEs) 1);
by (Asm_simp_tac 1);
by (Fast_tac 1);
qed "hyps_Diff";
@@ -228,8 +228,8 @@
"p: prop ==> hyps(p, cons(v,t)) <= cons(#v, hyps(p,t)-{#v=>Fls})";
by (rtac (major RS prop.induct) 1);
by (Simp_tac 1);
-by (asm_simp_tac (!simpset setloop (split_tac [expand_if])) 1);
-by (fast_tac (!claset addSEs prop.free_SEs) 1);
+by (asm_simp_tac (simpset() setloop (split_tac [expand_if])) 1);
+by (fast_tac (claset() addSEs prop.free_SEs) 1);
by (Asm_simp_tac 1);
by (Fast_tac 1);
qed "hyps_cons";
@@ -249,10 +249,10 @@
val [major] = goal PropLog.thy
"p: prop ==> hyps(p,t) : Fin(UN v:nat. {#v, #v=>Fls})";
by (rtac (major RS prop.induct) 1);
-by (asm_simp_tac (!simpset addsimps [UN_I]
+by (asm_simp_tac (simpset() addsimps [UN_I]
setloop (split_tac [expand_if])) 2);
by (ALLGOALS Asm_simp_tac);
-by (fast_tac (!claset addIs Fin.intrs) 1);
+by (fast_tac (claset() addIs Fin.intrs) 1);
qed "hyps_finite";
val Diff_weaken_left = subset_refl RSN (2, Diff_mono) RS weaken_left;
@@ -262,8 +262,8 @@
val [premp,sat] = goal PropLog.thy
"[| p: prop; 0 |= p |] ==> ALL t. hyps(p,t) - hyps(p,t0) |- p";
by (rtac (premp RS hyps_finite RS Fin_induct) 1);
-by (simp_tac (!simpset addsimps [premp, sat, logcon_thms_p, Diff_0]) 1);
-by (safe_tac (!claset));
+by (simp_tac (simpset() addsimps [premp, sat, logcon_thms_p, Diff_0]) 1);
+by (safe_tac (claset()));
(*Case hyps(p,t)-cons(#v,Y) |- p *)
by (rtac thms_excluded_middle_rule 1);
by (etac prop.Var_I 3);
@@ -296,16 +296,16 @@
goal PropLog.thy "!!H. H: Fin(prop) ==> ALL p:prop. H |= p --> H |- p";
by (etac Fin_induct 1);
-by (safe_tac (!claset addSIs [completeness_0]));
+by (safe_tac (claset() addSIs [completeness_0]));
by (rtac (weaken_left_cons RS thms_MP) 1);
-by (fast_tac (!claset addSIs (logcon_Imp::prop.intrs)) 1);
+by (fast_tac (claset() addSIs (logcon_Imp::prop.intrs)) 1);
by (fast_tac thms_cs 1);
qed "completeness_lemma";
val completeness = completeness_lemma RS bspec RS mp;
val [finite] = goal PropLog.thy "H: Fin(prop) ==> H |- p <-> H |= p & p:prop";
-by (fast_tac (!claset addSEs [soundness, finite RS completeness,
+by (fast_tac (claset() addSEs [soundness, finite RS completeness,
thms_in_pl]) 1);
qed "thms_iff";
--- a/src/ZF/ex/Ramsey.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Ramsey.ML Mon Nov 03 12:24:13 1997 +0100
@@ -48,12 +48,12 @@
goalw Ramsey.thy [Atleast_def]
"!!m A. Atleast(succ(m),A) ==> EX x:A. Atleast(m, A-{x})";
-by (fast_tac (!claset addEs [inj_is_fun RS apply_type, inj_succ_restrict]) 1);
+by (fast_tac (claset() addEs [inj_is_fun RS apply_type, inj_succ_restrict]) 1);
qed "Atleast_succD";
goalw Ramsey.thy [Atleast_def]
"!!n A. [| Atleast(n,A); A<=B |] ==> Atleast(n,B)";
-by (fast_tac (!claset addEs [inj_weaken_type]) 1);
+by (fast_tac (claset() addEs [inj_weaken_type]) 1);
qed "Atleast_superset";
goalw Ramsey.thy [Atleast_def,succ_def]
@@ -81,14 +81,14 @@
\ ALL n: nat. ALL A B. Atleast((m#+n) #- succ(0), A Un B) --> \
\ Atleast(m,A) | Atleast(n,B)";
by (nat_ind_tac "m" prems 1);
-by (fast_tac (!claset addSIs [Atleast0]) 1);
+by (fast_tac (claset() addSIs [Atleast0]) 1);
by (Asm_simp_tac 1);
by (rtac ballI 1);
by (rename_tac "n" 1); (*simplifier does NOT preserve bound names!*)
by (nat_ind_tac "n" [] 1);
-by (fast_tac (!claset addSIs [Atleast0]) 1);
-by (asm_simp_tac (!simpset addsimps [add_succ_right]) 1);
-by (safe_tac (!claset));
+by (fast_tac (claset() addSIs [Atleast0]) 1);
+by (asm_simp_tac (simpset() addsimps [add_succ_right]) 1);
+by (safe_tac (claset()));
by (etac (Atleast_succD RS bexE) 1);
by (etac UnE 1);
(**case x:B. Instantiate the 'ALL A B' induction hypothesis. **)
@@ -106,7 +106,7 @@
(*cases Atleast(succ(m1),A) and Atleast(succ(n1),B)*)
by (REPEAT (eresolve_tac [asm_rl, Atleast_Diff_succI, notE] 2));
(*proving the condition*)
-by (asm_simp_tac (!simpset addsimps [add_succ_right]) 1);
+by (asm_simp_tac (simpset() addsimps [add_succ_right]) 1);
by (etac Atleast_superset 1 THEN Fast_tac 1);
qed "pigeon2_lemma";
@@ -120,11 +120,11 @@
(** Base cases of induction; they now admit ANY Ramsey number **)
goalw Ramsey.thy [Ramsey_def] "Ramsey(n,0,j)";
-by (fast_tac (!claset addIs [Clique0,Atleast0]) 1);
+by (fast_tac (claset() addIs [Clique0,Atleast0]) 1);
qed "Ramsey0j";
goalw Ramsey.thy [Ramsey_def] "Ramsey(n,i,0)";
-by (fast_tac (!claset addIs [Indept0,Atleast0]) 1);
+by (fast_tac (claset() addIs [Indept0,Atleast0]) 1);
qed "Ramseyi0";
(** Lemmas for induction step **)
@@ -135,7 +135,7 @@
"[| Atleast(m #+ n, A); m: nat; n: nat |] ==> \
\ Atleast(succ(m), {x:A. ~P(x)}) | Atleast(n, {x:A. P(x)})";
by (rtac (nat_succI RS pigeon2) 1);
-by (simp_tac (!simpset addsimps prems) 3);
+by (simp_tac (simpset() addsimps prems) 3);
by (rtac Atleast_superset 3);
by (REPEAT (resolve_tac prems 1));
by (Fast_tac 1);
@@ -147,7 +147,7 @@
\ Atleast(j,I) |] ==> \
\ Indept(cons(a,I), V, E) & Atleast(succ(j), cons(a,I))";
by (cut_facts_tac prems 1);
-by (fast_tac (!claset addSEs [Atleast_succI]) 1); (*34 secs*)
+by (fast_tac (claset() addSEs [Atleast_succI]) 1); (*34 secs*)
qed "Indept_succ";
val prems = goalw Ramsey.thy [Symmetric_def,Clique_def]
@@ -155,7 +155,7 @@
\ Atleast(j,C) |] ==> \
\ Clique(cons(a,C), V, E) & Atleast(succ(j), cons(a,C))";
by (cut_facts_tac prems 1);
-by (fast_tac (!claset addSEs [Atleast_succI]) 1); (*41 secs*)
+by (fast_tac (claset() addSEs [Atleast_succI]) 1); (*41 secs*)
qed "Clique_succ";
(** Induction step **)
@@ -165,24 +165,24 @@
"[| Ramsey(succ(m), succ(i), j); Ramsey(n, i, succ(j)); \
\ m: nat; n: nat |] ==> \
\ Ramsey(succ(m#+n), succ(i), succ(j))";
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (etac (Atleast_succD RS bexE) 1);
by (eres_inst_tac [("P1","%z.<x,z>:E")] (Atleast_partition RS disjE) 1);
by (REPEAT (resolve_tac prems 1));
(*case m*)
by (rtac (ram1 RS spec RS spec RS mp RS disjE) 1);
by (Fast_tac 1);
-by (fast_tac (!claset addEs [Clique_superset]) 1); (*easy -- given a Clique*)
-by (safe_tac (!claset));
+by (fast_tac (claset() addEs [Clique_superset]) 1); (*easy -- given a Clique*)
+by (safe_tac (claset()));
by (eresolve_tac (swapify [exI]) 1); (*ignore main EX quantifier*)
by (REPEAT (ares_tac [Indept_succ] 1)); (*make a bigger Indept*)
(*case n*)
by (rtac (ram2 RS spec RS spec RS mp RS disjE) 1);
by (Fast_tac 1);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (rtac exI 1);
by (REPEAT (ares_tac [Clique_succ] 1)); (*make a bigger Clique*)
-by (fast_tac (!claset addEs [Indept_superset]) 1); (*easy -- given an Indept*)
+by (fast_tac (claset() addEs [Indept_superset]) 1); (*easy -- given an Indept*)
qed "Ramsey_step_lemma";
@@ -192,17 +192,17 @@
val prems = goal Ramsey.thy
"i: nat ==> ALL j: nat. EX n:nat. Ramsey(succ(n), i, j)";
by (nat_ind_tac "i" prems 1);
-by (fast_tac (!claset addSIs [Ramsey0j]) 1);
+by (fast_tac (claset() addSIs [Ramsey0j]) 1);
by (rtac ballI 1);
by (nat_ind_tac "j" [] 1);
-by (fast_tac (!claset addSIs [Ramseyi0]) 1);
-by (fast_tac (!claset addSDs [bspec]
+by (fast_tac (claset() addSIs [Ramseyi0]) 1);
+by (fast_tac (claset() addSDs [bspec]
addSIs [nat_succI,add_type,Ramsey_step_lemma]) 1);
qed "ramsey_lemma";
(*Final statement in a tidy form, without succ(...) *)
goal Ramsey.thy "!!i j. [| i: nat; j: nat |] ==> EX n:nat. Ramsey(n,i,j)";
-by (best_tac (!claset addDs [ramsey_lemma] addSIs [nat_succI]) 1);
+by (best_tac (claset() addDs [ramsey_lemma] addSIs [nat_succI]) 1);
qed "ramsey";
(*Compute Ramsey numbers according to proof above -- which, actually,
--- a/src/ZF/ex/Rmap.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Rmap.ML Mon Nov 03 12:24:13 1997 +0100
@@ -45,11 +45,11 @@
goal Rmap.thy "!!f. f: A->B ==> rmap(f): list(A)->list(B)";
by (asm_full_simp_tac
- (!simpset addsimps [Pi_iff, rmap_rel_type, rmap_functional, rmap_total]) 1);
+ (simpset() addsimps [Pi_iff, rmap_rel_type, rmap_functional, rmap_total]) 1);
qed "rmap_fun_type";
goalw Rmap.thy [apply_def] "rmap(f)`Nil = Nil";
-by (fast_tac (!claset addIs [the_equality]) 1);
+by (fast_tac (claset() addIs [the_equality]) 1);
qed "rmap_Nil";
goal Rmap.thy "!!f. [| f: A->B; x: A; xs: list(A) |] ==> \
--- a/src/ZF/ex/TF.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/TF.ML Mon Nov 03 12:24:13 1997 +0100
@@ -29,7 +29,7 @@
goal TF.thy "tree(A) Un forest(A) = tree_forest(A)";
by (safe_tac (subset_cs addSIs [equalityI, tree_subset_TF, forest_subset_TF]));
-by (fast_tac (!claset addSIs tree_forest.intrs addEs [tree_forest.elim]) 1);
+by (fast_tac (claset() addSIs tree_forest.intrs addEs [tree_forest.elim]) 1);
qed "TF_equals_Un";
(** NOT useful, but interesting... **)
@@ -38,7 +38,7 @@
"tree_forest(A) = (A*forest(A)) + ({0} + tree(A)*forest(A))";
let open tree_forest;
val rew = rewrite_rule (con_defs @ tl defs) in
-by (fast_tac (!claset addSIs (map rew intrs RL [PartD1]) addEs [rew elim]) 1)
+by (fast_tac (claset() addSIs (map rew intrs RL [PartD1]) addEs [rew elim]) 1)
end;
qed "tree_forest_unfold";
@@ -94,7 +94,7 @@
\ |] ==> d(t,f,r1,r2): C(Fcons(t,f)) \
\ |] ==> TF_rec(z,b,c,d) : C(z)";
by (rtac (major RS tree_forest.induct) 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps prems)));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps prems)));
qed "TF_rec_type";
(*Mutually recursive version*)
@@ -108,7 +108,7 @@
\ (ALL f: forest(A). TF_rec(f,b,c,d) : D(f))";
by (rewtac Ball_def);
by (rtac tree_forest.mutual_induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps prems)));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps prems)));
qed "tree_forest_rec_type";
@@ -202,7 +202,7 @@
[TconsI, FnilI, FconsI, treeI, forestI,
list_of_TF_type, TF_map_type, TF_size_type, TF_preorder_type];
-simpset := !simpset setSolver type_auto_tac (list_typechecks@TF_typechecks);
+simpset_ref() := simpset() setSolver type_auto_tac (list_typechecks@TF_typechecks);
(** theorems about list_of_TF and TF_of_list **)
@@ -251,7 +251,7 @@
goal TF.thy
"!!z A. z: tree_forest(A) ==> TF_size(z) = length(TF_preorder(z))";
by (etac tree_forest.induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [length_app])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [length_app])));
qed "TF_size_length";
(** theorems about TF_preorder **)
@@ -259,5 +259,5 @@
goal TF.thy "!!z A. z: tree_forest(A) ==> \
\ TF_preorder(TF_map(h,z)) = map(h, TF_preorder(z))";
by (etac tree_forest.induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [map_app_distrib])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [map_app_distrib])));
qed "TF_preorder_TF_map";
--- a/src/ZF/ex/Term.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/Term.ML Mon Nov 03 12:24:13 1997 +0100
@@ -11,7 +11,7 @@
goal Term.thy "term(A) = A * list(term(A))";
let open term; val rew = rewrite_rule con_defs in
-by (fast_tac (!claset addSIs (map rew intrs) addEs [rew elim]) 1)
+by (fast_tac (claset() addSIs (map rew intrs) addEs [rew elim]) 1)
end;
qed "term_unfold";
@@ -51,7 +51,7 @@
goalw Term.thy (term.defs@term.con_defs) "term(univ(A)) <= univ(A)";
by (rtac lfp_lowerbound 1);
by (rtac (A_subset_univ RS univ_mono) 2);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (REPEAT (ares_tac [Pair_in_univ, list_univ RS subsetD] 1));
qed "term_univ";
@@ -74,7 +74,7 @@
by (rtac impI 1);
by (forward_tac [rank_Cons1 RS lt_trans] 1);
by (dtac (rank_Cons2 RS lt_trans) 1);
-by (asm_simp_tac (!simpset addsimps [ordi, VsetI]) 1);
+by (asm_simp_tac (simpset() addsimps [ordi, VsetI]) 1);
qed "map_lemma";
(*Typing premise is necessary to invoke map_lemma*)
@@ -83,7 +83,7 @@
\ term_rec(Apply(a,ts), d) = d(a, ts, map (%z. term_rec(z,d), ts))";
by (rtac (term_rec_def RS def_Vrec RS trans) 1);
by (rewrite_goals_tac term.con_defs);
-by (simp_tac (!simpset addsimps [Ord_rank, rank_pair2, prem RS map_lemma]) 1);;
+by (simp_tac (simpset() addsimps [Ord_rank, rank_pair2, prem RS map_lemma]) 1);;
qed "term_rec";
(*Slightly odd typing condition on r in the second premise!*)
@@ -98,7 +98,7 @@
by (stac term_rec 1);
by (REPEAT (ares_tac prems 1));
by (etac list.induct 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [term_rec])));
+by (ALLGOALS (asm_simp_tac (simpset() addsimps [term_rec])));
by (etac CollectE 1);
by (REPEAT (ares_tac [list.Cons_I, UN_I] 1));
qed "term_rec_type";
@@ -170,7 +170,7 @@
reflect_type, preorder_type];
(*map_type2 and term_map_type2 instantiate variables*)
-simpset := !simpset
+simpset_ref() := simpset()
addsimps [term_rec, term_map, term_size, reflect, preorder]
setSolver type_auto_tac (list_typechecks@term_typechecks);
@@ -179,19 +179,19 @@
goal Term.thy "!!t A. t: term(A) ==> term_map(%u. u, t) = t";
by (etac term_induct_eqn 1);
-by (asm_simp_tac (!simpset addsimps [map_ident]) 1);
+by (asm_simp_tac (simpset() addsimps [map_ident]) 1);
qed "term_map_ident";
goal Term.thy
"!!t A. t: term(A) ==> term_map(f, term_map(g,t)) = term_map(%u. f(g(u)), t)";
by (etac term_induct_eqn 1);
-by (asm_simp_tac (!simpset addsimps [map_compose]) 1);
+by (asm_simp_tac (simpset() addsimps [map_compose]) 1);
qed "term_map_compose";
goal Term.thy
"!!t A. t: term(A) ==> term_map(f, reflect(t)) = reflect(term_map(f,t))";
by (etac term_induct_eqn 1);
-by (asm_simp_tac (!simpset addsimps [rev_map_distrib RS sym, map_compose]) 1);
+by (asm_simp_tac (simpset() addsimps [rev_map_distrib RS sym, map_compose]) 1);
qed "term_map_reflect";
@@ -200,18 +200,18 @@
goal Term.thy
"!!t A. t: term(A) ==> term_size(term_map(f,t)) = term_size(t)";
by (etac term_induct_eqn 1);
-by (asm_simp_tac (!simpset addsimps [map_compose]) 1);
+by (asm_simp_tac (simpset() addsimps [map_compose]) 1);
qed "term_size_term_map";
goal Term.thy "!!t A. t: term(A) ==> term_size(reflect(t)) = term_size(t)";
by (etac term_induct_eqn 1);
-by (asm_simp_tac (!simpset addsimps [rev_map_distrib RS sym, map_compose,
+by (asm_simp_tac (simpset() addsimps [rev_map_distrib RS sym, map_compose,
list_add_rev]) 1);
qed "term_size_reflect";
goal Term.thy "!!t A. t: term(A) ==> term_size(t) = length(preorder(t))";
by (etac term_induct_eqn 1);
-by (asm_simp_tac (!simpset addsimps [length_flat, map_compose]) 1);
+by (asm_simp_tac (simpset() addsimps [length_flat, map_compose]) 1);
qed "term_size_length";
@@ -219,7 +219,7 @@
goal Term.thy "!!t A. t: term(A) ==> reflect(reflect(t)) = t";
by (etac term_induct_eqn 1);
-by (asm_simp_tac (!simpset addsimps [rev_map_distrib, map_compose,
+by (asm_simp_tac (simpset() addsimps [rev_map_distrib, map_compose,
map_ident, rev_rev_ident]) 1);
qed "reflect_reflect_ident";
@@ -229,7 +229,7 @@
goal Term.thy
"!!t A. t: term(A) ==> preorder(term_map(f,t)) = map(f, preorder(t))";
by (etac term_induct_eqn 1);
-by (asm_simp_tac (!simpset addsimps [map_compose, map_flat]) 1);
+by (asm_simp_tac (simpset() addsimps [map_compose, map_flat]) 1);
qed "preorder_term_map";
(** preorder(reflect(t)) = rev(postorder(t)) **)
--- a/src/ZF/ex/misc.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/ex/misc.ML Mon Nov 03 12:24:13 1997 +0100
@@ -45,7 +45,7 @@
\ (ALL x:A. ALL y:A. H`(f`<x,y>) = g`<H`x,H`y>)}) --> \
\ J : hom(A,f,B,g) & K : hom(B,g,C,h) --> \
\ (K O J) : hom(A,f,C,h)";
-by (asm_simp_tac (!simpset setloop (K (safe_tac (!claset)))) 1);
+by (asm_simp_tac (simpset() setloop (K (safe_tac (claset())))) 1);
val comp_homs = result();
(*This version uses meta-level rewriting, safe_tac and asm_simp_tac*)
@@ -56,7 +56,7 @@
\ J : hom(A,f,B,g) & K : hom(B,g,C,h) --> \
\ (K O J) : hom(A,f,C,h)";
by (rewtac hom_def);
-by (safe_tac (!claset));
+by (safe_tac (claset()));
by (Asm_simp_tac 1);
by (Asm_simp_tac 1);
qed "comp_homs";
--- a/src/ZF/func.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/func.ML Mon Nov 03 12:24:13 1997 +0100
@@ -30,7 +30,7 @@
qed "fun_is_rel";
goal ZF.thy "!!f. [| f: Pi(A,B); a:A |] ==> EX! y. <a,y>: f";
-by (blast_tac (!claset addSDs [Pi_iff_old RS iffD1]) 1);
+by (blast_tac (claset() addSDs [Pi_iff_old RS iffD1]) 1);
qed "fun_unique_Pair";
val prems = goalw ZF.thy [Pi_def]
@@ -90,7 +90,7 @@
goal ZF.thy "!!f. [| f: Pi(A,B); c: f |] ==> EX x:A. c = <x,f`x>";
by (forward_tac [fun_is_rel] 1);
-by (blast_tac (!claset addDs [apply_equality]) 1);
+by (blast_tac (claset() addDs [apply_equality]) 1);
qed "Pi_memberD";
goal ZF.thy "!!f. [| f: Pi(A,B); a:A |] ==> <a,f`a>: f";
@@ -113,7 +113,7 @@
val [major] = goal ZF.thy
"f: Pi(A,B) ==> <a,b>: f <-> a:A & f`a = b";
by (cut_facts_tac [major RS fun_is_rel] 1);
-by (blast_tac (!claset addSIs [major RS apply_Pair,
+by (blast_tac (claset() addSIs [major RS apply_Pair,
major RSN (2,apply_equality)]) 1);
qed "apply_iff";
@@ -122,7 +122,7 @@
"[| f: Pi(A,C); !!x. x:A ==> f`x : B(x) |] ==> f : Pi(A,B)";
by (cut_facts_tac [pi_prem] 1);
by (asm_full_simp_tac (FOL_ss addsimps [Pi_iff]) 1);
-by (blast_tac (!claset addIs prems addSDs [pi_prem RS Pi_memberD]) 1);
+by (blast_tac (claset() addIs prems addSDs [pi_prem RS Pi_memberD]) 1);
qed "Pi_type";
@@ -165,7 +165,7 @@
val prems = goalw ZF.thy [lam_def, Pi_def, function_def]
"[| !!x. x:A ==> b(x): B(x) |] ==> (lam x:A. b(x)) : Pi(A,B)";
-by (blast_tac (!claset addIs prems) 1);
+by (blast_tac (claset() addIs prems) 1);
qed "lam_type";
goal ZF.thy "(lam x:A. b(x)) : A -> {b(x). x:A}";
@@ -255,7 +255,7 @@
goalw ZF.thy [restrict_def,lam_def]
"!!f A. [| f: Pi(C,B); A<=C |] ==> restrict(f,A) <= f";
-by (blast_tac (!claset addIs [apply_Pair]) 1);
+by (blast_tac (claset() addIs [apply_Pair]) 1);
qed "restrict_subset";
val prems = goalw ZF.thy [restrict_def]
@@ -327,9 +327,9 @@
goal ZF.thy "!!f. [| f: A->B; g: C->D; A Int C = 0 |] \
\ ==> (f Un g) : (A Un C) -> (B Un D)";
(*Prove the product and domain subgoals using distributive laws*)
-by (asm_full_simp_tac (!simpset addsimps [Pi_iff,extension]@Un_rls) 1);
+by (asm_full_simp_tac (simpset() addsimps [Pi_iff,extension]@Un_rls) 1);
by (rewtac function_def);
-by (Blast.depth_tac (!claset) 12 1); (*9 secs*)
+by (Blast.depth_tac (claset()) 12 1); (*9 secs*)
qed "fun_disjoint_Un";
goal ZF.thy
@@ -373,7 +373,7 @@
goal ZF.thy
"!!f A B. [| f: A->B; c~:A; b: B |] ==> cons(<c,b>,f) : cons(c,A) -> B";
-by (blast_tac (!claset addIs [fun_extend RS fun_weaken_type]) 1);
+by (blast_tac (claset() addIs [fun_extend RS fun_weaken_type]) 1);
qed "fun_extend3";
goal ZF.thy "!!f A B. [| f: A->B; a:A; c~:A |] ==> cons(<c,b>,f)`a = f`a";
@@ -395,17 +395,17 @@
goal ZF.thy
"!!c. c ~: A ==> cons(c,A) -> B = (UN f: A->B. UN b:B. {cons(<c,b>, f)})";
by (rtac equalityI 1);
-by (safe_tac (!claset addSEs [fun_extend3]));
+by (safe_tac (claset() addSEs [fun_extend3]));
(*Inclusion of left into right*)
by (subgoal_tac "restrict(x, A) : A -> B" 1);
-by (blast_tac (!claset addIs [restrict_type2]) 2);
+by (blast_tac (claset() addIs [restrict_type2]) 2);
by (rtac UN_I 1 THEN assume_tac 1);
by (rtac (apply_funtype RS UN_I) 1 THEN REPEAT (ares_tac [consI1] 1));
by (Simp_tac 1);
by (rtac fun_extension 1 THEN REPEAT (ares_tac [fun_extend] 1));
by (etac consE 1);
by (ALLGOALS
- (asm_simp_tac (!simpset addsimps [restrict, fun_extend_apply1,
+ (asm_simp_tac (simpset() addsimps [restrict, fun_extend_apply1,
fun_extend_apply2])));
qed "cons_fun_eq";
--- a/src/ZF/mono.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/mono.ML Mon Nov 03 12:24:13 1997 +0100
@@ -13,7 +13,7 @@
(*Not easy to express monotonicity in P, since any "bigger" predicate
would have to be single-valued*)
goal thy "!!A B. A<=B ==> Replace(A,P) <= Replace(B,P)";
-by (blast_tac (!claset addSEs [ReplaceE]) 1);
+by (blast_tac (claset() addSEs [ReplaceE]) 1);
qed "Replace_mono";
goal thy "!!A B. A<=B ==> {f(x). x:A} <= {f(x). x:B}";
@@ -31,7 +31,7 @@
val prems = goal thy
"[| A<=C; !!x. x:A ==> B(x)<=D(x) \
\ |] ==> (UN x:A. B(x)) <= (UN x:C. D(x))";
-by (blast_tac (!claset addIs (prems RL [subsetD])) 1);
+by (blast_tac (claset() addIs (prems RL [subsetD])) 1);
qed "UN_mono";
(*Intersection is ANTI-monotonic. There are TWO premises! *)
@@ -69,7 +69,7 @@
(*Note that B->A and C->A are typically disjoint!*)
goal thy "!!A B C. B<=C ==> A->B <= A->C";
-by (blast_tac (!claset addIs [lam_type] addEs [Pi_lamE]) 1);
+by (blast_tac (claset() addIs [lam_type] addEs [Pi_lamE]) 1);
qed "Pi_mono";
goalw thy [lam_def] "!!A B. A<=B ==> Lambda(A,c) <= Lambda(B,c)";
@@ -133,12 +133,12 @@
val [prem1,prem2] = goal thy
"[| !! x y. <x,y>:r ==> <x,y>:s; A<=B |] ==> r``A <= s``B";
-by (blast_tac (!claset addIs [prem1, prem2 RS subsetD]) 1);
+by (blast_tac (claset() addIs [prem1, prem2 RS subsetD]) 1);
qed "image_pair_mono";
val [prem1,prem2] = goal thy
"[| !! x y. <x,y>:r ==> <x,y>:s; A<=B |] ==> r-``A <= s-``B";
-by (blast_tac (!claset addIs [prem1, prem2 RS subsetD]) 1);
+by (blast_tac (claset() addIs [prem1, prem2 RS subsetD]) 1);
qed "vimage_pair_mono";
goal thy "!!r s. [| r<=s; A<=B |] ==> r``A <= s``B";
@@ -151,7 +151,7 @@
val [sub,PQimp] = goal thy
"[| A<=B; !!x. x:A ==> P(x) --> Q(x) |] ==> Collect(A,P) <= Collect(B,Q)";
-by (blast_tac (!claset addIs [sub RS subsetD, PQimp RS mp]) 1);
+by (blast_tac (claset() addIs [sub RS subsetD, PQimp RS mp]) 1);
qed "Collect_mono";
(** Monotonicity of implications -- some could go to FOL **)
--- a/src/ZF/pair.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/pair.ML Mon Nov 03 12:24:13 1997 +0100
@@ -20,7 +20,7 @@
qed_goalw "Pair_iff" ZF.thy [Pair_def]
"<a,b> = <c,d> <-> a=c & b=d"
- (fn _=> [ (simp_tac (!simpset addsimps [doubleton_eq_iff]) 1),
+ (fn _=> [ (simp_tac (simpset() addsimps [doubleton_eq_iff]) 1),
(Blast_tac 1) ]);
Addsimps [Pair_iff];
@@ -33,7 +33,7 @@
bind_thm ("Pair_inject2", Pair_iff RS iffD1 RS conjunct2);
qed_goalw "Pair_not_0" ZF.thy [Pair_def] "<a,b> ~= 0"
- (fn _ => [ (blast_tac (!claset addEs [equalityE]) 1) ]);
+ (fn _ => [ (blast_tac (claset() addEs [equalityE]) 1) ]);
bind_thm ("Pair_neq_0", Pair_not_0 RS notE);
@@ -88,7 +88,7 @@
qed_goalw "Sigma_cong" ZF.thy [Sigma_def]
"[| A=A'; !!x. x:A' ==> B(x)=B'(x) |] ==> \
\ Sigma(A,B) = Sigma(A',B')"
- (fn prems=> [ (simp_tac (!simpset addsimps prems) 1) ]);
+ (fn prems=> [ (simp_tac (simpset() addsimps prems) 1) ]);
(*Sigma_cong, Pi_cong NOT given to Addcongs: they cause
@@ -110,10 +110,10 @@
(*** Projections: fst, snd ***)
qed_goalw "fst_conv" ZF.thy [fst_def] "fst(<a,b>) = a"
- (fn _=> [ (blast_tac (!claset addIs [the_equality]) 1) ]);
+ (fn _=> [ (blast_tac (claset() addIs [the_equality]) 1) ]);
qed_goalw "snd_conv" ZF.thy [snd_def] "snd(<a,b>) = b"
- (fn _=> [ (blast_tac (!claset addIs [the_equality]) 1) ]);
+ (fn _=> [ (blast_tac (claset() addIs [the_equality]) 1) ]);
Addsimps [fst_conv,snd_conv];
@@ -143,7 +143,7 @@
\ |] ==> split(%x y. c(x,y), p) : C(p)"
(fn major::prems=>
[ (rtac (major RS SigmaE) 1),
- (asm_simp_tac (!simpset addsimps prems) 1) ]);
+ (asm_simp_tac (simpset() addsimps prems) 1) ]);
goalw ZF.thy [split_def]
"!!u. u: A*B ==> \
--- a/src/ZF/simpdata.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/simpdata.ML Mon Nov 03 12:24:13 1997 +0100
@@ -104,6 +104,6 @@
val ZF_atomize = atomize (ZF_conn_pairs, ZF_mem_pairs);
-simpset := !simpset setmksimps (map mk_meta_eq o ZF_atomize o gen_all);
+simpset_ref() := simpset() setmksimps (map mk_meta_eq o ZF_atomize o gen_all);
-val ZF_ss = !simpset;
+val ZF_ss = simpset();
--- a/src/ZF/subset.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/subset.ML Mon Nov 03 12:24:13 1997 +0100
@@ -73,7 +73,7 @@
(*** Union of a family of sets ***)
goal ZF.thy "A <= (UN i:I. B(i)) <-> A = (UN i:I. A Int B(i))";
-by (blast_tac (!claset addSEs [equalityE]) 1);
+by (blast_tac (claset() addSEs [equalityE]) 1);
qed "subset_UN_iff_eq";
qed_goal "UN_subset_iff" ZF.thy
@@ -156,7 +156,7 @@
qed_goal "Diff_contains" ZF.thy
"!!C. [| C<=A; C Int B = 0 |] ==> C <= A-B"
- (fn _ => [ (blast_tac (!claset addSEs [equalityE]) 1) ]);
+ (fn _ => [ (blast_tac (claset() addSEs [equalityE]) 1) ]);
(** Collect **)
@@ -168,7 +168,7 @@
(** RepFun **)
val prems = goal ZF.thy "[| !!x. x:A ==> f(x): B |] ==> {f(x). x:A} <= B";
-by (blast_tac (!claset addIs prems) 1);
+by (blast_tac (claset() addIs prems) 1);
qed "RepFun_subset";
val subset_SIs =
@@ -179,7 +179,7 @@
(*A claset for subset reasoning*)
-val subset_cs = !claset
+val subset_cs = claset()
delrules [subsetI, subsetCE]
addSIs subset_SIs
addIs [Union_upper, Inter_lower]
--- a/src/ZF/upair.ML Mon Nov 03 12:22:43 1997 +0100
+++ b/src/ZF/upair.ML Mon Nov 03 12:24:13 1997 +0100
@@ -23,7 +23,7 @@
qed_goalw "Upair_iff" ZF.thy [Upair_def]
"c : Upair(a,b) <-> (c=a | c=b)"
- (fn _ => [ (blast_tac (!claset addEs [Pow_neq_0, sym RS Pow_neq_0]) 1) ]);
+ (fn _ => [ (blast_tac (claset() addEs [Pow_neq_0, sym RS Pow_neq_0]) 1) ]);
Addsimps [Upair_iff];
@@ -75,7 +75,7 @@
(*Classical introduction rule: no commitment to A vs B*)
qed_goal "UnCI" ZF.thy "(c ~: B ==> c : A) ==> c : A Un B"
(fn prems=>
- [ Simp_tac 1, blast_tac (!claset addSIs prems) 1 ]);
+ [ Simp_tac 1, blast_tac (claset() addSIs prems) 1 ]);
AddSIs [UnCI];
AddSEs [UnE];
@@ -166,13 +166,13 @@
(*Classical introduction rule*)
qed_goal "consCI" ZF.thy "(a~:B ==> a=b) ==> a: cons(b,B)"
(fn prems=>
- [ Simp_tac 1, blast_tac (!claset addSIs prems) 1 ]);
+ [ Simp_tac 1, blast_tac (claset() addSIs prems) 1 ]);
AddSIs [consCI];
AddSEs [consE];
qed_goal "cons_not_0" ZF.thy "cons(a,B) ~= 0"
- (fn _ => [ (blast_tac (!claset addEs [equalityE]) 1) ]);
+ (fn _ => [ (blast_tac (claset() addEs [equalityE]) 1) ]);
bind_thm ("cons_neq_0", cons_not_0 RS notE);
@@ -197,13 +197,13 @@
qed_goalw "the_equality" ZF.thy [the_def]
"[| P(a); !!x. P(x) ==> x=a |] ==> (THE x. P(x)) = a"
(fn [pa,eq] =>
- [ (fast_tac (!claset addSIs [pa] addEs [eq RS subst]) 1) ]);
+ [ (fast_tac (claset() addSIs [pa] addEs [eq RS subst]) 1) ]);
(* Only use this if you already know EX!x. P(x) *)
qed_goal "the_equality2" ZF.thy
"!!P. [| EX! x. P(x); P(a) |] ==> (THE x. P(x)) = a"
(fn _ =>
- [ (deepen_tac (!claset addSIs [the_equality]) 1 1) ]);
+ [ (deepen_tac (claset() addSIs [the_equality]) 1 1) ]);
qed_goal "theI" ZF.thy "EX! x. P(x) ==> P(THE x. P(x))"
(fn [major]=>
@@ -224,33 +224,33 @@
(*If it's "undefined", it's zero!*)
qed_goalw "the_0" ZF.thy [the_def]
"!!P. ~ (EX! x. P(x)) ==> (THE x. P(x))=0"
- (fn _ => [ (deepen_tac (!claset addSEs [ReplaceE]) 0 1) ]);
+ (fn _ => [ (deepen_tac (claset() addSEs [ReplaceE]) 0 1) ]);
(*** if -- a conditional expression for formulae ***)
goalw ZF.thy [if_def] "if(True,a,b) = a";
-by (blast_tac (!claset addSIs [the_equality]) 1);
+by (blast_tac (claset() addSIs [the_equality]) 1);
qed "if_true";
goalw ZF.thy [if_def] "if(False,a,b) = b";
-by (blast_tac (!claset addSIs [the_equality]) 1);
+by (blast_tac (claset() addSIs [the_equality]) 1);
qed "if_false";
(*Never use with case splitting, or if P is known to be true or false*)
val prems = goalw ZF.thy [if_def]
"[| P<->Q; Q ==> a=c; ~Q ==> b=d |] ==> if(P,a,b) = if(Q,c,d)";
-by (simp_tac (!simpset addsimps prems addcongs [conj_cong]) 1);
+by (simp_tac (simpset() addsimps prems addcongs [conj_cong]) 1);
qed "if_cong";
(*Not needed for rewriting, since P would rewrite to True anyway*)
goalw ZF.thy [if_def] "!!P. P ==> if(P,a,b) = a";
-by (blast_tac (!claset addSIs [the_equality]) 1);
+by (blast_tac (claset() addSIs [the_equality]) 1);
qed "if_P";
(*Not needed for rewriting, since P would rewrite to False anyway*)
goalw ZF.thy [if_def] "!!P. ~P ==> if(P,a,b) = b";
-by (blast_tac (!claset addSIs [the_equality]) 1);
+by (blast_tac (claset() addSIs [the_equality]) 1);
qed "if_not_P";
Addsimps [if_true, if_false];
@@ -276,12 +276,12 @@
(*Logically equivalent to expand_if_mem2*)
qed_goal "if_iff" ZF.thy "a: if(P,x,y) <-> P & a:x | ~P & a:y"
- (fn _=> [ (simp_tac (!simpset setloop split_tac [expand_if]) 1) ]);
+ (fn _=> [ (simp_tac (simpset() setloop split_tac [expand_if]) 1) ]);
qed_goal "if_type" ZF.thy
"[| P ==> a: A; ~P ==> b: A |] ==> if(P,a,b): A"
(fn prems=> [ (simp_tac
- (!simpset addsimps prems setloop split_tac [expand_if]) 1) ]);
+ (simpset() addsimps prems setloop split_tac [expand_if]) 1) ]);
(*** Foundation lemmas ***)
@@ -291,7 +291,7 @@
(fn prems=>
[ (rtac classical 1),
(res_inst_tac [("A1","{a,b}")] (foundation RS disjE) 1),
- REPEAT (blast_tac (!claset addIs prems addSEs [equalityE]) 1) ]);
+ REPEAT (blast_tac (claset() addIs prems addSEs [equalityE]) 1) ]);
(*was called mem_anti_refl*)
qed_goal "mem_irrefl" ZF.thy "a:a ==> P"
@@ -305,7 +305,7 @@
(*Good for proving inequalities by rewriting*)
qed_goal "mem_imp_not_eq" ZF.thy "!!a A. a:A ==> a ~= A"
- (fn _=> [ blast_tac (!claset addSEs [mem_irrefl]) 1 ]);
+ (fn _=> [ blast_tac (claset() addSEs [mem_irrefl]) 1 ]);
(*** Rules for succ ***)
@@ -337,7 +337,7 @@
AddSEs [succE];
qed_goal "succ_not_0" ZF.thy "succ(n) ~= 0"
- (fn _=> [ (blast_tac (!claset addSEs [equalityE]) 1) ]);
+ (fn _=> [ (blast_tac (claset() addSEs [equalityE]) 1) ]);
bind_thm ("succ_neq_0", succ_not_0 RS notE);
@@ -353,7 +353,7 @@
qed_goal "succ_inject_iff" ZF.thy "succ(m) = succ(n) <-> m=n"
- (fn _=> [ (blast_tac (!claset addEs [mem_asym] addSEs [equalityE]) 1) ]);
+ (fn _=> [ (blast_tac (claset() addEs [mem_asym] addSEs [equalityE]) 1) ]);
bind_thm ("succ_inject", succ_inject_iff RS iffD1);