src/CCL/CCL.ML
changeset 642 0db578095e6a
parent 611 11098f505bfe
child 757 2ca12511676d
--- a/src/CCL/CCL.ML	Wed Oct 12 16:38:58 1994 +0100
+++ b/src/CCL/CCL.ML	Wed Oct 19 09:23:56 1994 +0100
@@ -44,11 +44,11 @@
 (*** Termination and Divergence ***)
 
 goalw CCL.thy [Trm_def,Dvg_def] "Trm(t) <-> ~ t = bot";
-br iff_refl 1;
+by (rtac iff_refl 1);
 val Trm_iff = result();
 
 goalw CCL.thy [Trm_def,Dvg_def] "Dvg(t) <-> t = bot";
-br iff_refl 1;
+by (rtac iff_refl 1);
 val Dvg_iff = result();
 
 (*** Constructors are injective ***)
@@ -138,7 +138,7 @@
 (****** Facts from gfp Definition of [= and = ******)
 
 val major::prems = goal Set.thy "[| A=B;  a:B <-> P |] ==> a:A <-> P";
-brs (prems RL [major RS ssubst]) 1;
+by (resolve_tac (prems RL [major RS ssubst]) 1);
 val XHlemma1 = result();
 
 goal CCL.thy "(P(t,t') <-> Q) --> (<t,t'> : {p.EX t t'.p=<t,t'> &  P(t,t')} <-> Q)";
@@ -148,7 +148,7 @@
 (*** Pre-Order ***)
 
 goalw CCL.thy [POgen_def,SIM_def]  "mono(%X.POgen(X))";
-br monoI 1;
+by (rtac monoI 1);
 by (safe_tac ccl_cs);
 by (REPEAT_SOME (resolve_tac [exI,conjI,refl]));
 by (ALLGOALS (simp_tac ccl_ss));
@@ -159,7 +159,7 @@
   "<t,t'> : POgen(R) <-> t= bot | (t=true & t'=true)  | (t=false & t'=false) | \
 \                    (EX a a' b b'.t=<a,b> &  t'=<a',b'>  & <a,a'> : R & <b,b'> : R) | \
 \                    (EX f f'.t=lam x.f(x) &  t'=lam x.f'(x) & (ALL x.<f(x),f'(x)> : R))";
-br (iff_refl RS XHlemma2) 1;
+by (rtac (iff_refl RS XHlemma2) 1);
 val POgenXH = result();
 
 goal CCL.thy
@@ -169,29 +169,29 @@
 by (simp_tac (ccl_ss addsimps [PO_iff]) 1);
 br (rewrite_rule [POgen_def,SIM_def] 
                  (POgen_mono RS (PO_def RS def_gfp_Tarski) RS XHlemma1)) 1;
-br (iff_refl RS XHlemma2) 1;
+by (rtac (iff_refl RS XHlemma2) 1);
 val poXH = result();
 
 goal CCL.thy "bot [= b";
-br (poXH RS iffD2) 1;
+by (rtac (poXH RS iffD2) 1);
 by (simp_tac ccl_ss 1);
 val po_bot = result();
 
 goal CCL.thy "a [= bot --> a=bot";
-br impI 1;
-bd (poXH RS iffD1) 1;
-be rev_mp 1;
+by (rtac impI 1);
+by (dtac (poXH RS iffD1) 1);
+by (etac rev_mp 1);
 by (simp_tac ccl_ss 1);
 val bot_poleast = result() RS mp;
 
 goal CCL.thy "<a,b> [= <a',b'> <->  a [= a' & b [= b'";
-br (poXH RS iff_trans) 1;
+by (rtac (poXH RS iff_trans) 1);
 by (simp_tac ccl_ss 1);
 by (fast_tac ccl_cs 1);
 val po_pair = result();
 
 goal CCL.thy "lam x.f(x) [= lam x.f'(x) <-> (ALL x. f(x) [= f'(x))";
-br (poXH RS iff_trans) 1;
+by (rtac (poXH RS iff_trans) 1);
 by (simp_tac ccl_ss 1);
 by (REPEAT (ares_tac [iffI,allI] 1 ORELSE eresolve_tac [exE,conjE] 1));
 by (asm_simp_tac ccl_ss 1);
@@ -203,13 +203,13 @@
 val [p1,p2,p3,p4,p5] = goal CCL.thy
     "[| t [= t';  a [= a';  b [= b';  !!x y.c(x,y) [= c'(x,y); \
 \       !!u.d(u) [= d'(u) |] ==> case(t,a,b,c,d) [= case(t',a',b',c',d')";
-br (p1 RS po_cong RS po_trans) 1;
-br (p2 RS po_cong RS po_trans) 1;
-br (p3 RS po_cong RS po_trans) 1;
-br (p4 RS po_abstractn RS po_abstractn RS po_cong RS po_trans) 1;
+by (rtac (p1 RS po_cong RS po_trans) 1);
+by (rtac (p2 RS po_cong RS po_trans) 1);
+by (rtac (p3 RS po_cong RS po_trans) 1);
+by (rtac (p4 RS po_abstractn RS po_abstractn RS po_cong RS po_trans) 1);
 by (res_inst_tac [("f1","%d.case(t',a',b',c',d)")] 
                (p5 RS po_abstractn RS po_cong RS po_trans) 1);
-br po_refl 1;
+by (rtac po_refl 1);
 val case_pocong = result();
 
 val [p1,p2] = goalw CCL.thy ccl_data_defs
@@ -219,29 +219,29 @@
 
 
 val prems = goal CCL.thy "~ lam x.b(x) [= bot";
-br notI 1;
-bd bot_poleast 1;
-be (distinctness RS notE) 1;
+by (rtac notI 1);
+by (dtac bot_poleast 1);
+by (etac (distinctness RS notE) 1);
 val npo_lam_bot = result();
 
 val eq1::eq2::prems = goal CCL.thy
     "[| x=a;  y=b;  x[=y |] ==> a[=b";
-br (eq1 RS subst) 1;
-br (eq2 RS subst) 1;
-brs prems 1;
+by (rtac (eq1 RS subst) 1);
+by (rtac (eq2 RS subst) 1);
+by (resolve_tac prems 1);
 val po_lemma = result();
 
 goal CCL.thy "~ <a,b> [= lam x.f(x)";
-br notI 1;
-br (npo_lam_bot RS notE) 1;
-be (case_pocong RS (caseBlam RS (caseBpair RS po_lemma))) 1;
+by (rtac notI 1);
+by (rtac (npo_lam_bot RS notE) 1);
+by (etac (case_pocong RS (caseBlam RS (caseBpair RS po_lemma))) 1);
 by (REPEAT (resolve_tac [po_refl,npo_lam_bot] 1));
 val npo_pair_lam = result();
 
 goal CCL.thy "~ lam x.f(x) [= <a,b>";
-br notI 1;
-br (npo_lam_bot RS notE) 1;
-be (case_pocong RS (caseBpair RS (caseBlam RS po_lemma))) 1;
+by (rtac notI 1);
+by (rtac (npo_lam_bot RS notE) 1);
+by (etac (case_pocong RS (caseBpair RS (caseBlam RS po_lemma))) 1);
 by (REPEAT (resolve_tac [po_refl,npo_lam_bot] 1));
 val npo_lam_pair = result();
 
@@ -260,7 +260,7 @@
 (* Coinduction for [= *)
 
 val prems = goal CCL.thy "[|  <t,u> : R;  R <= POgen(R) |] ==> t [= u";
-br (PO_def RS def_coinduct RS (PO_iff RS iffD2)) 1;
+by (rtac (PO_def RS def_coinduct RS (PO_iff RS iffD2)) 1);
 by (REPEAT (ares_tac prems 1));
 val po_coinduct = result();
 
@@ -269,7 +269,7 @@
 (*************** EQUALITY *******************)
 
 goalw CCL.thy [EQgen_def,SIM_def]  "mono(%X.EQgen(X))";
-br monoI 1;
+by (rtac monoI 1);
 by (safe_tac set_cs);
 by (REPEAT_SOME (resolve_tac [exI,conjI,refl]));
 by (ALLGOALS (simp_tac ccl_ss));
@@ -281,7 +281,7 @@
 \                                            (t=false & t'=false) | \
 \                (EX a a' b b'.t=<a,b> &  t'=<a',b'>  & <a,a'> : R & <b,b'> : R) | \
 \                (EX f f'.t=lam x.f(x) &  t'=lam x.f'(x) & (ALL x.<f(x),f'(x)> : R))";
-br (iff_refl RS XHlemma2) 1;
+by (rtac (iff_refl RS XHlemma2) 1);
 val EQgenXH = result();
 
 goal CCL.thy
@@ -292,21 +292,21 @@
   "<t,t'> : EQ <-> (t=bot & t'=bot)  | (t=true & t'=true) | (t=false & t'=false) | \
 \             (EX a a' b b'.t=<a,b> &  t'=<a',b'>  & <a,a'> : EQ & <b,b'> : EQ) | \
 \             (EX f f'.t=lam x.f(x) &  t'=lam x.f'(x) & (ALL x.<f(x),f'(x)> : EQ))" 1);
