tidying
authorpaulson
Thu, 28 Jan 1999 10:21:45 +0100
changeset 6158 981f96a598f5
parent 6157 29942d3a1818
child 6159 833b76d0e6dc
tidying
src/ZF/ex/Limit.ML
--- a/src/ZF/ex/Limit.ML	Wed Jan 27 17:11:39 1999 +0100
+++ b/src/ZF/ex/Limit.ML	Thu Jan 28 10:21:45 1999 +0100
@@ -72,8 +72,10 @@
 Goal "[|cpo(D); x:set(D)|] ==> rel(D,x,x)";
 by (blast_tac (claset() addIs [po_refl, cpo_po]) 1);
 qed "cpo_refl";
+
 Addsimps [cpo_refl];
 AddSIs   [cpo_refl];
+AddTCs   [cpo_refl];
 
 Goal "[|cpo(D); rel(D,x,y); rel(D,y,z); x:set(D);  \
 \       y:set(D); z:set(D)|] ==> rel(D,x,z)";
@@ -170,20 +172,15 @@
 qed "chain_rel";
 
 Addsimps [chain_in, chain_rel];
+AddTCs   [chain_in, chain_rel];
 
 Goal "[|chain(D,X); cpo(D); n:nat; m:nat|] ==> rel(D,X`n,(X`(m #+ n)))";
 by (induct_tac "m" 1);
 by (ALLGOALS Simp_tac);
-by (rtac cpo_trans 2); (* loops if repeated *)
-by (REPEAT (ares_tac [cpo_refl,chain_in,chain_rel,nat_succI,add_type] 1));
+by (rtac cpo_trans 1);
+by Auto_tac;
 qed "chain_rel_gen_add";
 
-Goal "[| n le succ(x); ~ n le x; x : nat; n:nat |] ==> n = succ(x)";
-by (etac le_anti_sym 1);
-by (asm_simp_tac (simpset() addsimps [not_le_iff_lt RS iff_sym, 
-				      nat_into_Ord]) 1);
-qed "le_succ_eq";
-
 Goal  (* chain_rel_gen *)
     "[|n le m; chain(D,X); cpo(D); n:nat; m:nat|] ==> rel(D,X`n,X`m)";
 by (rtac impE 1);  (* The first three steps prepare for the induction proof *)
@@ -193,9 +190,8 @@
 by Safe_tac;
 by (Asm_full_simp_tac 1);
 by (rtac cpo_trans 2);
-by (rtac (le_succ_eq RS subst) 1);
-by (auto_tac (claset() addIs [chain_in,chain_rel],
-	      simpset()));
+by (auto_tac (claset(),
+	      simpset() addsimps [le_iff]));
 qed "chain_rel_gen";
 
 (*----------------------------------------------------------------------*)
@@ -226,6 +222,8 @@
 by (best_tac (claset() addIs [pcpo_bot_ex1 RS theI2]) 1);
 qed "bot_in";
 
+AddTCs [pcpo_cpo, bot_least, bot_in];
+
 val prems = goal Limit.thy  (* bot_unique *)
     "[| pcpo(D); x:set(D); !!y. y:set(D) ==> rel(D,x,y)|] ==> x = bot(D)";
 by (rtac cpo_antisym 1);
@@ -749,6 +747,8 @@
 
 qed "cpo_cf";
 
+AddTCs [cpo_cf];
+
 Goal "[| chain(cf(D,E),X); cpo(D); cpo(E)|] ==>   \
 \     lub(cf(D,E), X) = (lam x:set(D). lub(E,lam n:nat. X`n`x))";
 by (blast_tac (claset() addIs [islub_unique,cpo_lub,islub_cf,cpo_cf]) 1);
@@ -1191,6 +1191,8 @@
 brr(islub_iprod::prems) 1;
 qed "cpo_iprod";
 
+AddTCs [cpo_iprod];
+
 val prems = Goalw [islub_def,isub_def]  (* lub_iprod *)
     "[|chain(iprod(DD),X);  !!n. n:nat ==> cpo(DD`n)|] ==>   \
 \    lub(iprod(DD),X) = (lam n:nat. lub(DD`n,lam m:nat. X`m`n))";
@@ -1423,7 +1425,8 @@
 
 Goal "emb_chain(DD,ee) ==> cpo(Dinf(DD,ee))";
 by (rtac subcpo_cpo 1);
-by (auto_tac (claset() addIs [subcpo_Dinf,cpo_iprod,emb_chain_cpo], simpset()));
+be subcpo_Dinf 1;
+by (auto_tac (claset() addIs [cpo_iprod, emb_chain_cpo], simpset()));
 qed "cpo_Dinf";
 
 (* Again and again the proofs are much easier to WRITE in Isabelle, but