added qed, qed_goal[w]
authorclasohm
Tue Feb 07 11:59:32 1995 +0100 (1995-02-07)
changeset 892d0dc8d057929
parent 891 a5ad535a241a
child 893 f81cb7520372
added qed, qed_goal[w]
src/HOLCF/Cfun1.ML
src/HOLCF/Cfun2.ML
src/HOLCF/Cfun3.ML
src/HOLCF/Cont.ML
src/HOLCF/Cprod1.ML
src/HOLCF/Cprod2.ML
src/HOLCF/Cprod3.ML
src/HOLCF/Dlist.ML
src/HOLCF/Dnat.ML
src/HOLCF/Dnat2.ML
src/HOLCF/Fix.ML
src/HOLCF/Fun1.ML
src/HOLCF/Fun2.ML
src/HOLCF/Holcfb.ML
src/HOLCF/Lift1.ML
src/HOLCF/Lift2.ML
src/HOLCF/Lift3.ML
src/HOLCF/One.ML
src/HOLCF/Pcpo.ML
src/HOLCF/Porder.ML
src/HOLCF/Sprod0.ML
src/HOLCF/Sprod1.ML
src/HOLCF/Sprod2.ML
src/HOLCF/Sprod3.ML
src/HOLCF/Ssum0.ML
src/HOLCF/Ssum1.ML
src/HOLCF/Ssum2.ML
src/HOLCF/Ssum3.ML
src/HOLCF/Stream.ML
src/HOLCF/Stream2.ML
src/HOLCF/Tr1.ML
src/HOLCF/Void.ML
src/HOLCF/ccc1.ML
src/HOLCF/ex/Coind.ML
src/HOLCF/ex/Dagstuhl.ML
src/HOLCF/ex/Hoare.ML
src/HOLCF/ex/Loop.ML
     1.1 --- a/src/HOLCF/Cfun1.ML	Fri Feb 03 12:32:14 1995 +0100
     1.2 +++ b/src/HOLCF/Cfun1.ML	Tue Feb 07 11:59:32 1995 +0100
     1.3 @@ -12,7 +12,7 @@
     1.4  (* A non-emptyness result for Cfun                                          *)
     1.5  (* ------------------------------------------------------------------------ *)
     1.6  
     1.7 -val CfunI = prove_goalw Cfun1.thy [Cfun_def] "(% x.x):Cfun"
     1.8 +qed_goalw "CfunI" Cfun1.thy [Cfun_def] "(% x.x):Cfun"
     1.9   (fn prems =>
    1.10  	[
    1.11  	(rtac (mem_Collect_eq RS ssubst) 1),
    1.12 @@ -24,13 +24,13 @@
    1.13  (* less_cfun is a partial order on type 'a -> 'b                            *)
    1.14  (* ------------------------------------------------------------------------ *)
    1.15  
    1.16 -val refl_less_cfun = prove_goalw Cfun1.thy [less_cfun_def] "less_cfun(f,f)"
    1.17 +qed_goalw "refl_less_cfun" Cfun1.thy [less_cfun_def] "less_cfun(f,f)"
    1.18  (fn prems =>
    1.19  	[
    1.20  	(rtac refl_less 1)
    1.21  	]);
    1.22  
    1.23 -val antisym_less_cfun = prove_goalw Cfun1.thy [less_cfun_def] 
    1.24 +qed_goalw "antisym_less_cfun" Cfun1.thy [less_cfun_def] 
    1.25  	"[|less_cfun(f1,f2); less_cfun(f2,f1)|] ==> f1 = f2"
    1.26  (fn prems =>
    1.27  	[
    1.28 @@ -43,7 +43,7 @@
    1.29  	(rtac Rep_Cfun_inverse 1)
    1.30  	]);
    1.31  
    1.32 -val trans_less_cfun = prove_goalw Cfun1.thy [less_cfun_def] 
    1.33 +qed_goalw "trans_less_cfun" Cfun1.thy [less_cfun_def] 
    1.34  	"[|less_cfun(f1,f2); less_cfun(f2,f3)|] ==> less_cfun(f1,f3)"
    1.35  (fn prems =>
    1.36  	[
    1.37 @@ -56,7 +56,7 @@
    1.38  (* lemmas about application of continuous functions                         *)
    1.39  (* ------------------------------------------------------------------------ *)
    1.40  
    1.41 -val cfun_cong = prove_goal Cfun1.thy 
    1.42 +qed_goal "cfun_cong" Cfun1.thy 
    1.43  	 "[| f=g; x=y |] ==> f[x] = g[y]"
    1.44  (fn prems =>
    1.45  	[
    1.46 @@ -64,7 +64,7 @@
    1.47  	(fast_tac HOL_cs 1)
    1.48  	]);
    1.49  
    1.50 -val cfun_fun_cong = prove_goal Cfun1.thy "f=g ==> f[x] = g[x]"
    1.51 +qed_goal "cfun_fun_cong" Cfun1.thy "f=g ==> f[x] = g[x]"
    1.52  (fn prems =>
    1.53  	[
    1.54  	(cut_facts_tac prems 1),
    1.55 @@ -72,7 +72,7 @@
    1.56  	(rtac refl 1)
    1.57  	]);
    1.58  
    1.59 -val cfun_arg_cong = prove_goal Cfun1.thy "x=y ==> f[x] = f[y]"
    1.60 +qed_goal "cfun_arg_cong" Cfun1.thy "x=y ==> f[x] = f[y]"
    1.61  (fn prems =>
    1.62  	[
    1.63  	(cut_facts_tac prems 1),
    1.64 @@ -86,7 +86,7 @@
    1.65  (* additional lemma about the isomorphism between -> and Cfun               *)
    1.66  (* ------------------------------------------------------------------------ *)
    1.67  
    1.68 -val Abs_Cfun_inverse2 = prove_goal Cfun1.thy "contX(f) ==> fapp(fabs(f)) = f"
    1.69 +qed_goal "Abs_Cfun_inverse2" Cfun1.thy "contX(f) ==> fapp(fabs(f)) = f"
    1.70  (fn prems =>
    1.71  	[
    1.72  	(cut_facts_tac prems 1),
    1.73 @@ -99,7 +99,7 @@
    1.74  (* simplification of application                                            *)
    1.75  (* ------------------------------------------------------------------------ *)
    1.76  
    1.77 -val Cfunapp2 = prove_goal Cfun1.thy 
    1.78 +qed_goal "Cfunapp2" Cfun1.thy 
    1.79  	"contX(f) ==> (fabs(f))[x] = f(x)"
    1.80  (fn prems =>
    1.81  	[
    1.82 @@ -111,7 +111,7 @@
    1.83  (* beta - equality for continuous functions                                 *)
    1.84  (* ------------------------------------------------------------------------ *)
    1.85  
    1.86 -val beta_cfun = prove_goal Cfun1.thy 
    1.87 +qed_goal "beta_cfun" Cfun1.thy 
    1.88  	"contX(c1) ==> (LAM x .c1(x))[u] = c1(u)"
    1.89  (fn prems =>
    1.90  	[
     2.1 --- a/src/HOLCF/Cfun2.ML	Fri Feb 03 12:32:14 1995 +0100
     2.2 +++ b/src/HOLCF/Cfun2.ML	Tue Feb 07 11:59:32 1995 +0100
     2.3 @@ -12,7 +12,7 @@
     2.4  (* access to less_cfun in class po                                          *)
     2.5  (* ------------------------------------------------------------------------ *)
     2.6  
     2.7 -val less_cfun = prove_goal Cfun2.thy "( f1 << f2 ) = (fapp(f1) << fapp(f2))"
     2.8 +qed_goal "less_cfun" Cfun2.thy "( f1 << f2 ) = (fapp(f1) << fapp(f2))"
     2.9  (fn prems =>
    2.10  	[
    2.11  	(rtac (inst_cfun_po RS ssubst) 1),
    2.12 @@ -24,7 +24,7 @@
    2.13  (* Type 'a ->'b  is pointed                                                 *)
    2.14  (* ------------------------------------------------------------------------ *)
    2.15  
    2.16 -val minimal_cfun = prove_goalw Cfun2.thy [UU_cfun_def] "UU_cfun << f"
    2.17 +qed_goalw "minimal_cfun" Cfun2.thy [UU_cfun_def] "UU_cfun << f"
    2.18  (fn prems =>
    2.19  	[
    2.20  	(rtac (less_cfun RS ssubst) 1),
    2.21 @@ -40,7 +40,7 @@
    2.22  (* contX_fapp2 ==> monofun_fapp2 & contlub_fapp2                            *)
    2.23  (* ------------------------------------------------------------------------ *)
    2.24  
    2.25 -val contX_fapp2 = prove_goal Cfun2.thy "contX(fapp(fo))"
    2.26 +qed_goal "contX_fapp2" Cfun2.thy "contX(fapp(fo))"
    2.27  (fn prems =>
    2.28  	[
    2.29  	(res_inst_tac [("P","contX")] CollectD 1),
    2.30 @@ -72,7 +72,7 @@
    2.31  (* fapp is monotone in its 'first' argument                                 *)
    2.32  (* ------------------------------------------------------------------------ *)
    2.33  
    2.34 -val monofun_fapp1 = prove_goalw Cfun2.thy [monofun] "monofun(fapp)"
    2.35 +qed_goalw "monofun_fapp1" Cfun2.thy [monofun] "monofun(fapp)"
    2.36  (fn prems =>
    2.37  	[
    2.38  	(strip_tac 1),
    2.39 @@ -84,7 +84,7 @@
    2.40  (* monotonicity of application fapp in mixfix syntax [_]_                   *)
    2.41  (* ------------------------------------------------------------------------ *)
    2.42  
    2.43 -val monofun_cfun_fun = prove_goal Cfun2.thy  "f1 << f2 ==> f1[x] << f2[x]"
    2.44 +qed_goal "monofun_cfun_fun" Cfun2.thy  "f1 << f2 ==> f1[x] << f2[x]"
    2.45  (fn prems =>
    2.46  	[
    2.47  	(cut_facts_tac prems 1),
    2.48 @@ -101,7 +101,7 @@
    2.49  (* monotonicity of fapp in both arguments in mixfix syntax [_]_             *)
    2.50  (* ------------------------------------------------------------------------ *)
    2.51  
    2.52 -val monofun_cfun = prove_goal Cfun2.thy
    2.53 +qed_goal "monofun_cfun" Cfun2.thy
    2.54  	"[|f1<<f2;x1<<x2|] ==> f1[x1] << f2[x2]"
    2.55  (fn prems =>
    2.56  	[
    2.57 @@ -117,7 +117,7 @@
    2.58  (* use MF2 lemmas from Cont.ML                                              *)
    2.59  (* ------------------------------------------------------------------------ *)
    2.60  
    2.61 -val ch2ch_fappR = prove_goal Cfun2.thy 
    2.62 +qed_goal "ch2ch_fappR" Cfun2.thy 
    2.63   "is_chain(Y) ==> is_chain(%i. f[Y(i)])"
    2.64  (fn prems =>
    2.65  	[
    2.66 @@ -135,7 +135,7 @@
    2.67  (* use MF2 lemmas from Cont.ML                                              *)
    2.68  (* ------------------------------------------------------------------------ *)
    2.69  
    2.70 -val lub_cfun_mono = prove_goal Cfun2.thy 
    2.71 +qed_goal "lub_cfun_mono" Cfun2.thy 
    2.72  	"is_chain(F) ==> monofun(% x.lub(range(% j.F(j)[x])))"
    2.73  (fn prems =>
    2.74  	[
    2.75 @@ -151,7 +151,7 @@
    2.76  (* use MF2 lemmas from Cont.ML                                              *)
    2.77  (* ------------------------------------------------------------------------ *)
    2.78  
    2.79 -val ex_lubcfun = prove_goal Cfun2.thy
    2.80 +qed_goal "ex_lubcfun" Cfun2.thy
    2.81  	"[| is_chain(F); is_chain(Y) |] ==>\
    2.82  \		lub(range(%j. lub(range(%i. F(j)[Y(i)])))) =\
    2.83  \		lub(range(%i. lub(range(%j. F(j)[Y(i)]))))"
    2.84 @@ -169,7 +169,7 @@
    2.85  (* the lub of a chain of cont. functions is continuous                      *)
    2.86  (* ------------------------------------------------------------------------ *)
    2.87  
    2.88 -val contX_lubcfun = prove_goal Cfun2.thy 
    2.89 +qed_goal "contX_lubcfun" Cfun2.thy 
    2.90  	"is_chain(F) ==> contX(% x.lub(range(% j.F(j)[x])))"
    2.91  (fn prems =>
    2.92  	[
    2.93 @@ -188,7 +188,7 @@
    2.94  (* type 'a -> 'b is chain complete                                          *)
    2.95  (* ------------------------------------------------------------------------ *)
    2.96  
    2.97 -val lub_cfun = prove_goal Cfun2.thy 
    2.98 +qed_goal "lub_cfun" Cfun2.thy 
    2.99    "is_chain(CCF) ==> range(CCF) <<| fabs(% x.lub(range(% i.CCF(i)[x])))"
   2.100  (fn prems =>
   2.101  	[
   2.102 @@ -216,7 +216,7 @@
   2.103  is_chain(?CCF1) ==> lub(range(?CCF1)) = fabs(%x. lub(range(%i. ?CCF1(i)[x])))
   2.104  *)
   2.105  
   2.106 -val cpo_cfun = prove_goal Cfun2.thy 
   2.107 +qed_goal "cpo_cfun" Cfun2.thy 
   2.108    "is_chain(CCF::nat=>('a::pcpo->'b::pcpo)) ==> ? x. range(CCF) <<| x"
   2.109  (fn prems =>
   2.110  	[
   2.111 @@ -230,7 +230,7 @@
   2.112  (* Extensionality in 'a -> 'b                                               *)
   2.113  (* ------------------------------------------------------------------------ *)
   2.114  
   2.115 -val ext_cfun = prove_goal Cfun1.thy "(!!x. f[x] = g[x]) ==> f = g"
   2.116 +qed_goal "ext_cfun" Cfun1.thy "(!!x. f[x] = g[x]) ==> f = g"
   2.117   (fn prems =>
   2.118  	[
   2.119  	(res_inst_tac [("t","f")] (Rep_Cfun_inverse RS subst) 1),
   2.120 @@ -244,7 +244,7 @@
   2.121  (* Monotonicity of fabs                                                     *)
   2.122  (* ------------------------------------------------------------------------ *)
   2.123  
   2.124 -val semi_monofun_fabs = prove_goal Cfun2.thy 
   2.125 +qed_goal "semi_monofun_fabs" Cfun2.thy 
   2.126  	"[|contX(f);contX(g);f<<g|]==>fabs(f)<<fabs(g)"
   2.127   (fn prems =>
   2.128  	[
   2.129 @@ -260,7 +260,7 @@
   2.130  (* Extenionality wrt. << in 'a -> 'b                                        *)
   2.131  (* ------------------------------------------------------------------------ *)
   2.132  
   2.133 -val less_cfun2 = prove_goal Cfun2.thy "(!!x. f[x] << g[x]) ==> f << g"
   2.134 +qed_goal "less_cfun2" Cfun2.thy "(!!x. f[x] << g[x]) ==> f << g"
   2.135   (fn prems =>
   2.136  	[
   2.137  	(res_inst_tac [("t","f")] (Rep_Cfun_inverse RS subst) 1),
     3.1 --- a/src/HOLCF/Cfun3.ML	Fri Feb 03 12:32:14 1995 +0100
     3.2 +++ b/src/HOLCF/Cfun3.ML	Tue Feb 07 11:59:32 1995 +0100
     3.3 @@ -10,7 +10,7 @@
     3.4  (* the contlub property for fapp its 'first' argument                       *)
     3.5  (* ------------------------------------------------------------------------ *)
     3.6  
     3.7 -val contlub_fapp1 = prove_goal Cfun3.thy "contlub(fapp)"
     3.8 +qed_goal "contlub_fapp1" Cfun3.thy "contlub(fapp)"
     3.9  (fn prems =>
    3.10  	[
    3.11  	(rtac contlubI 1),
    3.12 @@ -31,7 +31,7 @@
    3.13  (* the contX property for fapp in its first argument                        *)
    3.14  (* ------------------------------------------------------------------------ *)
    3.15  
    3.16 -val contX_fapp1 = prove_goal Cfun3.thy "contX(fapp)"
    3.17 +qed_goal "contX_fapp1" Cfun3.thy "contX(fapp)"
    3.18  (fn prems =>
    3.19  	[
    3.20  	(rtac monocontlub2contX 1),
    3.21 @@ -44,7 +44,7 @@
    3.22  (* contlub, contX properties of fapp in its first argument in mixfix _[_]   *)
    3.23  (* ------------------------------------------------------------------------ *)
    3.24  
    3.25 -val contlub_cfun_fun = prove_goal Cfun3.thy 
    3.26 +qed_goal "contlub_cfun_fun" Cfun3.thy 
    3.27  "is_chain(FY) ==>\
    3.28  \ lub(range(FY))[x] = lub(range(%i.FY(i)[x]))"
    3.29  (fn prems =>
    3.30 @@ -58,7 +58,7 @@
    3.31  	]);
    3.32  
    3.33  
    3.34 -val contX_cfun_fun = prove_goal Cfun3.thy 
    3.35 +qed_goal "contX_cfun_fun" Cfun3.thy 
    3.36  "is_chain(FY) ==>\
    3.37  \ range(%i.FY(i)[x]) <<| lub(range(FY))[x]"
    3.38  (fn prems =>
    3.39 @@ -74,7 +74,7 @@
    3.40  (* contlub, contX  properties of fapp in both argument in mixfix _[_]       *)
    3.41  (* ------------------------------------------------------------------------ *)
    3.42  
    3.43 -val contlub_cfun = prove_goal Cfun3.thy 
    3.44 +qed_goal "contlub_cfun" Cfun3.thy 
    3.45  "[|is_chain(FY);is_chain(TY)|] ==>\
    3.46  \ lub(range(FY))[lub(range(TY))] = lub(range(%i.FY(i)[TY(i)]))"
    3.47  (fn prems =>
    3.48 @@ -88,7 +88,7 @@
    3.49  	(atac 1)
    3.50  	]);
    3.51  
    3.52 -val contX_cfun = prove_goal Cfun3.thy 
    3.53 +qed_goal "contX_cfun" Cfun3.thy 
    3.54  "[|is_chain(FY);is_chain(TY)|] ==>\
    3.55  \ range(%i.FY(i)[TY(i)]) <<| lub(range(FY))[lub(range(TY))]"
    3.56  (fn prems =>
    3.57 @@ -109,7 +109,7 @@
    3.58  (* contX2contX lemma for fapp                                               *)
    3.59  (* ------------------------------------------------------------------------ *)
    3.60  
    3.61 -val contX2contX_fapp = prove_goal Cfun3.thy 
    3.62 +qed_goal "contX2contX_fapp" Cfun3.thy 
    3.63  	"[|contX(%x.ft(x));contX(%x.tt(x))|] ==> contX(%x.(ft(x))[tt(x)])"
    3.64   (fn prems =>
    3.65  	[
    3.66 @@ -129,7 +129,7 @@
    3.67  (* contX2mono Lemma for %x. LAM y. c1(x,y)                                  *)
    3.68  (* ------------------------------------------------------------------------ *)
    3.69  
    3.70 -val contX2mono_LAM = prove_goal Cfun3.thy 
    3.71 +qed_goal "contX2mono_LAM" Cfun3.thy 
    3.72   "[|!x.contX(c1(x)); !y.monofun(%x.c1(x,y))|] ==>\
    3.73  \	 		monofun(%x. LAM y. c1(x,y))"
    3.74  (fn prems =>
    3.75 @@ -151,7 +151,7 @@
    3.76  (* contX2contX Lemma for %x. LAM y. c1(x,y)                                 *)
    3.77  (* ------------------------------------------------------------------------ *)
    3.78  
    3.79 -val contX2contX_LAM = prove_goal Cfun3.thy 
    3.80 +qed_goal "contX2contX_LAM" Cfun3.thy 
    3.81   "[| !x.contX(c1(x)); !y.contX(%x.c1(x,y)) |] ==> contX(%x. LAM y. c1(x,y))"
    3.82  (fn prems =>
    3.83  	[
    3.84 @@ -205,7 +205,7 @@
    3.85  (* function application _[_]  is strict in its first arguments              *)
    3.86  (* ------------------------------------------------------------------------ *)
    3.87  
    3.88 -val strict_fapp1 = prove_goal Cfun3.thy "UU[x] = UU"
    3.89 +qed_goal "strict_fapp1" Cfun3.thy "UU[x] = UU"
    3.90   (fn prems =>
    3.91  	[
    3.92  	(rtac (inst_cfun_pcpo RS ssubst) 1),
    3.93 @@ -220,7 +220,7 @@
    3.94  (* results about strictify                                                  *)
    3.95  (* ------------------------------------------------------------------------ *)
    3.96  
    3.97 -val Istrictify1 = prove_goalw Cfun3.thy [Istrictify_def]
    3.98 +qed_goalw "Istrictify1" Cfun3.thy [Istrictify_def]
    3.99  	"Istrictify(f)(UU)=UU"
   3.100   (fn prems =>
   3.101  	[
   3.102 @@ -229,7 +229,7 @@
   3.103  	(fast_tac HOL_cs 1)
   3.104  	]);
   3.105  
   3.106 -val Istrictify2 = prove_goalw Cfun3.thy [Istrictify_def]
   3.107 +qed_goalw "Istrictify2" Cfun3.thy [Istrictify_def]
   3.108  	"~x=UU ==> Istrictify(f)(x)=f[x]"
   3.109   (fn prems =>
   3.110  	[
   3.111 @@ -239,7 +239,7 @@
   3.112  	(fast_tac HOL_cs 1)
   3.113  	]);
   3.114  
   3.115 -val monofun_Istrictify1 = prove_goal Cfun3.thy "monofun(Istrictify)"
   3.116 +qed_goal "monofun_Istrictify1" Cfun3.thy "monofun(Istrictify)"
   3.117   (fn prems =>
   3.118  	[
   3.119  	(rtac monofunI 1),
   3.120 @@ -259,7 +259,7 @@
   3.121  	(rtac refl_less 1)
   3.122  	]);
   3.123  
   3.124 -val monofun_Istrictify2 = prove_goal Cfun3.thy "monofun(Istrictify(f))"
   3.125 +qed_goal "monofun_Istrictify2" Cfun3.thy "monofun(Istrictify(f))"
   3.126   (fn prems =>
   3.127  	[
   3.128  	(rtac monofunI 1),
   3.129 @@ -278,7 +278,7 @@
   3.130  	]);
   3.131  
   3.132  
   3.133 -val contlub_Istrictify1 = prove_goal Cfun3.thy "contlub(Istrictify)"
   3.134 +qed_goal "contlub_Istrictify1" Cfun3.thy "contlub(Istrictify)"
   3.135   (fn prems =>
   3.136  	[
   3.137  	(rtac contlubI 1),
   3.138 @@ -305,7 +305,7 @@
   3.139  	(rtac (refl RS allI) 1)
   3.140  	]);
   3.141  
   3.142 -val contlub_Istrictify2 = prove_goal Cfun3.thy "contlub(Istrictify(f))"
   3.143 +qed_goal "contlub_Istrictify2" Cfun3.thy "contlub(Istrictify(f))"
   3.144   (fn prems =>
   3.145  	[
   3.146  	(rtac contlubI 1),
   3.147 @@ -354,7 +354,7 @@
   3.148  	(monofun_Istrictify2 RS monocontlub2contX)); 
   3.149  
   3.150  
   3.151 -val strictify1 = prove_goalw Cfun3.thy [strictify_def]
   3.152 +qed_goalw "strictify1" Cfun3.thy [strictify_def]
   3.153  	"strictify[f][UU]=UU"
   3.154   (fn prems =>
   3.155  	[
   3.156 @@ -368,7 +368,7 @@
   3.157  	(rtac Istrictify1 1)
   3.158  	]);
   3.159  
   3.160 -val strictify2 = prove_goalw Cfun3.thy [strictify_def]
   3.161 +qed_goalw "strictify2" Cfun3.thy [strictify_def]
   3.162  	"~x=UU ==> strictify[f][x]=f[x]"
   3.163   (fn prems =>
   3.164  	[
     4.1 --- a/src/HOLCF/Cont.ML	Fri Feb 03 12:32:14 1995 +0100
     4.2 +++ b/src/HOLCF/Cont.ML	Tue Feb 07 11:59:32 1995 +0100
     4.3 @@ -12,7 +12,7 @@
     4.4  (* access to definition                                                     *)
     4.5  (* ------------------------------------------------------------------------ *)
     4.6  
     4.7 -val contlubI = prove_goalw Cont.thy [contlub]
     4.8 +qed_goalw "contlubI" Cont.thy [contlub]
     4.9  	"! Y. is_chain(Y) --> f(lub(range(Y))) = lub(range(%i. f(Y(i))))==>\
    4.10  \	 contlub(f)"
    4.11  (fn prems =>
    4.12 @@ -21,7 +21,7 @@
    4.13  	(atac 1)
    4.14  	]);
    4.15  
    4.16 -val contlubE = prove_goalw Cont.thy [contlub]
    4.17 +qed_goalw "contlubE" Cont.thy [contlub]
    4.18  	" contlub(f)==>\
    4.19  \         ! Y. is_chain(Y) --> f(lub(range(Y))) = lub(range(%i. f(Y(i))))"
    4.20  (fn prems =>
    4.21 @@ -31,7 +31,7 @@
    4.22  	]);
    4.23  
    4.24  
    4.25 -val contXI = prove_goalw Cont.thy [contX]
    4.26 +qed_goalw "contXI" Cont.thy [contX]
    4.27   "! Y. is_chain(Y) --> range(% i.f(Y(i))) <<| f(lub(range(Y))) ==> contX(f)"
    4.28  (fn prems =>
    4.29  	[
    4.30 @@ -39,7 +39,7 @@
    4.31  	(atac 1)
    4.32  	]);
    4.33  
    4.34 -val contXE = prove_goalw Cont.thy [contX]
    4.35 +qed_goalw "contXE" Cont.thy [contX]
    4.36   "contX(f) ==> ! Y. is_chain(Y) --> range(% i.f(Y(i))) <<| f(lub(range(Y)))"
    4.37  (fn prems =>
    4.38  	[
    4.39 @@ -48,7 +48,7 @@
    4.40  	]);
    4.41  
    4.42  
    4.43 -val monofunI = prove_goalw Cont.thy [monofun]
    4.44 +qed_goalw "monofunI" Cont.thy [monofun]
    4.45  	"! x y. x << y --> f(x) << f(y) ==> monofun(f)"
    4.46  (fn prems =>
    4.47  	[
    4.48 @@ -56,7 +56,7 @@
    4.49  	(atac 1)
    4.50  	]);
    4.51  
    4.52 -val monofunE = prove_goalw Cont.thy [monofun]
    4.53 +qed_goalw "monofunE" Cont.thy [monofun]
    4.54  	"monofun(f) ==> ! x y. x << y --> f(x) << f(y)"
    4.55  (fn prems =>
    4.56  	[
    4.57 @@ -73,7 +73,7 @@
    4.58  (* monotone functions map chains to chains                                  *)
    4.59  (* ------------------------------------------------------------------------ *)
    4.60  
    4.61 -val ch2ch_monofun= prove_goal Cont.thy 
    4.62 +qed_goal "ch2ch_monofun" Cont.thy 
    4.63  	"[| monofun(f); is_chain(Y) |] ==> is_chain(%i. f(Y(i)))"
    4.64  (fn prems =>
    4.65  	[
    4.66 @@ -88,7 +88,7 @@
    4.67  (* monotone functions map upper bound to upper bounds                       *)
    4.68  (* ------------------------------------------------------------------------ *)
    4.69  
    4.70 -val ub2ub_monofun = prove_goal Cont.thy 
    4.71 +qed_goal "ub2ub_monofun" Cont.thy 
    4.72   "[| monofun(f); range(Y) <| u|]  ==> range(%i.f(Y(i))) <| f(u)"
    4.73  (fn prems =>
    4.74  	[
    4.75 @@ -103,7 +103,7 @@
    4.76  (* left to right: monofun(f) & contlub(f)  ==> contX(f)                     *)
    4.77  (* ------------------------------------------------------------------------ *)
    4.78  
    4.79 -val monocontlub2contX = prove_goalw Cont.thy [contX]
    4.80 +qed_goalw "monocontlub2contX" Cont.thy [contX]
    4.81  	"[|monofun(f);contlub(f)|] ==> contX(f)"
    4.82  (fn prems =>
    4.83  	[
    4.84 @@ -120,7 +120,7 @@
    4.85  (* first a lemma about binary chains                                        *)
    4.86  (* ------------------------------------------------------------------------ *)
    4.87  
    4.88 -val binchain_contX =  prove_goal Cont.thy
    4.89 +qed_goal "binchain_contX" Cont.thy
    4.90  "[| contX(f); x << y |]  ==> range(%i. f(if(i = 0,x,y))) <<| f(y)"
    4.91  (fn prems => 
    4.92  	[
    4.93 @@ -137,7 +137,7 @@
    4.94  (* part1:         contX(f) ==> monofun(f                                    *)
    4.95  (* ------------------------------------------------------------------------ *)
    4.96  
    4.97 -val contX2mono =  prove_goalw Cont.thy [monofun]
    4.98 +qed_goalw "contX2mono" Cont.thy [monofun]
    4.99  	"contX(f) ==> monofun(f)"
   4.100  (fn prems =>
   4.101  	[
   4.102 @@ -155,7 +155,7 @@
   4.103  (* part2:         contX(f) ==>              contlub(f)                      *)
   4.104  (* ------------------------------------------------------------------------ *)
   4.105  
   4.106 -val contX2contlub = prove_goalw Cont.thy [contlub]
   4.107 +qed_goalw "contX2contlub" Cont.thy [contlub]
   4.108  	"contX(f) ==> contlub(f)"
   4.109  (fn prems =>
   4.110  	[
   4.111 @@ -171,7 +171,7 @@
   4.112  (* in both arguments                                                        *)
   4.113  (* ------------------------------------------------------------------------ *)
   4.114  
   4.115 -val ch2ch_MF2L = prove_goal Cont.thy 
   4.116 +qed_goal "ch2ch_MF2L" Cont.thy 
   4.117  "[|monofun(MF2); is_chain(F)|] ==> is_chain(%i. MF2(F(i),x))"
   4.118  (fn prems =>
   4.119  	[
   4.120 @@ -181,7 +181,7 @@
   4.121  	]);
   4.122  
   4.123  
   4.124 -val ch2ch_MF2R = prove_goal Cont.thy 
   4.125 +qed_goal "ch2ch_MF2R" Cont.thy 
   4.126  "[|monofun(MF2(f)); is_chain(Y)|] ==> is_chain(%i. MF2(f,Y(i)))"
   4.127  (fn prems =>
   4.128  	[
   4.129 @@ -190,7 +190,7 @@
   4.130  	(atac 1)
   4.131  	]);
   4.132  
   4.133 -val ch2ch_MF2LR = prove_goal Cont.thy 
   4.134 +qed_goal "ch2ch_MF2LR" Cont.thy 
   4.135  "[|monofun(MF2); !f.monofun(MF2(f)); is_chain(F); is_chain(Y)|] ==> \
   4.136  \  is_chain(%i. MF2(F(i))(Y(i)))"
   4.137   (fn prems =>
   4.138 @@ -206,7 +206,7 @@
   4.139  	]);
   4.140  
   4.141  
   4.142 -val ch2ch_lubMF2R = prove_goal Cont.thy 
   4.143 +qed_goal "ch2ch_lubMF2R" Cont.thy 
   4.144  "[|monofun(MF2::('a::po=>'b::po=>'c::pcpo));\
   4.145  \  !f.monofun(MF2(f)::('b::po=>'c::pcpo));\
   4.146  \	is_chain(F);is_chain(Y)|] ==> \
   4.147 @@ -226,7 +226,7 @@
   4.148  	]);
   4.149  
   4.150  
   4.151 -val ch2ch_lubMF2L = prove_goal Cont.thy 
   4.152 +qed_goal "ch2ch_lubMF2L" Cont.thy 
   4.153  "[|monofun(MF2::('a::po=>'b::po=>'c::pcpo));\
   4.154  \  !f.monofun(MF2(f)::('b::po=>'c::pcpo));\
   4.155  \	is_chain(F);is_chain(Y)|] ==> \
   4.156 @@ -246,7 +246,7 @@
   4.157  	]);
   4.158  
   4.159  
   4.160 -val lub_MF2_mono = prove_goal Cont.thy 
   4.161 +qed_goal "lub_MF2_mono" Cont.thy 
   4.162  "[|monofun(MF2::('a::po=>'b::po=>'c::pcpo));\
   4.163  \  !f.monofun(MF2(f)::('b::po=>'c::pcpo));\
   4.164  \	is_chain(F)|] ==> \
   4.165 @@ -266,7 +266,7 @@
   4.166  	(atac 1)
   4.167  	]);
   4.168  
   4.169 -val ex_lubMF2 = prove_goal Cont.thy 
   4.170 +qed_goal "ex_lubMF2" Cont.thy 
   4.171  "[|monofun(MF2::('a::po=>'b::po=>'c::pcpo));\
   4.172  \  !f.monofun(MF2(f)::('b::po=>'c::pcpo));\
   4.173  \	is_chain(F); is_chain(Y)|] ==> \
   4.174 @@ -305,7 +305,7 @@
   4.175  	]);
   4.176  
   4.177  
   4.178 -val diag_lubMF2_1 = prove_goal Cont.thy 
   4.179 +qed_goal "diag_lubMF2_1" Cont.thy 
   4.180  "[|monofun(MF2::('a::po=>'b::po=>'c::pcpo));\
   4.181  \  !f.monofun(MF2(f)::('b::po=>'c::pcpo));\
   4.182  \  is_chain(FY);is_chain(TY)|] ==>\
   4.183 @@ -349,7 +349,7 @@
   4.184  	(atac 1)
   4.185  	]);
   4.186  
   4.187 -val diag_lubMF2_2 = prove_goal Cont.thy 
   4.188 +qed_goal "diag_lubMF2_2" Cont.thy 
   4.189  "[|monofun(MF2::('a::po=>'b::po=>'c::pcpo));\
   4.190  \  !f.monofun(MF2(f)::('b::po=>'c::pcpo));\
   4.191  \  is_chain(FY);is_chain(TY)|] ==>\
   4.192 @@ -373,7 +373,7 @@
   4.193  (* in both arguments                                                        *)
   4.194  (* ------------------------------------------------------------------------ *)
   4.195  
   4.196 -val contlub_CF2 = prove_goal Cont.thy 
   4.197 +qed_goal "contlub_CF2" Cont.thy 
   4.198  "[|contX(CF2);!f.contX(CF2(f));is_chain(FY);is_chain(TY)|] ==>\
   4.199  \ CF2(lub(range(FY)))(lub(range(TY))) = lub(range(%i.CF2(FY(i))(TY(i))))"
   4.200   (fn prems =>
   4.201 @@ -399,7 +399,7 @@
   4.202  (* The following results are about application for functions in 'a=>'b      *)
   4.203  (* ------------------------------------------------------------------------ *)
   4.204  
   4.205 -val monofun_fun_fun = prove_goal Cont.thy 
   4.206 +qed_goal "monofun_fun_fun" Cont.thy 
   4.207  	"f1 << f2 ==> f1(x) << f2(x)"
   4.208  (fn prems =>
   4.209  	[
   4.210 @@ -407,7 +407,7 @@
   4.211  	(etac (less_fun RS iffD1 RS spec) 1)
   4.212  	]);
   4.213  
   4.214 -val monofun_fun_arg = prove_goal Cont.thy 
   4.215 +qed_goal "monofun_fun_arg" Cont.thy 
   4.216  	"[|monofun(f); x1 << x2|] ==> f(x1) << f(x2)"
   4.217  (fn prems =>
   4.218  	[
   4.219 @@ -416,7 +416,7 @@
   4.220  	(atac 1)
   4.221  	]);
   4.222  
   4.223 -val monofun_fun = prove_goal Cont.thy 
   4.224 +qed_goal "monofun_fun" Cont.thy 
   4.225  "[|monofun(f1); monofun(f2); f1 << f2; x1 << x2|] ==> f1(x1) << f2(x2)"
   4.226  (fn prems =>
   4.227  	[
   4.228 @@ -433,7 +433,7 @@
   4.229  (* continuity                                                               *)
   4.230  (* ------------------------------------------------------------------------ *)
   4.231  
   4.232 -val mono2mono_MF1L = prove_goal Cont.thy 
   4.233 +qed_goal "mono2mono_MF1L" Cont.thy 
   4.234  	"[|monofun(c1)|] ==> monofun(%x. c1(x,y))"
   4.235  (fn prems =>
   4.236  	[
   4.237 @@ -444,7 +444,7 @@
   4.238  	(atac 1)
   4.239  	]);
   4.240  
   4.241 -val contX2contX_CF1L = prove_goal Cont.thy 
   4.242 +qed_goal "contX2contX_CF1L" Cont.thy 
   4.243  	"[|contX(c1)|] ==> contX(%x. c1(x,y))"
   4.244  (fn prems =>
   4.245  	[
   4.246 @@ -465,7 +465,7 @@
   4.247  
   4.248  (*********  Note "(%x.%y.c1(x,y)) = c1" ***********)
   4.249  
   4.250 -val mono2mono_MF1L_rev = prove_goal Cont.thy
   4.251 +qed_goal "mono2mono_MF1L_rev" Cont.thy
   4.252  	"!y.monofun(%x.c1(x,y)) ==> monofun(c1)"
   4.253  (fn prems =>
   4.254  	[
   4.255 @@ -478,7 +478,7 @@
   4.256  	(atac 1)
   4.257  	]);
   4.258  
   4.259 -val contX2contX_CF1L_rev = prove_goal Cont.thy
   4.260 +qed_goal "contX2contX_CF1L_rev" Cont.thy
   4.261  	"!y.contX(%x.c1(x,y)) ==> contX(c1)"
   4.262  (fn prems =>
   4.263  	[
   4.264 @@ -504,7 +504,7 @@
   4.265  (* never used here                                                          *)
   4.266  (* ------------------------------------------------------------------------ *)
   4.267  
   4.268 -val contlub_abstraction = prove_goal Cont.thy
   4.269 +qed_goal "contlub_abstraction" Cont.thy
   4.270  "[|is_chain(Y::nat=>'a);!y.contX(%x.(c::'a=>'b=>'c)(x,y))|] ==>\
   4.271  \ (%y.lub(range(%i.c(Y(i),y)))) = (lub(range(%i.%y.c(Y(i),y))))"
   4.272   (fn prems =>
   4.273 @@ -521,7 +521,7 @@
   4.274  	]);
   4.275  
   4.276  
   4.277 -val mono2mono_app = prove_goal Cont.thy 
   4.278 +qed_goal "mono2mono_app" Cont.thy 
   4.279  "[|monofun(ft);!x.monofun(ft(x));monofun(tt)|] ==>\
   4.280  \	 monofun(%x.(ft(x))(tt(x)))"
   4.281   (fn prems =>
   4.282 @@ -539,7 +539,7 @@
   4.283  	]);
   4.284  
   4.285  
   4.286 -val contX2contlub_app = prove_goal Cont.thy 
   4.287 +qed_goal "contX2contlub_app" Cont.thy 
   4.288  "[|contX(ft);!x.contX(ft(x));contX(tt)|] ==> contlub(%x.(ft(x))(tt(x)))"
   4.289   (fn prems =>
   4.290  	[
   4.291 @@ -556,7 +556,7 @@
   4.292  	]);
   4.293  
   4.294  
   4.295 -val contX2contX_app = prove_goal Cont.thy 
   4.296 +qed_goal "contX2contX_app" Cont.thy 
   4.297  "[|contX(ft);!x.contX(ft(x));contX(tt)|] ==>\
   4.298  \	 contX(%x.(ft(x))(tt(x)))"
   4.299   (fn prems =>
   4.300 @@ -587,7 +587,7 @@
   4.301  (* The identity function is continuous                                      *)
   4.302  (* ------------------------------------------------------------------------ *)
   4.303  
   4.304 -val contX_id = prove_goal Cont.thy "contX(% x.x)"
   4.305 +qed_goal "contX_id" Cont.thy "contX(% x.x)"
   4.306   (fn prems =>
   4.307  	[
   4.308  	(rtac contXI 1),
   4.309 @@ -602,7 +602,7 @@
   4.310  (* constant functions are continuous                                        *)
   4.311  (* ------------------------------------------------------------------------ *)
   4.312  
   4.313 -val contX_const = prove_goalw Cont.thy [contX] "contX(%x.c)"
   4.314 +qed_goalw "contX_const" Cont.thy [contX] "contX(%x.c)"
   4.315   (fn prems =>
   4.316  	[
   4.317  	(strip_tac 1),
   4.318 @@ -617,7 +617,7 @@
   4.319  	]);
   4.320  
   4.321  
   4.322 -val contX2contX_app3 = prove_goal Cont.thy 
   4.323 +qed_goal "contX2contX_app3" Cont.thy 
   4.324   "[|contX(f);contX(t) |] ==> contX(%x. f(t(x)))"
   4.325   (fn prems =>
   4.326  	[
     5.1 --- a/src/HOLCF/Cprod1.ML	Fri Feb 03 12:32:14 1995 +0100
     5.2 +++ b/src/HOLCF/Cprod1.ML	Tue Feb 07 11:59:32 1995 +0100
     5.3 @@ -8,14 +8,14 @@
     5.4  
     5.5  open Cprod1;
     5.6  
     5.7 -val less_cprod1b = prove_goalw Cprod1.thy [less_cprod_def]
     5.8 +qed_goalw "less_cprod1b" Cprod1.thy [less_cprod_def]
     5.9   "less_cprod(p1,p2) = ( fst(p1) << fst(p2) & snd(p1) << snd(p2))"
    5.10   (fn prems =>
    5.11  	[
    5.12  	(rtac refl 1)
    5.13  	]);
    5.14  
    5.15 -val less_cprod2a = prove_goalw Cprod1.thy [less_cprod_def]
    5.16 +qed_goalw "less_cprod2a" Cprod1.thy [less_cprod_def]
    5.17   "less_cprod(<x,y>,<UU,UU>) ==> x = UU & y = UU"
    5.18   (fn prems =>
    5.19  	[
    5.20 @@ -32,7 +32,7 @@
    5.21  	(etac UU_I 1)
    5.22  	]);
    5.23  
    5.24 -val less_cprod2b = prove_goal Cprod1.thy 
    5.25 +qed_goal "less_cprod2b" Cprod1.thy 
    5.26   "less_cprod(p,<UU,UU>) ==> p=<UU,UU>"
    5.27   (fn prems =>
    5.28  	[
    5.29 @@ -43,7 +43,7 @@
    5.30  	(asm_simp_tac HOL_ss 1)
    5.31  	]);
    5.32  
    5.33 -val less_cprod2c = prove_goalw Cprod1.thy [less_cprod_def]
    5.34 +qed_goalw "less_cprod2c" Cprod1.thy [less_cprod_def]
    5.35   "less_cprod(<x1,y1>,<x2,y2>) ==> x1 << x2 & y1 << y2"
    5.36   (fn prems =>
    5.37  	[
    5.38 @@ -64,7 +64,7 @@
    5.39  (* less_cprod is a partial order on 'a * 'b                                 *)
    5.40  (* ------------------------------------------------------------------------ *)
    5.41  
    5.42 -val refl_less_cprod = prove_goalw Cprod1.thy [less_cprod_def] "less_cprod(p,p)"
    5.43 +qed_goalw "refl_less_cprod" Cprod1.thy [less_cprod_def] "less_cprod(p,p)"
    5.44   (fn prems =>
    5.45  	[
    5.46  	(res_inst_tac [("p","p")] PairE 1),
    5.47 @@ -73,7 +73,7 @@
    5.48  	(simp_tac Cfun_ss 1)
    5.49  	]);
    5.50  
    5.51 -val antisym_less_cprod = prove_goal Cprod1.thy 
    5.52 +qed_goal "antisym_less_cprod" Cprod1.thy 
    5.53   "[|less_cprod(p1,p2);less_cprod(p2,p1)|] ==> p1=p2"
    5.54   (fn prems =>
    5.55  	[
    5.56 @@ -91,7 +91,7 @@
    5.57  	]);
    5.58  
    5.59  
    5.60 -val trans_less_cprod = prove_goal Cprod1.thy 
    5.61 +qed_goal "trans_less_cprod" Cprod1.thy 
    5.62   "[|less_cprod(p1,p2);less_cprod(p2,p3)|] ==> less_cprod(p1,p3)"
    5.63   (fn prems =>
    5.64  	[
     6.1 --- a/src/HOLCF/Cprod2.ML	Fri Feb 03 12:32:14 1995 +0100
     6.2 +++ b/src/HOLCF/Cprod2.ML	Tue Feb 07 11:59:32 1995 +0100
     6.3 @@ -8,7 +8,7 @@
     6.4  
     6.5  open Cprod2;
     6.6  
     6.7 -val less_cprod3a = prove_goal Cprod2.thy 
     6.8 +qed_goal "less_cprod3a" Cprod2.thy 
     6.9  	"p1=<UU,UU> ==> p1 << p2"
    6.10   (fn prems =>
    6.11  	[
    6.12 @@ -22,7 +22,7 @@
    6.13  	(rtac minimal 1)
    6.14  	]);
    6.15  
    6.16 -val less_cprod3b = prove_goal Cprod2.thy
    6.17 +qed_goal "less_cprod3b" Cprod2.thy
    6.18   "(p1 << p2) = (fst(p1)<<fst(p2) & snd(p1)<<snd(p2))"
    6.19   (fn prems =>
    6.20  	[
    6.21 @@ -30,7 +30,7 @@
    6.22  	(rtac less_cprod1b 1)
    6.23  	]);
    6.24  
    6.25 -val less_cprod4a = prove_goal Cprod2.thy 
    6.26 +qed_goal "less_cprod4a" Cprod2.thy 
    6.27  	"<x1,x2> << <UU,UU> ==> x1=UU & x2=UU"
    6.28   (fn prems =>
    6.29  	[
    6.30 @@ -39,7 +39,7 @@
    6.31  	(etac (inst_cprod_po RS subst) 1)
    6.32  	]);
    6.33  
    6.34 -val less_cprod4b = prove_goal Cprod2.thy 
    6.35 +qed_goal "less_cprod4b" Cprod2.thy 
    6.36  	"p << <UU,UU> ==> p = <UU,UU>"
    6.37  (fn prems =>
    6.38  	[
    6.39 @@ -48,7 +48,7 @@
    6.40  	(etac (inst_cprod_po RS subst) 1)
    6.41  	]);
    6.42  
    6.43 -val less_cprod4c = prove_goal Cprod2.thy
    6.44 +qed_goal "less_cprod4c" Cprod2.thy
    6.45   " <xa,ya> << <x,y> ==> xa<<x & ya << y"
    6.46  (fn prems =>
    6.47  	[
    6.48 @@ -62,7 +62,7 @@
    6.49  (* type cprod is pointed                                                    *)
    6.50  (* ------------------------------------------------------------------------ *)
    6.51  
    6.52 -val minimal_cprod = prove_goal Cprod2.thy  "<UU,UU><<p"
    6.53 +qed_goal "minimal_cprod" Cprod2.thy  "<UU,UU><<p"
    6.54  (fn prems =>
    6.55  	[
    6.56  	(rtac less_cprod3a 1),
    6.57 @@ -73,7 +73,7 @@
    6.58  (* Pair <_,_>  is monotone in both arguments                                *)
    6.59  (* ------------------------------------------------------------------------ *)
    6.60  
    6.61 -val monofun_pair1 = prove_goalw Cprod2.thy [monofun] "monofun(Pair)"
    6.62 +qed_goalw "monofun_pair1" Cprod2.thy [monofun] "monofun(Pair)"
    6.63   (fn prems =>
    6.64  	[
    6.65  	(strip_tac 1),
    6.66 @@ -84,7 +84,7 @@
    6.67  	(asm_simp_tac Cfun_ss 1)
    6.68  	]);
    6.69  
    6.70 -val monofun_pair2 = prove_goalw Cprod2.thy [monofun] "monofun(Pair(x))"
    6.71 +qed_goalw "monofun_pair2" Cprod2.thy [monofun] "monofun(Pair(x))"
    6.72   (fn prems =>
    6.73  	[
    6.74  	(strip_tac 1),
    6.75 @@ -93,7 +93,7 @@
    6.76  	(asm_simp_tac Cfun_ss 1)
    6.77  	]);
    6.78  
    6.79 -val monofun_pair = prove_goal Cprod2.thy 
    6.80 +qed_goal "monofun_pair" Cprod2.thy 
    6.81   "[|x1<<x2; y1<<y2|] ==> <x1,y1> << <x2,y2>"
    6.82   (fn prems =>
    6.83  	[
    6.84 @@ -110,7 +110,7 @@
    6.85  (* fst and snd are monotone                                                 *)
    6.86  (* ------------------------------------------------------------------------ *)
    6.87  
    6.88 -val monofun_fst = prove_goalw Cprod2.thy [monofun] "monofun(fst)"
    6.89 +qed_goalw "monofun_fst" Cprod2.thy [monofun] "monofun(fst)"
    6.90   (fn prems =>
    6.91  	[
    6.92  	(strip_tac 1),
    6.93 @@ -122,7 +122,7 @@
    6.94  	(etac (less_cprod4c RS conjunct1) 1)
    6.95  	]);
    6.96  
    6.97 -val monofun_snd = prove_goalw Cprod2.thy [monofun] "monofun(snd)"
    6.98 +qed_goalw "monofun_snd" Cprod2.thy [monofun] "monofun(snd)"
    6.99   (fn prems =>
   6.100  	[
   6.101  	(strip_tac 1),
   6.102 @@ -138,7 +138,7 @@
   6.103  (* the type 'a * 'b is a cpo                                                *)
   6.104  (* ------------------------------------------------------------------------ *)
   6.105  
   6.106 -val lub_cprod = prove_goal Cprod2.thy 
   6.107 +qed_goal "lub_cprod" Cprod2.thy 
   6.108  " is_chain(S) ==> range(S) <<| \
   6.109  \   < lub(range(%i.fst(S(i)))),lub(range(%i.snd(S(i))))> "
   6.110   (fn prems =>
   6.111 @@ -170,7 +170,7 @@
   6.112  (*  <lub(range(%i. fst(?S1(i)))), lub(range(%i. snd(?S1(i))))>"        *)
   6.113  
   6.114  
   6.115 -val cpo_cprod = prove_goal Cprod2.thy 
   6.116 +qed_goal "cpo_cprod" Cprod2.thy 
   6.117  	"is_chain(S::nat=>'a*'b)==>? x.range(S)<<| x"
   6.118  (fn prems =>
   6.119  	[
     7.1 --- a/src/HOLCF/Cprod3.ML	Fri Feb 03 12:32:14 1995 +0100
     7.2 +++ b/src/HOLCF/Cprod3.ML	Tue Feb 07 11:59:32 1995 +0100
     7.3 @@ -12,7 +12,7 @@
     7.4  (* continuity of <_,_> , fst, snd                                           *)
     7.5  (* ------------------------------------------------------------------------ *)
     7.6  
     7.7 -val Cprod3_lemma1 = prove_goal Cprod3.thy 
     7.8 +qed_goal "Cprod3_lemma1" Cprod3.thy 
     7.9  "is_chain(Y::(nat=>'a)) ==>\
    7.10  \ <lub(range(Y)),(x::'b)> =\
    7.11  \ <lub(range(%i. fst(<Y(i),x>))),lub(range(%i. snd(<Y(i),x>)))>"
    7.12 @@ -33,7 +33,7 @@
    7.13  	(rtac (lub_const RS thelubI) 1)
    7.14  	]);
    7.15  
    7.16 -val contlub_pair1 = prove_goal Cprod3.thy "contlub(Pair)"
    7.17 +qed_goal "contlub_pair1" Cprod3.thy "contlub(Pair)"
    7.18   (fn prems =>
    7.19  	[
    7.20  	(rtac contlubI 1),
    7.21 @@ -49,7 +49,7 @@
    7.22  	(etac Cprod3_lemma1 1)
    7.23  	]);
    7.24  
    7.25 -val Cprod3_lemma2 = prove_goal Cprod3.thy 
    7.26 +qed_goal "Cprod3_lemma2" Cprod3.thy 
    7.27  "is_chain(Y::(nat=>'a)) ==>\
    7.28  \ <(x::'b),lub(range(Y))> =\
    7.29  \ <lub(range(%i. fst(<x,Y(i)>))),lub(range(%i. snd(<x,Y(i)>)))>"
    7.30 @@ -69,7 +69,7 @@
    7.31  	(simp_tac pair_ss 1)
    7.32  	]);
    7.33  
    7.34 -val contlub_pair2 = prove_goal Cprod3.thy "contlub(Pair(x))"
    7.35 +qed_goal "contlub_pair2" Cprod3.thy "contlub(Pair(x))"
    7.36   (fn prems =>
    7.37  	[
    7.38  	(rtac contlubI 1),
    7.39 @@ -80,7 +80,7 @@
    7.40  	(etac Cprod3_lemma2 1)
    7.41  	]);
    7.42  
    7.43 -val contX_pair1 = prove_goal Cprod3.thy "contX(Pair)"
    7.44 +qed_goal "contX_pair1" Cprod3.thy "contX(Pair)"
    7.45  (fn prems =>
    7.46  	[
    7.47  	(rtac monocontlub2contX 1),
    7.48 @@ -88,7 +88,7 @@
    7.49  	(rtac contlub_pair1 1)
    7.50  	]);
    7.51  
    7.52 -val contX_pair2 = prove_goal Cprod3.thy "contX(Pair(x))"
    7.53 +qed_goal "contX_pair2" Cprod3.thy "contX(Pair(x))"
    7.54  (fn prems =>
    7.55  	[
    7.56  	(rtac monocontlub2contX 1),
    7.57 @@ -96,7 +96,7 @@
    7.58  	(rtac contlub_pair2 1)
    7.59  	]);
    7.60  
    7.61 -val contlub_fst = prove_goal Cprod3.thy "contlub(fst)"
    7.62 +qed_goal "contlub_fst" Cprod3.thy "contlub(fst)"
    7.63   (fn prems =>
    7.64  	[
    7.65  	(rtac contlubI 1),
    7.66 @@ -106,7 +106,7 @@
    7.67  	(simp_tac pair_ss 1)
    7.68  	]);
    7.69  
    7.70 -val contlub_snd = prove_goal Cprod3.thy "contlub(snd)"
    7.71 +qed_goal "contlub_snd" Cprod3.thy "contlub(snd)"
    7.72   (fn prems =>
    7.73  	[
    7.74  	(rtac contlubI 1),
    7.75 @@ -116,7 +116,7 @@
    7.76  	(simp_tac pair_ss 1)
    7.77  	]);
    7.78  
    7.79 -val contX_fst = prove_goal Cprod3.thy "contX(fst)"
    7.80 +qed_goal "contX_fst" Cprod3.thy "contX(fst)"
    7.81  (fn prems =>
    7.82  	[
    7.83  	(rtac monocontlub2contX 1),
    7.84 @@ -124,7 +124,7 @@
    7.85  	(rtac contlub_fst 1)
    7.86  	]);
    7.87  
    7.88 -val contX_snd = prove_goal Cprod3.thy "contX(snd)"
    7.89 +qed_goal "contX_snd" Cprod3.thy "contX(snd)"
    7.90  (fn prems =>
    7.91  	[
    7.92  	(rtac monocontlub2contX 1),
    7.93 @@ -143,7 +143,7 @@
    7.94  (* convert all lemmas to the continuous versions                            *)
    7.95  (* ------------------------------------------------------------------------ *)
    7.96  
    7.97 -val beta_cfun_cprod = prove_goalw Cprod3.thy [cpair_def]
    7.98 +qed_goalw "beta_cfun_cprod" Cprod3.thy [cpair_def]
    7.99  	"(LAM x y.<x,y>)[a][b] = <a,b>"
   7.100   (fn prems =>
   7.101  	[
   7.102 @@ -157,7 +157,7 @@
   7.103  	(rtac refl 1)
   7.104  	]);
   7.105  
   7.106 -val inject_cpair = prove_goalw Cprod3.thy [cpair_def]
   7.107 +qed_goalw "inject_cpair" Cprod3.thy [cpair_def]
   7.108  	" (a#b)=(aa#ba)  ==> a=aa & b=ba"
   7.109   (fn prems =>
   7.110  	[
   7.111 @@ -168,7 +168,7 @@
   7.112  	(fast_tac HOL_cs 1)
   7.113  	]);
   7.114  
   7.115 -val inst_cprod_pcpo2 = prove_goalw Cprod3.thy [cpair_def] "UU = (UU#UU)"
   7.116 +qed_goalw "inst_cprod_pcpo2" Cprod3.thy [cpair_def] "UU = (UU#UU)"
   7.117   (fn prems =>
   7.118  	[
   7.119  	(rtac sym 1),
   7.120 @@ -178,7 +178,7 @@
   7.121  	(rtac inst_cprod_pcpo 1)
   7.122  	]);
   7.123  
   7.124 -val defined_cpair_rev = prove_goal Cprod3.thy
   7.125 +qed_goal "defined_cpair_rev" Cprod3.thy
   7.126   "(a#b) = UU ==> a = UU & b = UU"
   7.127   (fn prems =>
   7.128  	[
   7.129 @@ -187,7 +187,7 @@
   7.130  	(etac inject_cpair 1)
   7.131  	]);
   7.132  
   7.133 -val Exh_Cprod2 = prove_goalw Cprod3.thy [cpair_def]
   7.134 +qed_goalw "Exh_Cprod2" Cprod3.thy [cpair_def]
   7.135  	"? a b. z=(a#b) "
   7.136   (fn prems =>
   7.137  	[
   7.138 @@ -197,7 +197,7 @@
   7.139  	(etac (beta_cfun_cprod RS ssubst) 1)
   7.140  	]);
   7.141  
   7.142 -val cprodE = prove_goalw Cprod3.thy [cpair_def]
   7.143 +qed_goalw "cprodE" Cprod3.thy [cpair_def]
   7.144  "[|!!x y. [|p=(x#y) |] ==> Q|] ==> Q"
   7.145   (fn prems =>
   7.146  	[
   7.147 @@ -206,7 +206,7 @@
   7.148  	(etac (beta_cfun_cprod RS ssubst) 1)
   7.149  	]);
   7.150  
   7.151 -val cfst2 = prove_goalw Cprod3.thy [cfst_def,cpair_def] 
   7.152 +qed_goalw "cfst2" Cprod3.thy [cfst_def,cpair_def] 
   7.153  	"cfst[x#y]=x"
   7.154   (fn prems =>
   7.155  	[
   7.156 @@ -217,7 +217,7 @@
   7.157  	(simp_tac pair_ss  1)
   7.158  	]);
   7.159  
   7.160 -val csnd2 = prove_goalw Cprod3.thy [csnd_def,cpair_def] 
   7.161 +qed_goalw "csnd2" Cprod3.thy [csnd_def,cpair_def] 
   7.162  	"csnd[x#y]=y"
   7.163   (fn prems =>
   7.164  	[
   7.165 @@ -228,7 +228,7 @@
   7.166  	(simp_tac pair_ss  1)
   7.167  	]);
   7.168  
   7.169 -val surjective_pairing_Cprod2 = prove_goalw Cprod3.thy 
   7.170 +qed_goalw "surjective_pairing_Cprod2" Cprod3.thy 
   7.171  	[cfst_def,csnd_def,cpair_def] "(cfst[p] # csnd[p]) = p"
   7.172   (fn prems =>
   7.173  	[
   7.174 @@ -241,7 +241,7 @@
   7.175  	]);
   7.176  
   7.177  
   7.178 -val less_cprod5b = prove_goalw Cprod3.thy [cfst_def,csnd_def,cpair_def]
   7.179 +qed_goalw "less_cprod5b" Cprod3.thy [cfst_def,csnd_def,cpair_def]
   7.180   " (p1 << p2) = (cfst[p1]<<cfst[p2] & csnd[p1]<<csnd[p2])"
   7.181   (fn prems =>
   7.182  	[
   7.183 @@ -256,7 +256,7 @@
   7.184  	(rtac less_cprod3b 1)
   7.185  	]);
   7.186  
   7.187 -val less_cprod5c = prove_goalw Cprod3.thy [cfst_def,csnd_def,cpair_def]
   7.188 +qed_goalw "less_cprod5c" Cprod3.thy [cfst_def,csnd_def,cpair_def]
   7.189   "xa#ya << x#y ==>xa<<x & ya << y"
   7.190   (fn prems =>
   7.191  	[
   7.192 @@ -268,7 +268,7 @@
   7.193  	]);
   7.194  
   7.195  
   7.196 -val lub_cprod2 = prove_goalw Cprod3.thy [cfst_def,csnd_def,cpair_def]
   7.197 +qed_goalw "lub_cprod2" Cprod3.thy [cfst_def,csnd_def,cpair_def]
   7.198  "[|is_chain(S)|] ==> range(S) <<| \
   7.199  \ (lub(range(%i.cfst[S(i)])) # lub(range(%i.csnd[S(i)])))"
   7.200   (fn prems =>
   7.201 @@ -287,7 +287,7 @@
   7.202  (*  "is_chain(?S1) ==> lub(range(?S1)) =                         *)
   7.203  (*    lub(range(%i. cfst[?S1(i)]))#lub(range(%i. csnd[?S1(i)]))" *)
   7.204  
   7.205 -val csplit2 = prove_goalw Cprod3.thy [csplit_def]
   7.206 +qed_goalw "csplit2" Cprod3.thy [csplit_def]
   7.207  	"csplit[f][x#y]=f[x][y]"
   7.208   (fn prems =>
   7.209  	[
   7.210 @@ -297,7 +297,7 @@
   7.211  	(simp_tac (Cfun_ss addsimps [cfst2,csnd2]) 1)
   7.212  	]);
   7.213  
   7.214 -val csplit3 = prove_goalw Cprod3.thy [csplit_def]
   7.215 +qed_goalw "csplit3" Cprod3.thy [csplit_def]
   7.216    "csplit[cpair][z]=z"
   7.217   (fn prems =>
   7.218  	[
     8.1 --- a/src/HOLCF/Dlist.ML	Fri Feb 03 12:32:14 1995 +0100
     8.2 +++ b/src/HOLCF/Dlist.ML	Tue Feb 07 11:59:32 1995 +0100
     8.3 @@ -63,7 +63,7 @@
     8.4  (* Exhaustion and elimination for dlists                                   *)
     8.5  (* ------------------------------------------------------------------------*)
     8.6  
     8.7 -val Exh_dlist = prove_goalw Dlist.thy [dcons_def,dnil_def]
     8.8 +qed_goalw "Exh_dlist" Dlist.thy [dcons_def,dnil_def]
     8.9  	"l = UU | l = dnil | (? x xl. x~=UU &xl~=UU & l = dcons[x][xl])"
    8.10   (fn prems =>
    8.11  	[
    8.12 @@ -88,7 +88,7 @@
    8.13  	]);
    8.14  
    8.15  
    8.16 -val dlistE = prove_goal Dlist.thy 
    8.17 +qed_goal "dlistE" Dlist.thy 
    8.18  "[| l=UU ==> Q; l=dnil ==> Q;!!x xl.[|l=dcons[x][xl];x~=UU;xl~=UU|]==>Q|]==>Q"
    8.19   (fn prems =>
    8.20  	[
    8.21 @@ -340,7 +340,7 @@
    8.22  (* enhance the simplifier                                                  *)
    8.23  (* ------------------------------------------------------------------------*)
    8.24  
    8.25 -val dhd2 = prove_goal Dlist.thy "xl~=UU ==> dhd[dcons[x][xl]]=x"
    8.26 +qed_goal "dhd2" Dlist.thy "xl~=UU ==> dhd[dcons[x][xl]]=x"
    8.27   (fn prems =>
    8.28  	[
    8.29  	(cut_facts_tac prems 1),
    8.30 @@ -349,7 +349,7 @@
    8.31  	(asm_simp_tac (HOLCF_ss addsimps dlist_rews) 1)
    8.32  	]);
    8.33  
    8.34 -val dtl2 = prove_goal Dlist.thy "x~=UU ==> dtl[dcons[x][xl]]=xl"
    8.35 +qed_goal "dtl2" Dlist.thy "x~=UU ==> dtl[dcons[x][xl]]=xl"
    8.36   (fn prems =>
    8.37  	[
    8.38  	(cut_facts_tac prems 1),
    8.39 @@ -446,7 +446,7 @@
    8.40  (* Co -induction for dlists                                               *)
    8.41  (* ------------------------------------------------------------------------*)
    8.42  
    8.43 -val dlist_coind_lemma = prove_goalw Dlist.thy [dlist_bisim_def] 
    8.44 +qed_goalw "dlist_coind_lemma" Dlist.thy [dlist_bisim_def] 
    8.45  "dlist_bisim(R) ==> ! p q.R(p,q) --> dlist_take(n)[p]=dlist_take(n)[q]"
    8.46   (fn prems =>
    8.47  	[
    8.48 @@ -468,7 +468,7 @@
    8.49  	(fast_tac HOL_cs 1)
    8.50  	]);
    8.51  
    8.52 -val dlist_coind = prove_goal Dlist.thy "[|dlist_bisim(R);R(p,q)|] ==> p = q"
    8.53 +qed_goal "dlist_coind" Dlist.thy "[|dlist_bisim(R);R(p,q)|] ==> p = q"
    8.54   (fn prems =>
    8.55  	[
    8.56  	(rtac dlist_take_lemma 1),
    8.57 @@ -481,7 +481,7 @@
    8.58  (* structural induction                                                    *)
    8.59  (* ------------------------------------------------------------------------*)
    8.60  
    8.61 -val dlist_finite_ind = prove_goal Dlist.thy
    8.62 +qed_goal "dlist_finite_ind" Dlist.thy
    8.63  "[|P(UU);P(dnil);\
    8.64  \  !! x l1.[|x~=UU;l1~=UU;P(l1)|] ==> P(dcons[x][l1])\
    8.65  \  |] ==> !l.P(dlist_take(n)[l])"
    8.66 @@ -506,7 +506,7 @@
    8.67  	(etac spec 1)
    8.68  	]);
    8.69  
    8.70 -val dlist_all_finite_lemma1 = prove_goal Dlist.thy
    8.71 +qed_goal "dlist_all_finite_lemma1" Dlist.thy
    8.72  "!l.dlist_take(n)[l]=UU |dlist_take(n)[l]=l"
    8.73   (fn prems =>
    8.74  	[
    8.75 @@ -523,7 +523,7 @@
    8.76  	(asm_simp_tac (HOLCF_ss addsimps dlist_rews) 1)
    8.77  	]);
    8.78  
    8.79 -val dlist_all_finite_lemma2 = prove_goal Dlist.thy "? n.dlist_take(n)[l]=l"
    8.80 +qed_goal "dlist_all_finite_lemma2" Dlist.thy "? n.dlist_take(n)[l]=l"
    8.81   (fn prems =>
    8.82  	[
    8.83  	(res_inst_tac [("Q","l=UU")] classical2 1),
    8.84 @@ -540,13 +540,13 @@
    8.85  	(rtac dlist_all_finite_lemma1 1)
    8.86  	]);
    8.87  
    8.88 -val dlist_all_finite= prove_goalw Dlist.thy [dlist_finite_def] "dlist_finite(l)"
    8.89 +qed_goalw "dlist_all_finite" Dlist.thy [dlist_finite_def] "dlist_finite(l)"
    8.90   (fn prems =>
    8.91  	[
    8.92  	(rtac  dlist_all_finite_lemma2 1)
    8.93  	]);
    8.94  
    8.95 -val dlist_ind = prove_goal Dlist.thy
    8.96 +qed_goal "dlist_ind" Dlist.thy
    8.97  "[|P(UU);P(dnil);\
    8.98  \  !! x l1.[|x~=UU;l1~=UU;P(l1)|] ==> P(dcons[x][l1])|] ==> P(l)"
    8.99   (fn prems =>
     9.1 --- a/src/HOLCF/Dnat.ML	Fri Feb 03 12:32:14 1995 +0100
     9.2 +++ b/src/HOLCF/Dnat.ML	Tue Feb 07 11:59:32 1995 +0100
     9.3 @@ -44,7 +44,7 @@
     9.4  (* Exhaustion and elimination for dnat                                     *)
     9.5  (* ------------------------------------------------------------------------*)
     9.6  
     9.7 -val Exh_dnat = prove_goalw Dnat.thy [dsucc_def,dzero_def]
     9.8 +qed_goalw "Exh_dnat" Dnat.thy [dsucc_def,dzero_def]
     9.9  	"n = UU | n = dzero | (? x . x~=UU & n = dsucc[x])"
    9.10   (fn prems =>
    9.11  	[
    9.12 @@ -63,7 +63,7 @@
    9.13  	(fast_tac HOL_cs 1)
    9.14  	]);
    9.15  
    9.16 -val dnatE = prove_goal Dnat.thy 
    9.17 +qed_goal "dnatE" Dnat.thy 
    9.18   "[| n=UU ==> Q; n=dzero ==> Q; !!x.[|n=dsucc[x];x~=UU|]==>Q|]==>Q"
    9.19   (fn prems =>
    9.20  	[
    9.21 @@ -359,7 +359,7 @@
    9.22  (* Co -induction for dnats                                                 *)
    9.23  (* ------------------------------------------------------------------------*)
    9.24  
    9.25 -val dnat_coind_lemma = prove_goalw Dnat.thy [dnat_bisim_def] 
    9.26 +qed_goalw "dnat_coind_lemma" Dnat.thy [dnat_bisim_def] 
    9.27  "dnat_bisim(R) ==> ! p q.R(p,q) --> dnat_take(n)[p]=dnat_take(n)[q]"
    9.28   (fn prems =>
    9.29  	[
    9.30 @@ -380,7 +380,7 @@
    9.31  	(fast_tac HOL_cs 1)
    9.32  	]);
    9.33  
    9.34 -val dnat_coind = prove_goal Dnat.thy "[|dnat_bisim(R);R(p,q)|] ==> p = q"
    9.35 +qed_goal "dnat_coind" Dnat.thy "[|dnat_bisim(R);R(p,q)|] ==> p = q"
    9.36   (fn prems =>
    9.37  	[
    9.38  	(rtac dnat_take_lemma 1),
    9.39 @@ -395,7 +395,7 @@
    9.40  (* ------------------------------------------------------------------------*)
    9.41  
    9.42  (* not needed any longer
    9.43 -val dnat_ind = prove_goal Dnat.thy
    9.44 +qed_goal "dnat_ind" Dnat.thy
    9.45  "[| adm(P);\
    9.46  \   P(UU);\
    9.47  \   P(dzero);\
    9.48 @@ -426,7 +426,7 @@
    9.49  	]);
    9.50  *)
    9.51  
    9.52 -val dnat_finite_ind = prove_goal Dnat.thy
    9.53 +qed_goal "dnat_finite_ind" Dnat.thy
    9.54  "[|P(UU);P(dzero);\
    9.55  \  !! s1.[|s1~=UU;P(s1)|] ==> P(dsucc[s1])\
    9.56  \  |] ==> !s.P(dnat_take(n)[s])"
    9.57 @@ -450,7 +450,7 @@
    9.58  	(etac spec 1)
    9.59  	]);
    9.60  
    9.61 -val dnat_all_finite_lemma1 = prove_goal Dnat.thy
    9.62 +qed_goal "dnat_all_finite_lemma1" Dnat.thy
    9.63  "!s.dnat_take(n)[s]=UU |dnat_take(n)[s]=s"
    9.64   (fn prems =>
    9.65  	[
    9.66 @@ -467,7 +467,7 @@
    9.67  	(asm_simp_tac (HOLCF_ss addsimps dnat_rews) 1)
    9.68  	]);
    9.69  
    9.70 -val dnat_all_finite_lemma2 = prove_goal Dnat.thy "? n.dnat_take(n)[s]=s"
    9.71 +qed_goal "dnat_all_finite_lemma2" Dnat.thy "? n.dnat_take(n)[s]=s"
    9.72   (fn prems =>
    9.73  	[
    9.74  	(res_inst_tac [("Q","s=UU")] classical2 1),
    9.75 @@ -485,7 +485,7 @@
    9.76  	]);
    9.77  
    9.78  
    9.79 -val dnat_ind = prove_goal Dnat.thy
    9.80 +qed_goal "dnat_ind" Dnat.thy
    9.81  "[|P(UU);P(dzero);\
    9.82  \  !! s1.[|s1~=UU;P(s1)|] ==> P(dsucc[s1])\
    9.83  \  |] ==> P(s)"
    9.84 @@ -499,7 +499,7 @@
    9.85  	]);
    9.86  
    9.87  
    9.88 -val dnat_flat = prove_goalw Dnat.thy [flat_def] "flat(dzero)"
    9.89 +qed_goalw "dnat_flat" Dnat.thy [flat_def] "flat(dzero)"
    9.90   (fn prems =>
    9.91  	[
    9.92  	(rtac allI 1),
    10.1 --- a/src/HOLCF/Dnat2.ML	Fri Feb 03 12:32:14 1995 +0100
    10.2 +++ b/src/HOLCF/Dnat2.ML	Tue Feb 07 11:59:32 1995 +0100
    10.3 @@ -20,21 +20,21 @@
    10.4  (* recursive  properties                                                     *)
    10.5  (* ------------------------------------------------------------------------- *)
    10.6  
    10.7 -val iterator1 = prove_goal Dnat2.thy "iterator[UU][f][x] = UU"
    10.8 +qed_goal "iterator1" Dnat2.thy "iterator[UU][f][x] = UU"
    10.9   (fn prems =>
   10.10  	[
   10.11  	(rtac (iterator_def2 RS ssubst) 1),
   10.12  	(simp_tac (HOLCF_ss addsimps dnat_when) 1)
   10.13  	]);
   10.14  
   10.15 -val iterator2 = prove_goal Dnat2.thy "iterator[dzero][f][x] = x"
   10.16 +qed_goal "iterator2" Dnat2.thy "iterator[dzero][f][x] = x"
   10.17   (fn prems =>
   10.18  	[
   10.19  	(rtac (iterator_def2 RS ssubst) 1),
   10.20  	(simp_tac (HOLCF_ss addsimps dnat_when) 1)
   10.21  	]);
   10.22  
   10.23 -val iterator3 = prove_goal Dnat2.thy 
   10.24 +qed_goal "iterator3" Dnat2.thy 
   10.25  "n~=UU ==> iterator[dsucc[n]][f][x] = f[iterator[n][f][x]]"
   10.26   (fn prems =>
   10.27  	[
    11.1 --- a/src/HOLCF/Fix.ML	Fri Feb 03 12:32:14 1995 +0100
    11.2 +++ b/src/HOLCF/Fix.ML	Tue Feb 07 11:59:32 1995 +0100
    11.3 @@ -12,13 +12,13 @@
    11.4  (* derive inductive properties of iterate from primitive recursion          *)
    11.5  (* ------------------------------------------------------------------------ *)
    11.6  
    11.7 -val iterate_0 = prove_goal Fix.thy "iterate(0,F,x) = x"
    11.8 +qed_goal "iterate_0" Fix.thy "iterate(0,F,x) = x"
    11.9   (fn prems =>
   11.10  	[
   11.11  	(resolve_tac (nat_recs iterate_def) 1)
   11.12  	]);
   11.13  
   11.14 -val iterate_Suc = prove_goal Fix.thy "iterate(Suc(n),F,x) = F[iterate(n,F,x)]"
   11.15 +qed_goal "iterate_Suc" Fix.thy "iterate(Suc(n),F,x) = F[iterate(n,F,x)]"
   11.16   (fn prems =>
   11.17  	[
   11.18  	(resolve_tac (nat_recs iterate_def) 1)
   11.19 @@ -26,7 +26,7 @@
   11.20  
   11.21  val iterate_ss = Cfun_ss addsimps [iterate_0,iterate_Suc];
   11.22  
   11.23 -val iterate_Suc2 = prove_goal Fix.thy "iterate(Suc(n),F,x) = iterate(n,F,F[x])"
   11.24 +qed_goal "iterate_Suc2" Fix.thy "iterate(Suc(n),F,x) = iterate(n,F,F[x])"
   11.25   (fn prems =>
   11.26  	[
   11.27  	(nat_ind_tac "n" 1),
   11.28 @@ -39,7 +39,7 @@
   11.29  (* This property is essential since monotonicity of iterate makes no sense  *)
   11.30  (* ------------------------------------------------------------------------ *)
   11.31  
   11.32 -val is_chain_iterate2 = prove_goalw Fix.thy [is_chain] 
   11.33 +qed_goalw "is_chain_iterate2" Fix.thy [is_chain] 
   11.34  	" x << F[x] ==> is_chain(%i.iterate(i,F,x))"
   11.35   (fn prems =>
   11.36  	[
   11.37 @@ -53,7 +53,7 @@
   11.38  	]);
   11.39  
   11.40  
   11.41 -val is_chain_iterate = prove_goal Fix.thy  
   11.42 +qed_goal "is_chain_iterate" Fix.thy  
   11.43  	"is_chain(%i.iterate(i,F,UU))"
   11.44   (fn prems =>
   11.45  	[
   11.46 @@ -68,7 +68,7 @@
   11.47  (* ------------------------------------------------------------------------ *)
   11.48  
   11.49  
   11.50 -val Ifix_eq = prove_goalw Fix.thy  [Ifix_def] "Ifix(F)=F[Ifix(F)]"
   11.51 +qed_goalw "Ifix_eq" Fix.thy  [Ifix_def] "Ifix(F)=F[Ifix(F)]"
   11.52   (fn prems =>
   11.53  	[
   11.54  	(rtac (contlub_cfun_arg RS ssubst) 1),
   11.55 @@ -92,7 +92,7 @@
   11.56  	]);
   11.57  
   11.58  
   11.59 -val Ifix_least = prove_goalw Fix.thy [Ifix_def] "F[x]=x ==> Ifix(F) << x"
   11.60 +qed_goalw "Ifix_least" Fix.thy [Ifix_def] "F[x]=x ==> Ifix(F) << x"
   11.61   (fn prems =>
   11.62  	[
   11.63  	(cut_facts_tac prems 1),
   11.64 @@ -113,7 +113,7 @@
   11.65  (* monotonicity and continuity of iterate                                   *)
   11.66  (* ------------------------------------------------------------------------ *)
   11.67  
   11.68 -val monofun_iterate = prove_goalw Fix.thy  [monofun] "monofun(iterate(i))"
   11.69 +qed_goalw "monofun_iterate" Fix.thy  [monofun] "monofun(iterate(i))"
   11.70   (fn prems =>
   11.71  	[
   11.72  	(strip_tac 1),
   11.73 @@ -134,7 +134,7 @@
   11.74  (* In this special case it is the application function fapp                 *)
   11.75  (* ------------------------------------------------------------------------ *)
   11.76  
   11.77 -val contlub_iterate = prove_goalw Fix.thy  [contlub] "contlub(iterate(i))"
   11.78 +qed_goalw "contlub_iterate" Fix.thy  [contlub] "contlub(iterate(i))"
   11.79   (fn prems =>
   11.80  	[
   11.81  	(strip_tac 1),
   11.82 @@ -165,7 +165,7 @@
   11.83  	]);
   11.84  
   11.85  
   11.86 -val contX_iterate = prove_goal Fix.thy "contX(iterate(i))"
   11.87 +qed_goal "contX_iterate" Fix.thy "contX(iterate(i))"
   11.88   (fn prems =>
   11.89  	[
   11.90  	(rtac monocontlub2contX 1),
   11.91 @@ -177,7 +177,7 @@
   11.92  (* a lemma about continuity of iterate in its third argument                *)
   11.93  (* ------------------------------------------------------------------------ *)
   11.94  
   11.95 -val monofun_iterate2 = prove_goal Fix.thy "monofun(iterate(n,F))"
   11.96 +qed_goal "monofun_iterate2" Fix.thy "monofun(iterate(n,F))"
   11.97   (fn prems =>
   11.98  	[
   11.99  	(rtac monofunI 1),
  11.100 @@ -188,7 +188,7 @@
  11.101  	(etac monofun_cfun_arg 1)
  11.102  	]);
  11.103  
  11.104 -val contlub_iterate2 = prove_goal Fix.thy "contlub(iterate(n,F))"
  11.105 +qed_goal "contlub_iterate2" Fix.thy "contlub(iterate(n,F))"
  11.106   (fn prems =>
  11.107  	[
  11.108  	(rtac contlubI 1),
  11.109 @@ -203,7 +203,7 @@
  11.110  	(etac (monofun_iterate2 RS ch2ch_monofun) 1)
  11.111  	]);
  11.112  
  11.113 -val contX_iterate2 = prove_goal Fix.thy "contX(iterate(n,F))"
  11.114 +qed_goal "contX_iterate2" Fix.thy "contX(iterate(n,F))"
  11.115   (fn prems =>
  11.116  	[
  11.117  	(rtac monocontlub2contX 1),
  11.118 @@ -215,7 +215,7 @@
  11.119  (* monotonicity and continuity of Ifix                                      *)
  11.120  (* ------------------------------------------------------------------------ *)
  11.121  
  11.122 -val monofun_Ifix = prove_goalw Fix.thy  [monofun,Ifix_def] "monofun(Ifix)"
  11.123 +qed_goalw "monofun_Ifix" Fix.thy  [monofun,Ifix_def] "monofun(Ifix)"
  11.124   (fn prems =>
  11.125  	[
  11.126  	(strip_tac 1),
  11.127 @@ -233,7 +233,7 @@
  11.128  (* be derived for lubs in this argument                                     *)
  11.129  (* ------------------------------------------------------------------------ *)
  11.130  
  11.131 -val is_chain_iterate_lub = prove_goal Fix.thy   
  11.132 +qed_goal "is_chain_iterate_lub" Fix.thy   
  11.133  "is_chain(Y) ==> is_chain(%i. lub(range(%ia. iterate(ia,Y(i),UU))))"
  11.134   (fn prems =>
  11.135  	[
  11.136 @@ -254,7 +254,7 @@
  11.137  (* chains is the essential argument which is usually derived from monot.    *)
  11.138  (* ------------------------------------------------------------------------ *)
  11.139  
  11.140 -val contlub_Ifix_lemma1 = prove_goal Fix.thy 
  11.141 +qed_goal "contlub_Ifix_lemma1" Fix.thy 
  11.142  "is_chain(Y) ==> iterate(n,lub(range(Y)),y) = lub(range(%i. iterate(n,Y(i),y)))"
  11.143   (fn prems =>
  11.144  	[
  11.145 @@ -269,7 +269,7 @@
  11.146  	]);
  11.147  
  11.148  
  11.149 -val ex_lub_iterate = prove_goal Fix.thy  "is_chain(Y) ==>\
  11.150 +qed_goal "ex_lub_iterate" Fix.thy  "is_chain(Y) ==>\
  11.151  \         lub(range(%i. lub(range(%ia. iterate(i,Y(ia),UU))))) =\
  11.152  \         lub(range(%i. lub(range(%ia. iterate(ia,Y(i),UU)))))"
  11.153   (fn prems =>
  11.154 @@ -303,7 +303,7 @@
  11.155  	]);
  11.156  
  11.157  
  11.158 -val contlub_Ifix = prove_goalw Fix.thy  [contlub,Ifix_def] "contlub(Ifix)"
  11.159 +qed_goalw "contlub_Ifix" Fix.thy  [contlub,Ifix_def] "contlub(Ifix)"
  11.160   (fn prems =>
  11.161  	[
  11.162  	(strip_tac 1),
  11.163 @@ -313,7 +313,7 @@
  11.164  	]);
  11.165  
  11.166  
  11.167 -val contX_Ifix = prove_goal Fix.thy "contX(Ifix)"
  11.168 +qed_goal "contX_Ifix" Fix.thy "contX(Ifix)"
  11.169   (fn prems =>
  11.170  	[
  11.171  	(rtac monocontlub2contX 1),
  11.172 @@ -325,14 +325,14 @@
  11.173  (* propagate properties of Ifix to its continuous counterpart               *)
  11.174  (* ------------------------------------------------------------------------ *)
  11.175  
  11.176 -val fix_eq = prove_goalw Fix.thy  [fix_def] "fix[F]=F[fix[F]]"
  11.177 +qed_goalw "fix_eq" Fix.thy  [fix_def] "fix[F]=F[fix[F]]"
  11.178   (fn prems =>
  11.179  	[
  11.180  	(asm_simp_tac (Cfun_ss addsimps [contX_Ifix]) 1),
  11.181  	(rtac Ifix_eq 1)
  11.182  	]);
  11.183  
  11.184 -val fix_least = prove_goalw Fix.thy [fix_def] "F[x]=x ==> fix[F] << x"
  11.185 +qed_goalw "fix_least" Fix.thy [fix_def] "F[x]=x ==> fix[F] << x"
  11.186   (fn prems =>
  11.187  	[
  11.188  	(cut_facts_tac prems 1),
  11.189 @@ -341,14 +341,14 @@
  11.190  	]);
  11.191  
  11.192  
  11.193 -val fix_eq2 = prove_goal Fix.thy "f == fix[F] ==> f = F[f]"
  11.194 +qed_goal "fix_eq2" Fix.thy "f == fix[F] ==> f = F[f]"
  11.195   (fn prems =>
  11.196  	[
  11.197  	(rewrite_goals_tac prems),
  11.198  	(rtac fix_eq 1)
  11.199  	]);
  11.200  
  11.201 -val fix_eq3 = prove_goal Fix.thy "f == fix[F] ==> f[x] = F[f][x]"
  11.202 +qed_goal "fix_eq3" Fix.thy "f == fix[F] ==> f[x] = F[f][x]"
  11.203   (fn prems =>
  11.204  	[
  11.205  	(rtac trans 1),
  11.206 @@ -358,7 +358,7 @@
  11.207  
  11.208  fun fix_tac3 thm i  = ((rtac trans i) THEN (rtac (thm RS fix_eq3) i)); 
  11.209  
  11.210 -val fix_eq4 = prove_goal Fix.thy "f = fix[F] ==> f = F[f]"
  11.211 +qed_goal "fix_eq4" Fix.thy "f = fix[F] ==> f = F[f]"
  11.212   (fn prems =>
  11.213  	[
  11.214  	(cut_facts_tac prems 1),
  11.215 @@ -366,7 +366,7 @@
  11.216  	(rtac fix_eq 1)
  11.217  	]);
  11.218  
  11.219 -val fix_eq5 = prove_goal Fix.thy "f = fix[F] ==> f[x] = F[f][x]"
  11.220 +qed_goal "fix_eq5" Fix.thy "f = fix[F] ==> f[x] = F[f][x]"
  11.221   (fn prems =>
  11.222  	[
  11.223  	(rtac trans 1),
  11.224 @@ -406,7 +406,7 @@
  11.225  (* ------------------------------------------------------------------------ *)
  11.226  
  11.227  
  11.228 -val Ifix_def2 = prove_goal Fix.thy "Ifix=(%x. lub(range(%i. iterate(i,x,UU))))"
  11.229 +qed_goal "Ifix_def2" Fix.thy "Ifix=(%x. lub(range(%i. iterate(i,x,UU))))"
  11.230   (fn prems =>
  11.231  	[
  11.232  	(rtac ext 1),
  11.233 @@ -418,7 +418,7 @@
  11.234  (* direct connection between fix and iteration without Ifix                 *)
  11.235  (* ------------------------------------------------------------------------ *)
  11.236  
  11.237 -val fix_def2 = prove_goalw Fix.thy [fix_def]
  11.238 +qed_goalw "fix_def2" Fix.thy [fix_def]
  11.239   "fix[F] = lub(range(%i. iterate(i,F,UU)))"
  11.240   (fn prems =>
  11.241  	[
  11.242 @@ -435,14 +435,14 @@
  11.243  (* access to definitions                                                    *)
  11.244  (* ------------------------------------------------------------------------ *)
  11.245  
  11.246 -val adm_def2 = prove_goalw Fix.thy [adm_def]
  11.247 +qed_goalw "adm_def2" Fix.thy [adm_def]
  11.248  	"adm(P) = (!Y. is_chain(Y) --> (!i.P(Y(i))) --> P(lub(range(Y))))"
  11.249   (fn prems =>
  11.250  	[
  11.251  	(rtac refl 1)
  11.252  	]);
  11.253  
  11.254 -val admw_def2 = prove_goalw Fix.thy [admw_def]
  11.255 +qed_goalw "admw_def2" Fix.thy [admw_def]
  11.256  	"admw(P) = (!F.((!n.P(iterate(n,F,UU)))-->\
  11.257  \			 P(lub(range(%i.iterate(i,F,UU))))))"
  11.258   (fn prems =>
  11.259 @@ -454,7 +454,7 @@
  11.260  (* an admissible formula is also weak admissible                            *)
  11.261  (* ------------------------------------------------------------------------ *)
  11.262  
  11.263 -val adm_impl_admw = prove_goalw  Fix.thy [admw_def] "adm(P)==>admw(P)"
  11.264 +qed_goalw "adm_impl_admw"  Fix.thy [admw_def] "adm(P)==>admw(P)"
  11.265   (fn prems =>
  11.266  	[
  11.267  	(cut_facts_tac prems 1),
  11.268 @@ -469,7 +469,7 @@
  11.269  (* fixed point induction                                                    *)
  11.270  (* ------------------------------------------------------------------------ *)
  11.271  
  11.272 -val fix_ind = prove_goal  Fix.thy  
  11.273 +qed_goal "fix_ind"  Fix.thy  
  11.274  "[| adm(P);P(UU);!!x. P(x) ==> P(F[x])|] ==> P(fix[F])"
  11.275   (fn prems =>
  11.276  	[
  11.277 @@ -491,7 +491,7 @@
  11.278  (* computational induction for weak admissible formulae                     *)
  11.279  (* ------------------------------------------------------------------------ *)
  11.280  
  11.281 -val wfix_ind = prove_goal  Fix.thy  
  11.282 +qed_goal "wfix_ind"  Fix.thy  
  11.283  "[| admw(P); !n. P(iterate(n,F,UU))|] ==> P(fix[F])"
  11.284   (fn prems =>
  11.285  	[
  11.286 @@ -507,7 +507,7 @@
  11.287  (* for chain-finite (easy) types every formula is admissible                *)
  11.288  (* ------------------------------------------------------------------------ *)
  11.289  
  11.290 -val adm_max_in_chain = prove_goalw  Fix.thy  [adm_def]
  11.291 +qed_goalw "adm_max_in_chain"  Fix.thy  [adm_def]
  11.292  "!Y. is_chain(Y::nat=>'a) --> (? n.max_in_chain(n,Y)) ==> adm(P::'a=>bool)"
  11.293   (fn prems =>
  11.294  	[
  11.295 @@ -524,7 +524,7 @@
  11.296  	]);
  11.297  
  11.298  
  11.299 -val adm_chain_finite = prove_goalw  Fix.thy  [chain_finite_def]
  11.300 +qed_goalw "adm_chain_finite"  Fix.thy  [chain_finite_def]
  11.301  	"chain_finite(x::'a) ==> adm(P::'a=>bool)"
  11.302   (fn prems =>
  11.303  	[
  11.304 @@ -536,7 +536,7 @@
  11.305  (* flat types are chain_finite                                              *)
  11.306  (* ------------------------------------------------------------------------ *)
  11.307  
  11.308 -val flat_imp_chain_finite = prove_goalw  Fix.thy  [flat_def,chain_finite_def]
  11.309 +qed_goalw "flat_imp_chain_finite"  Fix.thy  [flat_def,chain_finite_def]
  11.310  	"flat(x::'a)==>chain_finite(x::'a)"
  11.311   (fn prems =>
  11.312  	[
  11.313 @@ -576,7 +576,7 @@
  11.314  val adm_flat = flat_imp_chain_finite RS adm_chain_finite;
  11.315  (* flat(?x::?'a) ==> adm(?P::?'a => bool) *)
  11.316  
  11.317 -val flat_void = prove_goalw Fix.thy [flat_def] "flat(UU::void)"
  11.318 +qed_goalw "flat_void" Fix.thy [flat_def] "flat(UU::void)"
  11.319   (fn prems =>
  11.320  	[
  11.321  	(strip_tac 1),
  11.322 @@ -589,7 +589,7 @@
  11.323  (* a prove for embedding projection pairs is similar                        *)
  11.324  (* ------------------------------------------------------------------------ *)
  11.325  
  11.326 -val iso_strict = prove_goal  Fix.thy  
  11.327 +qed_goal "iso_strict"  Fix.thy  
  11.328  "!!f g.[|!y.f[g[y]]=(y::'b) ; !x.g[f[x]]=(x::'a) |] \
  11.329  \ ==> f[UU]=UU & g[UU]=UU"
  11.330   (fn prems =>
  11.331 @@ -606,7 +606,7 @@
  11.332  	]);
  11.333  
  11.334  
  11.335 -val isorep_defined = prove_goal Fix.thy 
  11.336 +qed_goal "isorep_defined" Fix.thy 
  11.337  	"[|!x.rep[abs[x]]=x;!y.abs[rep[y]]=y;z~=UU|] ==> rep[z]~=UU"
  11.338   (fn prems =>
  11.339  	[
  11.340 @@ -620,7 +620,7 @@
  11.341  	(atac 1)
  11.342  	]);
  11.343  
  11.344 -val isoabs_defined = prove_goal Fix.thy 
  11.345 +qed_goal "isoabs_defined" Fix.thy 
  11.346  	"[|!x.rep[abs[x]]=x;!y.abs[rep[y]]=y;z~=UU|] ==> abs[z]~=UU"
  11.347   (fn prems =>
  11.348  	[
  11.349 @@ -638,7 +638,7 @@
  11.350  (* propagation of flatness and chainfiniteness by continuous isomorphisms   *)
  11.351  (* ------------------------------------------------------------------------ *)
  11.352  
  11.353 -val chfin2chfin = prove_goalw  Fix.thy  [chain_finite_def]
  11.354 +qed_goalw "chfin2chfin"  Fix.thy  [chain_finite_def]
  11.355  "!!f g.[|chain_finite(x::'a); !y.f[g[y]]=(y::'b) ; !x.g[f[x]]=(x::'a) |] \
  11.356  \ ==> chain_finite(y::'b)"
  11.357   (fn prems =>
  11.358 @@ -661,7 +661,7 @@
  11.359  	(atac 1)
  11.360  	]);
  11.361  
  11.362 -val flat2flat = prove_goalw  Fix.thy  [flat_def]
  11.363 +qed_goalw "flat2flat"  Fix.thy  [flat_def]
  11.364  "!!f g.[|flat(x::'a); !y.f[g[y]]=(y::'b) ; !x.g[f[x]]=(x::'a) |] \
  11.365  \ ==> flat(y::'b)"
  11.366   (fn prems =>
  11.367 @@ -692,7 +692,7 @@
  11.368  (* a result about functions with flat codomain                               *)
  11.369  (* ------------------------------------------------------------------------- *)
  11.370  
  11.371 -val flat_codom = prove_goalw Fix.thy [flat_def]
  11.372 +qed_goalw "flat_codom" Fix.thy [flat_def]
  11.373  "[|flat(y::'b);f[x::'a]=(c::'b)|] ==> f[UU::'a]=(UU::'b) | (!z.f[z::'a]=c)"
  11.374   (fn prems =>
  11.375  	[
  11.376 @@ -729,7 +729,7 @@
  11.377  (* admissibility of special formulae and propagation                        *)
  11.378  (* ------------------------------------------------------------------------ *)
  11.379  
  11.380 -val adm_less = prove_goalw  Fix.thy [adm_def]
  11.381 +qed_goalw "adm_less"  Fix.thy [adm_def]
  11.382  	"[|contX(u);contX(v)|]==> adm(%x.u(x)<<v(x))"
  11.383   (fn prems =>
  11.384  	[
  11.385 @@ -749,7 +749,7 @@
  11.386  	(atac 1)
  11.387  	]);
  11.388  
  11.389 -val adm_conj = prove_goal  Fix.thy  
  11.390 +qed_goal "adm_conj"  Fix.thy  
  11.391  	"[| adm(P); adm(Q) |] ==> adm(%x.P(x)&Q(x))"
  11.392   (fn prems =>
  11.393  	[
  11.394 @@ -767,7 +767,7 @@
  11.395  	(fast_tac HOL_cs 1)
  11.396  	]);
  11.397  
  11.398 -val adm_cong = prove_goal  Fix.thy  
  11.399 +qed_goal "adm_cong"  Fix.thy  
  11.400  	"(!x. P(x) = Q(x)) ==> adm(P)=adm(Q)"
  11.401   (fn prems =>
  11.402  	[
  11.403 @@ -778,13 +778,13 @@
  11.404  	(etac spec 1)
  11.405  	]);
  11.406  
  11.407 -val adm_not_free = prove_goalw  Fix.thy [adm_def] "adm(%x.t)"
  11.408 +qed_goalw "adm_not_free"  Fix.thy [adm_def] "adm(%x.t)"
  11.409   (fn prems =>
  11.410  	[
  11.411  	(fast_tac HOL_cs 1)
  11.412  	]);
  11.413  
  11.414 -val adm_not_less = prove_goalw  Fix.thy [adm_def]
  11.415 +qed_goalw "adm_not_less"  Fix.thy [adm_def]
  11.416  	"contX(t) ==> adm(%x.~ t(x) << u)"
  11.417   (fn prems =>
  11.418  	[
  11.419 @@ -799,7 +799,7 @@
  11.420  	(atac 1)
  11.421  	]);
  11.422  
  11.423 -val adm_all = prove_goal  Fix.thy  
  11.424 +qed_goal "adm_all"  Fix.thy  
  11.425  	" !y.adm(P(y)) ==> adm(%x.!y.P(y,x))"
  11.426   (fn prems =>
  11.427  	[
  11.428 @@ -816,7 +816,7 @@
  11.429  
  11.430  val adm_all2 = (allI RS adm_all);
  11.431  
  11.432 -val adm_subst = prove_goal  Fix.thy  
  11.433 +qed_goal "adm_subst"  Fix.thy  
  11.434  	"[|contX(t); adm(P)|] ==> adm(%x.P(t(x)))"
  11.435   (fn prems =>
  11.436  	[
  11.437 @@ -834,7 +834,7 @@
  11.438  	(atac 1)
  11.439  	]);
  11.440  
  11.441 -val adm_UU_not_less = prove_goal  Fix.thy "adm(%x.~ UU << t(x))"
  11.442 +qed_goal "adm_UU_not_less"  Fix.thy "adm(%x.~ UU << t(x))"
  11.443   (fn prems =>
  11.444  	[
  11.445  	(res_inst_tac [("P2","%x.False")] (adm_cong RS iffD1) 1),
  11.446 @@ -842,7 +842,7 @@
  11.447  	(rtac adm_not_free 1)
  11.448  	]);
  11.449  
  11.450 -val adm_not_UU = prove_goalw  Fix.thy [adm_def] 
  11.451 +qed_goalw "adm_not_UU"  Fix.thy [adm_def] 
  11.452  	"contX(t)==> adm(%x.~ t(x) = UU)"
  11.453   (fn prems =>
  11.454  	[
  11.455 @@ -860,7 +860,7 @@
  11.456  	(atac 1)
  11.457  	]);
  11.458  
  11.459 -val adm_eq = prove_goal  Fix.thy 
  11.460 +qed_goal "adm_eq"  Fix.thy 
  11.461  	"[|contX(u);contX(v)|]==> adm(%x.u(x)= v(x))"
  11.462   (fn prems =>
  11.463  	[
  11.464 @@ -886,7 +886,7 @@
  11.465  (* admissibility for disjunction is hard to prove. It takes 10 Lemmas       *)
  11.466  (* ------------------------------------------------------------------------ *)
  11.467  
  11.468 -val adm_disj_lemma1 = prove_goal  Pcpo.thy 
  11.469 +qed_goal "adm_disj_lemma1"  Pcpo.thy 
  11.470  "[| is_chain(Y); !n.P(Y(n))|Q(Y(n))|]\
  11.471  \ ==> (? i.!j. i<j --> Q(Y(j))) | (!i.? j.i<j & P(Y(j)))"
  11.472   (fn prems =>
  11.473 @@ -895,7 +895,7 @@
  11.474  	(fast_tac HOL_cs 1)
  11.475  	]);
  11.476  
  11.477 -val adm_disj_lemma2 = prove_goal  Fix.thy  
  11.478 +qed_goal "adm_disj_lemma2"  Fix.thy  
  11.479  "[| adm(Q); ? X.is_chain(X) & (!n.Q(X(n))) &\
  11.480  \   lub(range(Y))=lub(range(X))|] ==> Q(lub(range(Y)))"
  11.481   (fn prems =>
  11.482 @@ -912,7 +912,7 @@
  11.483  	(atac 1)
  11.484  	]);
  11.485  
  11.486 -val adm_disj_lemma3 = prove_goal  Fix.thy
  11.487 +qed_goal "adm_disj_lemma3"  Fix.thy
  11.488  "[| is_chain(Y); ! j. i < j --> Q(Y(j)) |] ==>\
  11.489  \         is_chain(%m. if(m < Suc(i),Y(Suc(i)),Y(m)))"
  11.490   (fn prems =>
  11.491 @@ -944,7 +944,7 @@
  11.492  	(rtac refl_less 1)
  11.493  	]);
  11.494  
  11.495 -val adm_disj_lemma4 = prove_goal  Fix.thy
  11.496 +qed_goal "adm_disj_lemma4"  Fix.thy
  11.497  "[| ! j. i < j --> Q(Y(j)) |] ==>\
  11.498  \	 ! n. Q(if(n < Suc(i),Y(Suc(i)),Y(n)))"
  11.499   (fn prems =>
  11.500 @@ -982,7 +982,7 @@
  11.501  	(etac Suc_lessD 1)
  11.502  	]);
  11.503  
  11.504 -val adm_disj_lemma5 = prove_goal  Fix.thy
  11.505 +qed_goal "adm_disj_lemma5"  Fix.thy
  11.506  "[| is_chain(Y::nat=>'a); ! j. i < j --> Q(Y(j)) |] ==>\
  11.507  \         lub(range(Y)) = lub(range(%m. if(m < Suc(i),Y(Suc(i)),Y(m))))"
  11.508   (fn prems =>
  11.509 @@ -1006,7 +1006,7 @@
  11.510  	(rtac refl 1)
  11.511  	]);
  11.512  
  11.513 -val adm_disj_lemma6 = prove_goal  Fix.thy
  11.514 +qed_goal "adm_disj_lemma6"  Fix.thy
  11.515  "[| is_chain(Y::nat=>'a); ? i. ! j. i < j --> Q(Y(j)) |] ==>\
  11.516  \         ? X. is_chain(X) & (! n. Q(X(n))) & lub(range(Y)) = lub(range(X))"
  11.517   (fn prems =>
  11.518 @@ -1027,7 +1027,7 @@
  11.519  	]);
  11.520  
  11.521  
  11.522 -val adm_disj_lemma7 = prove_goal  Fix.thy 
  11.523 +qed_goal "adm_disj_lemma7"  Fix.thy 
  11.524  "[| is_chain(Y::nat=>'a); ! i. ? j. i < j & P(Y(j))  |] ==>\
  11.525  \         is_chain(%m. Y(theleast(%j. m<j & P(Y(j)))))"
  11.526   (fn prems =>
  11.527 @@ -1050,7 +1050,7 @@
  11.528  	(atac 1)
  11.529  	]);
  11.530  
  11.531 -val adm_disj_lemma8 = prove_goal  Fix.thy 
  11.532 +qed_goal "adm_disj_lemma8"  Fix.thy 
  11.533  "[| ! i. ? j. i < j & P(Y(j)) |] ==> ! m. P(Y(theleast(%j. m<j & P(Y(j)))))"
  11.534   (fn prems =>
  11.535  	[
  11.536 @@ -1061,7 +1061,7 @@
  11.537  	(etac (theleast1 RS conjunct2) 1)
  11.538  	]);
  11.539  
  11.540 -val adm_disj_lemma9 = prove_goal  Fix.thy
  11.541 +qed_goal "adm_disj_lemma9"  Fix.thy
  11.542  "[| is_chain(Y::nat=>'a); ! i. ? j. i < j & P(Y(j)) |] ==>\
  11.543  \         lub(range(Y)) = lub(range(%m. Y(theleast(%j. m<j & P(Y(j))))))"
  11.544   (fn prems =>
  11.545 @@ -1092,7 +1092,7 @@
  11.546  	(rtac lessI 1)
  11.547  	]);
  11.548  
  11.549 -val adm_disj_lemma10 = prove_goal  Fix.thy
  11.550 +qed_goal "adm_disj_lemma10"  Fix.thy
  11.551  "[| is_chain(Y::nat=>'a); ! i. ? j. i < j & P(Y(j)) |] ==>\
  11.552  \         ? X. is_chain(X) & (! n. P(X(n))) & lub(range(Y)) = lub(range(X))"
  11.553   (fn prems =>
  11.554 @@ -1112,7 +1112,7 @@
  11.555  	]);
  11.556  
  11.557  
  11.558 -val adm_disj_lemma11 = prove_goal Fix.thy
  11.559 +qed_goal "adm_disj_lemma11" Fix.thy
  11.560  "[| adm(P); is_chain(Y); ! i. ? j. i < j & P(Y(j)) |]==>P(lub(range(Y)))"
  11.561   (fn prems =>
  11.562  	[
  11.563 @@ -1122,7 +1122,7 @@
  11.564  	(atac 1)
  11.565  	]);
  11.566  
  11.567 -val adm_disj_lemma12 = prove_goal Fix.thy
  11.568 +qed_goal "adm_disj_lemma12" Fix.thy
  11.569  "[| adm(P); is_chain(Y);? i. ! j. i < j --> P(Y(j))|]==>P(lub(range(Y)))"
  11.570   (fn prems =>
  11.571  	[
  11.572 @@ -1132,7 +1132,7 @@
  11.573  	(atac 1)
  11.574  	]);
  11.575  
  11.576 -val adm_disj = prove_goal  Fix.thy  
  11.577 +qed_goal "adm_disj"  Fix.thy  
  11.578  	"[| adm(P); adm(Q) |] ==> adm(%x.P(x)|Q(x))"
  11.579   (fn prems =>
  11.580  	[
  11.581 @@ -1153,7 +1153,7 @@
  11.582  	]);
  11.583  
  11.584  
  11.585 -val adm_impl = prove_goal  Fix.thy  
  11.586 +qed_goal "adm_impl"  Fix.thy  
  11.587  	"[| adm(%x.~P(x)); adm(Q) |] ==> adm(%x.P(x)-->Q(x))"
  11.588   (fn prems =>
  11.589  	[
    12.1 --- a/src/HOLCF/Fun1.ML	Fri Feb 03 12:32:14 1995 +0100
    12.2 +++ b/src/HOLCF/Fun1.ML	Tue Feb 07 11:59:32 1995 +0100
    12.3 @@ -12,13 +12,13 @@
    12.4  (* less_fun is a partial order on 'a => 'b                                  *)
    12.5  (* ------------------------------------------------------------------------ *)
    12.6  
    12.7 -val refl_less_fun = prove_goalw Fun1.thy [less_fun_def] "less_fun(f,f)"
    12.8 +qed_goalw "refl_less_fun" Fun1.thy [less_fun_def] "less_fun(f,f)"
    12.9  (fn prems =>
   12.10  	[
   12.11  	(fast_tac (HOL_cs addSIs [refl_less]) 1)
   12.12  	]);
   12.13  
   12.14 -val antisym_less_fun = prove_goalw Fun1.thy [less_fun_def] 
   12.15 +qed_goalw "antisym_less_fun" Fun1.thy [less_fun_def] 
   12.16  	"[|less_fun(f1,f2); less_fun(f2,f1)|] ==> f1 = f2"
   12.17  (fn prems =>
   12.18  	[
   12.19 @@ -27,7 +27,7 @@
   12.20  	(fast_tac (HOL_cs addSIs [antisym_less]) 1)
   12.21  	]);
   12.22  
   12.23 -val trans_less_fun = prove_goalw Fun1.thy [less_fun_def] 
   12.24 +qed_goalw "trans_less_fun" Fun1.thy [less_fun_def] 
   12.25  	"[|less_fun(f1,f2); less_fun(f2,f3)|] ==> less_fun(f1,f3)"
   12.26  (fn prems =>
   12.27  	[
    13.1 --- a/src/HOLCF/Fun2.ML	Fri Feb 03 12:32:14 1995 +0100
    13.2 +++ b/src/HOLCF/Fun2.ML	Tue Feb 07 11:59:32 1995 +0100
    13.3 @@ -12,7 +12,7 @@
    13.4  (* Type 'a::term => 'b::pcpo is pointed                                     *)
    13.5  (* ------------------------------------------------------------------------ *)
    13.6  
    13.7 -val minimal_fun = prove_goalw  Fun2.thy [UU_fun_def] "UU_fun << f"
    13.8 +qed_goalw "minimal_fun"  Fun2.thy [UU_fun_def] "UU_fun << f"
    13.9  (fn prems =>
   13.10  	[
   13.11  	(rtac (inst_fun_po RS ssubst) 1),
   13.12 @@ -24,7 +24,7 @@
   13.13  (* make the symbol << accessible for type fun                               *)
   13.14  (* ------------------------------------------------------------------------ *)
   13.15  
   13.16 -val less_fun = prove_goal  Fun2.thy  "(f1 << f2) = (! x. f1(x) << f2(x))"
   13.17 +qed_goal "less_fun"  Fun2.thy  "(f1 << f2) = (! x. f1(x) << f2(x))"
   13.18  (fn prems =>
   13.19  	[
   13.20  	(rtac (inst_fun_po RS ssubst) 1),
   13.21 @@ -36,7 +36,7 @@
   13.22  (* chains of functions yield chains in the po range                         *)
   13.23  (* ------------------------------------------------------------------------ *)
   13.24  
   13.25 -val ch2ch_fun = prove_goal  Fun2.thy 
   13.26 +qed_goal "ch2ch_fun"  Fun2.thy 
   13.27  	"is_chain(S::nat=>('a::term => 'b::po)) ==> is_chain(% i.S(i)(x))"
   13.28  (fn prems =>
   13.29  	[
   13.30 @@ -53,7 +53,7 @@
   13.31  (* upper bounds of function chains yield upper bound in the po range        *)
   13.32  (* ------------------------------------------------------------------------ *)
   13.33  
   13.34 -val ub2ub_fun = prove_goal Fun2.thy 
   13.35 +qed_goal "ub2ub_fun" Fun2.thy 
   13.36     " range(S::nat=>('a::term => 'b::po)) <| u ==> range(%i. S(i,x)) <| u(x)"
   13.37  (fn prems =>
   13.38  	[
   13.39 @@ -70,7 +70,7 @@
   13.40  (* Type 'a::term => 'b::pcpo is chain complete                              *)
   13.41  (* ------------------------------------------------------------------------ *)
   13.42  
   13.43 -val lub_fun = prove_goal  Fun2.thy
   13.44 +qed_goal "lub_fun"  Fun2.thy
   13.45  	"is_chain(S::nat=>('a::term => 'b::pcpo)) ==> \
   13.46  \        range(S) <<| (% x.lub(range(% i.S(i)(x))))"
   13.47  (fn prems =>
   13.48 @@ -95,7 +95,7 @@
   13.49  val thelub_fun = (lub_fun RS thelubI);
   13.50  (* is_chain(?S1) ==> lub(range(?S1)) = (%x. lub(range(%i. ?S1(i,x)))) *)
   13.51  
   13.52 -val cpo_fun = prove_goal  Fun2.thy
   13.53 +qed_goal "cpo_fun"  Fun2.thy
   13.54  	"is_chain(S::nat=>('a::term => 'b::pcpo)) ==> ? x. range(S) <<| x"
   13.55  (fn prems =>
   13.56  	[
    14.1 --- a/src/HOLCF/Holcfb.ML	Fri Feb 03 12:32:14 1995 +0100
    14.2 +++ b/src/HOLCF/Holcfb.ML	Tue Feb 07 11:59:32 1995 +0100
    14.3 @@ -12,7 +12,7 @@
    14.4  (* <::nat=>nat=>bool is a well-ordering                                     *)
    14.5  (* ------------------------------------------------------------------------ *)
    14.6  
    14.7 -val well_ordering_nat = prove_goal  Nat.thy 
    14.8 +qed_goal "well_ordering_nat"  Nat.thy 
    14.9  	"!P. P(x::nat) --> (? y. P(y) & (! x. P(x) --> y <= x))"
   14.10   (fn prems =>
   14.11  	[
   14.12 @@ -40,7 +40,7 @@
   14.13  (* Lemmas for selecting the least element in a nonempty set                 *)
   14.14  (* ------------------------------------------------------------------------ *)
   14.15  
   14.16 -val theleast = prove_goalw  Holcfb.thy [theleast_def] 
   14.17 +qed_goalw "theleast"  Holcfb.thy [theleast_def] 
   14.18  "P(x) ==> P(theleast(P)) & (!x.P(x)--> theleast(P) <= x)"
   14.19   (fn prems =>
   14.20  	[
   14.21 @@ -54,7 +54,7 @@
   14.22  val theleast1= theleast RS conjunct1;
   14.23  (* ?P1(?x1) ==> ?P1(theleast(?P1)) *)
   14.24  
   14.25 -val theleast2 = prove_goal  Holcfb.thy  "P(x) ==> theleast(P) <= x"
   14.26 +qed_goal "theleast2"  Holcfb.thy  "P(x) ==> theleast(P) <= x"
   14.27   (fn prems =>
   14.28  	[
   14.29  	(rtac (theleast RS conjunct2 RS spec RS mp) 1),
   14.30 @@ -68,7 +68,7 @@
   14.31  (* ------------------------------------------------------------------------ *)
   14.32  
   14.33  
   14.34 -val de_morgan1 = prove_goal HOL.thy "(~a & ~b)=(~(a | b))"
   14.35 +qed_goal "de_morgan1" HOL.thy "(~a & ~b)=(~(a | b))"
   14.36  (fn prems =>
   14.37  	[
   14.38  	(rtac iffI 1),
   14.39 @@ -76,7 +76,7 @@
   14.40  	(fast_tac HOL_cs 1)
   14.41  	]);
   14.42  
   14.43 -val de_morgan2 = prove_goal HOL.thy "(~a | ~b)=(~(a & b))"
   14.44 +qed_goal "de_morgan2" HOL.thy "(~a | ~b)=(~(a & b))"
   14.45  (fn prems =>
   14.46  	[
   14.47  	(rtac iffI 1),
   14.48 @@ -85,7 +85,7 @@
   14.49  	]);
   14.50  
   14.51  
   14.52 -val notall2ex = prove_goal HOL.thy "(~ (!x.P(x))) = (? x.~P(x))"
   14.53 +qed_goal "notall2ex" HOL.thy "(~ (!x.P(x))) = (? x.~P(x))"
   14.54  (fn prems =>
   14.55  	[
   14.56  	(rtac iffI 1),
   14.57 @@ -93,7 +93,7 @@
   14.58  	(fast_tac HOL_cs 1)
   14.59  	]);
   14.60  
   14.61 -val notex2all = prove_goal HOL.thy "(~ (? x.P(x))) = (!x.~P(x))"
   14.62 +qed_goal "notex2all" HOL.thy "(~ (? x.P(x))) = (!x.~P(x))"
   14.63  (fn prems =>
   14.64  	[
   14.65  	(rtac iffI 1),
   14.66 @@ -102,7 +102,7 @@
   14.67  	]);
   14.68  
   14.69  
   14.70 -val selectI2 = prove_goal HOL.thy "(? x. P(x)) ==> P(@ x.P(x))"
   14.71 +qed_goal "selectI3" HOL.thy "(? x. P(x)) ==> P(@ x.P(x))"
   14.72  (fn prems =>
   14.73  	[
   14.74  	(cut_facts_tac prems 1),
   14.75 @@ -110,25 +110,25 @@
   14.76  	(etac selectI 1)
   14.77  	]);
   14.78  
   14.79 -val selectE = prove_goal HOL.thy "P(@ x.P(x)) ==> (? x. P(x))"
   14.80 +qed_goal "selectE" HOL.thy "P(@ x.P(x)) ==> (? x. P(x))"
   14.81  (fn prems =>
   14.82  	[
   14.83  	(cut_facts_tac prems 1),
   14.84  	(etac exI 1)
   14.85  	]);
   14.86  
   14.87 -val select_eq_Ex = prove_goal HOL.thy "(P(@ x.P(x))) =  (? x. P(x))"
   14.88 +qed_goal "select_eq_Ex" HOL.thy "(P(@ x.P(x))) =  (? x. P(x))"
   14.89  (fn prems =>
   14.90  	[
   14.91  	(rtac (iff RS mp  RS mp) 1),
   14.92  	(strip_tac 1),
   14.93  	(etac selectE 1),
   14.94  	(strip_tac 1),
   14.95 -	(etac selectI2 1)
   14.96 +	(etac selectI3 1)
   14.97  	]);
   14.98  
   14.99  
  14.100 -val notnotI = prove_goal HOL.thy "P ==> ~~P"
  14.101 +qed_goal "notnotI" HOL.thy "P ==> ~~P"
  14.102  (fn prems =>
  14.103  	[
  14.104  	(cut_facts_tac prems 1),
  14.105 @@ -136,7 +136,7 @@
  14.106  	]);
  14.107  
  14.108  
  14.109 -val classical2 = prove_goal HOL.thy "[|Q ==> R; ~Q ==> R|]==>R"
  14.110 +qed_goal "classical2" HOL.thy "[|Q ==> R; ~Q ==> R|]==>R"
  14.111   (fn prems =>
  14.112  	[
  14.113  	(rtac disjE 1),
  14.114 @@ -151,7 +151,7 @@
  14.115  (* [| ?P ==> ~ ?P1; ?P ==> ?P1 |] ==> ~ ?P *)
  14.116  
  14.117  
  14.118 -val nat_less_cases = prove_goal Nat.thy 
  14.119 +qed_goal "nat_less_cases" Nat.thy 
  14.120      "[| (m::nat) < n ==> P(n,m); m=n ==> P(n,m);n < m ==> P(n,m)|]==>P(n,m)"
  14.121  ( fn prems =>
  14.122  	[
    15.1 --- a/src/HOLCF/Lift1.ML	Fri Feb 03 12:32:14 1995 +0100
    15.2 +++ b/src/HOLCF/Lift1.ML	Tue Feb 07 11:59:32 1995 +0100
    15.3 @@ -6,7 +6,7 @@
    15.4  
    15.5  open Lift1;
    15.6  
    15.7 -val Exh_Lift = prove_goalw Lift1.thy [UU_lift_def,Iup_def ]
    15.8 +qed_goalw "Exh_Lift" Lift1.thy [UU_lift_def,Iup_def ]
    15.9  	"z = UU_lift | (? x. z = Iup(x))"
   15.10   (fn prems =>
   15.11  	[
   15.12 @@ -22,21 +22,21 @@
   15.13  	(atac 1)
   15.14  	]);
   15.15  
   15.16 -val inj_Abs_Lift = prove_goal Lift1.thy "inj(Abs_Lift)"
   15.17 +qed_goal "inj_Abs_Lift" Lift1.thy "inj(Abs_Lift)"
   15.18   (fn prems =>
   15.19  	[
   15.20  	(rtac inj_inverseI 1),
   15.21  	(rtac Abs_Lift_inverse 1)
   15.22  	]);
   15.23  
   15.24 -val inj_Rep_Lift = prove_goal Lift1.thy "inj(Rep_Lift)"
   15.25 +qed_goal "inj_Rep_Lift" Lift1.thy "inj(Rep_Lift)"
   15.26   (fn prems =>
   15.27  	[
   15.28  	(rtac inj_inverseI 1),
   15.29  	(rtac Rep_Lift_inverse 1)
   15.30  	]);
   15.31  
   15.32 -val inject_Iup = prove_goalw Lift1.thy [Iup_def] "Iup(x)=Iup(y) ==> x=y"
   15.33 +qed_goalw "inject_Iup" Lift1.thy [Iup_def] "Iup(x)=Iup(y) ==> x=y"
   15.34   (fn prems =>
   15.35  	[
   15.36  	(cut_facts_tac prems 1),
   15.37 @@ -45,7 +45,7 @@
   15.38  	(atac 1)
   15.39  	]);
   15.40  
   15.41 -val defined_Iup=prove_goalw Lift1.thy [Iup_def,UU_lift_def] "~ Iup(x)=UU_lift"
   15.42 +qed_goalw "defined_Iup" Lift1.thy [Iup_def,UU_lift_def] "~ Iup(x)=UU_lift"
   15.43   (fn prems =>
   15.44  	[
   15.45  	(rtac notI 1),
   15.46 @@ -56,7 +56,7 @@
   15.47  	]);
   15.48  
   15.49  
   15.50 -val liftE = prove_goal  Lift1.thy
   15.51 +qed_goal "liftE"  Lift1.thy
   15.52  	"[| p=UU_lift ==> Q; !!x. p=Iup(x)==>Q|] ==>Q"
   15.53   (fn prems =>
   15.54  	[
   15.55 @@ -66,7 +66,7 @@
   15.56  	(eresolve_tac prems 1)
   15.57  	]);
   15.58  
   15.59 -val Ilift1 = prove_goalw  Lift1.thy [Ilift_def,UU_lift_def]
   15.60 +qed_goalw "Ilift1"  Lift1.thy [Ilift_def,UU_lift_def]
   15.61  	"Ilift(f)(UU_lift)=UU"
   15.62   (fn prems =>
   15.63  	[
   15.64 @@ -75,7 +75,7 @@
   15.65  	(rtac refl 1)
   15.66  	]);
   15.67  
   15.68 -val Ilift2 = prove_goalw  Lift1.thy [Ilift_def,Iup_def]
   15.69 +qed_goalw "Ilift2"  Lift1.thy [Ilift_def,Iup_def]
   15.70  	"Ilift(f)(Iup(x))=f[x]"
   15.71   (fn prems =>
   15.72  	[
   15.73 @@ -86,7 +86,7 @@
   15.74  
   15.75  val Lift_ss = Cfun_ss addsimps [Ilift1,Ilift2];
   15.76  
   15.77 -val less_lift1a = prove_goalw  Lift1.thy [less_lift_def,UU_lift_def]
   15.78 +qed_goalw "less_lift1a"  Lift1.thy [less_lift_def,UU_lift_def]
   15.79  	"less_lift(UU_lift)(z)"
   15.80   (fn prems =>
   15.81  	[
   15.82 @@ -95,7 +95,7 @@
   15.83  	(rtac TrueI 1)
   15.84  	]);
   15.85  
   15.86 -val less_lift1b = prove_goalw  Lift1.thy [Iup_def,less_lift_def,UU_lift_def]
   15.87 +qed_goalw "less_lift1b"  Lift1.thy [Iup_def,less_lift_def,UU_lift_def]
   15.88  	"~less_lift(Iup(x),UU_lift)"
   15.89   (fn prems =>
   15.90  	[
   15.91 @@ -109,7 +109,7 @@
   15.92  	(rtac refl 1)
   15.93  	]);
   15.94  
   15.95 -val less_lift1c = prove_goalw  Lift1.thy [Iup_def,less_lift_def,UU_lift_def]
   15.96 +qed_goalw "less_lift1c"  Lift1.thy [Iup_def,less_lift_def,UU_lift_def]
   15.97  	"less_lift(Iup(x),Iup(y))=(x<<y)"
   15.98   (fn prems =>
   15.99  	[
  15.100 @@ -121,7 +121,7 @@
  15.101  	]);
  15.102  
  15.103  
  15.104 -val refl_less_lift = prove_goal  Lift1.thy "less_lift(p,p)"
  15.105 +qed_goal "refl_less_lift"  Lift1.thy "less_lift(p,p)"
  15.106   (fn prems =>
  15.107  	[
  15.108  	(res_inst_tac [("p","p")] liftE 1),
  15.109 @@ -132,7 +132,7 @@
  15.110  	(rtac refl_less 1)
  15.111  	]);
  15.112  
  15.113 -val antisym_less_lift = prove_goal  Lift1.thy 
  15.114 +qed_goal "antisym_less_lift"  Lift1.thy 
  15.115  	"[|less_lift(p1,p2);less_lift(p2,p1)|] ==> p1=p2"
  15.116   (fn prems =>
  15.117  	[
  15.118 @@ -159,7 +159,7 @@
  15.119  	(etac (less_lift1c RS iffD1) 1)
  15.120  	]);
  15.121  
  15.122 -val trans_less_lift = prove_goal  Lift1.thy 
  15.123 +qed_goal "trans_less_lift"  Lift1.thy 
  15.124  	"[|less_lift(p1,p2);less_lift(p2,p3)|] ==> less_lift(p1,p3)"
  15.125   (fn prems =>
  15.126  	[
    16.1 --- a/src/HOLCF/Lift2.ML	Fri Feb 03 12:32:14 1995 +0100
    16.2 +++ b/src/HOLCF/Lift2.ML	Tue Feb 07 11:59:32 1995 +0100
    16.3 @@ -12,7 +12,7 @@
    16.4  (* type ('a)u is pointed                                                    *)
    16.5  (* ------------------------------------------------------------------------ *)
    16.6  
    16.7 -val minimal_lift = prove_goal Lift2.thy "UU_lift << z"
    16.8 +qed_goal "minimal_lift" Lift2.thy "UU_lift << z"
    16.9   (fn prems =>
   16.10  	[
   16.11  	(rtac (inst_lift_po RS ssubst) 1),
   16.12 @@ -23,14 +23,14 @@
   16.13  (* access to less_lift in class po                                          *)
   16.14  (* ------------------------------------------------------------------------ *)
   16.15  
   16.16 -val less_lift2b = prove_goal Lift2.thy "~ Iup(x) << UU_lift"
   16.17 +qed_goal "less_lift2b" Lift2.thy "~ Iup(x) << UU_lift"
   16.18   (fn prems =>
   16.19  	[
   16.20  	(rtac (inst_lift_po RS ssubst) 1),
   16.21  	(rtac less_lift1b 1)
   16.22  	]);
   16.23  
   16.24 -val less_lift2c = prove_goal Lift2.thy "(Iup(x)<<Iup(y)) = (x<<y)"
   16.25 +qed_goal "less_lift2c" Lift2.thy "(Iup(x)<<Iup(y)) = (x<<y)"
   16.26   (fn prems =>
   16.27  	[
   16.28  	(rtac (inst_lift_po RS ssubst) 1),
   16.29 @@ -41,14 +41,14 @@
   16.30  (* Iup and Ilift are monotone                                               *)
   16.31  (* ------------------------------------------------------------------------ *)
   16.32  
   16.33 -val monofun_Iup = prove_goalw Lift2.thy [monofun] "monofun(Iup)"
   16.34 +qed_goalw "monofun_Iup" Lift2.thy [monofun] "monofun(Iup)"
   16.35   (fn prems =>
   16.36  	[
   16.37  	(strip_tac 1),
   16.38  	(etac (less_lift2c RS iffD2) 1)
   16.39  	]);
   16.40  
   16.41 -val monofun_Ilift1 = prove_goalw Lift2.thy [monofun] "monofun(Ilift)"
   16.42 +qed_goalw "monofun_Ilift1" Lift2.thy [monofun] "monofun(Ilift)"
   16.43   (fn prems =>
   16.44  	[
   16.45  	(strip_tac 1),
   16.46 @@ -60,7 +60,7 @@
   16.47  	(etac monofun_cfun_fun 1)
   16.48  	]);
   16.49  
   16.50 -val monofun_Ilift2 = prove_goalw Lift2.thy [monofun] "monofun(Ilift(f))"
   16.51 +qed_goalw "monofun_Ilift2" Lift2.thy [monofun] "monofun(Ilift(f))"
   16.52   (fn prems =>
   16.53  	[
   16.54  	(strip_tac 1),
   16.55 @@ -85,7 +85,7 @@
   16.56  (* ------------------------------------------------------------------------ *)
   16.57  
   16.58  
   16.59 -val lift_lemma1 = prove_goal Lift2.thy  "z=Iup(x) ==> Iup(Ilift(LAM x.x)(z)) = z"
   16.60 +qed_goal "lift_lemma1" Lift2.thy  "z=Iup(x) ==> Iup(Ilift(LAM x.x)(z)) = z"
   16.61   (fn prems =>
   16.62  	[
   16.63  	(cut_facts_tac prems 1),
   16.64 @@ -96,7 +96,7 @@
   16.65  (* ('a)u is a cpo                                                           *)
   16.66  (* ------------------------------------------------------------------------ *)
   16.67  
   16.68 -val lub_lift1a = prove_goal Lift2.thy 
   16.69 +qed_goal "lub_lift1a" Lift2.thy 
   16.70  "[|is_chain(Y);? i x.Y(i)=Iup(x)|] ==>\
   16.71  \ range(Y) <<| Iup(lub(range(%i.(Ilift (LAM x.x) (Y(i))))))"
   16.72   (fn prems =>
   16.73 @@ -133,7 +133,7 @@
   16.74  	(etac (monofun_Ilift2 RS ub2ub_monofun) 1)
   16.75  	]);
   16.76  
   16.77 -val lub_lift1b = prove_goal Lift2.thy 
   16.78 +qed_goal "lub_lift1b" Lift2.thy 
   16.79  "[|is_chain(Y);!i x.~Y(i)=Iup(x)|] ==>\
   16.80  \ range(Y) <<| UU_lift"
   16.81   (fn prems =>
   16.82 @@ -165,7 +165,7 @@
   16.83  (*                                     lub(range(?Y1)) = UU_lift  *)
   16.84  
   16.85  
   16.86 -val cpo_lift = prove_goal Lift2.thy 
   16.87 +qed_goal "cpo_lift" Lift2.thy 
   16.88  	"is_chain(Y::nat=>('a)u) ==> ? x.range(Y) <<|x"
   16.89   (fn prems =>
   16.90  	[
    17.1 --- a/src/HOLCF/Lift3.ML	Fri Feb 03 12:32:14 1995 +0100
    17.2 +++ b/src/HOLCF/Lift3.ML	Tue Feb 07 11:59:32 1995 +0100
    17.3 @@ -12,14 +12,14 @@
    17.4  (* some lemmas restated for class pcpo                                      *)
    17.5  (* ------------------------------------------------------------------------ *)
    17.6  
    17.7 -val less_lift3b = prove_goal Lift3.thy "~ Iup(x) << UU"
    17.8 +qed_goal "less_lift3b" Lift3.thy "~ Iup(x) << UU"
    17.9   (fn prems =>
   17.10  	[
   17.11  	(rtac (inst_lift_pcpo RS ssubst) 1),
   17.12  	(rtac less_lift2b 1)
   17.13  	]);
   17.14  
   17.15 -val defined_Iup2 = prove_goal Lift3.thy "~ Iup(x) = UU"
   17.16 +qed_goal "defined_Iup2" Lift3.thy "~ Iup(x) = UU"
   17.17   (fn prems =>
   17.18  	[
   17.19  	(rtac (inst_lift_pcpo RS ssubst) 1),
   17.20 @@ -30,7 +30,7 @@
   17.21  (* continuity for Iup                                                       *)
   17.22  (* ------------------------------------------------------------------------ *)
   17.23  
   17.24 -val contlub_Iup = prove_goal Lift3.thy "contlub(Iup)"
   17.25 +qed_goal "contlub_Iup" Lift3.thy "contlub(Iup)"
   17.26   (fn prems =>
   17.27  	[
   17.28  	(rtac contlubI 1),
   17.29 @@ -47,7 +47,7 @@
   17.30  	(asm_simp_tac Lift_ss 1)
   17.31  	]);
   17.32  
   17.33 -val contX_Iup = prove_goal Lift3.thy "contX(Iup)"
   17.34 +qed_goal "contX_Iup" Lift3.thy "contX(Iup)"
   17.35   (fn prems =>
   17.36  	[
   17.37  	(rtac monocontlub2contX 1),
   17.38 @@ -60,7 +60,7 @@
   17.39  (* continuity for Ilift                                                     *)
   17.40  (* ------------------------------------------------------------------------ *)
   17.41  
   17.42 -val contlub_Ilift1 = prove_goal Lift3.thy "contlub(Ilift)"
   17.43 +qed_goal "contlub_Ilift1" Lift3.thy "contlub(Ilift)"
   17.44   (fn prems =>
   17.45  	[
   17.46  	(rtac contlubI 1),
   17.47 @@ -77,7 +77,7 @@
   17.48  	]);
   17.49  
   17.50  
   17.51 -val contlub_Ilift2 = prove_goal Lift3.thy "contlub(Ilift(f))"
   17.52 +qed_goal "contlub_Ilift2" Lift3.thy "contlub(Ilift(f))"
   17.53   (fn prems =>
   17.54  	[
   17.55  	(rtac contlubI 1),
   17.56 @@ -124,7 +124,7 @@
   17.57  	(atac 1)
   17.58  	]);
   17.59  
   17.60 -val contX_Ilift1 = prove_goal Lift3.thy "contX(Ilift)"
   17.61 +qed_goal "contX_Ilift1" Lift3.thy "contX(Ilift)"
   17.62   (fn prems =>
   17.63  	[
   17.64  	(rtac monocontlub2contX 1),
   17.65 @@ -132,7 +132,7 @@
   17.66  	(rtac contlub_Ilift1 1)
   17.67  	]);
   17.68  
   17.69 -val contX_Ilift2 = prove_goal Lift3.thy "contX(Ilift(f))"
   17.70 +qed_goal "contX_Ilift2" Lift3.thy "contX(Ilift(f))"
   17.71   (fn prems =>
   17.72  	[
   17.73  	(rtac monocontlub2contX 1),
   17.74 @@ -145,7 +145,7 @@
   17.75  (* continuous versions of lemmas for ('a)u                                  *)
   17.76  (* ------------------------------------------------------------------------ *)
   17.77  
   17.78 -val Exh_Lift1 = prove_goalw Lift3.thy [up_def] "z = UU | (? x. z = up[x])"
   17.79 +qed_goalw "Exh_Lift1" Lift3.thy [up_def] "z = UU | (? x. z = up[x])"
   17.80   (fn prems =>
   17.81  	[
   17.82  	(simp_tac (Lift_ss addsimps [contX_Iup]) 1),
   17.83 @@ -153,7 +153,7 @@
   17.84  	(rtac Exh_Lift 1)
   17.85  	]);
   17.86  
   17.87 -val inject_up = prove_goalw Lift3.thy [up_def] "up[x]=up[y] ==> x=y"
   17.88 +qed_goalw "inject_up" Lift3.thy [up_def] "up[x]=up[y] ==> x=y"
   17.89   (fn prems =>
   17.90  	[
   17.91  	(cut_facts_tac prems 1),
   17.92 @@ -163,14 +163,14 @@
   17.93  	(simp_tac (Lift_ss addsimps [contX_Iup]) 1)
   17.94  	]);
   17.95  
   17.96 -val defined_up = prove_goalw Lift3.thy [up_def] "~ up[x]=UU"
   17.97 +qed_goalw "defined_up" Lift3.thy [up_def] "~ up[x]=UU"
   17.98   (fn prems =>
   17.99  	[
  17.100  	(simp_tac (Lift_ss addsimps [contX_Iup]) 1),
  17.101  	(rtac defined_Iup2 1)
  17.102  	]);
  17.103  
  17.104 -val liftE1 = prove_goalw Lift3.thy [up_def] 
  17.105 +qed_goalw "liftE1" Lift3.thy [up_def] 
  17.106  	"[| p=UU ==> Q; !!x. p=up[x]==>Q|] ==>Q"
  17.107   (fn prems =>
  17.108  	[
  17.109 @@ -182,7 +182,7 @@
  17.110  	]);
  17.111  
  17.112  
  17.113 -val lift1 = prove_goalw Lift3.thy [up_def,lift_def] "lift[f][UU]=UU"
  17.114 +qed_goalw "lift1" Lift3.thy [up_def,lift_def] "lift[f][UU]=UU"
  17.115   (fn prems =>
  17.116  	[
  17.117  	(rtac (inst_lift_pcpo RS ssubst) 1),
  17.118 @@ -195,7 +195,7 @@
  17.119  	(simp_tac (Lift_ss addsimps [contX_Iup,contX_Ilift1,contX_Ilift2]) 1)
  17.120  	]);
  17.121  
  17.122 -val lift2 = prove_goalw Lift3.thy [up_def,lift_def] "lift[f][up[x]]=f[x]"
  17.123 +qed_goalw "lift2" Lift3.thy [up_def,lift_def] "lift[f][up[x]]=f[x]"
  17.124   (fn prems =>
  17.125  	[
  17.126  	(rtac (beta_cfun RS ssubst) 1),
  17.127 @@ -208,14 +208,14 @@
  17.128  	(simp_tac (Lift_ss addsimps [contX_Iup,contX_Ilift1,contX_Ilift2]) 1)
  17.129  	]);
  17.130  
  17.131 -val less_lift4b = prove_goalw Lift3.thy [up_def,lift_def] "~ up[x] << UU"
  17.132 +qed_goalw "less_lift4b" Lift3.thy [up_def,lift_def] "~ up[x] << UU"
  17.133   (fn prems =>
  17.134  	[
  17.135  	(simp_tac (Lift_ss addsimps [contX_Iup]) 1),
  17.136  	(rtac less_lift3b 1)
  17.137  	]);
  17.138  
  17.139 -val less_lift4c = prove_goalw Lift3.thy [up_def,lift_def]
  17.140 +qed_goalw "less_lift4c" Lift3.thy [up_def,lift_def]
  17.141  	 "(up[x]<<up[y]) = (x<<y)"
  17.142   (fn prems =>
  17.143  	[
  17.144 @@ -223,7 +223,7 @@
  17.145  	(rtac less_lift2c 1)
  17.146  	]);
  17.147  
  17.148 -val thelub_lift2a = prove_goalw Lift3.thy [up_def,lift_def] 
  17.149 +qed_goalw "thelub_lift2a" Lift3.thy [up_def,lift_def] 
  17.150  "[| is_chain(Y); ? i x. Y(i) = up[x] |] ==>\
  17.151  \      lub(range(Y)) = up[lub(range(%i. lift[LAM x. x][Y(i)]))]"
  17.152   (fn prems =>
  17.153 @@ -252,7 +252,7 @@
  17.154  
  17.155  
  17.156  
  17.157 -val thelub_lift2b = prove_goalw Lift3.thy [up_def,lift_def] 
  17.158 +qed_goalw "thelub_lift2b" Lift3.thy [up_def,lift_def] 
  17.159  "[| is_chain(Y); ! i x. ~ Y(i) = up[x] |] ==> lub(range(Y)) = UU"
  17.160   (fn prems =>
  17.161  	[
  17.162 @@ -272,7 +272,7 @@
  17.163  	]);
  17.164  
  17.165  
  17.166 -val lift_lemma2 = prove_goal Lift3.thy  " (? x.z = up[x]) = (~z=UU)"
  17.167 +qed_goal "lift_lemma2" Lift3.thy  " (? x.z = up[x]) = (~z=UU)"
  17.168   (fn prems =>
  17.169  	[
  17.170  	(rtac iffI 1),
  17.171 @@ -286,7 +286,7 @@
  17.172  	]);
  17.173  
  17.174  
  17.175 -val thelub_lift2a_rev = prove_goal Lift3.thy  
  17.176 +qed_goal "thelub_lift2a_rev" Lift3.thy  
  17.177  "[| is_chain(Y); lub(range(Y)) = up[x] |] ==> ? i x. Y(i) = up[x]"
  17.178   (fn prems =>
  17.179  	[
  17.180 @@ -300,7 +300,7 @@
  17.181  	(atac 1)
  17.182  	]);
  17.183  
  17.184 -val thelub_lift2b_rev = prove_goal Lift3.thy  
  17.185 +qed_goal "thelub_lift2b_rev" Lift3.thy  
  17.186  "[| is_chain(Y); lub(range(Y)) = UU |] ==> ! i x. ~ Y(i) = up[x]"
  17.187   (fn prems =>
  17.188  	[
  17.189 @@ -316,7 +316,7 @@
  17.190  	]);
  17.191  
  17.192  
  17.193 -val thelub_lift3 = prove_goal Lift3.thy  
  17.194 +qed_goal "thelub_lift3" Lift3.thy  
  17.195  "is_chain(Y) ==> lub(range(Y)) = UU |\
  17.196  \                lub(range(Y)) = up[lub(range(%i. lift[LAM x. x][Y(i)]))]"
  17.197   (fn prems =>
  17.198 @@ -334,7 +334,7 @@
  17.199  	(fast_tac HOL_cs 1)
  17.200  	]);
  17.201  
  17.202 -val lift3 = prove_goal Lift3.thy "lift[up][x]=x"
  17.203 +qed_goal "lift3" Lift3.thy "lift[up][x]=x"
  17.204   (fn prems =>
  17.205  	[
  17.206  	(res_inst_tac [("p","x")] liftE1 1),
    18.1 --- a/src/HOLCF/One.ML	Fri Feb 03 12:32:14 1995 +0100
    18.2 +++ b/src/HOLCF/One.ML	Tue Feb 07 11:59:32 1995 +0100
    18.3 @@ -12,7 +12,7 @@
    18.4  (* Exhaustion and Elimination for type one                                  *)
    18.5  (* ------------------------------------------------------------------------ *)
    18.6  
    18.7 -val Exh_one = prove_goalw One.thy [one_def] "z=UU | z = one"
    18.8 +qed_goalw "Exh_one" One.thy [one_def] "z=UU | z = one"
    18.9   (fn prems =>
   18.10  	[
   18.11  	(res_inst_tac [("p","rep_one[z]")] liftE1 1),
   18.12 @@ -28,7 +28,7 @@
   18.13  	(atac 1)
   18.14  	]);
   18.15  
   18.16 -val oneE = prove_goal One.thy
   18.17 +qed_goal "oneE" One.thy
   18.18  	"[| p=UU ==> Q; p = one ==>Q|] ==>Q"
   18.19   (fn prems =>
   18.20  	[
   18.21 @@ -68,7 +68,7 @@
   18.22  (* one is flat                                                              *)
   18.23  (* ------------------------------------------------------------------------ *)
   18.24  
   18.25 -val flat_one = prove_goalw One.thy [flat_def] "flat(one)"
   18.26 +qed_goalw "flat_one" One.thy [flat_def] "flat(one)"
   18.27   (fn prems =>
   18.28  	[
   18.29  	(rtac allI 1),
    19.1 --- a/src/HOLCF/Pcpo.ML	Fri Feb 03 12:32:14 1995 +0100
    19.2 +++ b/src/HOLCF/Pcpo.ML	Tue Feb 07 11:59:32 1995 +0100
    19.3 @@ -12,7 +12,7 @@
    19.4  (* in pcpo's everthing equal to THE lub has lub properties for every chain  *)
    19.5  (* ------------------------------------------------------------------------ *)
    19.6  
    19.7 -val thelubE = prove_goal  Pcpo.thy 
    19.8 +qed_goal "thelubE"  Pcpo.thy 
    19.9  	"[| is_chain(S);lub(range(S)) = (l::'a::pcpo)|] ==> range(S) <<| l "
   19.10  (fn prems =>
   19.11  	[
   19.12 @@ -38,7 +38,7 @@
   19.13  (* the << relation between two chains is preserved by their lubs            *)
   19.14  (* ------------------------------------------------------------------------ *)
   19.15  
   19.16 -val lub_mono = prove_goal Pcpo.thy 
   19.17 +qed_goal "lub_mono" Pcpo.thy 
   19.18  	"[|is_chain(C1::(nat=>'a::pcpo));is_chain(C2); ! k. C1(k) << C2(k)|]\
   19.19  \           ==> lub(range(C1)) << lub(range(C2))"
   19.20  (fn prems =>
   19.21 @@ -56,7 +56,7 @@
   19.22  (* the = relation between two chains is preserved by their lubs            *)
   19.23  (* ------------------------------------------------------------------------ *)
   19.24  
   19.25 -val lub_equal = prove_goal Pcpo.thy
   19.26 +qed_goal "lub_equal" Pcpo.thy
   19.27  "[| is_chain(C1::(nat=>'a::pcpo));is_chain(C2);!k.C1(k)=C2(k)|]\
   19.28  \	==> lub(range(C1))=lub(range(C2))"
   19.29  (fn prems =>
   19.30 @@ -81,7 +81,7 @@
   19.31  (* more results about mono and = of lubs of chains                          *)
   19.32  (* ------------------------------------------------------------------------ *)
   19.33  
   19.34 -val lub_mono2 = prove_goal Pcpo.thy 
   19.35 +qed_goal "lub_mono2" Pcpo.thy 
   19.36  "[|? j.!i. j<i --> X(i::nat)=Y(i);is_chain(X::nat=>'a::pcpo);is_chain(Y)|]\
   19.37  \ ==> lub(range(X))<<lub(range(Y))"
   19.38   (fn prems =>
   19.39 @@ -110,7 +110,7 @@
   19.40  	(resolve_tac prems 1)
   19.41  	]);
   19.42  
   19.43 -val lub_equal2 = prove_goal Pcpo.thy 
   19.44 +qed_goal "lub_equal2" Pcpo.thy 
   19.45  "[|? j.!i. j<i --> X(i)=Y(i);is_chain(X::nat=>'a::pcpo);is_chain(Y)|]\
   19.46  \ ==> lub(range(X))=lub(range(Y))"
   19.47   (fn prems =>
   19.48 @@ -127,7 +127,7 @@
   19.49  	(fast_tac HOL_cs 1)
   19.50  	]);
   19.51  
   19.52 -val lub_mono3 = prove_goal Pcpo.thy "[|is_chain(Y::nat=>'a::pcpo);is_chain(X);\
   19.53 +qed_goal "lub_mono3" Pcpo.thy "[|is_chain(Y::nat=>'a::pcpo);is_chain(X);\
   19.54  \! i. ? j. Y(i)<< X(j)|]==> lub(range(Y))<<lub(range(X))"
   19.55   (fn prems =>
   19.56  	[
   19.57 @@ -148,7 +148,7 @@
   19.58  (* usefull lemmas about UU                                                  *)
   19.59  (* ------------------------------------------------------------------------ *)
   19.60  
   19.61 -val eq_UU_iff = prove_goal Pcpo.thy "(x=UU)=(x<<UU)"
   19.62 +qed_goal "eq_UU_iff" Pcpo.thy "(x=UU)=(x<<UU)"
   19.63   (fn prems =>
   19.64  	[
   19.65  	(rtac iffI 1),
   19.66 @@ -159,14 +159,14 @@
   19.67  	(rtac minimal 1)
   19.68  	]);
   19.69  
   19.70 -val UU_I = prove_goal Pcpo.thy "x << UU ==> x = UU"
   19.71 +qed_goal "UU_I" Pcpo.thy "x << UU ==> x = UU"
   19.72   (fn prems =>
   19.73  	[
   19.74  	(rtac (eq_UU_iff RS ssubst) 1),
   19.75  	(resolve_tac prems 1)
   19.76  	]);
   19.77  
   19.78 -val not_less2not_eq = prove_goal Pcpo.thy "~x<<y ==> ~x=y"
   19.79 +qed_goal "not_less2not_eq" Pcpo.thy "~x<<y ==> ~x=y"
   19.80   (fn prems =>
   19.81  	[
   19.82  	(cut_facts_tac prems 1),
   19.83 @@ -177,7 +177,7 @@
   19.84  	]);
   19.85  
   19.86  
   19.87 -val chain_UU_I = prove_goal Pcpo.thy
   19.88 +qed_goal "chain_UU_I" Pcpo.thy
   19.89  	"[|is_chain(Y);lub(range(Y))=UU|] ==> ! i.Y(i)=UU"
   19.90  (fn prems =>
   19.91  	[
   19.92 @@ -191,7 +191,7 @@
   19.93  	]);
   19.94  
   19.95  
   19.96 -val chain_UU_I_inverse = prove_goal Pcpo.thy 
   19.97 +qed_goal "chain_UU_I_inverse" Pcpo.thy 
   19.98  	"!i.Y(i::nat)=UU ==> lub(range(Y::(nat=>'a::pcpo)))=UU"
   19.99  (fn prems =>
  19.100  	[
  19.101 @@ -210,7 +210,7 @@
  19.102  	(etac spec 1)
  19.103  	]);
  19.104  
  19.105 -val chain_UU_I_inverse2 = prove_goal Pcpo.thy 
  19.106 +qed_goal "chain_UU_I_inverse2" Pcpo.thy 
  19.107  	"~lub(range(Y::(nat=>'a::pcpo)))=UU ==> ? i.~ Y(i)=UU"
  19.108   (fn prems =>
  19.109  	[
  19.110 @@ -223,7 +223,7 @@
  19.111  	]);
  19.112  
  19.113  
  19.114 -val notUU_I = prove_goal Pcpo.thy "[| x<<y; ~x=UU |] ==> ~y=UU"
  19.115 +qed_goal "notUU_I" Pcpo.thy "[| x<<y; ~x=UU |] ==> ~y=UU"
  19.116  (fn prems =>
  19.117  	[
  19.118  	(cut_facts_tac prems 1),
  19.119 @@ -234,7 +234,7 @@
  19.120  	]);
  19.121  
  19.122  
  19.123 -val chain_mono2 = prove_goal Pcpo.thy 
  19.124 +qed_goal "chain_mono2" Pcpo.thy 
  19.125  "[|? j.~Y(j)=UU;is_chain(Y::nat=>'a::pcpo)|]\
  19.126  \ ==> ? j.!i.j<i-->~Y(i)=UU"
  19.127   (fn prems =>
  19.128 @@ -256,7 +256,7 @@
  19.129  (* uniqueness in void                                                       *)
  19.130  (* ------------------------------------------------------------------------ *)
  19.131  
  19.132 -val unique_void2 = prove_goal Pcpo.thy "(x::void)=UU"
  19.133 +qed_goal "unique_void2" Pcpo.thy "(x::void)=UU"
  19.134   (fn prems =>
  19.135  	[
  19.136  	(rtac (inst_void_pcpo RS ssubst) 1),
    20.1 --- a/src/HOLCF/Porder.ML	Fri Feb 03 12:32:14 1995 +0100
    20.2 +++ b/src/HOLCF/Porder.ML	Tue Feb 07 11:59:32 1995 +0100
    20.3 @@ -14,7 +14,7 @@
    20.4  (* the reverse law of anti--symmetrie of <<                                 *)
    20.5  (* ------------------------------------------------------------------------ *)
    20.6  
    20.7 -val antisym_less_inverse = prove_goal Porder.thy "x=y ==> x << y & y << x"
    20.8 +qed_goal "antisym_less_inverse" Porder.thy "x=y ==> x << y & y << x"
    20.9  (fn prems =>
   20.10  	[
   20.11  	(cut_facts_tac prems 1),
   20.12 @@ -24,7 +24,7 @@
   20.13  	]);
   20.14  
   20.15  
   20.16 -val box_less = prove_goal Porder.thy 
   20.17 +qed_goal "box_less" Porder.thy 
   20.18  "[| a << b; c << a; b << d|] ==> c << d"
   20.19   (fn prems =>
   20.20  	[
   20.21 @@ -38,7 +38,7 @@
   20.22  (* lubs are unique                                                          *)
   20.23  (* ------------------------------------------------------------------------ *)
   20.24  
   20.25 -val unique_lub  = prove_goalw Porder.thy [is_lub, is_ub] 
   20.26 +qed_goalw "unique_lub " Porder.thy [is_lub, is_ub] 
   20.27  	"[| S <<| x ; S <<| y |] ==> x=y"
   20.28  ( fn prems =>
   20.29  	[
   20.30 @@ -54,7 +54,7 @@
   20.31  (* chains are monotone functions                                            *)
   20.32  (* ------------------------------------------------------------------------ *)
   20.33  
   20.34 -val chain_mono = prove_goalw Porder.thy [is_chain]
   20.35 +qed_goalw "chain_mono" Porder.thy [is_chain]
   20.36  	" is_chain(F) ==> x<y --> F(x)<<F(y)"
   20.37  ( fn prems =>
   20.38  	[
   20.39 @@ -74,7 +74,7 @@
   20.40  	(atac 1)
   20.41  	]);
   20.42  
   20.43 -val chain_mono3 = prove_goal  Porder.thy 
   20.44 +qed_goal "chain_mono3"  Porder.thy 
   20.45  	"[| is_chain(F); x <= y |] ==> F(x) << F(y)"
   20.46   (fn prems =>
   20.47  	[
   20.48 @@ -92,7 +92,7 @@
   20.49  (* The range of a chain is a totaly ordered     <<                           *)
   20.50  (* ------------------------------------------------------------------------ *)
   20.51  
   20.52 -val chain_is_tord = prove_goalw Porder.thy [is_tord]
   20.53 +qed_goalw "chain_is_tord" Porder.thy [is_tord]
   20.54  	"is_chain(F) ==> is_tord(range(F))"
   20.55  ( fn prems =>
   20.56  	[
   20.57 @@ -127,22 +127,22 @@
   20.58  (* technical lemmas about lub and is_lub                                    *)
   20.59  (* ------------------------------------------------------------------------ *)
   20.60  
   20.61 -val lubI = prove_goal Porder.thy "(? x. M <<| x) ==> M <<| lub(M)"
   20.62 +qed_goal "lubI" Porder.thy "(? x. M <<| x) ==> M <<| lub(M)"
   20.63  (fn prems =>
   20.64  	[
   20.65  	(cut_facts_tac prems 1),
   20.66  	(rtac (lub RS ssubst) 1),
   20.67 -	(etac selectI2 1)
   20.68 +	(etac selectI3 1)
   20.69  	]);
   20.70  
   20.71 -val lubE = prove_goal Porder.thy " M <<| lub(M) ==>  ? x. M <<| x"
   20.72 +qed_goal "lubE" Porder.thy " M <<| lub(M) ==>  ? x. M <<| x"
   20.73  (fn prems =>
   20.74  	[
   20.75  	(cut_facts_tac prems 1),
   20.76  	(etac exI 1)
   20.77  	]);
   20.78  
   20.79 -val lub_eq = prove_goal Porder.thy 
   20.80 +qed_goal "lub_eq" Porder.thy 
   20.81  	"(? x. M <<| x)  = M <<| lub(M)"
   20.82  (fn prems => 
   20.83  	[
   20.84 @@ -152,7 +152,7 @@
   20.85  	]);
   20.86  
   20.87  
   20.88 -val thelubI = prove_goal  Porder.thy " M <<| l ==> lub(M) = l"
   20.89 +qed_goal "thelubI"  Porder.thy " M <<| l ==> lub(M) = l"
   20.90  (fn prems =>
   20.91  	[
   20.92  	(cut_facts_tac prems 1), 
   20.93 @@ -167,7 +167,7 @@
   20.94  (* access to some definition as inference rule                              *)
   20.95  (* ------------------------------------------------------------------------ *)
   20.96  
   20.97 -val is_lubE = prove_goalw  Porder.thy [is_lub]
   20.98 +qed_goalw "is_lubE"  Porder.thy [is_lub]
   20.99  	"S <<| x  ==> S <| x & (! u. S <| u  --> x << u)"
  20.100  (fn prems =>
  20.101  	[
  20.102 @@ -175,7 +175,7 @@
  20.103  	(atac 1)
  20.104  	]);
  20.105  
  20.106 -val is_lubI = prove_goalw  Porder.thy [is_lub]
  20.107 +qed_goalw "is_lubI"  Porder.thy [is_lub]
  20.108  	"S <| x & (! u. S <| u  --> x << u) ==> S <<| x"
  20.109  (fn prems =>
  20.110  	[
  20.111 @@ -183,14 +183,14 @@
  20.112  	(atac 1)
  20.113  	]);
  20.114  
  20.115 -val is_chainE = prove_goalw Porder.thy [is_chain] 
  20.116 +qed_goalw "is_chainE" Porder.thy [is_chain] 
  20.117   "is_chain(F) ==> ! i. F(i) << F(Suc(i))"
  20.118  (fn prems =>
  20.119  	[
  20.120  	(cut_facts_tac prems 1),
  20.121  	(atac 1)]);
  20.122  
  20.123 -val is_chainI = prove_goalw Porder.thy [is_chain] 
  20.124 +qed_goalw "is_chainI" Porder.thy [is_chain] 
  20.125   "! i. F(i) << F(Suc(i)) ==> is_chain(F) "
  20.126  (fn prems =>
  20.127  	[
  20.128 @@ -201,7 +201,7 @@
  20.129  (* technical lemmas about (least) upper bounds of chains                    *)
  20.130  (* ------------------------------------------------------------------------ *)
  20.131  
  20.132 -val ub_rangeE = prove_goalw  Porder.thy [is_ub]
  20.133 +qed_goalw "ub_rangeE"  Porder.thy [is_ub]
  20.134  	"range(S) <| x  ==> ! i. S(i) << x"
  20.135  (fn prems =>
  20.136  	[
  20.137 @@ -212,7 +212,7 @@
  20.138  	(rtac rangeI 1)
  20.139  	]);
  20.140  
  20.141 -val ub_rangeI = prove_goalw Porder.thy [is_ub]
  20.142 +qed_goalw "ub_rangeI" Porder.thy [is_ub]
  20.143  	"! i. S(i) << x  ==> range(S) <| x"
  20.144  (fn prems =>
  20.145  	[
  20.146 @@ -237,7 +237,7 @@
  20.147  (* a technical argument about << on void                                    *)
  20.148  (* ------------------------------------------------------------------------ *)
  20.149  
  20.150 -val less_void = prove_goal Porder.thy "((u1::void) << u2) = (u1 = u2)"
  20.151 +qed_goal "less_void" Porder.thy "((u1::void) << u2) = (u1 = u2)"
  20.152  (fn prems =>
  20.153  	[
  20.154  	(rtac (inst_void_po RS ssubst) 1),
  20.155 @@ -254,7 +254,7 @@
  20.156  (* void is pointed. The least element is UU_void                            *)
  20.157  (* ------------------------------------------------------------------------ *)
  20.158  
  20.159 -val minimal_void = prove_goal Porder.thy  	"UU_void << x"
  20.160 +qed_goal "minimal_void" Porder.thy  	"UU_void << x"
  20.161  (fn prems =>
  20.162  	[
  20.163  	(rtac (inst_void_po RS ssubst) 1),
  20.164 @@ -266,7 +266,7 @@
  20.165  (* UU_void is the trivial lub of all chains in void                         *)
  20.166  (* ------------------------------------------------------------------------ *)
  20.167  
  20.168 -val lub_void = prove_goalw  Porder.thy [is_lub] "M <<| UU_void"
  20.169 +qed_goalw "lub_void"  Porder.thy [is_lub] "M <<| UU_void"
  20.170  (fn prems =>
  20.171  	[
  20.172  	(rtac conjI 1),
  20.173 @@ -289,7 +289,7 @@
  20.174  (* void is a cpo wrt. countable chains                                      *)
  20.175  (* ------------------------------------------------------------------------ *)
  20.176  
  20.177 -val cpo_void = prove_goal Porder.thy
  20.178 +qed_goal "cpo_void" Porder.thy
  20.179  	"is_chain((S::nat=>void)) ==> ? x. range(S) <<| x "
  20.180  (fn prems =>
  20.181  	[
  20.182 @@ -307,7 +307,7 @@
  20.183  (* results about finite chains                                              *)
  20.184  (* ------------------------------------------------------------------------ *)
  20.185  
  20.186 -val lub_finch1 = prove_goalw Porder.thy [max_in_chain_def]
  20.187 +qed_goalw "lub_finch1" Porder.thy [max_in_chain_def]
  20.188  	"[| is_chain(C) ; max_in_chain(i,C)|] ==> range(C) <<| C(i)"
  20.189  (fn prems =>
  20.190  	[
  20.191 @@ -329,19 +329,19 @@
  20.192  	(etac (ub_rangeE RS spec) 1)
  20.193  	]);	
  20.194  
  20.195 -val lub_finch2 = prove_goalw Porder.thy [finite_chain_def]
  20.196 +qed_goalw "lub_finch2" Porder.thy [finite_chain_def]
  20.197  	"finite_chain(C) ==> range(C) <<| C(@ i. max_in_chain(i,C))"
  20.198   (fn prems=>
  20.199  	[
  20.200  	(cut_facts_tac prems 1),
  20.201  	(rtac lub_finch1 1),
  20.202  	(etac conjunct1 1),
  20.203 -	(rtac selectI2 1),
  20.204 +	(rtac selectI3 1),
  20.205  	(etac conjunct2 1)
  20.206  	]);
  20.207  
  20.208  
  20.209 -val bin_chain = prove_goal Porder.thy "x<<y ==> is_chain(%i. if(i=0,x,y))"
  20.210 +qed_goal "bin_chain" Porder.thy "x<<y ==> is_chain(%i. if(i=0,x,y))"
  20.211   (fn prems =>
  20.212  	[
  20.213  	(cut_facts_tac prems 1),
  20.214 @@ -353,7 +353,7 @@
  20.215  	(rtac refl_less 1)
  20.216  	]);
  20.217  
  20.218 -val bin_chainmax = prove_goalw Porder.thy [max_in_chain_def,le_def]
  20.219 +qed_goalw "bin_chainmax" Porder.thy [max_in_chain_def,le_def]
  20.220  	"x<<y ==> max_in_chain(Suc(0),%i. if(i=0,x,y))"
  20.221  (fn prems =>
  20.222  	[
  20.223 @@ -364,7 +364,7 @@
  20.224  	(asm_simp_tac nat_ss 1)
  20.225  	]);
  20.226  
  20.227 -val lub_bin_chain = prove_goal Porder.thy 
  20.228 +qed_goal "lub_bin_chain" Porder.thy 
  20.229  	"x << y ==> range(%i. if(i = 0,x,y)) <<| y"
  20.230  (fn prems=>
  20.231  	[ (cut_facts_tac prems 1),
  20.232 @@ -379,7 +379,7 @@
  20.233  (* the maximal element in a chain is its lub                                *)
  20.234  (* ------------------------------------------------------------------------ *)
  20.235  
  20.236 -val lub_chain_maxelem = prove_goal Porder.thy
  20.237 +qed_goal "lub_chain_maxelem" Porder.thy
  20.238  "[|is_chain(Y);? i.Y(i)=c;!i.Y(i)<<c|] ==> lub(range(Y)) = c"
  20.239  (fn prems =>
  20.240  	[
  20.241 @@ -399,7 +399,7 @@
  20.242  (* the lub of a constant chain is the constant                              *)
  20.243  (* ------------------------------------------------------------------------ *)
  20.244  
  20.245 -val lub_const = prove_goal Porder.thy "range(%x.c) <<| c"
  20.246 +qed_goal "lub_const" Porder.thy "range(%x.c) <<| c"
  20.247   (fn prems =>
  20.248  	[
  20.249  	(rtac is_lubI 1),
    21.1 --- a/src/HOLCF/Sprod0.ML	Fri Feb 03 12:32:14 1995 +0100
    21.2 +++ b/src/HOLCF/Sprod0.ML	Tue Feb 07 11:59:32 1995 +0100
    21.3 @@ -12,7 +12,7 @@
    21.4  (* A non-emptyness result for Sprod                                         *)
    21.5  (* ------------------------------------------------------------------------ *)
    21.6  
    21.7 -val SprodI = prove_goalw Sprod0.thy [Sprod_def]
    21.8 +qed_goalw "SprodI" Sprod0.thy [Sprod_def]
    21.9  	"Spair_Rep(a,b):Sprod"
   21.10  (fn prems =>
   21.11  	[
   21.12 @@ -20,7 +20,7 @@
   21.13  	]);
   21.14  
   21.15  
   21.16 -val inj_onto_Abs_Sprod = prove_goal Sprod0.thy 
   21.17 +qed_goal "inj_onto_Abs_Sprod" Sprod0.thy 
   21.18  	"inj_onto(Abs_Sprod,Sprod)"
   21.19  (fn prems =>
   21.20  	[
   21.21 @@ -34,7 +34,7 @@
   21.22  (* ------------------------------------------------------------------------ *)
   21.23  
   21.24  
   21.25 -val strict_Spair_Rep = prove_goalw Sprod0.thy [Spair_Rep_def]
   21.26 +qed_goalw "strict_Spair_Rep" Sprod0.thy [Spair_Rep_def]
   21.27   "(a=UU | b=UU) ==> (Spair_Rep(a,b) = Spair_Rep(UU,UU))"
   21.28   (fn prems =>
   21.29  	[
   21.30 @@ -46,7 +46,7 @@
   21.31  	(fast_tac HOL_cs 1)
   21.32  	]);
   21.33  
   21.34 -val defined_Spair_Rep_rev = prove_goalw Sprod0.thy [Spair_Rep_def]
   21.35 +qed_goalw "defined_Spair_Rep_rev" Sprod0.thy [Spair_Rep_def]
   21.36   "(Spair_Rep(a,b) = Spair_Rep(UU,UU)) ==> (a=UU | b=UU)"
   21.37   (fn prems =>
   21.38  	[
   21.39 @@ -64,7 +64,7 @@
   21.40  (* injectivity of Spair_Rep and Ispair                                      *)
   21.41  (* ------------------------------------------------------------------------ *)
   21.42  
   21.43 -val inject_Spair_Rep = prove_goalw Sprod0.thy [Spair_Rep_def]
   21.44 +qed_goalw "inject_Spair_Rep" Sprod0.thy [Spair_Rep_def]
   21.45  "[|~aa=UU ; ~ba=UU ; Spair_Rep(a,b)=Spair_Rep(aa,ba) |] ==> a=aa & b=ba"
   21.46   (fn prems =>
   21.47  	[
   21.48 @@ -76,7 +76,7 @@
   21.49  	]);
   21.50  
   21.51  
   21.52 -val inject_Ispair =  prove_goalw Sprod0.thy [Ispair_def]
   21.53 +qed_goalw "inject_Ispair" Sprod0.thy [Ispair_def]
   21.54  	"[|~aa=UU ; ~ba=UU ; Ispair(a,b)=Ispair(aa,ba) |] ==> a=aa & b=ba"
   21.55  (fn prems =>
   21.56  	[
   21.57 @@ -93,7 +93,7 @@
   21.58  (* strictness and definedness of Ispair                                     *)
   21.59  (* ------------------------------------------------------------------------ *)
   21.60  
   21.61 -val strict_Ispair = prove_goalw Sprod0.thy [Ispair_def] 
   21.62 +qed_goalw "strict_Ispair" Sprod0.thy [Ispair_def] 
   21.63   "(a=UU | b=UU) ==> Ispair(a,b)=Ispair(UU,UU)"
   21.64  (fn prems =>
   21.65  	[
   21.66 @@ -101,7 +101,7 @@
   21.67  	(etac (strict_Spair_Rep RS arg_cong) 1)
   21.68  	]);
   21.69  
   21.70 -val strict_Ispair1 = prove_goalw Sprod0.thy [Ispair_def]
   21.71 +qed_goalw "strict_Ispair1" Sprod0.thy [Ispair_def]
   21.72  	"Ispair(UU,b) = Ispair(UU,UU)"
   21.73  (fn prems =>
   21.74  	[
   21.75 @@ -110,7 +110,7 @@
   21.76  	(rtac refl 1)
   21.77  	]);
   21.78  
   21.79 -val strict_Ispair2 = prove_goalw Sprod0.thy [Ispair_def]
   21.80 +qed_goalw "strict_Ispair2" Sprod0.thy [Ispair_def]
   21.81  	"Ispair(a,UU) = Ispair(UU,UU)"
   21.82  (fn prems =>
   21.83  	[
   21.84 @@ -119,7 +119,7 @@
   21.85  	(rtac refl 1)
   21.86  	]);
   21.87  
   21.88 -val strict_Ispair_rev = prove_goal Sprod0.thy 
   21.89 +qed_goal "strict_Ispair_rev" Sprod0.thy 
   21.90  	"~Ispair(x,y)=Ispair(UU,UU) ==> ~x=UU & ~y=UU"
   21.91  (fn prems =>
   21.92  	[
   21.93 @@ -129,7 +129,7 @@
   21.94  	(etac strict_Ispair 1)
   21.95  	]);
   21.96  
   21.97 -val defined_Ispair_rev = prove_goalw Sprod0.thy [Ispair_def]
   21.98 +qed_goalw "defined_Ispair_rev" Sprod0.thy [Ispair_def]
   21.99  	"Ispair(a,b) = Ispair(UU,UU) ==> (a = UU | b = UU)"
  21.100  (fn prems =>
  21.101  	[
  21.102 @@ -141,7 +141,7 @@
  21.103  	(rtac SprodI 1)
  21.104  	]);
  21.105  
  21.106 -val defined_Ispair = prove_goal Sprod0.thy  
  21.107 +qed_goal "defined_Ispair" Sprod0.thy  
  21.108  "[|~a=UU; ~b=UU|] ==> ~(Ispair(a,b) = Ispair(UU,UU))" 
  21.109  (fn prems =>
  21.110  	[
  21.111 @@ -158,7 +158,7 @@
  21.112  (* Exhaustion of the strict product **                                      *)
  21.113  (* ------------------------------------------------------------------------ *)
  21.114  
  21.115 -val Exh_Sprod = prove_goalw Sprod0.thy [Ispair_def]
  21.116 +qed_goalw "Exh_Sprod" Sprod0.thy [Ispair_def]
  21.117  	"z=Ispair(UU,UU) | (? a b. z=Ispair(a,b) & ~a=UU & ~b=UU)"
  21.118  (fn prems =>
  21.119  	[
  21.120 @@ -185,7 +185,7 @@
  21.121  (* general elimination rule for strict product                              *)
  21.122  (* ------------------------------------------------------------------------ *)
  21.123  
  21.124 -val IsprodE = prove_goal Sprod0.thy
  21.125 +qed_goal "IsprodE" Sprod0.thy
  21.126  "[|p=Ispair(UU,UU) ==> Q ;!!x y. [|p=Ispair(x,y); ~x=UU ; ~y=UU|] ==> Q|] ==> Q"
  21.127  (fn prems =>
  21.128  	[
  21.129 @@ -205,7 +205,7 @@
  21.130  (* some results about the selectors Isfst, Issnd                            *)
  21.131  (* ------------------------------------------------------------------------ *)
  21.132  
  21.133 -val strict_Isfst = prove_goalw Sprod0.thy [Isfst_def] 
  21.134 +qed_goalw "strict_Isfst" Sprod0.thy [Isfst_def] 
  21.135  	"p=Ispair(UU,UU)==>Isfst(p)=UU"
  21.136  (fn prems =>
  21.137  	[
  21.138 @@ -221,7 +221,7 @@
  21.139  	]);
  21.140  
  21.141  
  21.142 -val strict_Isfst1 =  prove_goal Sprod0.thy
  21.143 +qed_goal "strict_Isfst1" Sprod0.thy
  21.144  	"Isfst(Ispair(UU,y)) = UU"
  21.145  (fn prems =>
  21.146  	[
  21.147 @@ -230,7 +230,7 @@
  21.148  	(rtac refl 1)
  21.149  	]);
  21.150  
  21.151 -val strict_Isfst2 =  prove_goal Sprod0.thy
  21.152 +qed_goal "strict_Isfst2" Sprod0.thy
  21.153  	"Isfst(Ispair(x,UU)) = UU"
  21.154  (fn prems =>
  21.155  	[
  21.156 @@ -240,7 +240,7 @@
  21.157  	]);
  21.158  
  21.159  
  21.160 -val strict_Issnd = prove_goalw Sprod0.thy [Issnd_def] 
  21.161 +qed_goalw "strict_Issnd" Sprod0.thy [Issnd_def] 
  21.162  	"p=Ispair(UU,UU)==>Issnd(p)=UU"
  21.163  (fn prems =>
  21.164  	[
  21.165 @@ -255,7 +255,7 @@
  21.166  	(REPEAT (fast_tac HOL_cs  1))
  21.167  	]);
  21.168  
  21.169 -val strict_Issnd1 =  prove_goal Sprod0.thy
  21.170 +qed_goal "strict_Issnd1" Sprod0.thy
  21.171  	"Issnd(Ispair(UU,y)) = UU"
  21.172  (fn prems =>
  21.173  	[
  21.174 @@ -264,7 +264,7 @@
  21.175  	(rtac refl 1)
  21.176  	]);
  21.177  
  21.178 -val strict_Issnd2 =  prove_goal Sprod0.thy
  21.179 +qed_goal "strict_Issnd2" Sprod0.thy
  21.180  	"Issnd(Ispair(x,UU)) = UU"
  21.181  (fn prems =>
  21.182  	[
  21.183 @@ -273,7 +273,7 @@
  21.184  	(rtac refl 1)
  21.185  	]);
  21.186  
  21.187 -val Isfst = prove_goalw Sprod0.thy [Isfst_def]
  21.188 +qed_goalw "Isfst" Sprod0.thy [Isfst_def]
  21.189  	"[|~x=UU ;~y=UU |] ==> Isfst(Ispair(x,y)) = x"
  21.190  (fn prems =>
  21.191  	[
  21.192 @@ -293,7 +293,7 @@
  21.193  	(fast_tac HOL_cs  1)
  21.194  	]);
  21.195  
  21.196 -val Issnd = prove_goalw Sprod0.thy [Issnd_def]
  21.197 +qed_goalw "Issnd" Sprod0.thy [Issnd_def]
  21.198  	"[|~x=UU ;~y=UU |] ==> Issnd(Ispair(x,y)) = y"
  21.199  (fn prems =>
  21.200  	[
  21.201 @@ -313,7 +313,7 @@
  21.202  	(fast_tac HOL_cs  1)
  21.203  	]);
  21.204  
  21.205 -val Isfst2 = prove_goal Sprod0.thy "~y=UU ==>Isfst(Ispair(x,y))=x"
  21.206 +qed_goal "Isfst2" Sprod0.thy "~y=UU ==>Isfst(Ispair(x,y))=x"
  21.207  (fn prems =>
  21.208  	[
  21.209  	(cut_facts_tac prems 1),
  21.210 @@ -324,7 +324,7 @@
  21.211  	(rtac strict_Isfst1 1)
  21.212  	]);
  21.213  
  21.214 -val Issnd2 = prove_goal Sprod0.thy "~x=UU ==>Issnd(Ispair(x,y))=y"
  21.215 +qed_goal "Issnd2" Sprod0.thy "~x=UU ==>Issnd(Ispair(x,y))=y"
  21.216  (fn prems =>
  21.217  	[
  21.218  	(cut_facts_tac prems 1),
  21.219 @@ -346,7 +346,7 @@
  21.220  		 Isfst2,Issnd2];
  21.221  
  21.222  
  21.223 -val defined_IsfstIssnd = prove_goal Sprod0.thy 
  21.224 +qed_goal "defined_IsfstIssnd" Sprod0.thy 
  21.225  	"~p=Ispair(UU,UU) ==> ~Isfst(p)=UU & ~Issnd(p)=UU"
  21.226   (fn prems =>
  21.227  	[
  21.228 @@ -364,7 +364,7 @@
  21.229  (* Surjective pairing: equivalent to Exh_Sprod                              *)
  21.230  (* ------------------------------------------------------------------------ *)
  21.231  
  21.232 -val surjective_pairing_Sprod = prove_goal Sprod0.thy 
  21.233 +qed_goal "surjective_pairing_Sprod" Sprod0.thy 
  21.234  	"z = Ispair(Isfst(z))(Issnd(z))"
  21.235  (fn prems =>
  21.236  	[
    22.1 --- a/src/HOLCF/Sprod1.ML	Fri Feb 03 12:32:14 1995 +0100
    22.2 +++ b/src/HOLCF/Sprod1.ML	Tue Feb 07 11:59:32 1995 +0100
    22.3 @@ -13,7 +13,7 @@
    22.4  (* ------------------------------------------------------------------------ *)
    22.5  
    22.6  
    22.7 -val less_sprod1a = prove_goalw Sprod1.thy [less_sprod_def]
    22.8 +qed_goalw "less_sprod1a" Sprod1.thy [less_sprod_def]
    22.9  	"p1=Ispair(UU,UU) ==> less_sprod(p1,p2)"
   22.10  (fn prems =>
   22.11  	[
   22.12 @@ -29,7 +29,7 @@
   22.13  	(atac 1)
   22.14  	]);
   22.15  
   22.16 -val less_sprod1b = prove_goalw Sprod1.thy [less_sprod_def]
   22.17 +qed_goalw "less_sprod1b" Sprod1.thy [less_sprod_def]
   22.18   "~p1=Ispair(UU,UU) ==> \
   22.19  \ less_sprod(p1,p2) = ( Isfst(p1) << Isfst(p2) & Issnd(p1) << Issnd(p2))"
   22.20  (fn prems =>
   22.21 @@ -45,7 +45,7 @@
   22.22  	(atac 1)
   22.23  	]);
   22.24  
   22.25 -val less_sprod2a = prove_goal Sprod1.thy
   22.26 +qed_goal "less_sprod2a" Sprod1.thy
   22.27  	"less_sprod(Ispair(x,y),Ispair(UU,UU)) ==> x = UU | y = UU"
   22.28  (fn prems =>
   22.29  	[
   22.30 @@ -65,7 +65,7 @@
   22.31  	(REPEAT (fast_tac HOL_cs 1))
   22.32  	]);
   22.33  
   22.34 -val less_sprod2b = prove_goal Sprod1.thy
   22.35 +qed_goal "less_sprod2b" Sprod1.thy
   22.36   "less_sprod(p,Ispair(UU,UU)) ==> p = Ispair(UU,UU)"
   22.37  (fn prems =>
   22.38  	[
   22.39 @@ -77,7 +77,7 @@
   22.40  	(etac less_sprod2a 1)
   22.41  	]);
   22.42  
   22.43 -val less_sprod2c = prove_goal Sprod1.thy 
   22.44 +qed_goal "less_sprod2c" Sprod1.thy 
   22.45   "[|less_sprod(Ispair(xa,ya),Ispair(x,y));\
   22.46  \~ xa = UU ; ~ ya = UU;~ x = UU ; ~ y = UU |] ==> xa << x & ya << y"
   22.47  (fn prems =>
   22.48 @@ -105,7 +105,7 @@
   22.49  (* less_sprod is a partial order on Sprod                                   *)
   22.50  (* ------------------------------------------------------------------------ *)
   22.51  
   22.52 -val refl_less_sprod = prove_goal Sprod1.thy "less_sprod(p,p)"
   22.53 +qed_goal "refl_less_sprod" Sprod1.thy "less_sprod(p,p)"
   22.54  (fn prems =>
   22.55  	[
   22.56  	(res_inst_tac [("p","p")] IsprodE 1),
   22.57 @@ -117,7 +117,7 @@
   22.58  	]);
   22.59  
   22.60  
   22.61 -val antisym_less_sprod = prove_goal Sprod1.thy 
   22.62 +qed_goal "antisym_less_sprod" Sprod1.thy 
   22.63   "[|less_sprod(p1,p2);less_sprod(p2,p1)|] ==> p1=p2"
   22.64   (fn prems =>
   22.65  	[
   22.66 @@ -145,7 +145,7 @@
   22.67  	(asm_simp_tac (HOL_ss addsimps [less_sprod2c RS conjunct2]) 1)
   22.68  	]);
   22.69  
   22.70 -val trans_less_sprod = prove_goal Sprod1.thy 
   22.71 +qed_goal "trans_less_sprod" Sprod1.thy 
   22.72   "[|less_sprod(p1,p2);less_sprod(p2,p3)|] ==> less_sprod(p1,p3)"
   22.73  (fn prems =>
   22.74  	[
    23.1 --- a/src/HOLCF/Sprod2.ML	Fri Feb 03 12:32:14 1995 +0100
    23.2 +++ b/src/HOLCF/Sprod2.ML	Tue Feb 07 11:59:32 1995 +0100
    23.3 @@ -13,7 +13,7 @@
    23.4  (* access to less_sprod in class po                                         *)
    23.5  (* ------------------------------------------------------------------------ *)
    23.6  
    23.7 -val less_sprod3a = prove_goal Sprod2.thy 
    23.8 +qed_goal "less_sprod3a" Sprod2.thy 
    23.9  	"p1=Ispair(UU,UU) ==> p1 << p2"
   23.10  (fn prems =>
   23.11  	[
   23.12 @@ -23,7 +23,7 @@
   23.13  	]);
   23.14  
   23.15  
   23.16 -val less_sprod3b = prove_goal Sprod2.thy
   23.17 +qed_goal "less_sprod3b" Sprod2.thy
   23.18   "~p1=Ispair(UU,UU) ==>\
   23.19  \	(p1<<p2) = (Isfst(p1)<<Isfst(p2) & Issnd(p1)<<Issnd(p2))" 
   23.20  (fn prems =>
   23.21 @@ -33,7 +33,7 @@
   23.22  	(etac less_sprod1b 1)
   23.23  	]);
   23.24  
   23.25 -val less_sprod4b = prove_goal Sprod2.thy 
   23.26 +qed_goal "less_sprod4b" Sprod2.thy 
   23.27  	"p << Ispair(UU,UU) ==> p = Ispair(UU,UU)"
   23.28  (fn prems =>
   23.29  	[
   23.30 @@ -45,7 +45,7 @@
   23.31  val less_sprod4a = (less_sprod4b RS defined_Ispair_rev);
   23.32  (* Ispair(?a,?b) << Ispair(UU,UU) ==> ?a = UU | ?b = UU *)
   23.33  
   23.34 -val less_sprod4c = prove_goal Sprod2.thy
   23.35 +qed_goal "less_sprod4c" Sprod2.thy
   23.36   "[|Ispair(xa,ya)<<Ispair(x,y);~xa=UU;~ya=UU;~x=UU;~y=UU|] ==>\
   23.37  \		xa<<x & ya << y"
   23.38  (fn prems =>
   23.39 @@ -60,7 +60,7 @@
   23.40  (* type sprod is pointed                                                    *)
   23.41  (* ------------------------------------------------------------------------ *)
   23.42  
   23.43 -val minimal_sprod = prove_goal Sprod2.thy  "Ispair(UU,UU)<<p"
   23.44 +qed_goal "minimal_sprod" Sprod2.thy  "Ispair(UU,UU)<<p"
   23.45  (fn prems =>
   23.46  	[
   23.47  	(rtac less_sprod3a 1),
   23.48 @@ -71,7 +71,7 @@
   23.49  (* Ispair is monotone in both arguments                                     *)
   23.50  (* ------------------------------------------------------------------------ *)
   23.51  
   23.52 -val monofun_Ispair1 = prove_goalw Sprod2.thy [monofun] "monofun(Ispair)"
   23.53 +qed_goalw "monofun_Ispair1" Sprod2.thy [monofun] "monofun(Ispair)"
   23.54  (fn prems =>
   23.55  	[
   23.56  	(strip_tac 1),
   23.57 @@ -111,7 +111,7 @@
   23.58  	]);
   23.59  
   23.60  
   23.61 -val monofun_Ispair2 = prove_goalw Sprod2.thy [monofun] "monofun(Ispair(x))"
   23.62 +qed_goalw "monofun_Ispair2" Sprod2.thy [monofun] "monofun(Ispair(x))"
   23.63  (fn prems =>
   23.64  	[
   23.65  	(strip_tac 1),
   23.66 @@ -148,7 +148,7 @@
   23.67  	(etac (strict_Ispair_rev RS  conjunct2) 1)
   23.68  	]);
   23.69  
   23.70 -val  monofun_Ispair = prove_goal Sprod2.thy 
   23.71 +qed_goal " monofun_Ispair" Sprod2.thy 
   23.72   "[|x1<<x2; y1<<y2|] ==> Ispair(x1,y1)<<Ispair(x2,y2)"
   23.73  (fn prems =>
   23.74  	[
   23.75 @@ -166,7 +166,7 @@
   23.76  (* Isfst and Issnd are monotone                                             *)
   23.77  (* ------------------------------------------------------------------------ *)
   23.78  
   23.79 -val  monofun_Isfst = prove_goalw Sprod2.thy [monofun] "monofun(Isfst)"
   23.80 +qed_goalw " monofun_Isfst" Sprod2.thy [monofun] "monofun(Isfst)"
   23.81  (fn prems =>
   23.82  	[
   23.83  	(strip_tac 1),
   23.84 @@ -193,7 +193,7 @@
   23.85  	(REPEAT (atac 1))
   23.86  	]);
   23.87  
   23.88 -val monofun_Issnd = prove_goalw Sprod2.thy [monofun] "monofun(Issnd)"
   23.89 +qed_goalw "monofun_Issnd" Sprod2.thy [monofun] "monofun(Issnd)"
   23.90  (fn prems =>
   23.91  	[
   23.92  	(strip_tac 1),
   23.93 @@ -225,7 +225,7 @@
   23.94  (* the type 'a ** 'b is a cpo                                               *)
   23.95  (* ------------------------------------------------------------------------ *)
   23.96  
   23.97 -val lub_sprod = prove_goal Sprod2.thy 
   23.98 +qed_goal "lub_sprod" Sprod2.thy 
   23.99  "[|is_chain(S)|] ==> range(S) <<| \
  23.100  \ Ispair(lub(range(%i.Isfst(S(i)))),lub(range(%i.Issnd(S(i)))))"
  23.101  (fn prems =>
  23.102 @@ -256,7 +256,7 @@
  23.103  (* is_chain(?S1) ==> lub(range(?S1)) =                                     *)
  23.104  (* Ispair(lub(range(%i. Isfst(?S1(i)))),lub(range(%i. Issnd(?S1(i)))))     *)
  23.105  
  23.106 -val cpo_sprod = prove_goal Sprod2.thy 
  23.107 +qed_goal "cpo_sprod" Sprod2.thy 
  23.108  	"is_chain(S::nat=>'a**'b)==>? x.range(S)<<| x"
  23.109  (fn prems =>
  23.110  	[
    24.1 --- a/src/HOLCF/Sprod3.ML	Fri Feb 03 12:32:14 1995 +0100
    24.2 +++ b/src/HOLCF/Sprod3.ML	Tue Feb 07 11:59:32 1995 +0100
    24.3 @@ -12,7 +12,7 @@
    24.4  (* continuity of Ispair, Isfst, Issnd                                       *)
    24.5  (* ------------------------------------------------------------------------ *)
    24.6  
    24.7 -val sprod3_lemma1 = prove_goal Sprod3.thy 
    24.8 +qed_goal "sprod3_lemma1" Sprod3.thy 
    24.9  "[| is_chain(Y);  x~= UU;  lub(range(Y))~= UU |] ==>\
   24.10  \ Ispair(lub(range(Y)),x) =\
   24.11  \ Ispair(lub(range(%i. Isfst(Ispair(Y(i),x)))),\
   24.12 @@ -54,7 +54,7 @@
   24.13  	]);
   24.14  
   24.15  
   24.16 -val sprod3_lemma2 = prove_goal Sprod3.thy 
   24.17 +qed_goal "sprod3_lemma2" Sprod3.thy 
   24.18  "[| is_chain(Y); ~ x = UU; lub(range(Y)) = UU |] ==>\
   24.19  \   Ispair(lub(range(Y)),x) =\
   24.20  \   Ispair(lub(range(%i. Isfst(Ispair(Y(i),x)))),\
   24.21 @@ -76,7 +76,7 @@
   24.22  	]);
   24.23  
   24.24  
   24.25 -val sprod3_lemma3 = prove_goal Sprod3.thy 
   24.26 +qed_goal "sprod3_lemma3" Sprod3.thy 
   24.27  "[| is_chain(Y); x = UU |] ==>\
   24.28  \          Ispair(lub(range(Y)),x) =\
   24.29  \          Ispair(lub(range(%i. Isfst(Ispair(Y(i),x)))),\
   24.30 @@ -96,7 +96,7 @@
   24.31  	]);
   24.32  
   24.33  
   24.34 -val contlub_Ispair1 = prove_goal Sprod3.thy "contlub(Ispair)"
   24.35 +qed_goal "contlub_Ispair1" Sprod3.thy "contlub(Ispair)"
   24.36  (fn prems =>
   24.37  	[
   24.38  	(rtac contlubI 1),
   24.39 @@ -122,7 +122,7 @@
   24.40  	(atac 1)
   24.41  	]);
   24.42  
   24.43 -val sprod3_lemma4 = prove_goal Sprod3.thy 
   24.44 +qed_goal "sprod3_lemma4" Sprod3.thy 
   24.45  "[| is_chain(Y); ~ x = UU; ~ lub(range(Y)) = UU |] ==>\
   24.46  \         Ispair(x,lub(range(Y))) =\
   24.47  \         Ispair(lub(range(%i. Isfst(Ispair(x,Y(i))))),\
   24.48 @@ -161,7 +161,7 @@
   24.49  	(asm_simp_tac Sprod_ss 1)
   24.50  	]);
   24.51  
   24.52 -val sprod3_lemma5 = prove_goal Sprod3.thy 
   24.53 +qed_goal "sprod3_lemma5" Sprod3.thy 
   24.54  "[| is_chain(Y); ~ x = UU; lub(range(Y)) = UU |] ==>\
   24.55  \         Ispair(x,lub(range(Y))) =\
   24.56  \         Ispair(lub(range(%i. Isfst(Ispair(x,Y(i))))),\
   24.57 @@ -182,7 +182,7 @@
   24.58  	(atac 1)
   24.59  	]);
   24.60  
   24.61 -val sprod3_lemma6 = prove_goal Sprod3.thy 
   24.62 +qed_goal "sprod3_lemma6" Sprod3.thy 
   24.63  "[| is_chain(Y); x = UU |] ==>\
   24.64  \         Ispair(x,lub(range(Y))) =\
   24.65  \         Ispair(lub(range(%i. Isfst(Ispair(x,Y(i))))),\
   24.66 @@ -201,7 +201,7 @@
   24.67  	(simp_tac Sprod_ss  1)
   24.68  	]);
   24.69  
   24.70 -val contlub_Ispair2 = prove_goal Sprod3.thy "contlub(Ispair(x))"
   24.71 +qed_goal "contlub_Ispair2" Sprod3.thy "contlub(Ispair(x))"
   24.72  (fn prems =>
   24.73  	[
   24.74  	(rtac contlubI 1),
   24.75 @@ -223,7 +223,7 @@
   24.76  	]);
   24.77  
   24.78  
   24.79 -val contX_Ispair1 = prove_goal Sprod3.thy "contX(Ispair)"
   24.80 +qed_goal "contX_Ispair1" Sprod3.thy "contX(Ispair)"
   24.81  (fn prems =>
   24.82  	[
   24.83  	(rtac monocontlub2contX 1),
   24.84 @@ -232,7 +232,7 @@
   24.85  	]);
   24.86  
   24.87  
   24.88 -val contX_Ispair2 = prove_goal Sprod3.thy "contX(Ispair(x))"
   24.89 +qed_goal "contX_Ispair2" Sprod3.thy "contX(Ispair(x))"
   24.90  (fn prems =>
   24.91  	[
   24.92  	(rtac monocontlub2contX 1),
   24.93 @@ -240,7 +240,7 @@
   24.94  	(rtac contlub_Ispair2 1)
   24.95  	]);
   24.96  
   24.97 -val contlub_Isfst = prove_goal Sprod3.thy "contlub(Isfst)"
   24.98 +qed_goal "contlub_Isfst" Sprod3.thy "contlub(Isfst)"
   24.99   (fn prems =>
  24.100  	[
  24.101  	(rtac contlubI 1),
  24.102 @@ -269,7 +269,7 @@
  24.103  	]);
  24.104  
  24.105  
  24.106 -val contlub_Issnd = prove_goal Sprod3.thy "contlub(Issnd)"
  24.107 +qed_goal "contlub_Issnd" Sprod3.thy "contlub(Issnd)"
  24.108  (fn prems =>
  24.109  	[
  24.110  	(rtac contlubI 1),
  24.111 @@ -297,7 +297,7 @@
  24.112  	]);
  24.113  
  24.114  
  24.115 -val contX_Isfst = prove_goal Sprod3.thy "contX(Isfst)"
  24.116 +qed_goal "contX_Isfst" Sprod3.thy "contX(Isfst)"
  24.117  (fn prems =>
  24.118  	[
  24.119  	(rtac monocontlub2contX 1),
  24.120 @@ -305,7 +305,7 @@
  24.121  	(rtac contlub_Isfst 1)
  24.122  	]);
  24.123  
  24.124 -val contX_Issnd = prove_goal Sprod3.thy "contX(Issnd)"
  24.125 +qed_goal "contX_Issnd" Sprod3.thy "contX(Issnd)"
  24.126  (fn prems =>
  24.127  	[
  24.128  	(rtac monocontlub2contX 1),
  24.129 @@ -320,7 +320,7 @@
  24.130   -------------------------------------------------------------------------- 
  24.131  *)
  24.132  
  24.133 -val spair_eq = prove_goal Sprod3.thy "[|x1=x2;y1=y2|] ==> x1##y1 = x2##y2"
  24.134 +qed_goal "spair_eq" Sprod3.thy "[|x1=x2;y1=y2|] ==> x1##y1 = x2##y2"
  24.135   (fn prems =>
  24.136  	[
  24.137  	(cut_facts_tac prems 1),
  24.138 @@ -331,7 +331,7 @@
  24.139  (* convert all lemmas to the continuous versions                            *)
  24.140  (* ------------------------------------------------------------------------ *)
  24.141  
  24.142 -val beta_cfun_sprod = prove_goalw Sprod3.thy [spair_def]
  24.143 +qed_goalw "beta_cfun_sprod" Sprod3.thy [spair_def]
  24.144  	"(LAM x y.Ispair(x,y))[a][b] = Ispair(a,b)"
  24.145   (fn prems =>
  24.146  	[
  24.147 @@ -345,7 +345,7 @@
  24.148  	(rtac refl 1)
  24.149  	]);
  24.150  
  24.151 -val inject_spair = prove_goalw Sprod3.thy [spair_def]
  24.152 +qed_goalw "inject_spair" Sprod3.thy [spair_def]
  24.153  	"[|~aa=UU ; ~ba=UU ; (a##b)=(aa##ba) |] ==> a=aa & b=ba"
  24.154   (fn prems =>
  24.155  	[
  24.156 @@ -357,7 +357,7 @@
  24.157  	(rtac beta_cfun_sprod 1)
  24.158  	]);
  24.159  
  24.160 -val inst_sprod_pcpo2 = prove_goalw Sprod3.thy [spair_def] "UU = (UU##UU)"
  24.161 +qed_goalw "inst_sprod_pcpo2" Sprod3.thy [spair_def] "UU = (UU##UU)"
  24.162   (fn prems =>
  24.163  	[
  24.164  	(rtac sym 1),
  24.165 @@ -367,7 +367,7 @@
  24.166  	(rtac inst_sprod_pcpo 1)
  24.167  	]);
  24.168  
  24.169 -val strict_spair = prove_goalw Sprod3.thy [spair_def] 
  24.170 +qed_goalw "strict_spair" Sprod3.thy [spair_def] 
  24.171  	"(a=UU | b=UU) ==> (a##b)=UU"
  24.172   (fn prems =>
  24.173  	[
  24.174 @@ -379,7 +379,7 @@
  24.175  	(etac strict_Ispair 1)
  24.176  	]);
  24.177  
  24.178 -val strict_spair1 = prove_goalw Sprod3.thy [spair_def] "(UU##b) = UU"
  24.179 +qed_goalw "strict_spair1" Sprod3.thy [spair_def] "(UU##b) = UU"
  24.180   (fn prems =>
  24.181  	[
  24.182  	(rtac (beta_cfun_sprod RS ssubst) 1),
  24.183 @@ -388,7 +388,7 @@
  24.184  	(rtac strict_Ispair1 1)
  24.185  	]);
  24.186  
  24.187 -val strict_spair2 = prove_goalw Sprod3.thy [spair_def] "(a##UU) = UU"
  24.188 +qed_goalw "strict_spair2" Sprod3.thy [spair_def] "(a##UU) = UU"
  24.189   (fn prems =>
  24.190  	[
  24.191  	(rtac (beta_cfun_sprod RS ssubst) 1),
  24.192 @@ -397,7 +397,7 @@
  24.193  	(rtac strict_Ispair2 1)
  24.194  	]);
  24.195  
  24.196 -val strict_spair_rev = prove_goalw Sprod3.thy [spair_def]
  24.197 +qed_goalw "strict_spair_rev" Sprod3.thy [spair_def]
  24.198  	"~(x##y)=UU ==> ~x=UU & ~y=UU"
  24.199   (fn prems =>
  24.200  	[
  24.201 @@ -408,7 +408,7 @@
  24.202  	(atac 1)
  24.203  	]);
  24.204  
  24.205 -val defined_spair_rev = prove_goalw Sprod3.thy [spair_def]
  24.206 +qed_goalw "defined_spair_rev" Sprod3.thy [spair_def]
  24.207   "(a##b) = UU ==> (a = UU | b = UU)"
  24.208   (fn prems =>
  24.209  	[
  24.210 @@ -419,7 +419,7 @@
  24.211  	(atac 1)
  24.212  	]);
  24.213  
  24.214 -val defined_spair = prove_goalw Sprod3.thy [spair_def]
  24.215 +qed_goalw "defined_spair" Sprod3.thy [spair_def]
  24.216  	"[|~a=UU; ~b=UU|] ==> ~(a##b) = UU"
  24.217   (fn prems =>
  24.218  	[
  24.219 @@ -430,7 +430,7 @@
  24.220  	(atac 1)
  24.221  	]);
  24.222  
  24.223 -val Exh_Sprod2 = prove_goalw Sprod3.thy [spair_def]
  24.224 +qed_goalw "Exh_Sprod2" Sprod3.thy [spair_def]
  24.225  	"z=UU | (? a b. z=(a##b) & ~a=UU & ~b=UU)"
  24.226   (fn prems =>
  24.227  	[
  24.228 @@ -450,7 +450,7 @@
  24.229  	]);
  24.230  
  24.231  
  24.232 -val sprodE =  prove_goalw Sprod3.thy [spair_def]
  24.233 +qed_goalw "sprodE" Sprod3.thy [spair_def]
  24.234  "[|p=UU ==> Q;!!x y. [|p=(x##y);~x=UU ; ~y=UU|] ==> Q|] ==> Q"
  24.235  (fn prems =>
  24.236  	[
  24.237 @@ -466,7 +466,7 @@
  24.238  	]);
  24.239  
  24.240  
  24.241 -val strict_sfst = prove_goalw Sprod3.thy [sfst_def] 
  24.242 +qed_goalw "strict_sfst" Sprod3.thy [sfst_def] 
  24.243  	"p=UU==>sfst[p]=UU"
  24.244   (fn prems =>
  24.245  	[
  24.246 @@ -478,7 +478,7 @@
  24.247  	(atac 1)
  24.248  	]);
  24.249  
  24.250 -val strict_sfst1 = prove_goalw Sprod3.thy [sfst_def,spair_def] 
  24.251 +qed_goalw "strict_sfst1" Sprod3.thy [sfst_def,spair_def] 
  24.252  	"sfst[UU##y] = UU"
  24.253   (fn prems =>
  24.254  	[
  24.255 @@ -488,7 +488,7 @@
  24.256  	(rtac strict_Isfst1 1)
  24.257  	]);
  24.258   
  24.259 -val strict_sfst2 = prove_goalw Sprod3.thy [sfst_def,spair_def] 
  24.260 +qed_goalw "strict_sfst2" Sprod3.thy [sfst_def,spair_def] 
  24.261  	"sfst[x##UU] = UU"
  24.262   (fn prems =>
  24.263  	[
  24.264 @@ -498,7 +498,7 @@
  24.265  	(rtac strict_Isfst2 1)
  24.266  	]);
  24.267  
  24.268 -val strict_ssnd = prove_goalw Sprod3.thy [ssnd_def] 
  24.269 +qed_goalw "strict_ssnd" Sprod3.thy [ssnd_def] 
  24.270  	"p=UU==>ssnd[p]=UU"
  24.271   (fn prems =>
  24.272  	[
  24.273 @@ -510,7 +510,7 @@
  24.274  	(atac 1)
  24.275  	]);
  24.276  
  24.277 -val strict_ssnd1 = prove_goalw Sprod3.thy [ssnd_def,spair_def] 
  24.278 +qed_goalw "strict_ssnd1" Sprod3.thy [ssnd_def,spair_def] 
  24.279  	"ssnd[UU##y] = UU"
  24.280   (fn prems =>
  24.281  	[
  24.282 @@ -520,7 +520,7 @@
  24.283  	(rtac strict_Issnd1 1)
  24.284  	]);
  24.285  
  24.286 -val strict_ssnd2 = prove_goalw Sprod3.thy [ssnd_def,spair_def] 
  24.287 +qed_goalw "strict_ssnd2" Sprod3.thy [ssnd_def,spair_def] 
  24.288  	"ssnd[x##UU] = UU"
  24.289   (fn prems =>
  24.290  	[
  24.291 @@ -530,7 +530,7 @@
  24.292  	(rtac strict_Issnd2 1)
  24.293  	]);
  24.294  
  24.295 -val sfst2 = prove_goalw Sprod3.thy [sfst_def,spair_def] 
  24.296 +qed_goalw "sfst2" Sprod3.thy [sfst_def,spair_def] 
  24.297  	"~y=UU ==>sfst[x##y]=x"
  24.298   (fn prems =>
  24.299  	[
  24.300 @@ -541,7 +541,7 @@
  24.301  	(etac Isfst2 1)
  24.302  	]);
  24.303  
  24.304 -val ssnd2 = prove_goalw Sprod3.thy [ssnd_def,spair_def] 
  24.305 +qed_goalw "ssnd2" Sprod3.thy [ssnd_def,spair_def] 
  24.306  	"~x=UU ==>ssnd[x##y]=y"
  24.307   (fn prems =>
  24.308  	[
  24.309 @@ -553,7 +553,7 @@
  24.310  	]);
  24.311  
  24.312  
  24.313 -val defined_sfstssnd = prove_goalw Sprod3.thy [sfst_def,ssnd_def,spair_def]
  24.314 +qed_goalw "defined_sfstssnd" Sprod3.thy [sfst_def,ssnd_def,spair_def]
  24.315  	"~p=UU ==> ~sfst[p]=UU & ~ssnd[p]=UU"
  24.316   (fn prems =>
  24.317  	[
  24.318 @@ -568,7 +568,7 @@
  24.319  	]);
  24.320   
  24.321  
  24.322 -val surjective_pairing_Sprod2 = prove_goalw Sprod3.thy 
  24.323 +qed_goalw "surjective_pairing_Sprod2" Sprod3.thy 
  24.324  	[sfst_def,ssnd_def,spair_def] "(sfst[p] ## ssnd[p]) = p"
  24.325   (fn prems =>
  24.326  	[
  24.327 @@ -581,7 +581,7 @@
  24.328  	]);
  24.329  
  24.330  
  24.331 -val less_sprod5b = prove_goalw Sprod3.thy [sfst_def,ssnd_def,spair_def]
  24.332 +qed_goalw "less_sprod5b" Sprod3.thy [sfst_def,ssnd_def,spair_def]
  24.333   "~p1=UU ==> (p1<<p2) = (sfst[p1]<<sfst[p2] & ssnd[p1]<<ssnd[p2])"
  24.334   (fn prems =>
  24.335  	[
  24.336 @@ -600,7 +600,7 @@
  24.337  	]);
  24.338  
  24.339   
  24.340 -val less_sprod5c = prove_goalw Sprod3.thy [sfst_def,ssnd_def,spair_def]
  24.341 +qed_goalw "less_sprod5c" Sprod3.thy [sfst_def,ssnd_def,spair_def]
  24.342   "[|xa##ya<<x##y;~xa=UU;~ya=UU;~x=UU;~y=UU|] ==>xa<<x & ya << y"
  24.343   (fn prems =>
  24.344  	[
  24.345 @@ -612,7 +612,7 @@
  24.346  	(atac 1)
  24.347  	]);
  24.348  
  24.349 -val lub_sprod2 = prove_goalw Sprod3.thy [sfst_def,ssnd_def,spair_def]
  24.350 +qed_goalw "lub_sprod2" Sprod3.thy [sfst_def,ssnd_def,spair_def]
  24.351  "[|is_chain(S)|] ==> range(S) <<| \
  24.352  \ (lub(range(%i.sfst[S(i)])) ## lub(range(%i.ssnd[S(i)])))"
  24.353   (fn prems =>
  24.354 @@ -634,7 +634,7 @@
  24.355  
  24.356  
  24.357  
  24.358 -val ssplit1 = prove_goalw Sprod3.thy [ssplit_def]
  24.359 +qed_goalw "ssplit1" Sprod3.thy [ssplit_def]
  24.360  	"ssplit[f][UU]=UU"
  24.361   (fn prems =>
  24.362  	[
  24.363 @@ -644,7 +644,7 @@
  24.364  	(rtac refl 1)
  24.365  	]);
  24.366  
  24.367 -val ssplit2 = prove_goalw Sprod3.thy [ssplit_def]
  24.368 +qed_goalw "ssplit2" Sprod3.thy [ssplit_def]
  24.369  	"[|~x=UU;~y=UU|] ==> ssplit[f][x##y]=f[x][y]"
  24.370   (fn prems =>
  24.371  	[
  24.372 @@ -664,7 +664,7 @@
  24.373  	]);
  24.374  
  24.375  
  24.376 -val ssplit3 = prove_goalw Sprod3.thy [ssplit_def]
  24.377 +qed_goalw "ssplit3" Sprod3.thy [ssplit_def]
  24.378    "ssplit[spair][z]=z"
  24.379   (fn prems =>
  24.380  	[
    25.1 --- a/src/HOLCF/Ssum0.ML	Fri Feb 03 12:32:14 1995 +0100
    25.2 +++ b/src/HOLCF/Ssum0.ML	Tue Feb 07 11:59:32 1995 +0100
    25.3 @@ -12,7 +12,7 @@
    25.4  (* A non-emptyness result for Sssum                                         *)
    25.5  (* ------------------------------------------------------------------------ *)
    25.6  
    25.7 -val SsumIl = prove_goalw Ssum0.thy [Ssum_def] "Sinl_Rep(a):Ssum"
    25.8 +qed_goalw "SsumIl" Ssum0.thy [Ssum_def] "Sinl_Rep(a):Ssum"
    25.9   (fn prems =>
   25.10  	[
   25.11  	(rtac CollectI 1),
   25.12 @@ -21,7 +21,7 @@
   25.13  	(rtac refl 1)
   25.14  	]);
   25.15  
   25.16 -val SsumIr = prove_goalw Ssum0.thy [Ssum_def] "Sinr_Rep(a):Ssum"
   25.17 +qed_goalw "SsumIr" Ssum0.thy [Ssum_def] "Sinr_Rep(a):Ssum"
   25.18   (fn prems =>
   25.19  	[
   25.20  	(rtac CollectI 1),
   25.21 @@ -30,7 +30,7 @@
   25.22  	(rtac refl 1)
   25.23  	]);
   25.24  
   25.25 -val inj_onto_Abs_Ssum = prove_goal Ssum0.thy "inj_onto(Abs_Ssum,Ssum)"
   25.26 +qed_goal "inj_onto_Abs_Ssum" Ssum0.thy "inj_onto(Abs_Ssum,Ssum)"
   25.27  (fn prems =>
   25.28  	[
   25.29  	(rtac inj_onto_inverseI 1),
   25.30 @@ -41,7 +41,7 @@
   25.31  (* Strictness of Sinr_Rep, Sinl_Rep and Isinl, Isinr                        *)
   25.32  (* ------------------------------------------------------------------------ *)
   25.33  
   25.34 -val strict_SinlSinr_Rep = prove_goalw Ssum0.thy [Sinr_Rep_def,Sinl_Rep_def]
   25.35 +qed_goalw "strict_SinlSinr_Rep" Ssum0.thy [Sinr_Rep_def,Sinl_Rep_def]
   25.36   "Sinl_Rep(UU) = Sinr_Rep(UU)"
   25.37   (fn prems =>
   25.38  	[
   25.39 @@ -51,7 +51,7 @@
   25.40  	(fast_tac HOL_cs 1)
   25.41  	]);
   25.42  
   25.43 -val strict_IsinlIsinr = prove_goalw Ssum0.thy [Isinl_def,Isinr_def]
   25.44 +qed_goalw "strict_IsinlIsinr" Ssum0.thy [Isinl_def,Isinr_def]
   25.45   "Isinl(UU) = Isinr(UU)"
   25.46   (fn prems =>
   25.47  	[
   25.48 @@ -63,7 +63,7 @@
   25.49  (* distinctness of  Sinl_Rep, Sinr_Rep and Isinl, Isinr                     *)
   25.50  (* ------------------------------------------------------------------------ *)
   25.51  
   25.52 -val noteq_SinlSinr_Rep = prove_goalw Ssum0.thy [Sinl_Rep_def,Sinr_Rep_def]
   25.53 +qed_goalw "noteq_SinlSinr_Rep" Ssum0.thy [Sinl_Rep_def,Sinr_Rep_def]
   25.54  	"(Sinl_Rep(a) = Sinr_Rep(b)) ==> a=UU & b=UU"
   25.55   (fn prems =>
   25.56  	[
   25.57 @@ -83,7 +83,7 @@
   25.58  	]);
   25.59  
   25.60  
   25.61 -val noteq_IsinlIsinr = prove_goalw Ssum0.thy [Isinl_def,Isinr_def]
   25.62 +qed_goalw "noteq_IsinlIsinr" Ssum0.thy [Isinl_def,Isinr_def]
   25.63  	"Isinl(a)=Isinr(b) ==> a=UU & b=UU"
   25.64   (fn prems =>
   25.65  	[
   25.66 @@ -100,7 +100,7 @@
   25.67  (* injectivity of Sinl_Rep, Sinr_Rep and Isinl, Isinr                       *)
   25.68  (* ------------------------------------------------------------------------ *)
   25.69  
   25.70 -val inject_Sinl_Rep1 = prove_goalw Ssum0.thy [Sinl_Rep_def]
   25.71 +qed_goalw "inject_Sinl_Rep1" Ssum0.thy [Sinl_Rep_def]
   25.72   "(Sinl_Rep(a) = Sinl_Rep(UU)) ==> a=UU"
   25.73   (fn prems =>
   25.74  	[
   25.75 @@ -112,7 +112,7 @@
   25.76  	(atac 1)
   25.77  	]);
   25.78  
   25.79 -val inject_Sinr_Rep1 = prove_goalw Ssum0.thy [Sinr_Rep_def]
   25.80 +qed_goalw "inject_Sinr_Rep1" Ssum0.thy [Sinr_Rep_def]
   25.81   "(Sinr_Rep(b) = Sinr_Rep(UU)) ==> b=UU"
   25.82   (fn prems =>
   25.83  	[
   25.84 @@ -124,7 +124,7 @@
   25.85  	(atac 1)
   25.86  	]);
   25.87  
   25.88 -val inject_Sinl_Rep2 = prove_goalw Ssum0.thy [Sinl_Rep_def]
   25.89 +qed_goalw "inject_Sinl_Rep2" Ssum0.thy [Sinl_Rep_def]
   25.90  "[|~a1=UU ; ~a2=UU ; Sinl_Rep(a1)=Sinl_Rep(a2) |] ==> a1=a2"
   25.91   (fn prems =>
   25.92  	[
   25.93 @@ -134,7 +134,7 @@
   25.94  	(resolve_tac prems 1)
   25.95  	]);
   25.96  
   25.97 -val inject_Sinr_Rep2 = prove_goalw Ssum0.thy [Sinr_Rep_def]
   25.98 +qed_goalw "inject_Sinr_Rep2" Ssum0.thy [Sinr_Rep_def]
   25.99  "[|~b1=UU ; ~b2=UU ; Sinr_Rep(b1)=Sinr_Rep(b2) |] ==> b1=b2"
  25.100   (fn prems =>
  25.101  	[
  25.102 @@ -144,7 +144,7 @@
  25.103  	(resolve_tac prems 1)
  25.104  	]);
  25.105  
  25.106 -val inject_Sinl_Rep = prove_goal Ssum0.thy 
  25.107 +qed_goal "inject_Sinl_Rep" Ssum0.thy 
  25.108  	"Sinl_Rep(a1)=Sinl_Rep(a2) ==> a1=a2"
  25.109   (fn prems =>
  25.110  	[
  25.111 @@ -161,7 +161,7 @@
  25.112  	(atac 1)
  25.113  	]);
  25.114  
  25.115 -val inject_Sinr_Rep = prove_goal Ssum0.thy 
  25.116 +qed_goal "inject_Sinr_Rep" Ssum0.thy 
  25.117  	"Sinr_Rep(b1)=Sinr_Rep(b2) ==> b1=b2"
  25.118   (fn prems =>
  25.119  	[
  25.120 @@ -178,7 +178,7 @@
  25.121  	(atac 1)
  25.122  	]);
  25.123  
  25.124 -val inject_Isinl = prove_goalw Ssum0.thy [Isinl_def]
  25.125 +qed_goalw "inject_Isinl" Ssum0.thy [Isinl_def]
  25.126  "Isinl(a1)=Isinl(a2)==> a1=a2"
  25.127   (fn prems =>
  25.128  	[
  25.129 @@ -189,7 +189,7 @@
  25.130  	(rtac SsumIl 1)
  25.131  	]);
  25.132  
  25.133 -val inject_Isinr = prove_goalw Ssum0.thy [Isinr_def]
  25.134 +qed_goalw "inject_Isinr" Ssum0.thy [Isinr_def]
  25.135  "Isinr(b1)=Isinr(b2) ==> b1=b2"
  25.136   (fn prems =>
  25.137  	[
  25.138 @@ -200,7 +200,7 @@
  25.139  	(rtac SsumIr 1)
  25.140  	]);
  25.141  
  25.142 -val inject_Isinl_rev = prove_goal Ssum0.thy  
  25.143 +qed_goal "inject_Isinl_rev" Ssum0.thy  
  25.144  "~a1=a2 ==> ~Isinl(a1) = Isinl(a2)"
  25.145   (fn prems =>
  25.146  	[
  25.147 @@ -210,7 +210,7 @@
  25.148  	(atac 1)
  25.149  	]);
  25.150  
  25.151 -val inject_Isinr_rev = prove_goal Ssum0.thy  
  25.152 +qed_goal "inject_Isinr_rev" Ssum0.thy  
  25.153  "~b1=b2 ==> ~Isinr(b1) = Isinr(b2)"
  25.154   (fn prems =>
  25.155  	[
  25.156 @@ -225,7 +225,7 @@
  25.157  (* choice of the bottom representation is arbitrary                         *)
  25.158  (* ------------------------------------------------------------------------ *)
  25.159  
  25.160 -val Exh_Ssum = prove_goalw Ssum0.thy [Isinl_def,Isinr_def]
  25.161 +qed_goalw "Exh_Ssum" Ssum0.thy [Isinl_def,Isinr_def]
  25.162  	"z=Isinl(UU) | (? a. z=Isinl(a) & ~a=UU) | (? b. z=Isinr(b) & ~b=UU)"
  25.163   (fn prems =>
  25.164  	[
  25.165 @@ -270,7 +270,7 @@
  25.166  (* elimination rules for the strict sum ++                                  *)
  25.167  (* ------------------------------------------------------------------------ *)
  25.168  
  25.169 -val IssumE = prove_goal Ssum0.thy
  25.170 +qed_goal "IssumE" Ssum0.thy
  25.171  	"[|p=Isinl(UU) ==> Q ;\
  25.172  \	!!x.[|p=Isinl(x); ~x=UU |] ==> Q;\
  25.173  \	!!y.[|p=Isinr(y); ~y=UU |] ==> Q|] ==> Q"
  25.174 @@ -289,7 +289,7 @@
  25.175  	(atac 1)
  25.176  	]);
  25.177  
  25.178 -val IssumE2 = prove_goal Ssum0.thy 
  25.179 +qed_goal "IssumE2" Ssum0.thy 
  25.180  "[| !!x. [| p = Isinl(x) |] ==> Q;   !!y. [| p = Isinr(y) |] ==> Q |] ==>Q"
  25.181   (fn prems =>
  25.182  	[
  25.183 @@ -306,7 +306,7 @@
  25.184  (* rewrites for Iwhen                                                       *)
  25.185  (* ------------------------------------------------------------------------ *)
  25.186  
  25.187 -val Iwhen1 = prove_goalw Ssum0.thy [Iwhen_def]
  25.188 +qed_goalw "Iwhen1" Ssum0.thy [Iwhen_def]
  25.189  	"Iwhen(f)(g)(Isinl(UU)) = UU"
  25.190   (fn prems =>
  25.191  	[
  25.192 @@ -331,7 +331,7 @@
  25.193  	]);
  25.194  
  25.195  
  25.196 -val Iwhen2 = prove_goalw Ssum0.thy [Iwhen_def]
  25.197 +qed_goalw "Iwhen2" Ssum0.thy [Iwhen_def]
  25.198  	"~x=UU ==> Iwhen(f)(g)(Isinl(x)) = f[x]"
  25.199   (fn prems =>
  25.200  	[
  25.201 @@ -357,7 +357,7 @@
  25.202  	(fast_tac HOL_cs  1)
  25.203  	]);
  25.204  
  25.205 -val Iwhen3 = prove_goalw Ssum0.thy [Iwhen_def]
  25.206 +qed_goalw "Iwhen3" Ssum0.thy [Iwhen_def]
  25.207  	"~y=UU ==> Iwhen(f)(g)(Isinr(y)) = g[y]"
  25.208   (fn prems =>
  25.209  	[
    26.1 --- a/src/HOLCF/Ssum1.ML	Fri Feb 03 12:32:14 1995 +0100
    26.2 +++ b/src/HOLCF/Ssum1.ML	Tue Feb 07 11:59:32 1995 +0100
    26.3 @@ -212,7 +212,7 @@
    26.4  (* optimize lemmas about less_ssum                                          *)
    26.5  (* ------------------------------------------------------------------------ *)
    26.6  
    26.7 -val less_ssum2a = prove_goal Ssum1.thy 
    26.8 +qed_goal "less_ssum2a" Ssum1.thy 
    26.9  	"less_ssum(Isinl(x),Isinl(y)) = (x << y)"
   26.10   (fn prems =>
   26.11  	[
   26.12 @@ -221,7 +221,7 @@
   26.13  	(rtac refl 1)
   26.14  	]);
   26.15  
   26.16 -val less_ssum2b = prove_goal Ssum1.thy 
   26.17 +qed_goal "less_ssum2b" Ssum1.thy 
   26.18  	"less_ssum(Isinr(x),Isinr(y)) = (x << y)"
   26.19   (fn prems =>
   26.20  	[
   26.21 @@ -230,7 +230,7 @@
   26.22  	(rtac refl 1)
   26.23  	]);
   26.24  
   26.25 -val less_ssum2c = prove_goal Ssum1.thy 
   26.26 +qed_goal "less_ssum2c" Ssum1.thy 
   26.27  	"less_ssum(Isinl(x),Isinr(y)) = (x = UU)"
   26.28   (fn prems =>
   26.29  	[
   26.30 @@ -239,7 +239,7 @@
   26.31  	(rtac refl 1)
   26.32  	]);
   26.33  
   26.34 -val less_ssum2d = prove_goal Ssum1.thy 
   26.35 +qed_goal "less_ssum2d" Ssum1.thy 
   26.36  	"less_ssum(Isinr(x),Isinl(y)) = (x = UU)"
   26.37   (fn prems =>
   26.38  	[
   26.39 @@ -253,7 +253,7 @@
   26.40  (* less_ssum is a partial order on ++                                     *)
   26.41  (* ------------------------------------------------------------------------ *)
   26.42  
   26.43 -val refl_less_ssum = prove_goal Ssum1.thy "less_ssum(p,p)"
   26.44 +qed_goal "refl_less_ssum" Ssum1.thy "less_ssum(p,p)"
   26.45   (fn prems =>
   26.46  	[
   26.47  	(res_inst_tac [("p","p")] IssumE2 1),
   26.48 @@ -265,7 +265,7 @@
   26.49  	(rtac refl_less 1)
   26.50  	]);
   26.51  
   26.52 -val antisym_less_ssum = prove_goal Ssum1.thy 
   26.53 +qed_goal "antisym_less_ssum" Ssum1.thy 
   26.54   "[|less_ssum(p1,p2);less_ssum(p2,p1)|] ==> p1=p2"
   26.55   (fn prems =>
   26.56  	[
   26.57 @@ -295,7 +295,7 @@
   26.58  	(etac (less_ssum2b RS iffD1) 1)
   26.59  	]);
   26.60  
   26.61 -val trans_less_ssum = prove_goal Ssum1.thy 
   26.62 +qed_goal "trans_less_ssum" Ssum1.thy 
   26.63   "[|less_ssum(p1,p2);less_ssum(p2,p3)|] ==> less_ssum(p1,p3)"
   26.64   (fn prems =>
   26.65  	[
    27.1 --- a/src/HOLCF/Ssum2.ML	Fri Feb 03 12:32:14 1995 +0100
    27.2 +++ b/src/HOLCF/Ssum2.ML	Tue Feb 07 11:59:32 1995 +0100
    27.3 @@ -12,7 +12,7 @@
    27.4  (* access to less_ssum in class po                                          *)
    27.5  (* ------------------------------------------------------------------------ *)
    27.6  
    27.7 -val less_ssum3a = prove_goal Ssum2.thy 
    27.8 +qed_goal "less_ssum3a" Ssum2.thy 
    27.9  	"(Isinl(x) << Isinl(y)) = (x << y)"
   27.10   (fn prems =>
   27.11  	[
   27.12 @@ -20,7 +20,7 @@
   27.13  	(rtac less_ssum2a 1)
   27.14  	]);
   27.15  
   27.16 -val less_ssum3b = prove_goal Ssum2.thy 
   27.17 +qed_goal "less_ssum3b" Ssum2.thy 
   27.18  	"(Isinr(x) << Isinr(y)) = (x << y)"
   27.19   (fn prems =>
   27.20  	[
   27.21 @@ -28,7 +28,7 @@
   27.22  	(rtac less_ssum2b 1)
   27.23  	]);
   27.24  
   27.25 -val less_ssum3c = prove_goal Ssum2.thy 
   27.26 +qed_goal "less_ssum3c" Ssum2.thy 
   27.27  	"(Isinl(x) << Isinr(y)) = (x = UU)"
   27.28   (fn prems =>
   27.29  	[
   27.30 @@ -36,7 +36,7 @@
   27.31  	(rtac less_ssum2c 1)
   27.32  	]);
   27.33  
   27.34 -val less_ssum3d = prove_goal Ssum2.thy 
   27.35 +qed_goal "less_ssum3d" Ssum2.thy 
   27.36  	"(Isinr(x) << Isinl(y)) = (x = UU)"
   27.37   (fn prems =>
   27.38  	[
   27.39 @@ -49,7 +49,7 @@
   27.40  (* type ssum ++ is pointed                                                  *)
   27.41  (* ------------------------------------------------------------------------ *)
   27.42  
   27.43 -val minimal_ssum = prove_goal Ssum2.thy "Isinl(UU) << s"
   27.44 +qed_goal "minimal_ssum" Ssum2.thy "Isinl(UU) << s"
   27.45   (fn prems =>
   27.46  	[
   27.47  	(res_inst_tac [("p","s")] IssumE2 1),
   27.48 @@ -67,14 +67,14 @@
   27.49  (* Isinl, Isinr are monotone                                                *)
   27.50  (* ------------------------------------------------------------------------ *)
   27.51  
   27.52 -val monofun_Isinl = prove_goalw Ssum2.thy [monofun] "monofun(Isinl)"
   27.53 +qed_goalw "monofun_Isinl" Ssum2.thy [monofun] "monofun(Isinl)"
   27.54   (fn prems =>
   27.55  	[
   27.56  	(strip_tac 1),
   27.57  	(etac (less_ssum3a RS iffD2) 1)
   27.58  	]);
   27.59  
   27.60 -val monofun_Isinr = prove_goalw Ssum2.thy [monofun] "monofun(Isinr)"
   27.61 +qed_goalw "monofun_Isinr" Ssum2.thy [monofun] "monofun(Isinr)"
   27.62   (fn prems =>
   27.63  	[
   27.64  	(strip_tac 1),
   27.65 @@ -87,7 +87,7 @@
   27.66  (* ------------------------------------------------------------------------ *)
   27.67  
   27.68  
   27.69 -val monofun_Iwhen1 = prove_goalw Ssum2.thy [monofun] "monofun(Iwhen)"
   27.70 +qed_goalw "monofun_Iwhen1" Ssum2.thy [monofun] "monofun(Iwhen)"
   27.71   (fn prems =>
   27.72  	[
   27.73  	(strip_tac 1),
   27.74 @@ -103,7 +103,7 @@
   27.75  	(asm_simp_tac Ssum_ss 1)
   27.76  	]);
   27.77  
   27.78 -val monofun_Iwhen2 = prove_goalw Ssum2.thy [monofun] "monofun(Iwhen(f))"
   27.79 +qed_goalw "monofun_Iwhen2" Ssum2.thy [monofun] "monofun(Iwhen(f))"
   27.80   (fn prems =>
   27.81  	[
   27.82  	(strip_tac 1),
   27.83 @@ -117,7 +117,7 @@
   27.84  	(etac monofun_cfun_fun 1)
   27.85  	]);
   27.86  
   27.87 -val monofun_Iwhen3 = prove_goalw Ssum2.thy [monofun] "monofun(Iwhen(f)(g))"
   27.88 +qed_goalw "monofun_Iwhen3" Ssum2.thy [monofun] "monofun(Iwhen(f)(g))"
   27.89   (fn prems =>
   27.90  	[
   27.91  	(strip_tac 1),
   27.92 @@ -165,7 +165,7 @@
   27.93  (* ------------------------------------------------------------------------ *)
   27.94  
   27.95  
   27.96 -val ssum_lemma1 = prove_goal Ssum2.thy 
   27.97 +qed_goal "ssum_lemma1" Ssum2.thy 
   27.98  "[|~(!i.? x.Y(i::nat)=Isinl(x))|] ==> (? i.! x.~Y(i)=Isinl(x))"
   27.99   (fn prems =>
  27.100  	[
  27.101 @@ -173,7 +173,7 @@
  27.102  	(fast_tac HOL_cs 1)
  27.103  	]);
  27.104  
  27.105 -val ssum_lemma2 = prove_goal Ssum2.thy 
  27.106 +qed_goal "ssum_lemma2" Ssum2.thy 
  27.107  "[|(? i.!x.~(Y::nat => 'a++'b)(i::nat)=Isinl(x::'a))|] ==>\
  27.108  \   (? i y. (Y::nat => 'a++'b)(i::nat)=Isinr(y::'b) & ~y=UU)"
  27.109   (fn prems =>
  27.110 @@ -189,7 +189,7 @@
  27.111  	]);
  27.112  
  27.113  
  27.114 -val ssum_lemma3 = prove_goal Ssum2.thy 
  27.115 +qed_goal "ssum_lemma3" Ssum2.thy 
  27.116  "[|is_chain(Y);(? i x. Y(i)=Isinr(x) & ~x=UU)|] ==> (!i.? y.Y(i)=Isinr(y))"
  27.117   (fn prems =>
  27.118  	[
  27.119 @@ -227,7 +227,7 @@
  27.120  	(atac 1)
  27.121  	]);
  27.122  
  27.123 -val ssum_lemma4 = prove_goal Ssum2.thy 
  27.124 +qed_goal "ssum_lemma4" Ssum2.thy 
  27.125  "is_chain(Y) ==> (!i.? x.Y(i)=Isinl(x))|(!i.? y.Y(i)=Isinr(y))"
  27.126   (fn prems =>
  27.127  	[
  27.128 @@ -245,7 +245,7 @@
  27.129  (* restricted surjectivity of Isinl                                         *)
  27.130  (* ------------------------------------------------------------------------ *)
  27.131  
  27.132 -val ssum_lemma5 = prove_goal Ssum2.thy 
  27.133 +qed_goal "ssum_lemma5" Ssum2.thy 
  27.134  "z=Isinl(x)==> Isinl((Iwhen (LAM x.x) (LAM y.UU))(z)) = z"
  27.135   (fn prems =>
  27.136  	[
  27.137 @@ -260,7 +260,7 @@
  27.138  (* restricted surjectivity of Isinr                                         *)
  27.139  (* ------------------------------------------------------------------------ *)
  27.140  
  27.141 -val ssum_lemma6 = prove_goal Ssum2.thy 
  27.142 +qed_goal "ssum_lemma6" Ssum2.thy 
  27.143  "z=Isinr(x)==> Isinr((Iwhen (LAM y.UU) (LAM x.x))(z)) = z"
  27.144   (fn prems =>
  27.145  	[
  27.146 @@ -275,7 +275,7 @@
  27.147  (* technical lemmas                                                         *)
  27.148  (* ------------------------------------------------------------------------ *)
  27.149  
  27.150 -val ssum_lemma7 = prove_goal Ssum2.thy 
  27.151 +qed_goal "ssum_lemma7" Ssum2.thy 
  27.152  "[|Isinl(x) << z; ~x=UU|] ==> ? y.z=Isinl(y) & ~y=UU"
  27.153   (fn prems =>
  27.154  	[
  27.155 @@ -293,7 +293,7 @@
  27.156  	(atac 1)
  27.157  	]);
  27.158  
  27.159 -val ssum_lemma8 = prove_goal Ssum2.thy 
  27.160 +qed_goal "ssum_lemma8" Ssum2.thy 
  27.161  "[|Isinr(x) << z; ~x=UU|] ==> ? y.z=Isinr(y) & ~y=UU"
  27.162   (fn prems =>
  27.163  	[
  27.164 @@ -313,7 +313,7 @@
  27.165  (* the type 'a ++ 'b is a cpo in three steps                                *)
  27.166  (* ------------------------------------------------------------------------ *)
  27.167  
  27.168 -val lub_ssum1a = prove_goal Ssum2.thy 
  27.169 +qed_goal "lub_ssum1a" Ssum2.thy 
  27.170  "[|is_chain(Y);(!i.? x.Y(i)=Isinl(x))|] ==>\
  27.171  \ range(Y) <<|\
  27.172  \ Isinl(lub(range(%i.(Iwhen (LAM x.x) (LAM y.UU))(Y(i)))))"
  27.173 @@ -354,7 +354,7 @@
  27.174  	]);
  27.175  
  27.176  
  27.177 -val lub_ssum1b = prove_goal Ssum2.thy 
  27.178 +qed_goal "lub_ssum1b" Ssum2.thy 
  27.179  "[|is_chain(Y);(!i.? x.Y(i)=Isinr(x))|] ==>\
  27.180  \ range(Y) <<|\
  27.181  \ Isinr(lub(range(%i.(Iwhen (LAM y.UU) (LAM x.x))(Y(i)))))"
  27.182 @@ -403,7 +403,7 @@
  27.183  (* [| is_chain(?Y1); ! i. ? x. ?Y1(i) = Isinr(x) |] ==>                     *)
  27.184  (* lub(range(?Y1)) = Isinr(lub(range(%i. Iwhen(LAM y. UU,LAM x. x,?Y1(i)))))*)
  27.185  
  27.186 -val cpo_ssum = prove_goal Ssum2.thy 
  27.187 +qed_goal "cpo_ssum" Ssum2.thy 
  27.188  	"is_chain(Y::nat=>'a ++'b) ==> ? x.range(Y) <<|x"
  27.189   (fn prems =>
  27.190  	[
    28.1 --- a/src/HOLCF/Ssum3.ML	Fri Feb 03 12:32:14 1995 +0100
    28.2 +++ b/src/HOLCF/Ssum3.ML	Tue Feb 07 11:59:32 1995 +0100
    28.3 @@ -13,7 +13,7 @@
    28.4  (* ------------------------------------------------------------------------ *)
    28.5  
    28.6  
    28.7 -val contlub_Isinl = prove_goal Ssum3.thy "contlub(Isinl)"
    28.8 +qed_goal "contlub_Isinl" Ssum3.thy "contlub(Isinl)"
    28.9   (fn prems =>
   28.10  	[
   28.11  	(rtac contlubI 1),
   28.12 @@ -45,7 +45,7 @@
   28.13  	(asm_simp_tac Ssum_ss 1)
   28.14  	]);
   28.15  
   28.16 -val contlub_Isinr = prove_goal Ssum3.thy "contlub(Isinr)"
   28.17 +qed_goal "contlub_Isinr" Ssum3.thy "contlub(Isinr)"
   28.18   (fn prems =>
   28.19  	[
   28.20  	(rtac contlubI 1),
   28.21 @@ -76,7 +76,7 @@
   28.22  	(asm_simp_tac Ssum_ss 1)
   28.23  	]);
   28.24  
   28.25 -val contX_Isinl = prove_goal Ssum3.thy "contX(Isinl)"
   28.26 +qed_goal "contX_Isinl" Ssum3.thy "contX(Isinl)"
   28.27   (fn prems =>
   28.28  	[
   28.29  	(rtac monocontlub2contX 1),
   28.30 @@ -84,7 +84,7 @@
   28.31  	(rtac contlub_Isinl 1)
   28.32  	]);
   28.33  
   28.34 -val contX_Isinr = prove_goal Ssum3.thy "contX(Isinr)"
   28.35 +qed_goal "contX_Isinr" Ssum3.thy "contX(Isinr)"
   28.36   (fn prems =>
   28.37  	[
   28.38  	(rtac monocontlub2contX 1),
   28.39 @@ -97,7 +97,7 @@
   28.40  (* continuity for Iwhen in the firts two arguments                          *)
   28.41  (* ------------------------------------------------------------------------ *)
   28.42  
   28.43 -val contlub_Iwhen1 = prove_goal Ssum3.thy "contlub(Iwhen)"
   28.44 +qed_goal "contlub_Iwhen1" Ssum3.thy "contlub(Iwhen)"
   28.45   (fn prems =>
   28.46  	[
   28.47  	(rtac contlubI 1),
   28.48 @@ -122,7 +122,7 @@
   28.49  	(rtac (lub_const RS thelubI RS sym) 1)
   28.50  	]);
   28.51  
   28.52 -val contlub_Iwhen2 = prove_goal Ssum3.thy "contlub(Iwhen(f))"
   28.53 +qed_goal "contlub_Iwhen2" Ssum3.thy "contlub(Iwhen(f))"
   28.54   (fn prems =>
   28.55  	[
   28.56  	(rtac contlubI 1),
   28.57 @@ -149,7 +149,7 @@
   28.58  (* first 5 ugly lemmas                                                      *)
   28.59  (* ------------------------------------------------------------------------ *)
   28.60  
   28.61 -val ssum_lemma9 = prove_goal Ssum3.thy 
   28.62 +qed_goal "ssum_lemma9" Ssum3.thy 
   28.63  "[| is_chain(Y); lub(range(Y)) = Isinl(x)|] ==> !i.? x.Y(i)=Isinl(x)"
   28.64   (fn prems =>
   28.65  	[
   28.66 @@ -167,7 +167,7 @@
   28.67  	]);
   28.68  
   28.69  
   28.70 -val ssum_lemma10 = prove_goal Ssum3.thy 
   28.71 +qed_goal "ssum_lemma10" Ssum3.thy 
   28.72  "[| is_chain(Y); lub(range(Y)) = Isinr(x)|] ==> !i.? x.Y(i)=Isinr(x)"
   28.73   (fn prems =>
   28.74  	[
   28.75 @@ -186,7 +186,7 @@
   28.76  	(etac is_ub_thelub 1)
   28.77  	]);
   28.78  
   28.79 -val ssum_lemma11 = prove_goal Ssum3.thy 
   28.80 +qed_goal "ssum_lemma11" Ssum3.thy 
   28.81  "[| is_chain(Y); lub(range(Y)) = Isinl(UU) |] ==>\
   28.82  \   Iwhen(f,g,lub(range(Y))) = lub(range(%i. Iwhen(f,g,Y(i))))"
   28.83   (fn prems =>
   28.84 @@ -203,7 +203,7 @@
   28.85  	(asm_simp_tac Ssum_ss 1)
   28.86  	]);
   28.87  
   28.88 -val ssum_lemma12 = prove_goal Ssum3.thy 
   28.89 +qed_goal "ssum_lemma12" Ssum3.thy 
   28.90  "[| is_chain(Y); lub(range(Y)) = Isinl(x); ~ x = UU |] ==>\
   28.91  \   Iwhen(f,g,lub(range(Y))) = lub(range(%i. Iwhen(f,g,Y(i))))"
   28.92   (fn prems =>
   28.93 @@ -262,7 +262,7 @@
   28.94  	]);
   28.95  
   28.96  
   28.97 -val ssum_lemma13 = prove_goal Ssum3.thy 
   28.98 +qed_goal "ssum_lemma13" Ssum3.thy 
   28.99  "[| is_chain(Y); lub(range(Y)) = Isinr(x); ~ x = UU |] ==>\
  28.100  \   Iwhen(f,g,lub(range(Y))) = lub(range(%i. Iwhen(f,g,Y(i))))"
  28.101   (fn prems =>
  28.102 @@ -326,7 +326,7 @@
  28.103  	]);
  28.104  
  28.105  
  28.106 -val contlub_Iwhen3 = prove_goal Ssum3.thy "contlub(Iwhen(f)(g))"
  28.107 +qed_goal "contlub_Iwhen3" Ssum3.thy "contlub(Iwhen(f)(g))"
  28.108   (fn prems =>
  28.109  	[
  28.110  	(rtac contlubI 1),
  28.111 @@ -342,7 +342,7 @@
  28.112  	(atac 1)
  28.113  	]);
  28.114  
  28.115 -val contX_Iwhen1 = prove_goal Ssum3.thy "contX(Iwhen)"
  28.116 +qed_goal "contX_Iwhen1" Ssum3.thy "contX(Iwhen)"
  28.117   (fn prems =>
  28.118  	[
  28.119  	(rtac monocontlub2contX 1),
  28.120 @@ -350,7 +350,7 @@
  28.121  	(rtac contlub_Iwhen1 1)
  28.122  	]);
  28.123  
  28.124 -val contX_Iwhen2 = prove_goal Ssum3.thy "contX(Iwhen(f))"
  28.125 +qed_goal "contX_Iwhen2" Ssum3.thy "contX(Iwhen(f))"
  28.126   (fn prems =>
  28.127  	[
  28.128  	(rtac monocontlub2contX 1),
  28.129 @@ -358,7 +358,7 @@
  28.130  	(rtac contlub_Iwhen2 1)
  28.131  	]);
  28.132  
  28.133 -val contX_Iwhen3 = prove_goal Ssum3.thy "contX(Iwhen(f)(g))"
  28.134 +qed_goal "contX_Iwhen3" Ssum3.thy "contX(Iwhen(f)(g))"
  28.135   (fn prems =>
  28.136  	[
  28.137  	(rtac monocontlub2contX 1),
  28.138 @@ -370,21 +370,21 @@
  28.139  (* continuous versions of lemmas for 'a ++ 'b                               *)
  28.140  (* ------------------------------------------------------------------------ *)
  28.141  
  28.142 -val strict_sinl = prove_goalw Ssum3.thy [sinl_def] "sinl[UU]=UU"
  28.143 +qed_goalw "strict_sinl" Ssum3.thy [sinl_def] "sinl[UU]=UU"
  28.144   (fn prems =>
  28.145  	[
  28.146  	(simp_tac (Ssum_ss addsimps [contX_Isinl]) 1),
  28.147  	(rtac (inst_ssum_pcpo RS sym) 1)
  28.148  	]);
  28.149  
  28.150 -val strict_sinr = prove_goalw Ssum3.thy [sinr_def] "sinr[UU]=UU"
  28.151 +qed_goalw "strict_sinr" Ssum3.thy [sinr_def] "sinr[UU]=UU"
  28.152   (fn prems =>
  28.153  	[
  28.154  	(simp_tac (Ssum_ss addsimps [contX_Isinr]) 1),
  28.155  	(rtac (inst_ssum_pcpo RS sym) 1)
  28.156  	]);
  28.157  
  28.158 -val noteq_sinlsinr = prove_goalw Ssum3.thy [sinl_def,sinr_def] 
  28.159 +qed_goalw "noteq_sinlsinr" Ssum3.thy [sinl_def,sinr_def] 
  28.160  	"sinl[a]=sinr[b] ==> a=UU & b=UU"
  28.161   (fn prems =>
  28.162  	[
  28.163 @@ -395,7 +395,7 @@
  28.164  	(asm_simp_tac (Ssum_ss addsimps [contX_Isinr,contX_Isinl]) 1)
  28.165  	]);
  28.166  
  28.167 -val inject_sinl = prove_goalw Ssum3.thy [sinl_def,sinr_def] 
  28.168 +qed_goalw "inject_sinl" Ssum3.thy [sinl_def,sinr_def] 
  28.169  	"sinl[a1]=sinl[a2]==> a1=a2"
  28.170   (fn prems =>
  28.171  	[
  28.172 @@ -406,7 +406,7 @@
  28.173  	(asm_simp_tac (Ssum_ss addsimps [contX_Isinr,contX_Isinl]) 1)
  28.174  	]);
  28.175  
  28.176 -val inject_sinr = prove_goalw Ssum3.thy [sinl_def,sinr_def] 
  28.177 +qed_goalw "inject_sinr" Ssum3.thy [sinl_def,sinr_def] 
  28.178  	"sinr[a1]=sinr[a2]==> a1=a2"
  28.179   (fn prems =>
  28.180  	[
  28.181 @@ -418,7 +418,7 @@
  28.182  	]);
  28.183  
  28.184  
  28.185 -val defined_sinl = prove_goal Ssum3.thy  
  28.186 +qed_goal "defined_sinl" Ssum3.thy  
  28.187  	"~x=UU ==> ~sinl[x]=UU"
  28.188   (fn prems =>
  28.189  	[
  28.190 @@ -429,7 +429,7 @@
  28.191  	(etac notnotD 1)
  28.192  	]);
  28.193  
  28.194 -val defined_sinr = prove_goal Ssum3.thy  
  28.195 +qed_goal "defined_sinr" Ssum3.thy  
  28.196  	"~x=UU ==> ~sinr[x]=UU"
  28.197   (fn prems =>
  28.198  	[
  28.199 @@ -440,7 +440,7 @@
  28.200  	(etac notnotD 1)
  28.201  	]);
  28.202  
  28.203 -val Exh_Ssum1 = prove_goalw Ssum3.thy [sinl_def,sinr_def] 
  28.204 +qed_goalw "Exh_Ssum1" Ssum3.thy [sinl_def,sinr_def] 
  28.205  	"z=UU | (? a. z=sinl[a] & ~a=UU) | (? b. z=sinr[b] & ~b=UU)"
  28.206   (fn prems =>
  28.207  	[
  28.208 @@ -450,7 +450,7 @@
  28.209  	]);
  28.210  
  28.211  
  28.212 -val ssumE = prove_goalw Ssum3.thy [sinl_def,sinr_def] 
  28.213 +qed_goalw "ssumE" Ssum3.thy [sinl_def,sinr_def] 
  28.214  	"[|p=UU ==> Q ;\
  28.215  \	!!x.[|p=sinl[x]; ~x=UU |] ==> Q;\
  28.216  \	!!y.[|p=sinr[y]; ~y=UU |] ==> Q|] ==> Q"
  28.217 @@ -469,7 +469,7 @@
  28.218  	]);
  28.219  
  28.220  
  28.221 -val ssumE2 = prove_goalw Ssum3.thy [sinl_def,sinr_def] 
  28.222 +qed_goalw "ssumE2" Ssum3.thy [sinl_def,sinr_def] 
  28.223        "[|!!x.[|p=sinl[x]|] ==> Q;\
  28.224  \	!!y.[|p=sinr[y]|] ==> Q|] ==> Q"
  28.225   (fn prems =>
  28.226 @@ -485,7 +485,7 @@
  28.227  	(atac 1)
  28.228  	]);
  28.229  
  28.230 -val when1 = prove_goalw Ssum3.thy [when_def,sinl_def,sinr_def] 
  28.231 +qed_goalw "when1" Ssum3.thy [when_def,sinl_def,sinr_def] 
  28.232  	"when[f][g][UU] = UU"
  28.233   (fn prems =>
  28.234  	[
  28.235 @@ -502,7 +502,7 @@
  28.236  	(simp_tac Ssum_ss  1)
  28.237  	]);
  28.238  
  28.239 -val when2 = prove_goalw Ssum3.thy [when_def,sinl_def,sinr_def] 
  28.240 +qed_goalw "when2" Ssum3.thy [when_def,sinl_def,sinr_def] 
  28.241  	"~x=UU==>when[f][g][sinl[x]] = f[x]"
  28.242   (fn prems =>
  28.243  	[
  28.244 @@ -524,7 +524,7 @@
  28.245  
  28.246  
  28.247  
  28.248 -val when3 = prove_goalw Ssum3.thy [when_def,sinl_def,sinr_def] 
  28.249 +qed_goalw "when3" Ssum3.thy [when_def,sinl_def,sinr_def] 
  28.250  	"~x=UU==>when[f][g][sinr[x]] = g[x]"
  28.251   (fn prems =>
  28.252  	[
  28.253 @@ -545,7 +545,7 @@
  28.254  	]);
  28.255  
  28.256  
  28.257 -val less_ssum4a = prove_goalw Ssum3.thy [sinl_def,sinr_def] 
  28.258 +qed_goalw "less_ssum4a" Ssum3.thy [sinl_def,sinr_def] 
  28.259  	"(sinl[x] << sinl[y]) = (x << y)"
  28.260   (fn prems =>
  28.261  	[
  28.262 @@ -558,7 +558,7 @@
  28.263  	(rtac less_ssum3a 1)
  28.264  	]);
  28.265  
  28.266 -val less_ssum4b = prove_goalw Ssum3.thy [sinl_def,sinr_def] 
  28.267 +qed_goalw "less_ssum4b" Ssum3.thy [sinl_def,sinr_def] 
  28.268  	"(sinr[x] << sinr[y]) = (x << y)"
  28.269   (fn prems =>
  28.270  	[
  28.271 @@ -571,7 +571,7 @@
  28.272  	(rtac less_ssum3b 1)
  28.273  	]);
  28.274  
  28.275 -val less_ssum4c = prove_goalw Ssum3.thy [sinl_def,sinr_def] 
  28.276 +qed_goalw "less_ssum4c" Ssum3.thy [sinl_def,sinr_def] 
  28.277  	"(sinl[x] << sinr[y]) = (x = UU)"
  28.278   (fn prems =>
  28.279  	[
  28.280 @@ -584,7 +584,7 @@
  28.281  	(rtac less_ssum3c 1)
  28.282  	]);
  28.283  
  28.284 -val less_ssum4d = prove_goalw Ssum3.thy [sinl_def,sinr_def] 
  28.285 +qed_goalw "less_ssum4d" Ssum3.thy [sinl_def,sinr_def] 
  28.286  	"(sinr[x] << sinl[y]) = (x = UU)"
  28.287   (fn prems =>
  28.288  	[
  28.289 @@ -597,7 +597,7 @@
  28.290  	(rtac less_ssum3d 1)
  28.291  	]);
  28.292  
  28.293 -val ssum_chainE = prove_goalw Ssum3.thy [sinl_def,sinr_def] 
  28.294 +qed_goalw "ssum_chainE" Ssum3.thy [sinl_def,sinr_def] 
  28.295  	"is_chain(Y) ==> (!i.? x.Y(i)=sinl[x])|(!i.? y.Y(i)=sinr[y])"
  28.296   (fn prems =>
  28.297  	[
  28.298 @@ -607,7 +607,7 @@
  28.299  	]);
  28.300  
  28.301  
  28.302 -val thelub_ssum2a = prove_goalw Ssum3.thy [sinl_def,sinr_def,when_def] 
  28.303 +qed_goalw "thelub_ssum2a" Ssum3.thy [sinl_def,sinr_def,when_def] 
  28.304  "[| is_chain(Y); !i.? x. Y(i) = sinl[x] |] ==>\ 
  28.305  \   lub(range(Y)) = sinl[lub(range(%i. when[LAM x. x][LAM y. UU][Y(i)]))]"
  28.306   (fn prems =>
  28.307 @@ -632,7 +632,7 @@
  28.308  	(asm_simp_tac (Ssum_ss addsimps [contX_Isinl]) 1)
  28.309  	]);
  28.310  
  28.311 -val thelub_ssum2b = prove_goalw Ssum3.thy [sinl_def,sinr_def,when_def] 
  28.312 +qed_goalw "thelub_ssum2b" Ssum3.thy [sinl_def,sinr_def,when_def] 
  28.313  "[| is_chain(Y); !i.? x. Y(i) = sinr[x] |] ==>\ 
  28.314  \   lub(range(Y)) = sinr[lub(range(%i. when[LAM y. UU][LAM x. x][Y(i)]))]"
  28.315   (fn prems =>
  28.316 @@ -663,7 +663,7 @@
  28.317  	contX_Iwhen3]) 1)
  28.318  	]);
  28.319  
  28.320 -val thelub_ssum2a_rev = prove_goalw Ssum3.thy [sinl_def,sinr_def] 
  28.321 +qed_goalw "thelub_ssum2a_rev" Ssum3.thy [sinl_def,sinr_def] 
  28.322  	"[| is_chain(Y); lub(range(Y)) = sinl[x]|] ==> !i.? x.Y(i)=sinl[x]"
  28.323   (fn prems =>
  28.324  	[
  28.325 @@ -677,7 +677,7 @@
  28.326  	contX_Iwhen3]) 1)
  28.327  	]);
  28.328  
  28.329 -val thelub_ssum2b_rev = prove_goalw Ssum3.thy [sinl_def,sinr_def] 
  28.330 +qed_goalw "thelub_ssum2b_rev" Ssum3.thy [sinl_def,sinr_def] 
  28.331  	"[| is_chain(Y); lub(range(Y)) = sinr[x]|] ==> !i.? x.Y(i)=sinr[x]"
  28.332   (fn prems =>
  28.333  	[
  28.334 @@ -691,7 +691,7 @@
  28.335  	contX_Iwhen3]) 1)
  28.336  	]);
  28.337  
  28.338 -val thelub_ssum3 = prove_goal Ssum3.thy  
  28.339 +qed_goal "thelub_ssum3" Ssum3.thy  
  28.340  "is_chain(Y) ==>\ 
  28.341  \   lub(range(Y)) = sinl[lub(range(%i. when[LAM x. x][LAM y. UU][Y(i)]))]\
  28.342  \ | lub(range(Y)) = sinr[lub(range(%i. when[LAM y. UU][LAM x. x][Y(i)]))]"
  28.343 @@ -709,7 +709,7 @@
  28.344  	]);
  28.345  
  28.346  
  28.347 -val when4 = prove_goal Ssum3.thy  
  28.348 +qed_goal "when4" Ssum3.thy  
  28.349  	"when[sinl][sinr][z]=z"
  28.350   (fn prems =>
  28.351  	[
    29.1 --- a/src/HOLCF/Stream.ML	Fri Feb 03 12:32:14 1995 +0100
    29.2 +++ b/src/HOLCF/Stream.ML	Tue Feb 07 11:59:32 1995 +0100
    29.3 @@ -43,7 +43,7 @@
    29.4  (* Exhaustion and elimination for streams                                  *)
    29.5  (* ------------------------------------------------------------------------*)
    29.6  
    29.7 -val Exh_stream = prove_goalw Stream.thy [scons_def]
    29.8 +qed_goalw "Exh_stream" Stream.thy [scons_def]
    29.9  	"s = UU | (? x xs. x~=UU & s = scons[x][xs])"
   29.10   (fn prems =>
   29.11  	[
   29.12 @@ -61,7 +61,7 @@
   29.13  	(asm_simp_tac HOLCF_ss  1)
   29.14  	]);
   29.15  
   29.16 -val streamE = prove_goal Stream.thy 
   29.17 +qed_goal "streamE" Stream.thy 
   29.18  	"[| s=UU ==> Q; !!x xs.[|s=scons[x][xs];x~=UU|]==>Q|]==>Q"
   29.19   (fn prems =>
   29.20  	[
   29.21 @@ -269,7 +269,7 @@
   29.22  (* enhance the simplifier                                                  *)
   29.23  (* ------------------------------------------------------------------------*)
   29.24  
   29.25 -val stream_copy2 = prove_goal Stream.thy 
   29.26 +qed_goal "stream_copy2" Stream.thy 
   29.27       "stream_copy[f][scons[x][xs]]= scons[x][f[xs]]"
   29.28   (fn prems =>
   29.29  	[
   29.30 @@ -278,7 +278,7 @@
   29.31  	(asm_simp_tac (HOLCF_ss addsimps stream_rews) 1)
   29.32  	]);
   29.33  
   29.34 -val shd2 = prove_goal Stream.thy "shd[scons[x][xs]]=x"
   29.35 +qed_goal "shd2" Stream.thy "shd[scons[x][xs]]=x"
   29.36   (fn prems =>
   29.37  	[
   29.38  	(res_inst_tac [("Q","x=UU")] classical2 1),
   29.39 @@ -286,7 +286,7 @@
   29.40  	(asm_simp_tac (HOLCF_ss addsimps stream_rews) 1)
   29.41  	]);
   29.42  
   29.43 -val stream_take2 = prove_goal Stream.thy 
   29.44 +qed_goal "stream_take2" Stream.thy 
   29.45   "stream_take(Suc(n))[scons[x][xs]]=scons[x][stream_take(n)[xs]]"
   29.46   (fn prems =>
   29.47  	[
   29.48 @@ -330,7 +330,7 @@
   29.49  	"(!!n.stream_take(n)[s1]=stream_take(n)[s2]) ==> s1=s2";
   29.50  
   29.51  
   29.52 -val stream_reach2 = prove_goal Stream.thy  "lub(range(%i.stream_take(i)[s]))=s"
   29.53 +qed_goal "stream_reach2" Stream.thy  "lub(range(%i.stream_take(i)[s]))=s"
   29.54   (fn prems =>
   29.55  	[
   29.56  	(res_inst_tac [("t","s")] (stream_reach RS subst) 1),
   29.57 @@ -345,7 +345,7 @@
   29.58  (* Co -induction for streams                                               *)
   29.59  (* ------------------------------------------------------------------------*)
   29.60  
   29.61 -val stream_coind_lemma = prove_goalw Stream.thy [stream_bisim_def] 
   29.62 +qed_goalw "stream_coind_lemma" Stream.thy [stream_bisim_def] 
   29.63  "stream_bisim(R) ==> ! p q.R(p,q) --> stream_take(n)[p]=stream_take(n)[q]"
   29.64   (fn prems =>
   29.65  	[
   29.66 @@ -365,7 +365,7 @@
   29.67  	(fast_tac HOL_cs 1)
   29.68  	]);
   29.69  
   29.70 -val stream_coind = prove_goal Stream.thy "[|stream_bisim(R);R(p,q)|] ==> p = q"
   29.71 +qed_goal "stream_coind" Stream.thy "[|stream_bisim(R);R(p,q)|] ==> p = q"
   29.72   (fn prems =>
   29.73  	[
   29.74  	(rtac stream_take_lemma 1),
   29.75 @@ -378,7 +378,7 @@
   29.76  (* structural induction for admissible predicates                          *)
   29.77  (* ------------------------------------------------------------------------*)
   29.78  
   29.79 -val stream_finite_ind = prove_goal Stream.thy
   29.80 +qed_goal "stream_finite_ind" Stream.thy
   29.81  "[|P(UU);\
   29.82  \  !! x s1.[|x~=UU;P(s1)|] ==> P(scons[x][s1])\
   29.83  \  |] ==> !s.P(stream_take(n)[s])"
   29.84 @@ -397,7 +397,7 @@
   29.85  	(etac spec 1)
   29.86  	]);
   29.87  
   29.88 -val stream_finite_ind2 = prove_goalw Stream.thy  [stream_finite_def]
   29.89 +qed_goalw "stream_finite_ind2" Stream.thy  [stream_finite_def]
   29.90  "(!!n.P(stream_take(n)[s])) ==>  stream_finite(s) -->P(s)"
   29.91   (fn prems =>
   29.92  	[
   29.93 @@ -407,7 +407,7 @@
   29.94  	(resolve_tac prems 1)
   29.95  	]);
   29.96  
   29.97 -val stream_finite_ind3 = prove_goal Stream.thy 
   29.98 +qed_goal "stream_finite_ind3" Stream.thy 
   29.99  "[|P(UU);\
  29.100  \  !! x s1.[|x~=UU;P(s1)|] ==> P(scons[x][s1])\
  29.101  \  |] ==> stream_finite(s) --> P(s)"
  29.102 @@ -423,7 +423,7 @@
  29.103     stream_reach rsp. stream_reach2 
  29.104     and finite induction stream_finite_ind *)
  29.105  
  29.106 -val stream_ind = prove_goal Stream.thy
  29.107 +qed_goal "stream_ind" Stream.thy
  29.108  "[|adm(P);\
  29.109  \  P(UU);\
  29.110  \  !! x s1.[|x~=UU;P(s1)|] ==> P(scons[x][s1])\
  29.111 @@ -443,7 +443,7 @@
  29.112  	]);
  29.113  
  29.114  (* prove induction with usual LCF-Method using fixed point induction *)
  29.115 -val stream_ind = prove_goal Stream.thy
  29.116 +qed_goal "stream_ind" Stream.thy
  29.117  "[|adm(P);\
  29.118  \  P(UU);\
  29.119  \  !! x s1.[|x~=UU;P(s1)|] ==> P(scons[x][s1])\
  29.120 @@ -469,7 +469,7 @@
  29.121  (* simplify use of Co-induction                                            *)
  29.122  (* ------------------------------------------------------------------------*)
  29.123  
  29.124 -val surjectiv_scons = prove_goal Stream.thy "scons[shd[s]][stl[s]]=s"
  29.125 +qed_goal "surjectiv_scons" Stream.thy "scons[shd[s]][stl[s]]=s"
  29.126   (fn prems =>
  29.127  	[
  29.128  	(res_inst_tac [("s","s")] streamE 1),
  29.129 @@ -478,7 +478,7 @@
  29.130  	]);
  29.131  
  29.132  
  29.133 -val stream_coind_lemma2 = prove_goalw Stream.thy [stream_bisim_def]
  29.134 +qed_goalw "stream_coind_lemma2" Stream.thy [stream_bisim_def]
  29.135  "!s1 s2. R(s1, s2)-->shd[s1]=shd[s2] & R(stl[s1],stl[s2]) ==>stream_bisim(R)"
  29.136   (fn prems =>
  29.137  	[
  29.138 @@ -523,7 +523,7 @@
  29.139  (* 2 lemmas about stream_finite                                            *)
  29.140  (* ----------------------------------------------------------------------- *)
  29.141  
  29.142 -val stream_finite_UU = prove_goalw Stream.thy [stream_finite_def]
  29.143 +qed_goalw "stream_finite_UU" Stream.thy [stream_finite_def]
  29.144  	 "stream_finite(UU)"
  29.145   (fn prems =>
  29.146  	[
  29.147 @@ -531,7 +531,7 @@
  29.148  	(simp_tac (HOLCF_ss addsimps stream_rews) 1)
  29.149  	]);
  29.150  
  29.151 -val inf_stream_not_UU = prove_goal Stream.thy  "~stream_finite(s)  ==> s ~= UU"
  29.152 +qed_goal "inf_stream_not_UU" Stream.thy  "~stream_finite(s)  ==> s ~= UU"
  29.153   (fn prems =>
  29.154  	[
  29.155  	(cut_facts_tac prems 1),
  29.156 @@ -545,7 +545,7 @@
  29.157  (* a lemma about shd                                                       *)
  29.158  (* ----------------------------------------------------------------------- *)
  29.159  
  29.160 -val stream_shd_lemma1 = prove_goal Stream.thy "shd[s]=UU --> s=UU"
  29.161 +qed_goal "stream_shd_lemma1" Stream.thy "shd[s]=UU --> s=UU"
  29.162   (fn prems =>
  29.163  	[
  29.164  	(res_inst_tac [("s","s")] streamE 1),
  29.165 @@ -559,7 +559,7 @@
  29.166  (* lemmas about stream_take                                                *)
  29.167  (* ----------------------------------------------------------------------- *)
  29.168  
  29.169 -val stream_take_lemma1 = prove_goal Stream.thy 
  29.170 +qed_goal "stream_take_lemma1" Stream.thy 
  29.171   "!x xs.x~=UU --> \
  29.172  \  stream_take(Suc(n))[scons[x][xs]] = scons[x][xs] --> stream_take(n)[xs]=xs"
  29.173   (fn prems =>
  29.174 @@ -576,7 +576,7 @@
  29.175  	]);
  29.176  
  29.177  
  29.178 -val stream_take_lemma2 = prove_goal Stream.thy 
  29.179 +qed_goal "stream_take_lemma2" Stream.thy 
  29.180   "! s2. stream_take(n)[s2] = s2 --> stream_take(Suc(n))[s2]=s2"
  29.181   (fn prems =>
  29.182  	[
  29.183 @@ -599,7 +599,7 @@
  29.184  	(fast_tac HOL_cs 1)
  29.185  	]);
  29.186  
  29.187 -val stream_take_lemma3 = prove_goal Stream.thy 
  29.188 +qed_goal "stream_take_lemma3" Stream.thy 
  29.189   "!x xs.x~=UU --> \
  29.190  \  stream_take(n)[scons[x][xs]] = scons[x][xs] --> stream_take(n)[xs]=xs"
  29.191   (fn prems =>
  29.192 @@ -618,7 +618,7 @@
  29.193  	(etac (stream_take2 RS subst) 1)
  29.194  	]);
  29.195  
  29.196 -val stream_take_lemma4 = prove_goal Stream.thy 
  29.197 +qed_goal "stream_take_lemma4" Stream.thy 
  29.198   "!x xs.\
  29.199  \stream_take(n)[xs]=xs --> stream_take(Suc(n))[scons[x][xs]] = scons[x][xs]"
  29.200   (fn prems =>
  29.201 @@ -630,7 +630,7 @@
  29.202  
  29.203  (* ---- *)
  29.204  
  29.205 -val stream_take_lemma5 = prove_goal Stream.thy 
  29.206 +qed_goal "stream_take_lemma5" Stream.thy 
  29.207  "!s. stream_take(n)[s]=s --> iterate(n,stl,s)=UU"
  29.208   (fn prems =>
  29.209  	[
  29.210 @@ -651,7 +651,7 @@
  29.211  	(atac 1)
  29.212  	]);
  29.213  
  29.214 -val stream_take_lemma6 = prove_goal Stream.thy 
  29.215 +qed_goal "stream_take_lemma6" Stream.thy 
  29.216  "!s.iterate(n,stl,s)=UU --> stream_take(n)[s]=s"
  29.217   (fn prems =>
  29.218  	[
  29.219 @@ -668,7 +668,7 @@
  29.220  	(asm_simp_tac (HOLCF_ss addsimps stream_rews) 1)
  29.221  	]);
  29.222  
  29.223 -val stream_take_lemma7 = prove_goal Stream.thy 
  29.224 +qed_goal "stream_take_lemma7" Stream.thy 
  29.225  "(iterate(n,stl,s)=UU) = (stream_take(n)[s]=s)"
  29.226   (fn prems =>
  29.227  	[
  29.228 @@ -678,7 +678,7 @@
  29.229  	]);
  29.230  
  29.231  
  29.232 -val stream_take_lemma8 = prove_goal Stream.thy
  29.233 +qed_goal "stream_take_lemma8" Stream.thy
  29.234  "[|adm(P); !n. ? m. n < m & P(stream_take(m)[s])|] ==> P(s)"
  29.235   (fn prems =>
  29.236  	[
  29.237 @@ -696,7 +696,7 @@
  29.238  (* lemmas stream_finite                                                    *)
  29.239  (* ----------------------------------------------------------------------- *)
  29.240  
  29.241 -val stream_finite_lemma1 = prove_goalw Stream.thy [stream_finite_def]
  29.242 +qed_goalw "stream_finite_lemma1" Stream.thy [stream_finite_def]
  29.243   "stream_finite(xs) ==> stream_finite(scons[x][xs])"
  29.244   (fn prems =>
  29.245  	[
  29.246 @@ -706,7 +706,7 @@
  29.247  	(etac (stream_take_lemma4 RS spec RS spec RS mp) 1)
  29.248  	]);
  29.249  
  29.250 -val stream_finite_lemma2 = prove_goalw Stream.thy [stream_finite_def]
  29.251 +qed_goalw "stream_finite_lemma2" Stream.thy [stream_finite_def]
  29.252   "[|x~=UU; stream_finite(scons[x][xs])|] ==> stream_finite(xs)"
  29.253   (fn prems =>
  29.254  	[
  29.255 @@ -717,7 +717,7 @@
  29.256  	(atac 1)
  29.257  	]);
  29.258  
  29.259 -val stream_finite_lemma3 = prove_goal Stream.thy 
  29.260 +qed_goal "stream_finite_lemma3" Stream.thy 
  29.261   "x~=UU ==> stream_finite(scons[x][xs]) = stream_finite(xs)"
  29.262   (fn prems =>
  29.263  	[
  29.264 @@ -729,7 +729,7 @@
  29.265  	]);
  29.266  
  29.267  
  29.268 -val stream_finite_lemma5 = prove_goalw Stream.thy [stream_finite_def]
  29.269 +qed_goalw "stream_finite_lemma5" Stream.thy [stream_finite_def]
  29.270   "(!n. s1 << s2  --> stream_take(n)[s2] = s2 --> stream_finite(s1))\
  29.271  \=(s1 << s2  --> stream_finite(s2) --> stream_finite(s1))"
  29.272   (fn prems =>
  29.273 @@ -739,7 +739,7 @@
  29.274  	(fast_tac HOL_cs 1)
  29.275  	]);
  29.276  
  29.277 -val stream_finite_lemma6 = prove_goal Stream.thy
  29.278 +qed_goal "stream_finite_lemma6" Stream.thy
  29.279   "!s1 s2. s1 << s2  --> stream_take(n)[s2] = s2 --> stream_finite(s1)"
  29.280   (fn prems =>
  29.281  	[
  29.282 @@ -781,7 +781,7 @@
  29.283  	(atac 1)
  29.284  	]);
  29.285  
  29.286 -val stream_finite_lemma7 = prove_goal Stream.thy 
  29.287 +qed_goal "stream_finite_lemma7" Stream.thy 
  29.288  "s1 << s2  --> stream_finite(s2) --> stream_finite(s1)"
  29.289   (fn prems =>
  29.290  	[
  29.291 @@ -790,7 +790,7 @@
  29.292  	(rtac (stream_finite_lemma6 RS spec RS spec) 1)
  29.293  	]);
  29.294  
  29.295 -val stream_finite_lemma8 = prove_goalw Stream.thy [stream_finite_def]
  29.296 +qed_goalw "stream_finite_lemma8" Stream.thy [stream_finite_def]
  29.297  "stream_finite(s) = (? n. iterate(n,stl,s)=UU)"
  29.298   (fn prems =>
  29.299  	[
  29.300 @@ -802,7 +802,7 @@
  29.301  (* admissibility of ~stream_finite                                         *)
  29.302  (* ----------------------------------------------------------------------- *)
  29.303  
  29.304 -val adm_not_stream_finite = prove_goalw Stream.thy [adm_def]
  29.305 +qed_goalw "adm_not_stream_finite" Stream.thy [adm_def]
  29.306   "adm(%s. ~ stream_finite(s))"
  29.307   (fn prems =>
  29.308  	[
  29.309 @@ -825,7 +825,7 @@
  29.310  (* ----------------------------------------------------------------------- *)
  29.311  
  29.312  
  29.313 -val adm_not_stream_finite2=prove_goal Stream.thy "adm(%s. ~ stream_finite(s))"
  29.314 +qed_goal "adm_not_stream_finite" Stream.thy "adm(%s. ~ stream_finite(s))"
  29.315   (fn prems =>
  29.316  	[
  29.317  	(subgoal_tac "(!s.(~stream_finite(s))=(!n.iterate(n,stl,s)~=UU))" 1),
    30.1 --- a/src/HOLCF/Stream2.ML	Fri Feb 03 12:32:14 1995 +0100
    30.2 +++ b/src/HOLCF/Stream2.ML	Tue Feb 07 11:59:32 1995 +0100
    30.3 @@ -21,14 +21,14 @@
    30.4  (* ------------------------------------------------------------------------- *)
    30.5  
    30.6  
    30.7 -val smap1 = prove_goal Stream2.thy "smap[f][UU] = UU"
    30.8 +qed_goal "smap1" Stream2.thy "smap[f][UU] = UU"
    30.9   (fn prems =>
   30.10  	[
   30.11  	(rtac (smap_def2 RS ssubst) 1),
   30.12  	(simp_tac (HOLCF_ss addsimps stream_when) 1)
   30.13  	]);
   30.14  
   30.15 -val smap2 = prove_goal Stream2.thy 
   30.16 +qed_goal "smap2" Stream2.thy 
   30.17  	"x~=UU ==> smap[f][scons[x][xs]] = scons[f[x]][smap[f][xs]]"
   30.18   (fn prems =>
   30.19  	[
    31.1 --- a/src/HOLCF/Tr1.ML	Fri Feb 03 12:32:14 1995 +0100
    31.2 +++ b/src/HOLCF/Tr1.ML	Tue Feb 07 11:59:32 1995 +0100
    31.3 @@ -77,7 +77,7 @@
    31.4  (* Exhaustion and elimination for type tr                                   *) 
    31.5  (* ------------------------------------------------------------------------ *)
    31.6  
    31.7 -val Exh_tr = prove_goalw Tr1.thy [FF_def,TT_def] "t=UU | t = TT | t = FF"
    31.8 +qed_goalw "Exh_tr" Tr1.thy [FF_def,TT_def] "t=UU | t = TT | t = FF"
    31.9   (fn prems =>
   31.10  	[
   31.11  	(res_inst_tac [("p","rep_tr[t]")] ssumE 1),
   31.12 @@ -107,7 +107,7 @@
   31.13  	]);
   31.14  
   31.15  
   31.16 -val trE = prove_goal Tr1.thy
   31.17 +qed_goal "trE" Tr1.thy
   31.18  	"[| p=UU ==> Q; p = TT ==>Q; p = FF ==>Q|] ==>Q"
   31.19   (fn prems =>
   31.20  	[
   31.21 @@ -123,7 +123,7 @@
   31.22  (* type tr is flat                                                          *) 
   31.23  (* ------------------------------------------------------------------------ *)
   31.24  
   31.25 -val flat_tr = prove_goalw Tr1.thy [flat_def] "flat(TT)"
   31.26 +qed_goalw "flat_tr" Tr1.thy [flat_def] "flat(TT)"
   31.27   (fn prems =>
   31.28  	[
   31.29  	(rtac allI 1),
    32.1 --- a/src/HOLCF/Void.ML	Fri Feb 03 12:32:14 1995 +0100
    32.2 +++ b/src/HOLCF/Void.ML	Tue Feb 07 11:59:32 1995 +0100
    32.3 @@ -15,7 +15,7 @@
    32.4  (* A non-emptyness result for Void                                          *)
    32.5  (* ------------------------------------------------------------------------ *)
    32.6  
    32.7 -val VoidI = prove_goalw Void.thy [UU_void_Rep_def,Void_def] 
    32.8 +qed_goalw "VoidI" Void.thy [UU_void_Rep_def,Void_def] 
    32.9   " UU_void_Rep : Void"
   32.10  (fn prems =>
   32.11  	[
   32.12 @@ -27,13 +27,13 @@
   32.13  (* less_void is a partial ordering on void                                  *)
   32.14  (* ------------------------------------------------------------------------ *)
   32.15  
   32.16 -val refl_less_void = prove_goalw Void.thy [ less_void_def ] "less_void(x,x)"
   32.17 +qed_goalw "refl_less_void" Void.thy [ less_void_def ] "less_void(x,x)"
   32.18  (fn prems =>
   32.19  	[
   32.20  	(fast_tac HOL_cs 1)
   32.21  	]);
   32.22  
   32.23 -val antisym_less_void = prove_goalw Void.thy [ less_void_def ] 
   32.24 +qed_goalw "antisym_less_void" Void.thy [ less_void_def ] 
   32.25  	"[|less_void(x,y); less_void(y,x)|] ==> x = y"
   32.26  (fn prems =>
   32.27  	[
   32.28 @@ -43,7 +43,7 @@
   32.29  	(rtac (Rep_Void_inverse RS sym) 1)
   32.30  	]);
   32.31  
   32.32 -val trans_less_void = prove_goalw Void.thy [ less_void_def ] 
   32.33 +qed_goalw "trans_less_void" Void.thy [ less_void_def ] 
   32.34  	"[|less_void(x,y); less_void(y,z)|] ==> less_void(x,z)"
   32.35  (fn prems =>
   32.36  	[
   32.37 @@ -56,7 +56,7 @@
   32.38  (* every element in void is represented by UU_void_Rep                      *)
   32.39  (* ------------------------------------------------------------------------ *)
   32.40  
   32.41 -val unique_void = prove_goal Void.thy "Rep_Void(x) = UU_void_Rep"
   32.42 +qed_goal "unique_void" Void.thy "Rep_Void(x) = UU_void_Rep"
   32.43  (fn prems =>
   32.44  	[
   32.45  	(rtac (mem_Collect_eq RS subst) 1), 
    33.1 --- a/src/HOLCF/ccc1.ML	Fri Feb 03 12:32:14 1995 +0100
    33.2 +++ b/src/HOLCF/ccc1.ML	Tue Feb 07 11:59:32 1995 +0100
    33.3 @@ -14,7 +14,7 @@
    33.4  (* ------------------------------------------------------------------------ *)
    33.5  
    33.6  
    33.7 -val ID1 = prove_goalw ccc1.thy [ID_def] "ID[x]=x"
    33.8 +qed_goalw "ID1" ccc1.thy [ID_def] "ID[x]=x"
    33.9   (fn prems =>
   33.10  	[
   33.11  	(rtac (beta_cfun RS ssubst) 1),
   33.12 @@ -22,7 +22,7 @@
   33.13  	(rtac refl 1)
   33.14  	]);
   33.15  
   33.16 -val cfcomp1 = prove_goalw ccc1.thy [oo_def] "(f oo g)=(LAM x.f[g[x]])"
   33.17 +qed_goalw "cfcomp1" ccc1.thy [oo_def] "(f oo g)=(LAM x.f[g[x]])"
   33.18   (fn prems =>
   33.19  	[
   33.20  	(rtac (beta_cfun RS ssubst) 1),
   33.21 @@ -32,7 +32,7 @@
   33.22  	(rtac refl 1)
   33.23  	]);
   33.24  
   33.25 -val cfcomp2 = prove_goal ccc1.thy  "(f oo g)[x]=f[g[x]]"
   33.26 +qed_goal "cfcomp2" ccc1.thy  "(f oo g)[x]=f[g[x]]"
   33.27   (fn prems =>
   33.28  	[
   33.29  	(rtac (cfcomp1 RS ssubst) 1),
   33.30 @@ -51,7 +51,7 @@
   33.31  (* ------------------------------------------------------------------------ *)
   33.32  
   33.33  
   33.34 -val ID2 = prove_goal ccc1.thy "f oo ID = f "
   33.35 +qed_goal "ID2" ccc1.thy "f oo ID = f "
   33.36   (fn prems =>
   33.37  	[
   33.38  	(rtac ext_cfun 1),
   33.39 @@ -60,7 +60,7 @@
   33.40  	(rtac refl 1)
   33.41  	]);
   33.42  
   33.43 -val ID3 = prove_goal ccc1.thy "ID oo f = f "
   33.44 +qed_goal "ID3" ccc1.thy "ID oo f = f "
   33.45   (fn prems =>
   33.46  	[
   33.47  	(rtac ext_cfun 1),
   33.48 @@ -70,7 +70,7 @@
   33.49  	]);
   33.50  
   33.51  
   33.52 -val assoc_oo = prove_goal ccc1.thy "f oo (g oo h) = (f oo g) oo h"
   33.53 +qed_goal "assoc_oo" ccc1.thy "f oo (g oo h) = (f oo g) oo h"
   33.54   (fn prems =>
   33.55  	[
   33.56  	(rtac ext_cfun 1),
    34.1 --- a/src/HOLCF/ex/Coind.ML	Fri Feb 03 12:32:14 1995 +0100
    34.2 +++ b/src/HOLCF/ex/Coind.ML	Tue Feb 07 11:59:32 1995 +0100
    34.3 @@ -24,7 +24,7 @@
    34.4  (* ------------------------------------------------------------------------- *)
    34.5  
    34.6  
    34.7 -val from = prove_goal Coind.thy "from[n] = scons[n][from[dsucc[n]]]"
    34.8 +qed_goal "from" Coind.thy "from[n] = scons[n][from[dsucc[n]]]"
    34.9   (fn prems =>
   34.10  	[
   34.11  	(rtac trans 1),
   34.12 @@ -34,7 +34,7 @@
   34.13  	]);
   34.14  
   34.15  
   34.16 -val from1 = prove_goal Coind.thy "from[UU] = UU"
   34.17 +qed_goal "from1" Coind.thy "from[UU] = UU"
   34.18   (fn prems =>
   34.19  	[
   34.20  	(rtac trans 1),
   34.21 @@ -53,7 +53,7 @@
   34.22  (* ------------------------------------------------------------------------- *)
   34.23  
   34.24  
   34.25 -val coind_lemma1 = prove_goal Coind.thy "iterator[n][smap[dsucc]][nats] =\
   34.26 +qed_goal "coind_lemma1" Coind.thy "iterator[n][smap[dsucc]][nats] =\
   34.27  \		 scons[n][iterator[dsucc[n]][smap[dsucc]][nats]]"
   34.28   (fn prems =>
   34.29  	[
   34.30 @@ -74,7 +74,7 @@
   34.31  	]);
   34.32  
   34.33  
   34.34 -val nats_eq_from = prove_goal Coind.thy "nats = from[dzero]"
   34.35 +qed_goal "nats_eq_from" Coind.thy "nats = from[dzero]"
   34.36   (fn prems =>
   34.37  	[
   34.38  	(res_inst_tac [("R",
   34.39 @@ -105,7 +105,7 @@
   34.40  
   34.41  (* another proof using stream_coind_lemma2 *)
   34.42  
   34.43 -val nats_eq_from = prove_goal Coind.thy "nats = from[dzero]"
   34.44 +qed_goal "nats_eq_from" Coind.thy "nats = from[dzero]"
   34.45   (fn prems =>
   34.46  	[
   34.47  	(res_inst_tac [("R","% p q.? n. p = \
    35.1 --- a/src/HOLCF/ex/Dagstuhl.ML	Fri Feb 03 12:32:14 1995 +0100
    35.2 +++ b/src/HOLCF/ex/Dagstuhl.ML	Tue Feb 07 11:59:32 1995 +0100
    35.3 @@ -20,14 +20,14 @@
    35.4  by (rtac monofun_cfun_arg 1);
    35.5  by (rtac monofun_cfun_arg 1);
    35.6  by (atac 1);
    35.7 -val lemma3 = result();
    35.8 +qed "lemma3";
    35.9  
   35.10  val prems = goal Dagstuhl.thy "scons[y][YYS] << YYS";
   35.11  by (rtac (YYS_def2 RS ssubst) 1);
   35.12  back();
   35.13  by (rtac monofun_cfun_arg 1);
   35.14  by (rtac lemma3 1);
   35.15 -val lemma4 = result();
   35.16 +qed "lemma4";
   35.17  
   35.18  (* val  lemma5 = lemma3 RS (lemma4 RS antisym_less) *)
   35.19  
   35.20 @@ -35,7 +35,7 @@
   35.21  by (rtac antisym_less 1);
   35.22  by (rtac lemma4 1);
   35.23  by (rtac lemma3 1);
   35.24 -val lemma5 = result();
   35.25 +qed "lemma5";
   35.26  
   35.27  val prems = goal Dagstuhl.thy "YS = YYS";
   35.28  by (rtac stream_take_lemma 1);
   35.29 @@ -46,7 +46,7 @@
   35.30  by (asm_simp_tac (HOLCF_ss addsimps stream_rews) 1);
   35.31  by (rtac (lemma5 RS sym RS subst) 1);
   35.32  by (rtac refl 1);
   35.33 -val wir_moel = result();
   35.34 +qed "wir_moel";
   35.35  
   35.36  (* ------------------------------------------------------------------------ *)
   35.37  (* Zweite L"osung: Bernhard M"oller                                         *)
   35.38 @@ -60,7 +60,7 @@
   35.39  by (rtac (beta_cfun RS ssubst) 1);
   35.40  by (contX_tacR 1);
   35.41  by (simp_tac (HOLCF_ss addsimps [YS_def2 RS sym]) 1);
   35.42 -val lemma6 = result();
   35.43 +qed "lemma6";
   35.44  
   35.45  val prems = goal Dagstuhl.thy "YS << YYS";
   35.46  by (rtac (YS_def RS ssubst) 1);
   35.47 @@ -72,7 +72,7 @@
   35.48  by (contX_tacR 1);
   35.49  by (res_inst_tac [("y2","y10")] (lemma5 RS sym RS ssubst) 1);
   35.50  by (etac monofun_cfun_arg 1);
   35.51 -val lemma7 = result();
   35.52 +qed "lemma7";
   35.53  
   35.54  val  wir_moel = lemma6 RS (lemma7 RS antisym_less);
   35.55  
   35.56 @@ -90,7 +90,7 @@
   35.57  by (rtac (beta_cfun RS ssubst) 1);
   35.58  by (contX_tacR 1);
   35.59  by (rtac refl 1);
   35.60 -val lemma1 = result();
   35.61 +qed "lemma1";
   35.62  
   35.63  val prems = goal Stream2.thy
   35.64      "(fix[ LAM z. scons[y][scons[y][z]]]) = \
   35.65 @@ -101,7 +101,7 @@
   35.66  by (rtac (beta_cfun RS ssubst) 1);
   35.67  by (contX_tacR 1);
   35.68  by (rtac refl 1);
   35.69 -val lemma2 = result();
   35.70 +qed "lemma2";
   35.71  
   35.72  val prems = goal Stream2.thy
   35.73  "fix[LAM z. scons[y][scons[y][z]]] << \
   35.74 @@ -114,7 +114,7 @@
   35.75  by (rtac monofun_cfun_arg 1);
   35.76  by (rtac monofun_cfun_arg 1);
   35.77  by (atac 1);
   35.78 -val lemma3 = result();
   35.79 +qed "lemma3";
   35.80  
   35.81  val prems = goal Stream2.thy
   35.82  " scons[y][fix[LAM z. scons[y][scons[y][z]]]] <<\
   35.83 @@ -123,7 +123,7 @@
   35.84  back();
   35.85  by (rtac monofun_cfun_arg 1);
   35.86  by (rtac lemma3 1);
   35.87 -val lemma4 = result();
   35.88 +qed "lemma4";
   35.89  
   35.90  val prems = goal Stream2.thy
   35.91  " scons[y][fix[LAM z. scons[y][scons[y][z]]]] =\
   35.92 @@ -131,7 +131,7 @@
   35.93  by (rtac antisym_less 1);
   35.94  by (rtac lemma4 1);
   35.95  by (rtac lemma3 1);
   35.96 -val lemma5 = result();
   35.97 +qed "lemma5";
   35.98  
   35.99  val prems = goal Stream2.thy
  35.100      "(fix[LAM x. scons[y][x]]) = (fix[ LAM z. scons[y][scons[y][z]]])";
  35.101 @@ -143,7 +143,7 @@
  35.102  by (asm_simp_tac (HOLCF_ss addsimps stream_rews) 1);
  35.103  by (rtac (lemma5 RS sym RS subst) 1);
  35.104  by (rtac refl 1);
  35.105 -val wir_moel = result();
  35.106 +qed "wir_moel";
  35.107  
  35.108  
  35.109  
    36.1 --- a/src/HOLCF/ex/Hoare.ML	Fri Feb 03 12:32:14 1995 +0100
    36.2 +++ b/src/HOLCF/ex/Hoare.ML	Tue Feb 07 11:59:32 1995 +0100
    36.3 @@ -8,7 +8,7 @@
    36.4  
    36.5  (* --------- pure HOLCF logic, some little lemmas ------ *)
    36.6  
    36.7 -val hoare_lemma2 = prove_goal HOLCF.thy "~b=TT ==> b=FF | b=UU"
    36.8 +qed_goal "hoare_lemma2" HOLCF.thy "~b=TT ==> b=FF | b=UU"
    36.9   (fn prems =>
   36.10  	[
   36.11  	(cut_facts_tac prems 1),
   36.12 @@ -19,14 +19,14 @@
   36.13  	(fast_tac HOL_cs 1)
   36.14  	]);
   36.15  
   36.16 -val hoare_lemma3 = prove_goal HOLCF.thy 
   36.17 +qed_goal "hoare_lemma3" HOLCF.thy 
   36.18  " (!k.b1[iterate(k,g,x)]=TT) | (? k.~ b1[iterate(k,g,x)]=TT)"
   36.19   (fn prems =>
   36.20  	[
   36.21  	(fast_tac HOL_cs 1)
   36.22  	]);
   36.23  
   36.24 -val hoare_lemma4 = prove_goal HOLCF.thy 
   36.25 +qed_goal "hoare_lemma4" HOLCF.thy 
   36.26  "(? k.~ b1[iterate(k,g,x)]=TT) ==> \
   36.27  \ ? k.b1[iterate(k,g,x)]=FF | b1[iterate(k,g,x)]=UU"
   36.28   (fn prems =>
   36.29 @@ -38,7 +38,7 @@
   36.30  	(atac 1)
   36.31  	]);
   36.32  
   36.33 -val hoare_lemma5 = prove_goal HOLCF.thy 
   36.34 +qed_goal "hoare_lemma5" HOLCF.thy 
   36.35  "[|(? k.~ b1[iterate(k,g,x)]=TT);\
   36.36  \   k=theleast(%n.~ b1[iterate(n,g,x)]=TT)|] ==> \
   36.37  \ b1[iterate(k,g,x)]=FF | b1[iterate(k,g,x)]=UU"
   36.38 @@ -51,7 +51,7 @@
   36.39  	(etac theleast1 1)
   36.40  	]);
   36.41  
   36.42 -val hoare_lemma6 = prove_goal HOLCF.thy "b=UU ==> ~b=TT"
   36.43 +qed_goal "hoare_lemma6" HOLCF.thy "b=UU ==> ~b=TT"
   36.44   (fn prems =>
   36.45  	[
   36.46  	(cut_facts_tac prems 1),
   36.47 @@ -59,7 +59,7 @@
   36.48  	(resolve_tac dist_eq_tr 1)
   36.49  	]);
   36.50  
   36.51 -val hoare_lemma7 = prove_goal HOLCF.thy "b=FF ==> ~b=TT"
   36.52 +qed_goal "hoare_lemma7" HOLCF.thy "b=FF ==> ~b=TT"
   36.53   (fn prems =>
   36.54  	[
   36.55  	(cut_facts_tac prems 1),
   36.56 @@ -67,7 +67,7 @@
   36.57  	(resolve_tac dist_eq_tr 1)
   36.58  	]);
   36.59  
   36.60 -val hoare_lemma8 = prove_goal HOLCF.thy 
   36.61 +qed_goal "hoare_lemma8" HOLCF.thy 
   36.62  "[|(? k.~ b1[iterate(k,g,x)]=TT);\
   36.63  \   k=theleast(%n.~ b1[iterate(n,g,x)]=TT)|] ==> \
   36.64  \ !m. m<k --> b1[iterate(m,g,x)]=TT"
   36.65 @@ -89,7 +89,7 @@
   36.66  	(etac hoare_lemma7 1)
   36.67  	]);
   36.68  
   36.69 -val hoare_lemma28 = prove_goal HOLCF.thy 
   36.70 +qed_goal "hoare_lemma28" HOLCF.thy 
   36.71  "b1[y::'a]=(UU::tr) ==> b1[UU] = UU"
   36.72   (fn prems =>
   36.73  	[
   36.74 @@ -102,14 +102,14 @@
   36.75  
   36.76  (* ----- access to definitions ----- *)
   36.77  
   36.78 -val p_def2 = prove_goalw Hoare.thy [p_def]
   36.79 +qed_goalw "p_def2" Hoare.thy [p_def]
   36.80  "p = fix[LAM f x. If b1[x] then f[g[x]] else x fi]"
   36.81   (fn prems =>
   36.82  	[
   36.83  	(rtac refl 1)
   36.84  	]);
   36.85  
   36.86 -val q_def2 = prove_goalw Hoare.thy [q_def]
   36.87 +qed_goalw "q_def2" Hoare.thy [q_def]
   36.88  "q = fix[LAM f x. If b1[x] orelse b2[x] then \
   36.89  \     f[g[x]] else x fi]"
   36.90   (fn prems =>
   36.91 @@ -118,7 +118,7 @@
   36.92  	]);
   36.93  
   36.94  
   36.95 -val p_def3 = prove_goal Hoare.thy 
   36.96 +qed_goal "p_def3" Hoare.thy 
   36.97  "p[x] = If b1[x] then p[g[x]] else x fi"
   36.98   (fn prems =>
   36.99  	[
  36.100 @@ -126,7 +126,7 @@
  36.101  	(simp_tac HOLCF_ss 1)
  36.102  	]);
  36.103  
  36.104 -val q_def3 = prove_goal Hoare.thy 
  36.105 +qed_goal "q_def3" Hoare.thy 
  36.106  "q[x] = If b1[x] orelse b2[x] then q[g[x]] else x fi"
  36.107   (fn prems =>
  36.108  	[
  36.109 @@ -136,7 +136,7 @@
  36.110  
  36.111  (** --------- proves about iterations of p and q ---------- **)
  36.112  
  36.113 -val hoare_lemma9 = prove_goal Hoare.thy 
  36.114 +qed_goal "hoare_lemma9" Hoare.thy 
  36.115  "(! m. m<Suc(k) --> b1[iterate(m,g,x)]=TT) -->\
  36.116  \  p[iterate(k,g,x)]=p[x]"
  36.117   (fn prems =>
  36.118 @@ -161,7 +161,7 @@
  36.119  	(simp_tac nat_ss 1)
  36.120  	]);
  36.121  
  36.122 -val hoare_lemma24 = prove_goal Hoare.thy 
  36.123 +qed_goal "hoare_lemma24" Hoare.thy 
  36.124  "(! m. m<Suc(k) --> b1[iterate(m,g,x)]=TT) --> \
  36.125  \ q[iterate(k,g,x)]=q[x]"
  36.126   (fn prems =>
  36.127 @@ -196,7 +196,7 @@
  36.128  p[iterate(?k3,g,?x1)] = p[?x1]
  36.129  *)
  36.130  
  36.131 -val hoare_lemma11 = prove_goal Hoare.thy 
  36.132 +qed_goal "hoare_lemma11" Hoare.thy 
  36.133  "(? n.b1[iterate(n,g,x)]~=TT) ==>\
  36.134  \ k=theleast(%n.b1[iterate(n,g,x)]~=TT) & b1[iterate(k,g,x)]=FF \
  36.135  \ --> p[x] = iterate(k,g,x)"
  36.136 @@ -235,7 +235,7 @@
  36.137  	(simp_tac HOLCF_ss 1)
  36.138  	]);
  36.139  
  36.140 -val hoare_lemma12 = prove_goal Hoare.thy 
  36.141 +qed_goal "hoare_lemma12" Hoare.thy 
  36.142  "(? n.~ b1[iterate(n,g,x)]=TT) ==>\
  36.143  \ k=theleast(%n.~ b1[iterate(n,g,x)]=TT) & b1[iterate(k,g,x)]=UU \
  36.144  \ --> p[x] = UU"
  36.145 @@ -273,7 +273,7 @@
  36.146  
  36.147  (* -------- results about p for case  (! k. b1[iterate(k,g,x)]=TT) ------- *)
  36.148  
  36.149 -val fernpass_lemma = prove_goal Hoare.thy 
  36.150 +qed_goal "fernpass_lemma" Hoare.thy 
  36.151  "(! k. b1[iterate(k,g,x)]=TT) ==> !k.p[iterate(k,g,x)] = UU"
  36.152   (fn prems =>
  36.153  	[
  36.154 @@ -296,7 +296,7 @@
  36.155  	(etac spec 1)
  36.156  	]);
  36.157  
  36.158 -val hoare_lemma16 = prove_goal Hoare.thy 
  36.159 +qed_goal "hoare_lemma16" Hoare.thy 
  36.160  "(! k. b1[iterate(k,g,x)]=TT) ==> p[x] = UU"
  36.161   (fn prems =>
  36.162  	[
  36.163 @@ -307,7 +307,7 @@
  36.164  
  36.165  (* -------- results about q for case  (! k. b1[iterate(k,g,x)]=TT) ------- *)
  36.166  
  36.167 -val hoare_lemma17 = prove_goal Hoare.thy 
  36.168 +qed_goal "hoare_lemma17" Hoare.thy 
  36.169  "(! k. b1[iterate(k,g,x)]=TT) ==> !k.q[iterate(k,g,x)] = UU"
  36.170   (fn prems =>
  36.171  	[
  36.172 @@ -330,7 +330,7 @@
  36.173  	(etac spec 1)
  36.174  	]);
  36.175  
  36.176 -val hoare_lemma18 = prove_goal Hoare.thy 
  36.177 +qed_goal "hoare_lemma18" Hoare.thy 
  36.178  "(! k. b1[iterate(k,g,x)]=TT) ==> q[x] = UU"
  36.179   (fn prems =>
  36.180  	[
  36.181 @@ -339,7 +339,7 @@
  36.182  	(etac (hoare_lemma17 RS spec) 1)
  36.183  	]);
  36.184  
  36.185 -val hoare_lemma19 = prove_goal Hoare.thy 
  36.186 +qed_goal "hoare_lemma19" Hoare.thy 
  36.187  "(!k. (b1::'a->tr)[iterate(k,g,x)]=TT) ==> b1[UU::'a] = UU | (!y.b1[y::'a]=TT)"
  36.188   (fn prems =>
  36.189  	[
  36.190 @@ -349,7 +349,7 @@
  36.191  	(etac spec 1)
  36.192  	]);
  36.193  
  36.194 -val hoare_lemma20 = prove_goal Hoare.thy 
  36.195 +qed_goal "hoare_lemma20" Hoare.thy 
  36.196  "(! y. b1[y::'a]=TT) ==> !k.q[iterate(k,g,x::'a)] = UU"
  36.197   (fn prems =>
  36.198  	[
  36.199 @@ -372,7 +372,7 @@
  36.200  	(etac spec 1)
  36.201  	]);
  36.202  
  36.203 -val hoare_lemma21 = prove_goal Hoare.thy 
  36.204 +qed_goal "hoare_lemma21" Hoare.thy 
  36.205  "(! y. b1[y::'a]=TT) ==> q[x::'a] = UU"
  36.206   (fn prems =>
  36.207  	[
  36.208 @@ -381,7 +381,7 @@
  36.209  	(etac (hoare_lemma20 RS spec) 1)
  36.210  	]);
  36.211  
  36.212 -val hoare_lemma22 = prove_goal Hoare.thy 
  36.213 +qed_goal "hoare_lemma22" Hoare.thy 
  36.214  "b1[UU::'a]=UU ==> q[UU::'a] = UU"
  36.215   (fn prems =>
  36.216  	[
  36.217 @@ -399,7 +399,7 @@
  36.218  q[iterate(?k3,?g1,?x1)] = q[?x1]
  36.219  *)
  36.220  
  36.221 -val hoare_lemma26 = prove_goal Hoare.thy 
  36.222 +qed_goal "hoare_lemma26" Hoare.thy 
  36.223  "(? n.~ b1[iterate(n,g,x)]=TT) ==>\
  36.224  \ k=theleast(%n.~ b1[iterate(n,g,x)]=TT) & b1[iterate(k,g,x)]=FF \
  36.225  \ --> q[x] = q[iterate(k,g,x)]"
  36.226 @@ -428,7 +428,7 @@
  36.227  	]);
  36.228  
  36.229  
  36.230 -val hoare_lemma27 = prove_goal Hoare.thy 
  36.231 +qed_goal "hoare_lemma27" Hoare.thy 
  36.232  "(? n.~ b1[iterate(n,g,x)]=TT) ==>\
  36.233  \ k=theleast(%n.~ b1[iterate(n,g,x)]=TT) & b1[iterate(k,g,x)]=UU \
  36.234  \ --> q[x] = UU"
  36.235 @@ -465,7 +465,7 @@
  36.236  
  36.237  (* ------- (! k. b1[iterate(k,g,x)]=TT) ==> q o p = q   ----- *)
  36.238  
  36.239 -val hoare_lemma23 = prove_goal Hoare.thy 
  36.240 +qed_goal "hoare_lemma23" Hoare.thy 
  36.241  "(! k. b1[iterate(k,g,x)]=TT) ==> q[p[x]] = q[x]"
  36.242   (fn prems =>
  36.243  	[
  36.244 @@ -488,7 +488,7 @@
  36.245  
  36.246  (* ------------  ? k. ~ b1[iterate(k,g,x)] = TT ==> q o p = q   ----- *)
  36.247  
  36.248 -val hoare_lemma29 = prove_goal Hoare.thy 
  36.249 +qed_goal "hoare_lemma29" Hoare.thy 
  36.250  "? k. ~ b1[iterate(k,g,x)] = TT ==> q[p[x]] = q[x]"
  36.251   (fn prems =>
  36.252  	[
  36.253 @@ -527,7 +527,7 @@
  36.254  
  36.255  (* ------ the main prove q o p = q ------ *)
  36.256  
  36.257 -val hoare_main = prove_goal Hoare.thy "q oo p = q"
  36.258 +qed_goal "hoare_main" Hoare.thy "q oo p = q"
  36.259   (fn prems =>
  36.260  	[
  36.261  	(rtac ext_cfun 1),
    37.1 --- a/src/HOLCF/ex/Loop.ML	Fri Feb 03 12:32:14 1995 +0100
    37.2 +++ b/src/HOLCF/ex/Loop.ML	Tue Feb 07 11:59:32 1995 +0100
    37.3 @@ -12,14 +12,14 @@
    37.4  (* access to definitions                                                       *)
    37.5  (* --------------------------------------------------------------------------- *)
    37.6  
    37.7 -val step_def2 = prove_goalw Loop.thy [step_def]
    37.8 +qed_goalw "step_def2" Loop.thy [step_def]
    37.9  "step[b][g][x] = If b[x] then g[x] else x fi"
   37.10   (fn prems =>
   37.11  	[
   37.12  	(simp_tac Cfun_ss 1)
   37.13  	]);
   37.14  
   37.15 -val while_def2 = prove_goalw Loop.thy [while_def]
   37.16 +qed_goalw "while_def2" Loop.thy [while_def]
   37.17  "while[b][g] = fix[LAM f x. If b[x] then f[g[x]] else x fi]"
   37.18   (fn prems =>
   37.19  	[
   37.20 @@ -31,7 +31,7 @@
   37.21  (* rekursive properties of while                                             *)
   37.22  (* ------------------------------------------------------------------------- *)
   37.23  
   37.24 -val while_unfold = prove_goal Loop.thy 
   37.25 +qed_goal "while_unfold" Loop.thy 
   37.26  "while[b][g][x] = If b[x] then while[b][g][g[x]] else x fi"
   37.27   (fn prems =>
   37.28  	[
   37.29 @@ -39,7 +39,7 @@
   37.30  	(simp_tac Cfun_ss 1)
   37.31  	]);
   37.32  
   37.33 -val while_unfold2 = prove_goal Loop.thy 
   37.34 +qed_goal "while_unfold2" Loop.thy 
   37.35  	"!x.while[b][g][x] = while[b][g][iterate(k,step[b][g],x)]"
   37.36   (fn prems =>
   37.37  	[
   37.38 @@ -67,7 +67,7 @@
   37.39  	(asm_simp_tac HOLCF_ss 1)
   37.40  	]);
   37.41  
   37.42 -val while_unfold3 = prove_goal Loop.thy 
   37.43 +qed_goal "while_unfold3" Loop.thy 
   37.44  	"while[b][g][x] = while[b][g][step[b][g][x]]"
   37.45   (fn prems =>
   37.46  	[
   37.47 @@ -81,7 +81,7 @@
   37.48  (* properties of while and iterations                                          *)
   37.49  (* --------------------------------------------------------------------------- *)
   37.50  
   37.51 -val loop_lemma1 = prove_goal Loop.thy
   37.52 +qed_goal "loop_lemma1" Loop.thy
   37.53  "[|? y.b[y]=FF; iterate(k,step[b][g],x)=UU|]==>iterate(Suc(k),step[b][g],x)=UU"
   37.54   (fn prems =>
   37.55  	[
   37.56 @@ -96,7 +96,7 @@
   37.57  	(asm_simp_tac HOLCF_ss 1)
   37.58  	]);
   37.59  
   37.60 -val loop_lemma2 = prove_goal Loop.thy
   37.61 +qed_goal "loop_lemma2" Loop.thy
   37.62  "[|? y.b[y]=FF;~iterate(Suc(k),step[b][g],x)=UU |]==>\
   37.63  \~iterate(k,step[b][g],x)=UU"
   37.64   (fn prems =>
   37.65 @@ -108,7 +108,7 @@
   37.66  	(atac 1)
   37.67  	]);
   37.68  
   37.69 -val loop_lemma3 = prove_goal Loop.thy
   37.70 +qed_goal "loop_lemma3" Loop.thy
   37.71  "[|!x. INV(x) & b[x]=TT & ~g[x]=UU --> INV(g[x]);\
   37.72  \? y.b[y]=FF; INV(x)|] ==>\
   37.73  \~iterate(k,step[b][g],x)=UU --> INV(iterate(k,step[b][g],x))"
   37.74 @@ -134,7 +134,7 @@
   37.75  	]);
   37.76  
   37.77  
   37.78 -val loop_lemma4 = prove_goal Loop.thy
   37.79 +qed_goal "loop_lemma4" Loop.thy
   37.80  "!x. b[iterate(k,step[b][g],x)]=FF --> while[b][g][x]=iterate(k,step[b][g],x)"
   37.81   (fn prems =>
   37.82  	[
   37.83 @@ -151,7 +151,7 @@
   37.84  	(asm_simp_tac HOLCF_ss  1)
   37.85  	]);
   37.86  
   37.87 -val loop_lemma5 = prove_goal Loop.thy
   37.88 +qed_goal "loop_lemma5" Loop.thy
   37.89  "!k. ~b[iterate(k,step[b][g],x)]=FF ==>\
   37.90  \ !m. while[b][g][iterate(m,step[b][g],x)]=UU"
   37.91   (fn prems =>
   37.92 @@ -179,7 +179,7 @@
   37.93  	]);
   37.94  
   37.95  
   37.96 -val loop_lemma6 = prove_goal Loop.thy
   37.97 +qed_goal "loop_lemma6" Loop.thy
   37.98  "!k. ~b[iterate(k,step[b][g],x)]=FF ==> while[b][g][x]=UU"
   37.99   (fn prems =>
  37.100  	[
  37.101 @@ -188,7 +188,7 @@
  37.102  	(resolve_tac prems 1)
  37.103  	]);
  37.104  
  37.105 -val loop_lemma7 = prove_goal Loop.thy
  37.106 +qed_goal "loop_lemma7" Loop.thy
  37.107  "~while[b][g][x]=UU ==> ? k. b[iterate(k,step[b][g],x)]=FF"
  37.108   (fn prems =>
  37.109  	[
  37.110 @@ -198,7 +198,7 @@
  37.111  	(fast_tac HOL_cs 1)
  37.112  	]);
  37.113  
  37.114 -val loop_lemma8 = prove_goal Loop.thy
  37.115 +qed_goal "loop_lemma8" Loop.thy
  37.116  "~while[b][g][x]=UU ==> ? y. b[y]=FF"
  37.117   (fn prems =>
  37.118  	[
  37.119 @@ -212,7 +212,7 @@
  37.120  (* an invariant rule for loops                                                 *)
  37.121  (* --------------------------------------------------------------------------- *)
  37.122  
  37.123 -val loop_inv2 = prove_goal Loop.thy
  37.124 +qed_goal "loop_inv2" Loop.thy
  37.125  "[| (!y. INV(y) & b[y]=TT & ~g[y]=UU --> INV(g[y]));\
  37.126  \   (!y. INV(y) & b[y]=FF --> Q(y));\
  37.127  \   INV(x); ~while[b][g][x]=UU |] ==> Q(while[b][g][x])"
  37.128 @@ -239,7 +239,7 @@
  37.129  	(rtac refl 1)
  37.130  	]);
  37.131  
  37.132 -val loop_inv3 = prove_goal Loop.thy
  37.133 +qed_goal "loop_inv3" Loop.thy
  37.134  "[| !!y.[| INV(y); b[y]=TT; ~g[y]=UU|] ==> INV(g[y]);\
  37.135  \   !!y.[| INV(y); b[y]=FF|]==> Q(y);\
  37.136  \   INV(x); ~while[b][g][x]=UU |] ==> Q(while[b][g][x])"
  37.137 @@ -261,7 +261,7 @@
  37.138  	(resolve_tac prems 1)
  37.139  	]);
  37.140  
  37.141 -val loop_inv = prove_goal Loop.thy
  37.142 +qed_goal "loop_inv" Loop.thy
  37.143  "[| P(x);\
  37.144  \   !!y.P(y) ==> INV(y);\
  37.145  \   !!y.[| INV(y); b[y]=TT; ~g[y]=UU|] ==> INV(g[y]);\