-be rev_mp 1;
+by (etac rev_mp 1);
 by (simp_tac (CCL_ss addsimps [EQ_iff RS iff_sym]) 1);
 br (rewrite_rule [EQgen_def,SIM_def]
                  (EQgen_mono RS (EQ_def RS def_gfp_Tarski) RS XHlemma1)) 1;
-br (iff_refl RS XHlemma2) 1;
+by (rtac (iff_refl RS XHlemma2) 1);
 val eqXH = result();
 
 val prems = goal CCL.thy "[|  <t,u> : R;  R <= EQgen(R) |] ==> t = u";
-br (EQ_def RS def_coinduct RS (EQ_iff RS iffD2)) 1;
+by (rtac (EQ_def RS def_coinduct RS (EQ_iff RS iffD2)) 1);
 by (REPEAT (ares_tac prems 1));
 val eq_coinduct = result();
 
 val prems = goal CCL.thy 
     "[|  <t,u> : R;  R <= EQgen(lfp(%x.EQgen(x) Un R Un EQ)) |] ==> t = u";
-br (EQ_def RS def_coinduct3 RS (EQ_iff RS iffD2)) 1;
+by (rtac (EQ_def RS def_coinduct3 RS (EQ_iff RS iffD2)) 1);
 by (REPEAT (ares_tac (EQgen_mono::prems) 1));
 val eq_coinduct3 = result();