--- a/src/HOL/Finite.ML Wed Mar 06 12:52:11 1996 +0100
+++ b/src/HOL/Finite.ML Wed Mar 06 13:57:07 1996 +0100
@@ -55,15 +55,15 @@
qed "Fin_subset";
goal Finite.thy "(F Un G : Fin(A)) = (F: Fin(A) & G: Fin(A))";
-by(fast_tac (set_cs addIs [Fin_UnI] addDs
+by (fast_tac (set_cs addIs [Fin_UnI] addDs
[Un_upper1 RS Fin_subset, Un_upper2 RS Fin_subset]) 1);
qed "subset_Fin";
Addsimps[subset_Fin];
goal Finite.thy "(insert a A : Fin M) = (a:M & A : Fin M)";
-by(stac insert_is_Un 1);
-by(Simp_tac 1);
-by(fast_tac (set_cs addSIs Fin.intrs addDs [FinD]) 1);
+by (stac insert_is_Un 1);
+by (Simp_tac 1);
+by (fast_tac (set_cs addSIs Fin.intrs addDs [FinD]) 1);
qed "insert_Fin";
Addsimps[insert_Fin];
@@ -110,47 +110,47 @@
goalw Finite.thy [finite_def] "finite {}";
-by(Simp_tac 1);
+by (Simp_tac 1);
qed "finite_emptyI";
Addsimps [finite_emptyI];
goalw Finite.thy [finite_def] "!!A. finite A ==> finite(insert a A)";
-by(Asm_simp_tac 1);
+by (Asm_simp_tac 1);
qed "finite_insertI";
(*The union of two finite sets is finite*)
goalw Finite.thy [finite_def]
"!!F. [| finite F; finite G |] ==> finite(F Un G)";
-by(Asm_simp_tac 1);
+by (Asm_simp_tac 1);
qed "finite_UnI";
goalw Finite.thy [finite_def] "!!A. [| A<=B; finite B |] ==> finite A";
-be Fin_subset 1;
-ba 1;
+by (etac Fin_subset 1);
+by (assume_tac 1);
qed "finite_subset";
goalw Finite.thy [finite_def] "finite(F Un G) = (finite F & finite G)";
-by(Simp_tac 1);
+by (Simp_tac 1);
qed "subset_finite";
Addsimps[subset_finite];
goalw Finite.thy [finite_def] "finite(insert a A) = finite(A)";
-by(Simp_tac 1);
+by (Simp_tac 1);
qed "insert_finite";
Addsimps[insert_finite];
goal Finite.thy "!!A. finite(A) ==> finite(A-B)";
-be finite_induct 1;
-by(Simp_tac 1);
-by(asm_simp_tac (!simpset addsimps [insert_Diff_if]
+by (etac finite_induct 1);
+by (Simp_tac 1);
+by (asm_simp_tac (!simpset addsimps [insert_Diff_if]
setloop split_tac[expand_if]) 1);
qed "finite_Diff";
Addsimps [finite_Diff];
(*The image of a finite set is finite*)
goal Finite.thy "!!F. finite F ==> finite(h``F)";
-be finite_induct 1;
-by(ALLGOALS Asm_simp_tac);
+by (etac finite_induct 1);
+by (ALLGOALS Asm_simp_tac);
qed "finite_imageI";
val major::prems = goalw Finite.thy [finite_def]
@@ -166,152 +166,152 @@
section "Finite cardinality -- 'card'";
goal Set.thy "{f i |i. P i | i=n} = insert (f n) {f i|i. P i}";
-by(fast_tac eq_cs 1);
+by (fast_tac eq_cs 1);
val Collect_conv_insert = result();
goalw Finite.thy [card_def] "card {} = 0";
-br Least_equality 1;
-by(ALLGOALS Asm_full_simp_tac);
+by (rtac Least_equality 1);
+by (ALLGOALS Asm_full_simp_tac);
qed "card_empty";
Addsimps [card_empty];
val [major] = goal Finite.thy
"finite A ==> ? (n::nat) f. A = {f i |i. i<n}";
-br (major RS finite_induct) 1;
- by(res_inst_tac [("x","0")] exI 1);
- by(Simp_tac 1);
-be exE 1;
-be exE 1;
-by(hyp_subst_tac 1);
-by(res_inst_tac [("x","Suc n")] exI 1);
-by(res_inst_tac [("x","%i. if i<n then f i else x")] exI 1);
-by(asm_simp_tac (!simpset addsimps [Collect_conv_insert]
+by (rtac (major RS finite_induct) 1);
+ by (res_inst_tac [("x","0")] exI 1);
+ by (Simp_tac 1);
+by (etac exE 1);
+by (etac exE 1);
+by (hyp_subst_tac 1);
+by (res_inst_tac [("x","Suc n")] exI 1);
+by (res_inst_tac [("x","%i. if i<n then f i else x")] exI 1);
+by (asm_simp_tac (!simpset addsimps [Collect_conv_insert]
addcongs [rev_conj_cong]) 1);
qed "finite_has_card";
goal Finite.thy
"!!A.[| x ~: A; insert x A = {f i|i.i<n} |] ==> \
\ ? m::nat. m<n & (? g. A = {g i|i.i<m})";
-by(res_inst_tac [("n","n")] natE 1);
- by(hyp_subst_tac 1);
- by(Asm_full_simp_tac 1);
-by(rename_tac "m" 1);
-by(hyp_subst_tac 1);
-by(case_tac "? a. a:A" 1);
- by(res_inst_tac [("x","0")] exI 2);
- by(Simp_tac 2);
- by(fast_tac eq_cs 2);
-be exE 1;
-by(Simp_tac 1);
-br exI 1;
-br conjI 1;
+by (res_inst_tac [("n","n")] natE 1);
+ by (hyp_subst_tac 1);
+ by (Asm_full_simp_tac 1);
+by (rename_tac "m" 1);
+by (hyp_subst_tac 1);
+by (case_tac "? a. a:A" 1);
+ by (res_inst_tac [("x","0")] exI 2);
+ by (Simp_tac 2);
+ by (fast_tac eq_cs 2);
+by (etac exE 1);
+by (Simp_tac 1);
+by (rtac exI 1);
+by (rtac conjI 1);
br disjI2 1;
br refl 1;
-be equalityE 1;
-by(asm_full_simp_tac
+by (etac equalityE 1);
+by (asm_full_simp_tac
(!simpset addsimps [subset_insert,Collect_conv_insert]) 1);
-by(SELECT_GOAL(safe_tac eq_cs)1);
- by(Asm_full_simp_tac 1);
- by(res_inst_tac [("x","%i. if f i = f m then a else f i")] exI 1);
- by(SELECT_GOAL(safe_tac eq_cs)1);
- by(subgoal_tac "x ~= f m" 1);
- by(fast_tac set_cs 2);
- by(subgoal_tac "? k. f k = x & k<m" 1);
- by(best_tac set_cs 2);
- by(SELECT_GOAL(safe_tac HOL_cs)1);
- by(res_inst_tac [("x","k")] exI 1);
- by(Asm_simp_tac 1);
- by(simp_tac (!simpset setloop (split_tac [expand_if])) 1);
- by(best_tac set_cs 1);
+by (SELECT_GOAL(safe_tac eq_cs)1);
+ by (Asm_full_simp_tac 1);
+ by (res_inst_tac [("x","%i. if f i = f m then a else f i")] exI 1);
+ by (SELECT_GOAL(safe_tac eq_cs)1);
+ by (subgoal_tac "x ~= f m" 1);
+ by (fast_tac set_cs 2);
+ by (subgoal_tac "? k. f k = x & k<m" 1);
+ by (best_tac set_cs 2);
+ by (SELECT_GOAL(safe_tac HOL_cs)1);
+ by (res_inst_tac [("x","k")] exI 1);
+ by (Asm_simp_tac 1);
+ by (simp_tac (!simpset setloop (split_tac [expand_if])) 1);
+ by (best_tac set_cs 1);
bd sym 1;
- by(rotate_tac ~1 1);
- by(Asm_full_simp_tac 1);
- by(res_inst_tac [("x","%i. if f i = f m then a else f i")] exI 1);
- by(SELECT_GOAL(safe_tac eq_cs)1);
- by(subgoal_tac "x ~= f m" 1);
- by(fast_tac set_cs 2);
- by(subgoal_tac "? k. f k = x & k<m" 1);
- by(best_tac set_cs 2);
- by(SELECT_GOAL(safe_tac HOL_cs)1);
- by(res_inst_tac [("x","k")] exI 1);
- by(Asm_simp_tac 1);
- by(simp_tac (!simpset setloop (split_tac [expand_if])) 1);
- by(best_tac set_cs 1);
-by(res_inst_tac [("x","%j. if f j = f i then f m else f j")] exI 1);
-by(SELECT_GOAL(safe_tac eq_cs)1);
- by(subgoal_tac "x ~= f i" 1);
- by(fast_tac set_cs 2);
- by(case_tac "x = f m" 1);
- by(res_inst_tac [("x","i")] exI 1);
- by(Asm_simp_tac 1);
- by(subgoal_tac "? k. f k = x & k<m" 1);
- by(best_tac set_cs 2);
- by(SELECT_GOAL(safe_tac HOL_cs)1);
- by(res_inst_tac [("x","k")] exI 1);
- by(Asm_simp_tac 1);
-by(simp_tac (!simpset setloop (split_tac [expand_if])) 1);
-by(best_tac set_cs 1);
+ by (rotate_tac ~1 1);
+ by (Asm_full_simp_tac 1);
+ by (res_inst_tac [("x","%i. if f i = f m then a else f i")] exI 1);
+ by (SELECT_GOAL(safe_tac eq_cs)1);
+ by (subgoal_tac "x ~= f m" 1);
+ by (fast_tac set_cs 2);
+ by (subgoal_tac "? k. f k = x & k<m" 1);
+ by (best_tac set_cs 2);
+ by (SELECT_GOAL(safe_tac HOL_cs)1);
+ by (res_inst_tac [("x","k")] exI 1);
+ by (Asm_simp_tac 1);
+ by (simp_tac (!simpset setloop (split_tac [expand_if])) 1);
+ by (best_tac set_cs 1);
+by (res_inst_tac [("x","%j. if f j = f i then f m else f j")] exI 1);
+by (SELECT_GOAL(safe_tac eq_cs)1);
+ by (subgoal_tac "x ~= f i" 1);
+ by (fast_tac set_cs 2);
+ by (case_tac "x = f m" 1);
+ by (res_inst_tac [("x","i")] exI 1);
+ by (Asm_simp_tac 1);
+ by (subgoal_tac "? k. f k = x & k<m" 1);
+ by (best_tac set_cs 2);
+ by (SELECT_GOAL(safe_tac HOL_cs)1);
+ by (res_inst_tac [("x","k")] exI 1);
+ by (Asm_simp_tac 1);
+by (simp_tac (!simpset setloop (split_tac [expand_if])) 1);
+by (best_tac set_cs 1);
val lemma = result();
goal Finite.thy "!!A. [| finite A; x ~: A |] ==> \
\ (LEAST n. ? f. insert x A = {f i|i.i<n}) = Suc(LEAST n. ? f. A={f i|i.i<n})";
-br Least_equality 1;
+by (rtac Least_equality 1);
bd finite_has_card 1;
be exE 1;
- by(dres_inst_tac [("P","%n.? f. A={f i|i.i<n}")] LeastI 1);
+ by (dres_inst_tac [("P","%n.? f. A={f i|i.i<n}")] LeastI 1);
be exE 1;
- by(res_inst_tac
+ by (res_inst_tac
[("x","%i. if i<(LEAST n. ? f. A={f i |i. i < n}) then f i else x")] exI 1);
- by(simp_tac
+ by (simp_tac
(!simpset addsimps [Collect_conv_insert] addcongs [rev_conj_cong]) 1);
be subst 1;
br refl 1;
-br notI 1;
-be exE 1;
-bd lemma 1;
+by (rtac notI 1);
+by (etac exE 1);
+by (dtac lemma 1);
ba 1;
-be exE 1;
-be conjE 1;
-by(dres_inst_tac [("P","%x. ? g. A = {g i |i. i < x}")] Least_le 1);
-by(dtac le_less_trans 1 THEN atac 1);
-by(Asm_full_simp_tac 1);
-be disjE 1;
-by(etac less_asym 1 THEN atac 1);
-by(hyp_subst_tac 1);
-by(Asm_full_simp_tac 1);
+by (etac exE 1);
+by (etac conjE 1);
+by (dres_inst_tac [("P","%x. ? g. A = {g i |i. i < x}")] Least_le 1);
+by (dtac le_less_trans 1 THEN atac 1);
+by (Asm_full_simp_tac 1);
+by (etac disjE 1);
+by (etac less_asym 1 THEN atac 1);
+by (hyp_subst_tac 1);
+by (Asm_full_simp_tac 1);
val lemma = result();
goalw Finite.thy [card_def]
"!!A. [| finite A; x ~: A |] ==> card(insert x A) = Suc(card A)";
-be lemma 1;
-ba 1;
+by (etac lemma 1);
+by (assume_tac 1);
qed "card_insert_disjoint";
val [major] = goal Finite.thy
"finite A ==> card(insert x A) = Suc(card(A-{x}))";
-by(case_tac "x:A" 1);
-by(asm_simp_tac (!simpset addsimps [insert_absorb]) 1);
-bd mk_disjoint_insert 1;
-be exE 1;
-by(Asm_simp_tac 1);
-br card_insert_disjoint 1;
-br (major RSN (2,finite_subset)) 1;
-by(fast_tac set_cs 1);
-by(fast_tac HOL_cs 1);
-by(asm_simp_tac (!simpset addsimps [major RS card_insert_disjoint]) 1);
+by (case_tac "x:A" 1);
+by (asm_simp_tac (!simpset addsimps [insert_absorb]) 1);
+by (dtac mk_disjoint_insert 1);
+by (etac exE 1);
+by (Asm_simp_tac 1);
+by (rtac card_insert_disjoint 1);
+by (rtac (major RSN (2,finite_subset)) 1);
+by (fast_tac set_cs 1);
+by (fast_tac HOL_cs 1);
+by (asm_simp_tac (!simpset addsimps [major RS card_insert_disjoint]) 1);
qed "card_insert";
Addsimps [card_insert];
goal Finite.thy "!!A. finite A ==> !B. B <= A --> card(B) <= card(A)";
-be finite_induct 1;
-by(Simp_tac 1);
-by(strip_tac 1);
-by(case_tac "x:B" 1);
- bd mk_disjoint_insert 1;
- by(SELECT_GOAL(safe_tac HOL_cs)1);
- by(rotate_tac ~1 1);
- by(asm_full_simp_tac (!simpset addsimps [subset_insert_iff,finite_subset]) 1);
-by(rotate_tac ~1 1);
-by(asm_full_simp_tac (!simpset addsimps [subset_insert_iff,finite_subset]) 1);
+by (etac finite_induct 1);
+by (Simp_tac 1);
+by (strip_tac 1);
+by (case_tac "x:B" 1);
+ by (dtac mk_disjoint_insert 1);
+ by (SELECT_GOAL(safe_tac HOL_cs)1);
+ by (rotate_tac ~1 1);
+ by (asm_full_simp_tac (!simpset addsimps [subset_insert_iff,finite_subset]) 1);
+by (rotate_tac ~1 1);
+by (asm_full_simp_tac (!simpset addsimps [subset_insert_iff,finite_subset]) 1);
qed_spec_mp "card_mono";
--- a/src/HOL/equalities.ML Wed Mar 06 12:52:11 1996 +0100
+++ b/src/HOL/equalities.ML Wed Mar 06 13:57:07 1996 +0100
@@ -13,24 +13,24 @@
section "{}";
goal Set.thy "{x.False} = {}";
-by(fast_tac eq_cs 1);
+by (fast_tac eq_cs 1);
qed "Collect_False_empty";
Addsimps [Collect_False_empty];
goal Set.thy "(A <= {}) = (A = {})";
-by(fast_tac eq_cs 1);
+by (fast_tac eq_cs 1);
qed "subset_empty";
Addsimps [subset_empty];
section ":";
goal Set.thy "x ~: {}";
-by(fast_tac set_cs 1);
+by (fast_tac set_cs 1);
qed "in_empty";
Addsimps[in_empty];
goal Set.thy "x : insert y A = (x=y | x:A)";
-by(fast_tac set_cs 1);
+by (fast_tac set_cs 1);
qed "in_insert";
Addsimps[in_insert];
@@ -38,7 +38,7 @@
(*NOT SUITABLE FOR REWRITING since {a} == insert a {}*)
goal Set.thy "insert a A = {a} Un A";
-by(fast_tac eq_cs 1);
+by (fast_tac eq_cs 1);
qed "insert_is_Un";
goal Set.thy "insert a A ~= {}";
@@ -54,7 +54,7 @@
qed "insert_absorb";
goal Set.thy "insert x (insert x A) = insert x A";
-by(fast_tac eq_cs 1);
+by (fast_tac eq_cs 1);
qed "insert_absorb2";
Addsimps [insert_absorb2];
@@ -65,8 +65,8 @@
(* use new B rather than (A-{a}) to avoid infinite unfolding *)
goal Set.thy "!!a. a:A ==> ? B. A = insert a B & a ~: B";
-by(res_inst_tac [("x","A-{a}")] exI 1);
-by(fast_tac eq_cs 1);
+by (res_inst_tac [("x","A-{a}")] exI 1);
+by (fast_tac eq_cs 1);
qed "mk_disjoint_insert";
section "''";
@@ -145,27 +145,27 @@
qed "Un_assoc";
goal Set.thy "{} Un B = B";
-by(fast_tac eq_cs 1);
+by (fast_tac eq_cs 1);
qed "Un_empty_left";
Addsimps[Un_empty_left];
goal Set.thy "A Un {} = A";
-by(fast_tac eq_cs 1);
+by (fast_tac eq_cs 1);
qed "Un_empty_right";
Addsimps[Un_empty_right];
goal Set.thy "UNIV Un B = UNIV";
-by(fast_tac eq_cs 1);
+by (fast_tac eq_cs 1);
qed "Un_UNIV_left";
Addsimps[Un_UNIV_left];
goal Set.thy "A Un UNIV = UNIV";
-by(fast_tac eq_cs 1);
+by (fast_tac eq_cs 1);
qed "Un_UNIV_right";
Addsimps[Un_UNIV_right];
goal Set.thy "insert a B Un C = insert a (B Un C)";
-by(fast_tac eq_cs 1);
+by (fast_tac eq_cs 1);
qed "Un_insert_left";
goal Set.thy "(A Int B) Un C = (A Un C) Int (B Un C)";
@@ -437,7 +437,7 @@
Addsimps[Diff_UNIV];
goal Set.thy "!!x. x~:A ==> A - insert x B = A-B";
-by(fast_tac eq_cs 1);
+by (fast_tac eq_cs 1);
qed "Diff_insert0";
Addsimps [Diff_insert0];
@@ -452,12 +452,12 @@
qed "Diff_insert2";
goal Set.thy "insert x A - B = (if x:B then A-B else insert x (A-B))";
-by(simp_tac (!simpset setloop split_tac[expand_if]) 1);
-by(fast_tac eq_cs 1);
+by (simp_tac (!simpset setloop split_tac[expand_if]) 1);
+by (fast_tac eq_cs 1);
qed "insert_Diff_if";
goal Set.thy "!!x. x:B ==> insert x A - B = A-B";
-by(fast_tac eq_cs 1);
+by (fast_tac eq_cs 1);
qed "insert_Diff1";
Addsimps [insert_Diff1];