expanded tabs
authorclasohm
Tue Jan 30 13:42:57 1996 +0100 (1996-01-30)
changeset 14616bcb44e4d6e5
parent 1460 5a6f2aabd538
child 1462 d991b56cc52a
expanded tabs
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/Fix.ML
src/HOLCF/Fun1.ML
src/HOLCF/Fun2.ML
src/HOLCF/Fun3.ML
src/HOLCF/HOLCF.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/ROOT.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/Tr1.ML
src/HOLCF/Tr2.ML
src/HOLCF/Void.ML
src/HOLCF/ax_ops/thy_ops.ML
src/HOLCF/ax_ops/thy_syntax.ML
src/HOLCF/ccc1.ML
src/HOLCF/domain/axioms.ML
src/HOLCF/domain/extender.ML
src/HOLCF/domain/interface.ML
src/HOLCF/domain/library.ML
src/HOLCF/domain/syntax.ML
src/HOLCF/domain/theorems.ML
src/HOLCF/ex/Fix2.ML
src/HOLCF/ex/Hoare.ML
src/HOLCF/ex/Loop.ML
src/HOLCF/ex/ROOT.ML
src/HOLCF/ex/loeckx.ML
src/HOLCF/explicit_domains/Coind.ML
src/HOLCF/explicit_domains/Dagstuhl.ML
src/HOLCF/explicit_domains/Dlist.ML
src/HOLCF/explicit_domains/Dnat.ML
src/HOLCF/explicit_domains/Dnat2.ML
src/HOLCF/explicit_domains/Focus_ex.ML
src/HOLCF/explicit_domains/ROOT.ML
src/HOLCF/explicit_domains/Stream.ML
src/HOLCF/explicit_domains/Stream2.ML
src/LCF/LCF.ML
src/LCF/ROOT.ML
src/LCF/fix.ML
src/LCF/pair.ML
src/LCF/simpdata.ML
src/LK/LK.ML
src/LK/ROOT.ML
src/LK/ex/ROOT.ML
src/LK/ex/hardquant.ML
src/LK/ex/prop.ML
src/LK/ex/quant.ML
src/Modal/ROOT.ML
src/Modal/ex/ROOT.ML
src/Modal/ex/S43thms.ML
src/Modal/ex/S4thms.ML
src/Modal/ex/Tthms.ML
src/Modal/prover.ML
src/ZF/AC.ML
src/ZF/AC/AC0_AC1.ML
src/ZF/AC/AC10_AC15.ML
src/ZF/AC/AC15_WO6.ML
src/ZF/AC/AC16_WO4.ML
src/ZF/AC/AC16_lemmas.ML
src/ZF/AC/AC17_AC1.ML
src/ZF/AC/AC18_AC19.ML
src/ZF/AC/AC1_AC17.ML
src/ZF/AC/AC1_WO2.ML
src/ZF/AC/AC2_AC6.ML
src/ZF/AC/AC7_AC9.ML
src/ZF/AC/AC_Equiv.ML
src/ZF/AC/Cardinal_aux.ML
src/ZF/AC/DC.ML
src/ZF/AC/DC_lemmas.ML
src/ZF/AC/HH.ML
src/ZF/AC/Hartog.ML
src/ZF/AC/OrdQuant.ML
src/ZF/AC/ROOT.ML
src/ZF/AC/Transrec2.ML
src/ZF/AC/WO1_AC.ML
src/ZF/AC/WO1_WO6.ML
src/ZF/AC/WO1_WO7.ML
src/ZF/AC/WO1_WO8.ML
src/ZF/AC/WO2_AC16.ML
src/ZF/AC/WO6_WO1.ML
src/ZF/AC/WO_AC.ML
src/ZF/AC/first.ML
src/ZF/AC/recfunAC16.ML
src/ZF/AC/rel_is_fun.ML
src/ZF/Arith.ML
src/ZF/Bool.ML
src/ZF/Cardinal.ML
src/ZF/CardinalArith.ML
src/ZF/Cardinal_AC.ML
src/ZF/Coind/ECR.ML
src/ZF/Coind/Language.ML
src/ZF/Coind/MT.ML
src/ZF/Coind/Map.ML
src/ZF/Coind/ROOT.ML
src/ZF/Coind/Static.ML
src/ZF/Coind/Types.ML
src/ZF/Coind/Values.ML
src/ZF/Datatype.ML
src/ZF/Epsilon.ML
src/ZF/EquivClass.ML
src/ZF/Finite.ML
src/ZF/Fixedpt.ML
src/ZF/IMP/Com.ML
src/ZF/IMP/Denotation.ML
src/ZF/IMP/Equiv.ML
src/ZF/IMP/ROOT.ML
src/ZF/Inductive.ML
src/ZF/InfDatatype.ML
src/ZF/Let.ML
src/ZF/List.ML
src/ZF/Nat.ML
src/ZF/Order.ML
src/ZF/OrderArith.ML
src/ZF/OrderType.ML
src/ZF/Ordinal.ML
src/ZF/Perm.ML
src/ZF/QPair.ML
src/ZF/QUniv.ML
src/ZF/ROOT.ML
src/ZF/Rel.ML
src/ZF/Resid/Confluence.ML
src/ZF/Resid/Conversion.ML
src/ZF/Resid/Cube.ML
src/ZF/Resid/ROOT.ML
src/ZF/Resid/Redex.ML
src/ZF/Resid/Reduction.ML
src/ZF/Resid/Residuals.ML
src/ZF/Resid/SubUnion.ML
src/ZF/Resid/Substitution.ML
src/ZF/Resid/Terms.ML
src/ZF/Sum.ML
src/ZF/Trancl.ML
src/ZF/Univ.ML
src/ZF/WF.ML
src/ZF/ZF.ML
src/ZF/Zorn.ML
src/ZF/add_ind_def.ML
src/ZF/constructor.ML
src/ZF/domrange.ML
src/ZF/equalities.ML
src/ZF/ex/Acc.ML
src/ZF/ex/BT.ML
src/ZF/ex/Bin.ML
src/ZF/ex/Brouwer.ML
src/ZF/ex/CoUnit.ML
src/ZF/ex/Comb.ML
src/ZF/ex/Data.ML
src/ZF/ex/Enum.ML
src/ZF/ex/Integ.ML
src/ZF/ex/LList.ML
src/ZF/ex/Limit.ML
src/ZF/ex/ListN.ML
src/ZF/ex/Ntree.ML
src/ZF/ex/Primrec.ML
src/ZF/ex/PropLog.ML
src/ZF/ex/ROOT.ML
src/ZF/ex/Ramsey.ML
src/ZF/ex/Rmap.ML
src/ZF/ex/TF.ML
src/ZF/ex/Term.ML
src/ZF/ex/misc.ML
src/ZF/ex/twos_compl.ML
src/ZF/func.ML
src/ZF/ind_syntax.ML
src/ZF/indrule.ML
src/ZF/intr_elim.ML
src/ZF/mono.ML
src/ZF/pair.ML
src/ZF/simpdata.ML
src/ZF/subset.ML
src/ZF/thy_syntax.ML
src/ZF/upair.ML
     1.1 --- a/src/HOLCF/Cfun1.ML	Mon Jan 29 14:16:13 1996 +0100
     1.2 +++ b/src/HOLCF/Cfun1.ML	Tue Jan 30 13:42:57 1996 +0100
     1.3 @@ -1,6 +1,6 @@
     1.4 -(*  Title: 	HOLCF/cfun1.ML
     1.5 +(*  Title:      HOLCF/cfun1.ML
     1.6      ID:         $Id$
     1.7 -    Author: 	Franz Regensburger
     1.8 +    Author:     Franz Regensburger
     1.9      Copyright   1993 Technische Universitaet Muenchen
    1.10  
    1.11  Lemmas for cfun1.thy 
    1.12 @@ -14,10 +14,10 @@
    1.13  
    1.14  qed_goalw "CfunI" Cfun1.thy [Cfun_def] "(% x.x):Cfun"
    1.15   (fn prems =>
    1.16 -	[
    1.17 -	(rtac (mem_Collect_eq RS ssubst) 1),
    1.18 -	(rtac cont_id 1)
    1.19 -	]);
    1.20 +        [
    1.21 +        (rtac (mem_Collect_eq RS ssubst) 1),
    1.22 +        (rtac cont_id 1)
    1.23 +        ]);
    1.24  
    1.25  
    1.26  (* ------------------------------------------------------------------------ *)
    1.27 @@ -26,60 +26,60 @@
    1.28  
    1.29  qed_goalw "refl_less_cfun" Cfun1.thy [less_cfun_def] "less_cfun f f"
    1.30  (fn prems =>
    1.31 -	[
    1.32 -	(rtac refl_less 1)
    1.33 -	]);
    1.34 +        [
    1.35 +        (rtac refl_less 1)
    1.36 +        ]);
    1.37  
    1.38  qed_goalw "antisym_less_cfun" Cfun1.thy [less_cfun_def] 
    1.39 -	"[|less_cfun f1 f2; less_cfun f2 f1|] ==> f1 = f2"
    1.40 +        "[|less_cfun f1 f2; less_cfun f2 f1|] ==> f1 = f2"
    1.41  (fn prems =>
    1.42 -	[
    1.43 -	(cut_facts_tac prems 1),
    1.44 -	(rtac injD 1),
    1.45 -	(rtac antisym_less 2),
    1.46 -	(atac 3),
    1.47 -	(atac 2),
    1.48 -	(rtac inj_inverseI 1),
    1.49 -	(rtac Rep_Cfun_inverse 1)
    1.50 -	]);
    1.51 +        [
    1.52 +        (cut_facts_tac prems 1),
    1.53 +        (rtac injD 1),
    1.54 +        (rtac antisym_less 2),
    1.55 +        (atac 3),
    1.56 +        (atac 2),
    1.57 +        (rtac inj_inverseI 1),
    1.58 +        (rtac Rep_Cfun_inverse 1)
    1.59 +        ]);
    1.60  
    1.61  qed_goalw "trans_less_cfun" Cfun1.thy [less_cfun_def] 
    1.62 -	"[|less_cfun f1 f2; less_cfun f2 f3|] ==> less_cfun f1 f3"
    1.63 +        "[|less_cfun f1 f2; less_cfun f2 f3|] ==> less_cfun f1 f3"
    1.64  (fn prems =>
    1.65 -	[
    1.66 -	(cut_facts_tac prems 1),
    1.67 -	(etac trans_less 1),
    1.68 -	(atac 1)
    1.69 -	]);
    1.70 +        [
    1.71 +        (cut_facts_tac prems 1),
    1.72 +        (etac trans_less 1),
    1.73 +        (atac 1)
    1.74 +        ]);
    1.75  
    1.76  (* ------------------------------------------------------------------------ *)
    1.77  (* lemmas about application of continuous functions                         *)
    1.78  (* ------------------------------------------------------------------------ *)
    1.79  
    1.80  qed_goal "cfun_cong" Cfun1.thy 
    1.81 -	 "[| f=g; x=y |] ==> f`x = g`y"
    1.82 +         "[| f=g; x=y |] ==> f`x = g`y"
    1.83  (fn prems =>
    1.84 -	[
    1.85 -	(cut_facts_tac prems 1),
    1.86 -	(fast_tac HOL_cs 1)
    1.87 -	]);
    1.88 +        [
    1.89 +        (cut_facts_tac prems 1),
    1.90 +        (fast_tac HOL_cs 1)
    1.91 +        ]);
    1.92  
    1.93  qed_goal "cfun_fun_cong" Cfun1.thy "f=g ==> f`x = g`x"
    1.94  (fn prems =>
    1.95 -	[
    1.96 -	(cut_facts_tac prems 1),
    1.97 -	(etac cfun_cong 1),
    1.98 -	(rtac refl 1)
    1.99 -	]);
   1.100 +        [
   1.101 +        (cut_facts_tac prems 1),
   1.102 +        (etac cfun_cong 1),
   1.103 +        (rtac refl 1)
   1.104 +        ]);
   1.105  
   1.106  qed_goal "cfun_arg_cong" Cfun1.thy "x=y ==> f`x = f`y"
   1.107  (fn prems =>
   1.108 -	[
   1.109 -	(cut_facts_tac prems 1),
   1.110 -	(rtac cfun_cong 1),
   1.111 -	(rtac refl 1),
   1.112 -	(atac 1)
   1.113 -	]);
   1.114 +        [
   1.115 +        (cut_facts_tac prems 1),
   1.116 +        (rtac cfun_cong 1),
   1.117 +        (rtac refl 1),
   1.118 +        (atac 1)
   1.119 +        ]);
   1.120  
   1.121  
   1.122  (* ------------------------------------------------------------------------ *)
   1.123 @@ -88,37 +88,37 @@
   1.124  
   1.125  qed_goal "Abs_Cfun_inverse2" Cfun1.thy "cont(f) ==> fapp(fabs(f)) = f"
   1.126  (fn prems =>
   1.127 -	[
   1.128 -	(cut_facts_tac prems 1),
   1.129 -	(rtac Abs_Cfun_inverse 1),
   1.130 -	(rewrite_goals_tac [Cfun_def]),
   1.131 -	(etac (mem_Collect_eq RS ssubst) 1)
   1.132 -	]);
   1.133 +        [
   1.134 +        (cut_facts_tac prems 1),
   1.135 +        (rtac Abs_Cfun_inverse 1),
   1.136 +        (rewtac Cfun_def),
   1.137 +        (etac (mem_Collect_eq RS ssubst) 1)
   1.138 +        ]);
   1.139  
   1.140  (* ------------------------------------------------------------------------ *)
   1.141  (* simplification of application                                            *)
   1.142  (* ------------------------------------------------------------------------ *)
   1.143  
   1.144  qed_goal "Cfunapp2" Cfun1.thy 
   1.145 -	"cont(f) ==> (fabs f)`x = f x"
   1.146 +        "cont(f) ==> (fabs f)`x = f x"
   1.147  (fn prems =>
   1.148 -	[
   1.149 -	(cut_facts_tac prems 1),
   1.150 -	(etac (Abs_Cfun_inverse2 RS fun_cong) 1)
   1.151 -	]);
   1.152 +        [
   1.153 +        (cut_facts_tac prems 1),
   1.154 +        (etac (Abs_Cfun_inverse2 RS fun_cong) 1)
   1.155 +        ]);
   1.156  
   1.157  (* ------------------------------------------------------------------------ *)
   1.158  (* beta - equality for continuous functions                                 *)
   1.159  (* ------------------------------------------------------------------------ *)
   1.160  
   1.161  qed_goal "beta_cfun" Cfun1.thy 
   1.162 -	"cont(c1) ==> (LAM x .c1 x)`u = c1 u"
   1.163 +        "cont(c1) ==> (LAM x .c1 x)`u = c1 u"
   1.164  (fn prems =>
   1.165 -	[
   1.166 -	(cut_facts_tac prems 1),
   1.167 -	(rtac Cfunapp2 1),
   1.168 -	(atac 1)
   1.169 -	]);
   1.170 +        [
   1.171 +        (cut_facts_tac prems 1),
   1.172 +        (rtac Cfunapp2 1),
   1.173 +        (atac 1)
   1.174 +        ]);
   1.175  
   1.176  
   1.177  
     2.1 --- a/src/HOLCF/Cfun2.ML	Mon Jan 29 14:16:13 1996 +0100
     2.2 +++ b/src/HOLCF/Cfun2.ML	Tue Jan 30 13:42:57 1996 +0100
     2.3 @@ -1,6 +1,6 @@
     2.4 -(*  Title: 	HOLCF/cfun2.thy
     2.5 +(*  Title:      HOLCF/cfun2.thy
     2.6      ID:         $Id$
     2.7 -    Author: 	Franz Regensburger
     2.8 +    Author:     Franz Regensburger
     2.9      Copyright   1993 Technische Universitaet Muenchen
    2.10  
    2.11  Lemmas for cfun2.thy 
    2.12 @@ -14,11 +14,11 @@
    2.13  
    2.14  qed_goal "less_cfun" Cfun2.thy "( f1 << f2 ) = (fapp(f1) << fapp(f2))"
    2.15  (fn prems =>
    2.16 -	[
    2.17 -	(rtac (inst_cfun_po RS ssubst) 1),
    2.18 -	(fold_goals_tac [less_cfun_def]),
    2.19 -	(rtac refl 1)
    2.20 -	]);
    2.21 +        [
    2.22 +        (rtac (inst_cfun_po RS ssubst) 1),
    2.23 +        (fold_goals_tac [less_cfun_def]),
    2.24 +        (rtac refl 1)
    2.25 +        ]);
    2.26  
    2.27  (* ------------------------------------------------------------------------ *)
    2.28  (* Type 'a ->'b  is pointed                                                 *)
    2.29 @@ -26,13 +26,13 @@
    2.30  
    2.31  qed_goalw "minimal_cfun" Cfun2.thy [UU_cfun_def] "UU_cfun << f"
    2.32  (fn prems =>
    2.33 -	[
    2.34 -	(rtac (less_cfun RS ssubst) 1),
    2.35 -	(rtac (Abs_Cfun_inverse2 RS ssubst) 1),
    2.36 -	(rtac cont_const 1),
    2.37 -	(fold_goals_tac [UU_fun_def]),
    2.38 -	(rtac minimal_fun 1)
    2.39 -	]);
    2.40 +        [
    2.41 +        (rtac (less_cfun RS ssubst) 1),
    2.42 +        (rtac (Abs_Cfun_inverse2 RS ssubst) 1),
    2.43 +        (rtac cont_const 1),
    2.44 +        (fold_goals_tac [UU_fun_def]),
    2.45 +        (rtac minimal_fun 1)
    2.46 +        ]);
    2.47  
    2.48  (* ------------------------------------------------------------------------ *)
    2.49  (* fapp yields continuous functions in 'a => 'b                             *)
    2.50 @@ -42,11 +42,11 @@
    2.51  
    2.52  qed_goal "cont_fapp2" Cfun2.thy "cont(fapp(fo))"
    2.53  (fn prems =>
    2.54 -	[
    2.55 -	(res_inst_tac [("P","cont")] CollectD 1),
    2.56 -	(fold_goals_tac [Cfun_def]),
    2.57 -	(rtac Rep_Cfun 1)
    2.58 -	]);
    2.59 +        [
    2.60 +        (res_inst_tac [("P","cont")] CollectD 1),
    2.61 +        (fold_goals_tac [Cfun_def]),
    2.62 +        (rtac Rep_Cfun 1)
    2.63 +        ]);
    2.64  
    2.65  val monofun_fapp2 = cont_fapp2 RS cont2mono;
    2.66  (* monofun(fapp(?fo1)) *)
    2.67 @@ -73,10 +73,10 @@
    2.68  
    2.69  qed_goalw "monofun_fapp1" Cfun2.thy [monofun] "monofun(fapp)"
    2.70  (fn prems =>
    2.71 -	[
    2.72 -	(strip_tac 1),
    2.73 -	(etac (less_cfun RS subst) 1)
    2.74 -	]);
    2.75 +        [
    2.76 +        (strip_tac 1),
    2.77 +        (etac (less_cfun RS subst) 1)
    2.78 +        ]);
    2.79  
    2.80  
    2.81  (* ------------------------------------------------------------------------ *)
    2.82 @@ -85,12 +85,12 @@
    2.83  
    2.84  qed_goal "monofun_cfun_fun" Cfun2.thy  "f1 << f2 ==> f1`x << f2`x"
    2.85  (fn prems =>
    2.86 -	[
    2.87 -	(cut_facts_tac prems 1),
    2.88 -	(res_inst_tac [("x","x")] spec 1),
    2.89 -	(rtac (less_fun RS subst) 1),
    2.90 -	(etac (monofun_fapp1 RS monofunE RS spec RS spec RS mp) 1)
    2.91 -	]);
    2.92 +        [
    2.93 +        (cut_facts_tac prems 1),
    2.94 +        (res_inst_tac [("x","x")] spec 1),
    2.95 +        (rtac (less_fun RS subst) 1),
    2.96 +        (etac (monofun_fapp1 RS monofunE RS spec RS spec RS mp) 1)
    2.97 +        ]);
    2.98  
    2.99  
   2.100  val monofun_cfun_arg = (monofun_fapp2 RS monofunE RS spec RS spec RS mp);
   2.101 @@ -101,14 +101,14 @@
   2.102  (* ------------------------------------------------------------------------ *)
   2.103  
   2.104  qed_goal "monofun_cfun" Cfun2.thy
   2.105 -	"[|f1<<f2;x1<<x2|] ==> f1`x1 << f2`x2"
   2.106 +        "[|f1<<f2;x1<<x2|] ==> f1`x1 << f2`x2"
   2.107  (fn prems =>
   2.108 -	[
   2.109 -	(cut_facts_tac prems 1),
   2.110 -	(rtac trans_less 1),
   2.111 -	(etac monofun_cfun_arg 1),
   2.112 -	(etac monofun_cfun_fun 1)
   2.113 -	]);
   2.114 +        [
   2.115 +        (cut_facts_tac prems 1),
   2.116 +        (rtac trans_less 1),
   2.117 +        (etac monofun_cfun_arg 1),
   2.118 +        (etac monofun_cfun_fun 1)
   2.119 +        ]);
   2.120  
   2.121  
   2.122  (* ------------------------------------------------------------------------ *)
   2.123 @@ -119,10 +119,10 @@
   2.124  qed_goal "ch2ch_fappR" Cfun2.thy 
   2.125   "is_chain(Y) ==> is_chain(%i. f`(Y i))"
   2.126  (fn prems =>
   2.127 -	[
   2.128 -	(cut_facts_tac prems 1),
   2.129 -	(etac (monofun_fapp2 RS ch2ch_MF2R) 1)
   2.130 -	]);
   2.131 +        [
   2.132 +        (cut_facts_tac prems 1),
   2.133 +        (etac (monofun_fapp2 RS ch2ch_MF2R) 1)
   2.134 +        ]);
   2.135  
   2.136  
   2.137  val ch2ch_fappL = (monofun_fapp1 RS ch2ch_MF2L);
   2.138 @@ -135,15 +135,15 @@
   2.139  (* ------------------------------------------------------------------------ *)
   2.140  
   2.141  qed_goal "lub_cfun_mono" Cfun2.thy 
   2.142 -	"is_chain(F) ==> monofun(% x.lub(range(% j.(F j)`x)))"
   2.143 +        "is_chain(F) ==> monofun(% x.lub(range(% j.(F j)`x)))"
   2.144  (fn prems =>
   2.145 -	[
   2.146 -	(cut_facts_tac prems 1),
   2.147 -	(rtac lub_MF2_mono 1),
   2.148 -	(rtac monofun_fapp1 1),
   2.149 -	(rtac (monofun_fapp2 RS allI) 1),
   2.150 -	(atac 1)
   2.151 -	]);
   2.152 +        [
   2.153 +        (cut_facts_tac prems 1),
   2.154 +        (rtac lub_MF2_mono 1),
   2.155 +        (rtac monofun_fapp1 1),
   2.156 +        (rtac (monofun_fapp2 RS allI) 1),
   2.157 +        (atac 1)
   2.158 +        ]);
   2.159  
   2.160  (* ------------------------------------------------------------------------ *)
   2.161  (* a lemma about the exchange of lubs for type 'a -> 'b                     *)
   2.162 @@ -151,37 +151,37 @@
   2.163  (* ------------------------------------------------------------------------ *)
   2.164  
   2.165  qed_goal "ex_lubcfun" Cfun2.thy
   2.166 -	"[| is_chain(F); is_chain(Y) |] ==>\
   2.167 -\		lub(range(%j. lub(range(%i. F(j)`(Y i))))) =\
   2.168 -\		lub(range(%i. lub(range(%j. F(j)`(Y i)))))"
   2.169 +        "[| is_chain(F); is_chain(Y) |] ==>\
   2.170 +\               lub(range(%j. lub(range(%i. F(j)`(Y i))))) =\
   2.171 +\               lub(range(%i. lub(range(%j. F(j)`(Y i)))))"
   2.172  (fn prems =>
   2.173 -	[
   2.174 -	(cut_facts_tac prems 1),
   2.175 -	(rtac ex_lubMF2 1),
   2.176 -	(rtac monofun_fapp1 1),
   2.177 -	(rtac (monofun_fapp2 RS allI) 1),
   2.178 -	(atac 1),
   2.179 -	(atac 1)
   2.180 -	]);
   2.181 +        [
   2.182 +        (cut_facts_tac prems 1),
   2.183 +        (rtac ex_lubMF2 1),
   2.184 +        (rtac monofun_fapp1 1),
   2.185 +        (rtac (monofun_fapp2 RS allI) 1),
   2.186 +        (atac 1),
   2.187 +        (atac 1)
   2.188 +        ]);
   2.189  
   2.190  (* ------------------------------------------------------------------------ *)
   2.191  (* the lub of a chain of cont. functions is continuous                      *)
   2.192  (* ------------------------------------------------------------------------ *)
   2.193  
   2.194  qed_goal "cont_lubcfun" Cfun2.thy 
   2.195 -	"is_chain(F) ==> cont(% x.lub(range(% j.F(j)`x)))"
   2.196 +        "is_chain(F) ==> cont(% x.lub(range(% j.F(j)`x)))"
   2.197  (fn prems =>
   2.198 -	[
   2.199 -	(cut_facts_tac prems 1),
   2.200 -	(rtac monocontlub2cont 1),
   2.201 -	(etac lub_cfun_mono 1),
   2.202 -	(rtac contlubI 1),
   2.203 -	(strip_tac 1),
   2.204 -	(rtac (contlub_cfun_arg RS ext RS ssubst) 1),
   2.205 -	(atac 1),
   2.206 -	(etac ex_lubcfun 1),
   2.207 -	(atac 1)
   2.208 -	]);
   2.209 +        [
   2.210 +        (cut_facts_tac prems 1),
   2.211 +        (rtac monocontlub2cont 1),
   2.212 +        (etac lub_cfun_mono 1),
   2.213 +        (rtac contlubI 1),
   2.214 +        (strip_tac 1),
   2.215 +        (rtac (contlub_cfun_arg RS ext RS ssubst) 1),
   2.216 +        (atac 1),
   2.217 +        (etac ex_lubcfun 1),
   2.218 +        (atac 1)
   2.219 +        ]);
   2.220  
   2.221  (* ------------------------------------------------------------------------ *)
   2.222  (* type 'a -> 'b is chain complete                                          *)
   2.223 @@ -190,25 +190,25 @@
   2.224  qed_goal "lub_cfun" Cfun2.thy 
   2.225    "is_chain(CCF) ==> range(CCF) <<| (LAM x.lub(range(% i.CCF(i)`x)))"
   2.226  (fn prems =>
   2.227 -	[
   2.228 -	(cut_facts_tac prems 1),
   2.229 -	(rtac is_lubI 1),
   2.230 -	(rtac conjI 1),
   2.231 -	(rtac ub_rangeI 1),  
   2.232 -	(rtac allI 1),
   2.233 -	(rtac (less_cfun RS ssubst) 1),
   2.234 -	(rtac (Abs_Cfun_inverse2 RS ssubst) 1),
   2.235 -	(etac cont_lubcfun 1),
   2.236 -	(rtac (lub_fun RS is_lubE RS conjunct1 RS ub_rangeE RS spec) 1),
   2.237 -	(etac (monofun_fapp1 RS ch2ch_monofun) 1),
   2.238 -	(strip_tac 1),
   2.239 -	(rtac (less_cfun RS ssubst) 1),
   2.240 -	(rtac (Abs_Cfun_inverse2 RS ssubst) 1),
   2.241 -	(etac cont_lubcfun 1),
   2.242 -	(rtac (lub_fun RS is_lubE RS conjunct2 RS spec RS mp) 1),
   2.243 -	(etac (monofun_fapp1 RS ch2ch_monofun) 1),
   2.244 -	(etac (monofun_fapp1 RS ub2ub_monofun) 1)
   2.245 -	]);
   2.246 +        [
   2.247 +        (cut_facts_tac prems 1),
   2.248 +        (rtac is_lubI 1),
   2.249 +        (rtac conjI 1),
   2.250 +        (rtac ub_rangeI 1),  
   2.251 +        (rtac allI 1),
   2.252 +        (rtac (less_cfun RS ssubst) 1),
   2.253 +        (rtac (Abs_Cfun_inverse2 RS ssubst) 1),
   2.254 +        (etac cont_lubcfun 1),
   2.255 +        (rtac (lub_fun RS is_lubE RS conjunct1 RS ub_rangeE RS spec) 1),
   2.256 +        (etac (monofun_fapp1 RS ch2ch_monofun) 1),
   2.257 +        (strip_tac 1),
   2.258 +        (rtac (less_cfun RS ssubst) 1),
   2.259 +        (rtac (Abs_Cfun_inverse2 RS ssubst) 1),
   2.260 +        (etac cont_lubcfun 1),
   2.261 +        (rtac (lub_fun RS is_lubE RS conjunct2 RS spec RS mp) 1),
   2.262 +        (etac (monofun_fapp1 RS ch2ch_monofun) 1),
   2.263 +        (etac (monofun_fapp1 RS ub2ub_monofun) 1)
   2.264 +        ]);
   2.265  
   2.266  val thelub_cfun = (lub_cfun RS thelubI);
   2.267  (* 
   2.268 @@ -218,11 +218,11 @@
   2.269  qed_goal "cpo_cfun" Cfun2.thy 
   2.270    "is_chain(CCF::nat=>('a::pcpo->'b::pcpo)) ==> ? x. range(CCF) <<| x"
   2.271  (fn prems =>
   2.272 -	[
   2.273 -	(cut_facts_tac prems 1),
   2.274 -	(rtac exI 1),
   2.275 -	(etac lub_cfun 1)
   2.276 -	]);
   2.277 +        [
   2.278 +        (cut_facts_tac prems 1),
   2.279 +        (rtac exI 1),
   2.280 +        (etac lub_cfun 1)
   2.281 +        ]);
   2.282  
   2.283  
   2.284  (* ------------------------------------------------------------------------ *)
   2.285 @@ -231,29 +231,29 @@
   2.286  
   2.287  qed_goal "ext_cfun" Cfun1.thy "(!!x. f`x = g`x) ==> f = g"
   2.288   (fn prems =>
   2.289 -	[
   2.290 -	(res_inst_tac [("t","f")] (Rep_Cfun_inverse RS subst) 1),
   2.291 -	(res_inst_tac [("t","g")] (Rep_Cfun_inverse RS subst) 1),
   2.292 -	(res_inst_tac [("f","fabs")] arg_cong 1),
   2.293 -	(rtac ext 1),
   2.294 -	(resolve_tac prems 1)
   2.295 -	]);
   2.296 +        [
   2.297 +        (res_inst_tac [("t","f")] (Rep_Cfun_inverse RS subst) 1),
   2.298 +        (res_inst_tac [("t","g")] (Rep_Cfun_inverse RS subst) 1),
   2.299 +        (res_inst_tac [("f","fabs")] arg_cong 1),
   2.300 +        (rtac ext 1),
   2.301 +        (resolve_tac prems 1)
   2.302 +        ]);
   2.303  
   2.304  (* ------------------------------------------------------------------------ *)
   2.305  (* Monotonicity of fabs                                                     *)
   2.306  (* ------------------------------------------------------------------------ *)
   2.307  
   2.308  qed_goal "semi_monofun_fabs" Cfun2.thy 
   2.309 -	"[|cont(f);cont(g);f<<g|]==>fabs(f)<<fabs(g)"
   2.310 +        "[|cont(f);cont(g);f<<g|]==>fabs(f)<<fabs(g)"
   2.311   (fn prems =>
   2.312 -	[
   2.313 -	(rtac (less_cfun RS iffD2) 1),
   2.314 -	(rtac (Abs_Cfun_inverse2 RS ssubst) 1),
   2.315 -	(resolve_tac prems 1),
   2.316 -	(rtac (Abs_Cfun_inverse2 RS ssubst) 1),
   2.317 -	(resolve_tac prems 1),
   2.318 -	(resolve_tac prems 1)
   2.319 -	]);
   2.320 +        [
   2.321 +        (rtac (less_cfun RS iffD2) 1),
   2.322 +        (rtac (Abs_Cfun_inverse2 RS ssubst) 1),
   2.323 +        (resolve_tac prems 1),
   2.324 +        (rtac (Abs_Cfun_inverse2 RS ssubst) 1),
   2.325 +        (resolve_tac prems 1),
   2.326 +        (resolve_tac prems 1)
   2.327 +        ]);
   2.328  
   2.329  (* ------------------------------------------------------------------------ *)
   2.330  (* Extenionality wrt. << in 'a -> 'b                                        *)
   2.331 @@ -261,15 +261,15 @@
   2.332  
   2.333  qed_goal "less_cfun2" Cfun2.thy "(!!x. f`x << g`x) ==> f << g"
   2.334   (fn prems =>
   2.335 -	[
   2.336 -	(res_inst_tac [("t","f")] (Rep_Cfun_inverse RS subst) 1),
   2.337 -	(res_inst_tac [("t","g")] (Rep_Cfun_inverse RS subst) 1),
   2.338 -	(rtac semi_monofun_fabs 1),
   2.339 -	(rtac cont_fapp2 1),
   2.340 -	(rtac cont_fapp2 1),
   2.341 -	(rtac (less_fun RS iffD2) 1),
   2.342 -	(rtac allI 1),
   2.343 -	(resolve_tac prems 1)
   2.344 -	]);
   2.345 +        [
   2.346 +        (res_inst_tac [("t","f")] (Rep_Cfun_inverse RS subst) 1),
   2.347 +        (res_inst_tac [("t","g")] (Rep_Cfun_inverse RS subst) 1),
   2.348 +        (rtac semi_monofun_fabs 1),
   2.349 +        (rtac cont_fapp2 1),
   2.350 +        (rtac cont_fapp2 1),
   2.351 +        (rtac (less_fun RS iffD2) 1),
   2.352 +        (rtac allI 1),
   2.353 +        (resolve_tac prems 1)
   2.354 +        ]);
   2.355  
   2.356  
     3.1 --- a/src/HOLCF/Cfun3.ML	Mon Jan 29 14:16:13 1996 +0100
     3.2 +++ b/src/HOLCF/Cfun3.ML	Tue Jan 30 13:42:57 1996 +0100
     3.3 @@ -1,6 +1,6 @@
     3.4 -(*  Title: 	HOLCF/cfun3.ML
     3.5 +(*  Title:      HOLCF/cfun3.ML
     3.6      ID:         $Id$
     3.7 -    Author: 	Franz Regensburger
     3.8 +    Author:     Franz Regensburger
     3.9      Copyright   1993 Technische Universitaet Muenchen
    3.10  *)
    3.11  
    3.12 @@ -12,19 +12,19 @@
    3.13  
    3.14  qed_goal "contlub_fapp1" Cfun3.thy "contlub(fapp)"
    3.15  (fn prems =>
    3.16 -	[
    3.17 -	(rtac contlubI 1),
    3.18 -	(strip_tac 1),
    3.19 -	(rtac (expand_fun_eq RS iffD2) 1),
    3.20 -	(strip_tac 1),
    3.21 -	(rtac (thelub_cfun RS ssubst) 1),
    3.22 -	(atac 1),
    3.23 -	(rtac (Cfunapp2 RS ssubst) 1),
    3.24 -	(etac cont_lubcfun 1),
    3.25 -	(rtac (thelub_fun RS ssubst) 1),
    3.26 -	(etac (monofun_fapp1 RS ch2ch_monofun) 1),
    3.27 -	(rtac refl 1)
    3.28 -	]);
    3.29 +        [
    3.30 +        (rtac contlubI 1),
    3.31 +        (strip_tac 1),
    3.32 +        (rtac (expand_fun_eq RS iffD2) 1),
    3.33 +        (strip_tac 1),
    3.34 +        (rtac (thelub_cfun RS ssubst) 1),
    3.35 +        (atac 1),
    3.36 +        (rtac (Cfunapp2 RS ssubst) 1),
    3.37 +        (etac cont_lubcfun 1),
    3.38 +        (rtac (thelub_fun RS ssubst) 1),
    3.39 +        (etac (monofun_fapp1 RS ch2ch_monofun) 1),
    3.40 +        (rtac refl 1)
    3.41 +        ]);
    3.42  
    3.43  
    3.44  (* ------------------------------------------------------------------------ *)
    3.45 @@ -33,11 +33,11 @@
    3.46  
    3.47  qed_goal "cont_fapp1" Cfun3.thy "cont(fapp)"
    3.48  (fn prems =>
    3.49 -	[
    3.50 -	(rtac monocontlub2cont 1),
    3.51 -	(rtac monofun_fapp1 1),
    3.52 -	(rtac contlub_fapp1 1)
    3.53 -	]);
    3.54 +        [
    3.55 +        (rtac monocontlub2cont 1),
    3.56 +        (rtac monofun_fapp1 1),
    3.57 +        (rtac contlub_fapp1 1)
    3.58 +        ]);
    3.59  
    3.60  
    3.61  (* ------------------------------------------------------------------------ *)
    3.62 @@ -48,26 +48,26 @@
    3.63  "is_chain(FY) ==>\
    3.64  \ lub(range FY)`x = lub(range (%i.FY(i)`x))"
    3.65  (fn prems =>
    3.66 -	[
    3.67 -	(cut_facts_tac prems 1),
    3.68 -	(rtac trans 1),
    3.69 -	(etac (contlub_fapp1 RS contlubE RS spec RS mp RS fun_cong) 1),
    3.70 -	(rtac (thelub_fun RS ssubst) 1),
    3.71 -	(etac (monofun_fapp1 RS ch2ch_monofun) 1),
    3.72 -	(rtac refl 1)
    3.73 -	]);
    3.74 +        [
    3.75 +        (cut_facts_tac prems 1),
    3.76 +        (rtac trans 1),
    3.77 +        (etac (contlub_fapp1 RS contlubE RS spec RS mp RS fun_cong) 1),
    3.78 +        (rtac (thelub_fun RS ssubst) 1),
    3.79 +        (etac (monofun_fapp1 RS ch2ch_monofun) 1),
    3.80 +        (rtac refl 1)
    3.81 +        ]);
    3.82  
    3.83  
    3.84  qed_goal "cont_cfun_fun" Cfun3.thy 
    3.85  "is_chain(FY) ==>\
    3.86  \ range(%i.FY(i)`x) <<| lub(range FY)`x"
    3.87  (fn prems =>
    3.88 -	[
    3.89 -	(cut_facts_tac prems 1),
    3.90 -	(rtac thelubE 1),
    3.91 -	(etac ch2ch_fappL 1),
    3.92 -	(etac (contlub_cfun_fun RS sym) 1)
    3.93 -	]);
    3.94 +        [
    3.95 +        (cut_facts_tac prems 1),
    3.96 +        (rtac thelubE 1),
    3.97 +        (etac ch2ch_fappL 1),
    3.98 +        (etac (contlub_cfun_fun RS sym) 1)
    3.99 +        ]);
   3.100  
   3.101  
   3.102  (* ------------------------------------------------------------------------ *)
   3.103 @@ -78,31 +78,31 @@
   3.104  "[|is_chain(FY);is_chain(TY)|] ==>\
   3.105  \ (lub(range FY))`(lub(range TY)) = lub(range(%i.FY(i)`(TY i)))"
   3.106  (fn prems =>
   3.107 -	[
   3.108 -	(cut_facts_tac prems 1),
   3.109 -	(rtac contlub_CF2 1),
   3.110 -	(rtac cont_fapp1 1),
   3.111 -	(rtac allI 1),
   3.112 -	(rtac cont_fapp2 1),
   3.113 -	(atac 1),
   3.114 -	(atac 1)
   3.115 -	]);
   3.116 +        [
   3.117 +        (cut_facts_tac prems 1),
   3.118 +        (rtac contlub_CF2 1),
   3.119 +        (rtac cont_fapp1 1),
   3.120 +        (rtac allI 1),
   3.121 +        (rtac cont_fapp2 1),
   3.122 +        (atac 1),
   3.123 +        (atac 1)
   3.124 +        ]);
   3.125  
   3.126  qed_goal "cont_cfun" Cfun3.thy 
   3.127  "[|is_chain(FY);is_chain(TY)|] ==>\
   3.128  \ range(%i.(FY i)`(TY i)) <<| (lub (range FY))`(lub(range TY))"
   3.129  (fn prems =>
   3.130 -	[
   3.131 -	(cut_facts_tac prems 1),
   3.132 -	(rtac thelubE 1),
   3.133 -	(rtac (monofun_fapp1 RS ch2ch_MF2LR) 1),
   3.134 -	(rtac allI 1),
   3.135 -	(rtac monofun_fapp2 1),
   3.136 -	(atac 1),
   3.137 -	(atac 1),
   3.138 -	(etac (contlub_cfun RS sym) 1),
   3.139 -	(atac 1)
   3.140 -	]);
   3.141 +        [
   3.142 +        (cut_facts_tac prems 1),
   3.143 +        (rtac thelubE 1),
   3.144 +        (rtac (monofun_fapp1 RS ch2ch_MF2LR) 1),
   3.145 +        (rtac allI 1),
   3.146 +        (rtac monofun_fapp2 1),
   3.147 +        (atac 1),
   3.148 +        (atac 1),
   3.149 +        (etac (contlub_cfun RS sym) 1),
   3.150 +        (atac 1)
   3.151 +        ]);
   3.152  
   3.153  
   3.154  (* ------------------------------------------------------------------------ *)
   3.155 @@ -110,18 +110,18 @@
   3.156  (* ------------------------------------------------------------------------ *)
   3.157  
   3.158  qed_goal "cont2cont_fapp" Cfun3.thy 
   3.159 -	"[|cont(%x.ft x);cont(%x.tt x)|] ==> cont(%x. (ft x)`(tt x))"
   3.160 +        "[|cont(%x.ft x);cont(%x.tt x)|] ==> cont(%x. (ft x)`(tt x))"
   3.161   (fn prems =>
   3.162 -	[
   3.163 -	(cut_facts_tac prems 1),
   3.164 -	(rtac cont2cont_app2 1),
   3.165 -	(rtac cont2cont_app2 1),
   3.166 -	(rtac cont_const 1),
   3.167 -	(rtac cont_fapp1 1),
   3.168 -	(atac 1),
   3.169 -	(rtac cont_fapp2 1),
   3.170 -	(atac 1)
   3.171 -	]);
   3.172 +        [
   3.173 +        (cut_facts_tac prems 1),
   3.174 +        (rtac cont2cont_app2 1),
   3.175 +        (rtac cont2cont_app2 1),
   3.176 +        (rtac cont_const 1),
   3.177 +        (rtac cont_fapp1 1),
   3.178 +        (atac 1),
   3.179 +        (rtac cont_fapp2 1),
   3.180 +        (atac 1)
   3.181 +        ]);
   3.182  
   3.183  
   3.184  
   3.185 @@ -131,21 +131,21 @@
   3.186  
   3.187  qed_goal "cont2mono_LAM" Cfun3.thy 
   3.188   "[|!x.cont(c1 x); !y.monofun(%x.c1 x y)|] ==>\
   3.189 -\	 		monofun(%x. LAM y. c1 x y)"
   3.190 +\                       monofun(%x. LAM y. c1 x y)"
   3.191  (fn prems =>
   3.192 -	[
   3.193 -	(cut_facts_tac prems 1),
   3.194 -	(rtac monofunI 1),
   3.195 -	(strip_tac 1),
   3.196 -	(rtac (less_cfun RS ssubst) 1),
   3.197 -	(rtac (less_fun RS ssubst) 1),
   3.198 -	(rtac allI 1),
   3.199 -	(rtac (beta_cfun RS ssubst) 1),
   3.200 -	(etac spec 1),
   3.201 -	(rtac (beta_cfun RS ssubst) 1),
   3.202 -	(etac spec 1),
   3.203 -	(etac ((hd (tl prems)) RS spec RS monofunE RS spec RS spec RS mp) 1)
   3.204 -	]);
   3.205 +        [
   3.206 +        (cut_facts_tac prems 1),
   3.207 +        (rtac monofunI 1),
   3.208 +        (strip_tac 1),
   3.209 +        (rtac (less_cfun RS ssubst) 1),
   3.210 +        (rtac (less_fun RS ssubst) 1),
   3.211 +        (rtac allI 1),
   3.212 +        (rtac (beta_cfun RS ssubst) 1),
   3.213 +        (etac spec 1),
   3.214 +        (rtac (beta_cfun RS ssubst) 1),
   3.215 +        (etac spec 1),
   3.216 +        (etac ((hd (tl prems)) RS spec RS monofunE RS spec RS spec RS mp) 1)
   3.217 +        ]);
   3.218  
   3.219  (* ------------------------------------------------------------------------ *)
   3.220  (* cont2cont Lemma for %x. LAM y. c1 x y)                                 *)
   3.221 @@ -154,29 +154,29 @@
   3.222  qed_goal "cont2cont_LAM" Cfun3.thy 
   3.223   "[| !x.cont(c1 x); !y.cont(%x.c1 x y) |] ==> cont(%x. LAM y. c1 x y)"
   3.224  (fn prems =>
   3.225 -	[
   3.226 -	(cut_facts_tac prems 1),
   3.227 -	(rtac monocontlub2cont 1),
   3.228 -	(etac cont2mono_LAM 1),
   3.229 -	(rtac (cont2mono RS allI) 1),
   3.230 -	(etac spec 1),
   3.231 -	(rtac contlubI 1),
   3.232 -	(strip_tac 1),
   3.233 -	(rtac (thelub_cfun RS ssubst) 1),
   3.234 -	(rtac (cont2mono_LAM RS ch2ch_monofun) 1),
   3.235 -	(atac 1),
   3.236 -	(rtac (cont2mono RS allI) 1),
   3.237 -	(etac spec 1),
   3.238 -	(atac 1),
   3.239 -	(res_inst_tac [("f","fabs")] arg_cong 1),
   3.240 -	(rtac ext 1),
   3.241 -	(rtac (beta_cfun RS ext RS ssubst) 1),
   3.242 -	(etac spec 1),
   3.243 -	(rtac (cont2contlub RS contlubE 
   3.244 -		RS spec RS mp ) 1),
   3.245 -	(etac spec 1),
   3.246 -	(atac 1)
   3.247 -	]);
   3.248 +        [
   3.249 +        (cut_facts_tac prems 1),
   3.250 +        (rtac monocontlub2cont 1),
   3.251 +        (etac cont2mono_LAM 1),
   3.252 +        (rtac (cont2mono RS allI) 1),
   3.253 +        (etac spec 1),
   3.254 +        (rtac contlubI 1),
   3.255 +        (strip_tac 1),
   3.256 +        (rtac (thelub_cfun RS ssubst) 1),
   3.257 +        (rtac (cont2mono_LAM RS ch2ch_monofun) 1),
   3.258 +        (atac 1),
   3.259 +        (rtac (cont2mono RS allI) 1),
   3.260 +        (etac spec 1),
   3.261 +        (atac 1),
   3.262 +        (res_inst_tac [("f","fabs")] arg_cong 1),
   3.263 +        (rtac ext 1),
   3.264 +        (rtac (beta_cfun RS ext RS ssubst) 1),
   3.265 +        (etac spec 1),
   3.266 +        (rtac (cont2contlub RS contlubE 
   3.267 +                RS spec RS mp ) 1),
   3.268 +        (etac spec 1),
   3.269 +        (atac 1)
   3.270 +        ]);
   3.271  
   3.272  (* ------------------------------------------------------------------------ *)
   3.273  (* elimination of quantifier in premisses of cont2cont_LAM yields good    *)
   3.274 @@ -194,7 +194,7 @@
   3.275  (* ------------------------------------------------------------------------ *)
   3.276  
   3.277  val cont_lemmas = [cont_const, cont_id, cont_fapp2,
   3.278 -			cont2cont_fapp,cont2cont_LAM2];
   3.279 +                        cont2cont_fapp,cont2cont_LAM2];
   3.280  
   3.281  
   3.282  val cont_tac = (fn i => (resolve_tac cont_lemmas i));
   3.283 @@ -207,13 +207,13 @@
   3.284  
   3.285  qed_goal "strict_fapp1" Cfun3.thy "(UU::'a->'b)`x = (UU::'b)"
   3.286   (fn prems =>
   3.287 -	[
   3.288 -	(rtac (inst_cfun_pcpo RS ssubst) 1),
   3.289 -	(rewrite_goals_tac [UU_cfun_def]),
   3.290 -	(rtac (beta_cfun RS ssubst) 1),
   3.291 -	(cont_tac 1),
   3.292 -	(rtac refl 1)
   3.293 -	]);
   3.294 +        [
   3.295 +        (rtac (inst_cfun_pcpo RS ssubst) 1),
   3.296 +        (rewtac UU_cfun_def),
   3.297 +        (rtac (beta_cfun RS ssubst) 1),
   3.298 +        (cont_tac 1),
   3.299 +        (rtac refl 1)
   3.300 +        ]);
   3.301  
   3.302  
   3.303  (* ------------------------------------------------------------------------ *)
   3.304 @@ -221,163 +221,163 @@
   3.305  (* ------------------------------------------------------------------------ *)
   3.306  
   3.307  qed_goalw "Istrictify1" Cfun3.thy [Istrictify_def]
   3.308 -	"Istrictify(f)(UU)= (UU)"
   3.309 +        "Istrictify(f)(UU)= (UU)"
   3.310   (fn prems =>
   3.311 -	[
   3.312 -	(Simp_tac 1)
   3.313 -	]);
   3.314 +        [
   3.315 +        (Simp_tac 1)
   3.316 +        ]);
   3.317  
   3.318  qed_goalw "Istrictify2" Cfun3.thy [Istrictify_def]
   3.319 -	"~x=UU ==> Istrictify(f)(x)=f`x"
   3.320 +        "~x=UU ==> Istrictify(f)(x)=f`x"
   3.321   (fn prems =>
   3.322 -	[
   3.323 -	(cut_facts_tac prems 1),
   3.324 -	(Asm_simp_tac 1)
   3.325 -	]);
   3.326 +        [
   3.327 +        (cut_facts_tac prems 1),
   3.328 +        (Asm_simp_tac 1)
   3.329 +        ]);
   3.330  
   3.331  qed_goal "monofun_Istrictify1" Cfun3.thy "monofun(Istrictify)"
   3.332   (fn prems =>
   3.333 -	[
   3.334 -	(rtac monofunI 1),
   3.335 -	(strip_tac 1),
   3.336 -	(rtac (less_fun RS iffD2) 1),
   3.337 -	(strip_tac 1),
   3.338 -	(res_inst_tac [("Q","xa=UU")] (excluded_middle RS disjE) 1),
   3.339 -	(rtac (Istrictify2 RS ssubst) 1),
   3.340 -	(atac 1),
   3.341 -	(rtac (Istrictify2 RS ssubst) 1),
   3.342 -	(atac 1),
   3.343 -	(rtac monofun_cfun_fun 1),
   3.344 -	(atac 1),
   3.345 -	(hyp_subst_tac 1),
   3.346 -	(rtac (Istrictify1 RS ssubst) 1),
   3.347 -	(rtac (Istrictify1 RS ssubst) 1),
   3.348 -	(rtac refl_less 1)
   3.349 -	]);
   3.350 +        [
   3.351 +        (rtac monofunI 1),
   3.352 +        (strip_tac 1),
   3.353 +        (rtac (less_fun RS iffD2) 1),
   3.354 +        (strip_tac 1),
   3.355 +        (res_inst_tac [("Q","xa=UU")] (excluded_middle RS disjE) 1),
   3.356 +        (rtac (Istrictify2 RS ssubst) 1),
   3.357 +        (atac 1),
   3.358 +        (rtac (Istrictify2 RS ssubst) 1),
   3.359 +        (atac 1),
   3.360 +        (rtac monofun_cfun_fun 1),
   3.361 +        (atac 1),
   3.362 +        (hyp_subst_tac 1),
   3.363 +        (rtac (Istrictify1 RS ssubst) 1),
   3.364 +        (rtac (Istrictify1 RS ssubst) 1),
   3.365 +        (rtac refl_less 1)
   3.366 +        ]);
   3.367  
   3.368  qed_goal "monofun_Istrictify2" Cfun3.thy "monofun(Istrictify(f))"
   3.369   (fn prems =>
   3.370 -	[
   3.371 -	(rtac monofunI 1),
   3.372 -	(strip_tac 1),
   3.373 -	(res_inst_tac [("Q","x=UU")] (excluded_middle RS disjE) 1),
   3.374 -	(rtac (Istrictify2 RS ssubst) 1),
   3.375 -	(etac notUU_I 1),
   3.376 -	(atac 1),
   3.377 -	(rtac (Istrictify2 RS ssubst) 1),
   3.378 -	(atac 1),
   3.379 -	(rtac monofun_cfun_arg 1),
   3.380 -	(atac 1),
   3.381 -	(hyp_subst_tac 1),
   3.382 -	(rtac (Istrictify1 RS ssubst) 1),
   3.383 -	(rtac minimal 1)
   3.384 -	]);
   3.385 +        [
   3.386 +        (rtac monofunI 1),
   3.387 +        (strip_tac 1),
   3.388 +        (res_inst_tac [("Q","x=UU")] (excluded_middle RS disjE) 1),
   3.389 +        (rtac (Istrictify2 RS ssubst) 1),
   3.390 +        (etac notUU_I 1),
   3.391 +        (atac 1),
   3.392 +        (rtac (Istrictify2 RS ssubst) 1),
   3.393 +        (atac 1),
   3.394 +        (rtac monofun_cfun_arg 1),
   3.395 +        (atac 1),
   3.396 +        (hyp_subst_tac 1),
   3.397 +        (rtac (Istrictify1 RS ssubst) 1),
   3.398 +        (rtac minimal 1)
   3.399 +        ]);
   3.400  
   3.401  
   3.402  qed_goal "contlub_Istrictify1" Cfun3.thy "contlub(Istrictify)"
   3.403   (fn prems =>
   3.404 -	[
   3.405 -	(rtac contlubI 1),
   3.406 -	(strip_tac 1),
   3.407 -	(rtac (expand_fun_eq RS iffD2) 1),
   3.408 -	(strip_tac 1),
   3.409 -	(rtac (thelub_fun RS ssubst) 1),
   3.410 -	(etac (monofun_Istrictify1 RS ch2ch_monofun) 1),
   3.411 -	(res_inst_tac [("Q","x=UU")] (excluded_middle RS disjE) 1),
   3.412 -	(rtac (Istrictify2 RS ssubst) 1),
   3.413 -	(atac 1),
   3.414 -	(rtac (Istrictify2 RS ext RS ssubst) 1),
   3.415 -	(atac 1),
   3.416 -	(rtac (thelub_cfun RS ssubst) 1),
   3.417 -	(atac 1),
   3.418 -	(rtac (beta_cfun RS ssubst) 1),
   3.419 -	(rtac cont_lubcfun 1),
   3.420 -	(atac 1),
   3.421 -	(rtac refl 1),
   3.422 -	(hyp_subst_tac 1),
   3.423 -	(rtac (Istrictify1 RS ssubst) 1),
   3.424 -	(rtac (Istrictify1 RS ext RS ssubst) 1),
   3.425 -	(rtac (chain_UU_I_inverse RS sym) 1),
   3.426 -	(rtac (refl RS allI) 1)
   3.427 -	]);
   3.428 +        [
   3.429 +        (rtac contlubI 1),
   3.430 +        (strip_tac 1),
   3.431 +        (rtac (expand_fun_eq RS iffD2) 1),
   3.432 +        (strip_tac 1),
   3.433 +        (rtac (thelub_fun RS ssubst) 1),
   3.434 +        (etac (monofun_Istrictify1 RS ch2ch_monofun) 1),
   3.435 +        (res_inst_tac [("Q","x=UU")] (excluded_middle RS disjE) 1),
   3.436 +        (rtac (Istrictify2 RS ssubst) 1),
   3.437 +        (atac 1),
   3.438 +        (rtac (Istrictify2 RS ext RS ssubst) 1),
   3.439 +        (atac 1),
   3.440 +        (rtac (thelub_cfun RS ssubst) 1),
   3.441 +        (atac 1),
   3.442 +        (rtac (beta_cfun RS ssubst) 1),
   3.443 +        (rtac cont_lubcfun 1),
   3.444 +        (atac 1),
   3.445 +        (rtac refl 1),
   3.446 +        (hyp_subst_tac 1),
   3.447 +        (rtac (Istrictify1 RS ssubst) 1),
   3.448 +        (rtac (Istrictify1 RS ext RS ssubst) 1),
   3.449 +        (rtac (chain_UU_I_inverse RS sym) 1),
   3.450 +        (rtac (refl RS allI) 1)
   3.451 +        ]);
   3.452  
   3.453  qed_goal "contlub_Istrictify2" Cfun3.thy "contlub(Istrictify(f::'a -> 'b))"
   3.454   (fn prems =>
   3.455 -	[
   3.456 -	(rtac contlubI 1),
   3.457 -	(strip_tac 1),
   3.458 -	(res_inst_tac [("Q","lub(range(Y))=(UU::'a)")] classical2 1),
   3.459 -	(res_inst_tac [("t","lub(range(Y))")] subst 1),
   3.460 -	(rtac sym 1),
   3.461 -	(atac 1),
   3.462 -	(rtac (Istrictify1 RS ssubst) 1),
   3.463 -	(rtac sym 1),
   3.464 -	(rtac chain_UU_I_inverse 1),
   3.465 -	(strip_tac 1),
   3.466 -	(res_inst_tac [("t","Y(i)"),("s","UU::'a")] subst 1),
   3.467 -	(rtac sym 1),
   3.468 -	(rtac (chain_UU_I RS spec) 1),
   3.469 -	(atac 1),
   3.470 -	(atac 1),
   3.471 -	(rtac Istrictify1 1),
   3.472 -	(rtac (Istrictify2 RS ssubst) 1),
   3.473 -	(atac 1),
   3.474 -	(res_inst_tac [("s","lub(range(%i. f`(Y i)))")] trans 1),
   3.475 -	(rtac contlub_cfun_arg 1),
   3.476 -	(atac 1),
   3.477 -	(rtac lub_equal2 1),
   3.478 -	(rtac (chain_mono2 RS exE) 1),
   3.479 -	(atac 2),
   3.480 -	(rtac chain_UU_I_inverse2 1),
   3.481 -	(atac 1),
   3.482 -	(rtac exI 1),
   3.483 -	(strip_tac 1),
   3.484 -	(rtac (Istrictify2 RS sym) 1),
   3.485 -	(fast_tac HOL_cs 1),
   3.486 -	(rtac ch2ch_monofun 1),
   3.487 -	(rtac monofun_fapp2 1),
   3.488 -	(atac 1),
   3.489 -	(rtac ch2ch_monofun 1),
   3.490 -	(rtac monofun_Istrictify2 1),
   3.491 -	(atac 1)
   3.492 -	]);
   3.493 +        [
   3.494 +        (rtac contlubI 1),
   3.495 +        (strip_tac 1),
   3.496 +        (res_inst_tac [("Q","lub(range(Y))=(UU::'a)")] classical2 1),
   3.497 +        (res_inst_tac [("t","lub(range(Y))")] subst 1),
   3.498 +        (rtac sym 1),
   3.499 +        (atac 1),
   3.500 +        (rtac (Istrictify1 RS ssubst) 1),
   3.501 +        (rtac sym 1),
   3.502 +        (rtac chain_UU_I_inverse 1),
   3.503 +        (strip_tac 1),
   3.504 +        (res_inst_tac [("t","Y(i)"),("s","UU::'a")] subst 1),
   3.505 +        (rtac sym 1),
   3.506 +        (rtac (chain_UU_I RS spec) 1),
   3.507 +        (atac 1),
   3.508 +        (atac 1),
   3.509 +        (rtac Istrictify1 1),
   3.510 +        (rtac (Istrictify2 RS ssubst) 1),
   3.511 +        (atac 1),
   3.512 +        (res_inst_tac [("s","lub(range(%i. f`(Y i)))")] trans 1),
   3.513 +        (rtac contlub_cfun_arg 1),
   3.514 +        (atac 1),
   3.515 +        (rtac lub_equal2 1),
   3.516 +        (rtac (chain_mono2 RS exE) 1),
   3.517 +        (atac 2),
   3.518 +        (rtac chain_UU_I_inverse2 1),
   3.519 +        (atac 1),
   3.520 +        (rtac exI 1),
   3.521 +        (strip_tac 1),
   3.522 +        (rtac (Istrictify2 RS sym) 1),
   3.523 +        (fast_tac HOL_cs 1),
   3.524 +        (rtac ch2ch_monofun 1),
   3.525 +        (rtac monofun_fapp2 1),
   3.526 +        (atac 1),
   3.527 +        (rtac ch2ch_monofun 1),
   3.528 +        (rtac monofun_Istrictify2 1),
   3.529 +        (atac 1)
   3.530 +        ]);
   3.531  
   3.532  
   3.533  val cont_Istrictify1 = (contlub_Istrictify1 RS 
   3.534 -	(monofun_Istrictify1 RS monocontlub2cont)); 
   3.535 +        (monofun_Istrictify1 RS monocontlub2cont)); 
   3.536  
   3.537  val cont_Istrictify2 = (contlub_Istrictify2 RS 
   3.538 -	(monofun_Istrictify2 RS monocontlub2cont)); 
   3.539 +        (monofun_Istrictify2 RS monocontlub2cont)); 
   3.540  
   3.541  
   3.542  qed_goalw "strictify1" Cfun3.thy [strictify_def]
   3.543 -	"strictify`f`UU=UU"
   3.544 +        "strictify`f`UU=UU"
   3.545   (fn prems =>
   3.546 -	[
   3.547 -	(rtac (beta_cfun RS ssubst) 1),
   3.548 -	(cont_tac 1),
   3.549 -	(rtac cont_Istrictify2 1),
   3.550 -	(rtac cont2cont_CF1L 1),
   3.551 -	(rtac cont_Istrictify1 1),
   3.552 -	(rtac (beta_cfun RS ssubst) 1),
   3.553 -	(rtac cont_Istrictify2 1),
   3.554 -	(rtac Istrictify1 1)
   3.555 -	]);
   3.556 +        [
   3.557 +        (rtac (beta_cfun RS ssubst) 1),
   3.558 +        (cont_tac 1),
   3.559 +        (rtac cont_Istrictify2 1),
   3.560 +        (rtac cont2cont_CF1L 1),
   3.561 +        (rtac cont_Istrictify1 1),
   3.562 +        (rtac (beta_cfun RS ssubst) 1),
   3.563 +        (rtac cont_Istrictify2 1),
   3.564 +        (rtac Istrictify1 1)
   3.565 +        ]);
   3.566  
   3.567  qed_goalw "strictify2" Cfun3.thy [strictify_def]
   3.568 -	"~x=UU ==> strictify`f`x=f`x"
   3.569 +        "~x=UU ==> strictify`f`x=f`x"
   3.570   (fn prems =>
   3.571 -	[
   3.572 -	(rtac (beta_cfun RS ssubst) 1),
   3.573 -	(cont_tac 1),
   3.574 -	(rtac cont_Istrictify2 1),
   3.575 -	(rtac cont2cont_CF1L 1),
   3.576 -	(rtac cont_Istrictify1 1),
   3.577 -	(rtac (beta_cfun RS ssubst) 1),
   3.578 -	(rtac cont_Istrictify2 1),
   3.579 -	(rtac Istrictify2 1),
   3.580 -	(resolve_tac prems 1)
   3.581 -	]);
   3.582 +        [
   3.583 +        (rtac (beta_cfun RS ssubst) 1),
   3.584 +        (cont_tac 1),
   3.585 +        (rtac cont_Istrictify2 1),
   3.586 +        (rtac cont2cont_CF1L 1),
   3.587 +        (rtac cont_Istrictify1 1),
   3.588 +        (rtac (beta_cfun RS ssubst) 1),
   3.589 +        (rtac cont_Istrictify2 1),
   3.590 +        (rtac Istrictify2 1),
   3.591 +        (resolve_tac prems 1)
   3.592 +        ]);
   3.593  
   3.594  
   3.595  (* ------------------------------------------------------------------------ *)
     4.1 --- a/src/HOLCF/Cont.ML	Mon Jan 29 14:16:13 1996 +0100
     4.2 +++ b/src/HOLCF/Cont.ML	Tue Jan 30 13:42:57 1996 +0100
     4.3 @@ -1,6 +1,6 @@
     4.4 -(*  Title: 	HOLCF/cont.ML
     4.5 +(*  Title:      HOLCF/cont.ML
     4.6      ID:         $Id$
     4.7 -    Author: 	Franz Regensburger
     4.8 +    Author:     Franz Regensburger
     4.9      Copyright   1993 Technische Universitaet Muenchen
    4.10  
    4.11  Lemmas for cont.thy 
    4.12 @@ -13,56 +13,56 @@
    4.13  (* ------------------------------------------------------------------------ *)
    4.14  
    4.15  qed_goalw "contlubI" Cont.thy [contlub]
    4.16 -	"! Y. is_chain(Y) --> f(lub(range(Y))) = lub(range(%i. f(Y(i))))==>\
    4.17 -\	 contlub(f)"
    4.18 +        "! Y. is_chain(Y) --> f(lub(range(Y))) = lub(range(%i. f(Y(i))))==>\
    4.19 +\        contlub(f)"
    4.20  (fn prems =>
    4.21 -	[
    4.22 -	(cut_facts_tac prems 1),
    4.23 -	(atac 1)
    4.24 -	]);
    4.25 +        [
    4.26 +        (cut_facts_tac prems 1),
    4.27 +        (atac 1)
    4.28 +        ]);
    4.29  
    4.30  qed_goalw "contlubE" Cont.thy [contlub]
    4.31 -	" contlub(f)==>\
    4.32 +        " contlub(f)==>\
    4.33  \         ! Y. is_chain(Y) --> f(lub(range(Y))) = lub(range(%i. f(Y(i))))"
    4.34  (fn prems =>
    4.35 -	[
    4.36 -	(cut_facts_tac prems 1),
    4.37 -	(atac 1)
    4.38 -	]);
    4.39 +        [
    4.40 +        (cut_facts_tac prems 1),
    4.41 +        (atac 1)
    4.42 +        ]);
    4.43  
    4.44  
    4.45  qed_goalw "contI" Cont.thy [cont]
    4.46   "! Y. is_chain(Y) --> range(% i.f(Y(i))) <<| f(lub(range(Y))) ==> cont(f)"
    4.47  (fn prems =>
    4.48 -	[
    4.49 -	(cut_facts_tac prems 1),
    4.50 -	(atac 1)
    4.51 -	]);
    4.52 +        [
    4.53 +        (cut_facts_tac prems 1),
    4.54 +        (atac 1)
    4.55 +        ]);
    4.56  
    4.57  qed_goalw "contE" Cont.thy [cont]
    4.58   "cont(f) ==> ! Y. is_chain(Y) --> range(% i.f(Y(i))) <<| f(lub(range(Y)))"
    4.59  (fn prems =>
    4.60 -	[
    4.61 -	(cut_facts_tac prems 1),
    4.62 -	(atac 1)
    4.63 -	]);
    4.64 +        [
    4.65 +        (cut_facts_tac prems 1),
    4.66 +        (atac 1)
    4.67 +        ]);
    4.68  
    4.69  
    4.70  qed_goalw "monofunI" Cont.thy [monofun]
    4.71 -	"! x y. x << y --> f(x) << f(y) ==> monofun(f)"
    4.72 +        "! x y. x << y --> f(x) << f(y) ==> monofun(f)"
    4.73  (fn prems =>
    4.74 -	[
    4.75 -	(cut_facts_tac prems 1),
    4.76 -	(atac 1)
    4.77 -	]);
    4.78 +        [
    4.79 +        (cut_facts_tac prems 1),
    4.80 +        (atac 1)
    4.81 +        ]);
    4.82  
    4.83  qed_goalw "monofunE" Cont.thy [monofun]
    4.84 -	"monofun(f) ==> ! x y. x << y --> f(x) << f(y)"
    4.85 +        "monofun(f) ==> ! x y. x << y --> f(x) << f(y)"
    4.86  (fn prems =>
    4.87 -	[
    4.88 -	(cut_facts_tac prems 1),
    4.89 -	(atac 1)
    4.90 -	]);
    4.91 +        [
    4.92 +        (cut_facts_tac prems 1),
    4.93 +        (atac 1)
    4.94 +        ]);
    4.95  
    4.96  (* ------------------------------------------------------------------------ *)
    4.97  (* the main purpose of cont.thy is to show:                                 *)
    4.98 @@ -74,15 +74,15 @@
    4.99  (* ------------------------------------------------------------------------ *)
   4.100  
   4.101  qed_goal "ch2ch_monofun" Cont.thy 
   4.102 -	"[| monofun(f); is_chain(Y) |] ==> is_chain(%i. f(Y(i)))"
   4.103 +        "[| monofun(f); is_chain(Y) |] ==> is_chain(%i. f(Y(i)))"
   4.104  (fn prems =>
   4.105 -	[
   4.106 -	(cut_facts_tac prems 1),
   4.107 -	(rtac is_chainI 1),
   4.108 -	(rtac allI 1),
   4.109 -	(etac (monofunE RS spec RS spec RS mp) 1),
   4.110 -	(etac (is_chainE RS spec) 1)
   4.111 -	]);
   4.112 +        [
   4.113 +        (cut_facts_tac prems 1),
   4.114 +        (rtac is_chainI 1),
   4.115 +        (rtac allI 1),
   4.116 +        (etac (monofunE RS spec RS spec RS mp) 1),
   4.117 +        (etac (is_chainE RS spec) 1)
   4.118 +        ]);
   4.119  
   4.120  (* ------------------------------------------------------------------------ *)
   4.121  (* monotone functions map upper bound to upper bounds                       *)
   4.122 @@ -91,30 +91,30 @@
   4.123  qed_goal "ub2ub_monofun" Cont.thy 
   4.124   "[| monofun(f); range(Y) <| u|]  ==> range(%i.f(Y(i))) <| f(u)"
   4.125  (fn prems =>
   4.126 -	[
   4.127 -	(cut_facts_tac prems 1),
   4.128 -	(rtac ub_rangeI 1),
   4.129 -	(rtac allI 1),
   4.130 -	(etac (monofunE RS spec RS spec RS mp) 1),
   4.131 -	(etac (ub_rangeE RS spec) 1)
   4.132 -	]);
   4.133 +        [
   4.134 +        (cut_facts_tac prems 1),
   4.135 +        (rtac ub_rangeI 1),
   4.136 +        (rtac allI 1),
   4.137 +        (etac (monofunE RS spec RS spec RS mp) 1),
   4.138 +        (etac (ub_rangeE RS spec) 1)
   4.139 +        ]);
   4.140  
   4.141  (* ------------------------------------------------------------------------ *)
   4.142  (* left to right: monofun(f) & contlub(f)  ==> cont(f)                     *)
   4.143  (* ------------------------------------------------------------------------ *)
   4.144  
   4.145  qed_goalw "monocontlub2cont" Cont.thy [cont]
   4.146 -	"[|monofun(f);contlub(f)|] ==> cont(f)"
   4.147 +        "[|monofun(f);contlub(f)|] ==> cont(f)"
   4.148  (fn prems =>
   4.149 -	[
   4.150 -	(cut_facts_tac prems 1),
   4.151 -	(strip_tac 1),
   4.152 -	(rtac thelubE 1),
   4.153 -	(etac ch2ch_monofun 1),
   4.154 -	(atac 1),
   4.155 -	(etac (contlubE RS spec RS mp RS sym) 1),
   4.156 -	(atac 1)
   4.157 -	]);
   4.158 +        [
   4.159 +        (cut_facts_tac prems 1),
   4.160 +        (strip_tac 1),
   4.161 +        (rtac thelubE 1),
   4.162 +        (etac ch2ch_monofun 1),
   4.163 +        (atac 1),
   4.164 +        (etac (contlubE RS spec RS mp RS sym) 1),
   4.165 +        (atac 1)
   4.166 +        ]);
   4.167  
   4.168  (* ------------------------------------------------------------------------ *)
   4.169  (* first a lemma about binary chains                                        *)
   4.170 @@ -123,14 +123,14 @@
   4.171  qed_goal "binchain_cont" Cont.thy
   4.172  "[| cont(f); x << y |]  ==> range(%i. f(if i = 0 then x else y)) <<| f(y)"
   4.173  (fn prems => 
   4.174 -	[
   4.175 -	(cut_facts_tac prems 1),
   4.176 -	(rtac subst 1), 
   4.177 -	(etac (contE RS spec RS mp) 2),
   4.178 -	(etac bin_chain 2),
   4.179 -	(res_inst_tac [("y","y")] arg_cong 1),
   4.180 -	(etac (lub_bin_chain RS thelubI) 1)
   4.181 -	]);
   4.182 +        [
   4.183 +        (cut_facts_tac prems 1),
   4.184 +        (rtac subst 1), 
   4.185 +        (etac (contE RS spec RS mp) 2),
   4.186 +        (etac bin_chain 2),
   4.187 +        (res_inst_tac [("y","y")] arg_cong 1),
   4.188 +        (etac (lub_bin_chain RS thelubI) 1)
   4.189 +        ]);
   4.190  
   4.191  (* ------------------------------------------------------------------------ *)
   4.192  (* right to left: cont(f) ==> monofun(f) & contlub(f)                      *)
   4.193 @@ -138,17 +138,17 @@
   4.194  (* ------------------------------------------------------------------------ *)
   4.195  
   4.196  qed_goalw "cont2mono" Cont.thy [monofun]
   4.197 -	"cont(f) ==> monofun(f)"
   4.198 +        "cont(f) ==> monofun(f)"
   4.199  (fn prems =>
   4.200 -	[
   4.201 -	(cut_facts_tac prems 1),
   4.202 -	(strip_tac 1),
   4.203 -	(res_inst_tac [("s","if 0 = 0 then x else y")] subst 1),
   4.204 -	(rtac (binchain_cont RS is_ub_lub) 2),
   4.205 -	(atac 2),
   4.206 -	(atac 2),
   4.207 -	(Simp_tac 1)
   4.208 -	]);
   4.209 +        [
   4.210 +        (cut_facts_tac prems 1),
   4.211 +        (strip_tac 1),
   4.212 +        (res_inst_tac [("s","if 0 = 0 then x else y")] subst 1),
   4.213 +        (rtac (binchain_cont RS is_ub_lub) 2),
   4.214 +        (atac 2),
   4.215 +        (atac 2),
   4.216 +        (Simp_tac 1)
   4.217 +        ]);
   4.218  
   4.219  (* ------------------------------------------------------------------------ *)
   4.220  (* right to left: cont(f) ==> monofun(f) & contlub(f)                      *)
   4.221 @@ -156,15 +156,15 @@
   4.222  (* ------------------------------------------------------------------------ *)
   4.223  
   4.224  qed_goalw "cont2contlub" Cont.thy [contlub]
   4.225 -	"cont(f) ==> contlub(f)"
   4.226 +        "cont(f) ==> contlub(f)"
   4.227  (fn prems =>
   4.228 -	[
   4.229 -	(cut_facts_tac prems 1),
   4.230 -	(strip_tac 1),
   4.231 -	(rtac (thelubI RS sym) 1),
   4.232 -	(etac (contE RS spec RS mp) 1),
   4.233 -	(atac 1)
   4.234 -	]);
   4.235 +        [
   4.236 +        (cut_facts_tac prems 1),
   4.237 +        (strip_tac 1),
   4.238 +        (rtac (thelubI RS sym) 1),
   4.239 +        (etac (contE RS spec RS mp) 1),
   4.240 +        (atac 1)
   4.241 +        ]);
   4.242  
   4.243  (* ------------------------------------------------------------------------ *)
   4.244  (* The following results are about a curried function that is monotone      *)
   4.245 @@ -174,135 +174,135 @@
   4.246  qed_goal "ch2ch_MF2L" Cont.thy 
   4.247  "[|monofun(MF2); is_chain(F)|] ==> is_chain(%i. MF2 (F i) x)"
   4.248  (fn prems =>
   4.249 -	[
   4.250 -	(cut_facts_tac prems 1),
   4.251 -	(etac (ch2ch_monofun RS ch2ch_fun) 1),
   4.252 -	(atac 1)
   4.253 -	]);
   4.254 +        [
   4.255 +        (cut_facts_tac prems 1),
   4.256 +        (etac (ch2ch_monofun RS ch2ch_fun) 1),
   4.257 +        (atac 1)
   4.258 +        ]);
   4.259  
   4.260  
   4.261  qed_goal "ch2ch_MF2R" Cont.thy 
   4.262  "[|monofun(MF2(f)); is_chain(Y)|] ==> is_chain(%i. MF2 f (Y i))"
   4.263  (fn prems =>
   4.264 -	[
   4.265 -	(cut_facts_tac prems 1),
   4.266 -	(etac ch2ch_monofun 1),
   4.267 -	(atac 1)
   4.268 -	]);
   4.269 +        [
   4.270 +        (cut_facts_tac prems 1),
   4.271 +        (etac ch2ch_monofun 1),
   4.272 +        (atac 1)
   4.273 +        ]);
   4.274  
   4.275  qed_goal "ch2ch_MF2LR" Cont.thy 
   4.276  "[|monofun(MF2); !f.monofun(MF2(f)); is_chain(F); is_chain(Y)|] ==> \
   4.277  \  is_chain(%i. MF2(F(i))(Y(i)))"
   4.278   (fn prems =>
   4.279 -	[
   4.280 -	(cut_facts_tac prems 1),
   4.281 -	(rtac is_chainI 1),
   4.282 -	(strip_tac 1 ),
   4.283 -	(rtac trans_less 1),
   4.284 -	(etac (ch2ch_MF2L RS is_chainE RS spec) 1),
   4.285 -	(atac 1),
   4.286 -	((rtac (monofunE RS spec RS spec RS mp) 1) THEN (etac spec 1)),
   4.287 -	(etac (is_chainE RS spec) 1)
   4.288 -	]);
   4.289 +        [
   4.290 +        (cut_facts_tac prems 1),
   4.291 +        (rtac is_chainI 1),
   4.292 +        (strip_tac 1 ),
   4.293 +        (rtac trans_less 1),
   4.294 +        (etac (ch2ch_MF2L RS is_chainE RS spec) 1),
   4.295 +        (atac 1),
   4.296 +        ((rtac (monofunE RS spec RS spec RS mp) 1) THEN (etac spec 1)),
   4.297 +        (etac (is_chainE RS spec) 1)
   4.298 +        ]);
   4.299  
   4.300  
   4.301  qed_goal "ch2ch_lubMF2R" Cont.thy 
   4.302  "[|monofun(MF2::('a::po=>'b::po=>'c::pcpo));\
   4.303  \  !f.monofun(MF2(f)::('b::po=>'c::pcpo));\
   4.304 -\	is_chain(F);is_chain(Y)|] ==> \
   4.305 -\	is_chain(%j. lub(range(%i. MF2 (F j) (Y i))))"
   4.306 +\       is_chain(F);is_chain(Y)|] ==> \
   4.307 +\       is_chain(%j. lub(range(%i. MF2 (F j) (Y i))))"
   4.308  (fn prems =>
   4.309 -	[
   4.310 -	(cut_facts_tac prems 1),
   4.311 -	(rtac (lub_mono RS allI RS is_chainI) 1),
   4.312 -	((rtac ch2ch_MF2R 1) THEN (etac spec 1)),
   4.313 -	(atac 1),
   4.314 -	((rtac ch2ch_MF2R 1) THEN (etac spec 1)),
   4.315 -	(atac 1),
   4.316 -	(strip_tac 1),
   4.317 -	(rtac (is_chainE RS spec) 1),
   4.318 -	(etac ch2ch_MF2L 1),
   4.319 -	(atac 1)
   4.320 -	]);
   4.321 +        [
   4.322 +        (cut_facts_tac prems 1),
   4.323 +        (rtac (lub_mono RS allI RS is_chainI) 1),
   4.324 +        ((rtac ch2ch_MF2R 1) THEN (etac spec 1)),
   4.325 +        (atac 1),
   4.326 +        ((rtac ch2ch_MF2R 1) THEN (etac spec 1)),
   4.327 +        (atac 1),
   4.328 +        (strip_tac 1),
   4.329 +        (rtac (is_chainE RS spec) 1),
   4.330 +        (etac ch2ch_MF2L 1),
   4.331 +        (atac 1)
   4.332 +        ]);
   4.333  
   4.334  
   4.335  qed_goal "ch2ch_lubMF2L" Cont.thy 
   4.336  "[|monofun(MF2::('a::po=>'b::po=>'c::pcpo));\
   4.337  \  !f.monofun(MF2(f)::('b::po=>'c::pcpo));\
   4.338 -\	is_chain(F);is_chain(Y)|] ==> \
   4.339 -\	is_chain(%i. lub(range(%j. MF2 (F j) (Y i))))"
   4.340 +\       is_chain(F);is_chain(Y)|] ==> \
   4.341 +\       is_chain(%i. lub(range(%j. MF2 (F j) (Y i))))"
   4.342  (fn prems =>
   4.343 -	[
   4.344 -	(cut_facts_tac prems 1),
   4.345 -	(rtac (lub_mono RS allI RS is_chainI) 1),
   4.346 -	(etac ch2ch_MF2L 1),
   4.347 -	(atac 1),
   4.348 -	(etac ch2ch_MF2L 1),
   4.349 -	(atac 1),
   4.350 -	(strip_tac 1),
   4.351 -	(rtac (is_chainE RS spec) 1),
   4.352 -	((rtac ch2ch_MF2R 1) THEN (etac spec 1)),
   4.353 -	(atac 1)
   4.354 -	]);
   4.355 +        [
   4.356 +        (cut_facts_tac prems 1),
   4.357 +        (rtac (lub_mono RS allI RS is_chainI) 1),
   4.358 +        (etac ch2ch_MF2L 1),
   4.359 +        (atac 1),
   4.360 +        (etac ch2ch_MF2L 1),
   4.361 +        (atac 1),
   4.362 +        (strip_tac 1),
   4.363 +        (rtac (is_chainE RS spec) 1),
   4.364 +        ((rtac ch2ch_MF2R 1) THEN (etac spec 1)),
   4.365 +        (atac 1)
   4.366 +        ]);
   4.367  
   4.368  
   4.369  qed_goal "lub_MF2_mono" Cont.thy 
   4.370  "[|monofun(MF2::('a::po=>'b::po=>'c::pcpo));\
   4.371  \  !f.monofun(MF2(f)::('b::po=>'c::pcpo));\
   4.372 -\	is_chain(F)|] ==> \
   4.373 -\	monofun(% x.lub(range(% j.MF2 (F j) (x))))"
   4.374 +\       is_chain(F)|] ==> \
   4.375 +\       monofun(% x.lub(range(% j.MF2 (F j) (x))))"
   4.376  (fn prems =>
   4.377 -	[
   4.378 -	(cut_facts_tac prems 1),
   4.379 -	(rtac monofunI 1),
   4.380 -	(strip_tac 1),
   4.381 -	(rtac lub_mono 1),
   4.382 -	(etac ch2ch_MF2L 1),
   4.383 -	(atac 1),
   4.384 -	(etac ch2ch_MF2L 1),
   4.385 -	(atac 1),
   4.386 -	(strip_tac 1),
   4.387 -	((rtac (monofunE RS spec RS spec RS mp) 1) THEN (etac spec 1)),
   4.388 -	(atac 1)
   4.389 -	]);
   4.390 +        [
   4.391 +        (cut_facts_tac prems 1),
   4.392 +        (rtac monofunI 1),
   4.393 +        (strip_tac 1),
   4.394 +        (rtac lub_mono 1),
   4.395 +        (etac ch2ch_MF2L 1),
   4.396 +        (atac 1),
   4.397 +        (etac ch2ch_MF2L 1),
   4.398 +        (atac 1),
   4.399 +        (strip_tac 1),
   4.400 +        ((rtac (monofunE RS spec RS spec RS mp) 1) THEN (etac spec 1)),
   4.401 +        (atac 1)
   4.402 +        ]);
   4.403  
   4.404  qed_goal "ex_lubMF2" Cont.thy 
   4.405  "[|monofun(MF2::('a::po=>'b::po=>'c::pcpo));\
   4.406  \  !f.monofun(MF2(f)::('b::po=>'c::pcpo));\
   4.407 -\	is_chain(F); is_chain(Y)|] ==> \
   4.408 -\		lub(range(%j. lub(range(%i. MF2(F j) (Y i))))) =\
   4.409 -\		lub(range(%i. lub(range(%j. MF2(F j) (Y i)))))"
   4.410 +\       is_chain(F); is_chain(Y)|] ==> \
   4.411 +\               lub(range(%j. lub(range(%i. MF2(F j) (Y i))))) =\
   4.412 +\               lub(range(%i. lub(range(%j. MF2(F j) (Y i)))))"
   4.413   (fn prems =>
   4.414 -	[
   4.415 -	(cut_facts_tac prems 1),
   4.416 -	(rtac antisym_less 1),
   4.417 -	(rtac (ub_rangeI RSN (2,is_lub_thelub)) 1),
   4.418 -	(etac ch2ch_lubMF2R 1),
   4.419 -	(REPEAT (atac 1)),
   4.420 -	(strip_tac 1),
   4.421 -	(rtac lub_mono 1),
   4.422 -	((rtac ch2ch_MF2R 1) THEN (etac spec 1)),
   4.423 -	(atac 1),
   4.424 -	(etac ch2ch_lubMF2L 1),
   4.425 -	(REPEAT (atac 1)),
   4.426 -	(strip_tac 1),
   4.427 -	(rtac is_ub_thelub 1),
   4.428 -	(etac ch2ch_MF2L 1),
   4.429 -	(atac 1),
   4.430 -	(rtac (ub_rangeI RSN (2,is_lub_thelub)) 1),
   4.431 -	(etac ch2ch_lubMF2L 1),
   4.432 -	(REPEAT (atac 1)),
   4.433 -	(strip_tac 1),
   4.434 -	(rtac lub_mono 1),
   4.435 -	(etac ch2ch_MF2L 1),
   4.436 -	(atac 1),
   4.437 -	(etac ch2ch_lubMF2R 1),
   4.438 -	(REPEAT (atac 1)),
   4.439 -	(strip_tac 1),
   4.440 -	(rtac is_ub_thelub 1),
   4.441 -	((rtac ch2ch_MF2R 1) THEN (etac spec 1)),
   4.442 -	(atac 1)
   4.443 -	]);
   4.444 +        [
   4.445 +        (cut_facts_tac prems 1),
   4.446 +        (rtac antisym_less 1),
   4.447 +        (rtac (ub_rangeI RSN (2,is_lub_thelub)) 1),
   4.448 +        (etac ch2ch_lubMF2R 1),
   4.449 +        (REPEAT (atac 1)),
   4.450 +        (strip_tac 1),
   4.451 +        (rtac lub_mono 1),
   4.452 +        ((rtac ch2ch_MF2R 1) THEN (etac spec 1)),
   4.453 +        (atac 1),
   4.454 +        (etac ch2ch_lubMF2L 1),
   4.455 +        (REPEAT (atac 1)),
   4.456 +        (strip_tac 1),
   4.457 +        (rtac is_ub_thelub 1),
   4.458 +        (etac ch2ch_MF2L 1),
   4.459 +        (atac 1),
   4.460 +        (rtac (ub_rangeI RSN (2,is_lub_thelub)) 1),
   4.461 +        (etac ch2ch_lubMF2L 1),
   4.462 +        (REPEAT (atac 1)),
   4.463 +        (strip_tac 1),
   4.464 +        (rtac lub_mono 1),
   4.465 +        (etac ch2ch_MF2L 1),
   4.466 +        (atac 1),
   4.467 +        (etac ch2ch_lubMF2R 1),
   4.468 +        (REPEAT (atac 1)),
   4.469 +        (strip_tac 1),
   4.470 +        (rtac is_ub_thelub 1),
   4.471 +        ((rtac ch2ch_MF2R 1) THEN (etac spec 1)),
   4.472 +        (atac 1)
   4.473 +        ]);
   4.474  
   4.475  
   4.476  qed_goal "diag_lubMF2_1" Cont.thy 
   4.477 @@ -312,42 +312,42 @@
   4.478  \ lub(range(%i. lub(range(%j. MF2(FY(j))(TY(i)))))) =\
   4.479  \ lub(range(%i. MF2(FY(i))(TY(i))))"
   4.480   (fn prems =>
   4.481 -	[
   4.482 -	(cut_facts_tac prems 1),
   4.483 -	(rtac antisym_less 1),
   4.484 -	(rtac (ub_rangeI RSN (2,is_lub_thelub)) 1),
   4.485 -	(etac ch2ch_lubMF2L 1),
   4.486 -	(REPEAT (atac 1)),
   4.487 -	(strip_tac 1 ),
   4.488 -	(rtac lub_mono3 1),
   4.489 -	(etac ch2ch_MF2L 1),
   4.490 -	(REPEAT (atac 1)),
   4.491 -	(etac ch2ch_MF2LR 1),
   4.492 -	(REPEAT (atac 1)),
   4.493 -	(rtac allI 1),
   4.494 -	(res_inst_tac [("m","i"),("n","ia")] nat_less_cases 1),
   4.495 -	(res_inst_tac [("x","ia")] exI 1),
   4.496 -	(rtac (chain_mono RS mp) 1),
   4.497 -	(etac allE 1),
   4.498 -	(etac ch2ch_MF2R 1),
   4.499 -	(REPEAT (atac 1)),
   4.500 -	(hyp_subst_tac 1),
   4.501 -	(res_inst_tac [("x","ia")] exI 1),
   4.502 -	(rtac refl_less 1),
   4.503 -	(res_inst_tac [("x","i")] exI 1),
   4.504 -	(rtac (chain_mono RS mp) 1),
   4.505 -	(etac ch2ch_MF2L 1),
   4.506 -	(REPEAT (atac 1)),
   4.507 -	(rtac lub_mono 1),
   4.508 -	(etac ch2ch_MF2LR 1),
   4.509 -	(REPEAT(atac 1)),
   4.510 -	(etac ch2ch_lubMF2L 1),
   4.511 -	(REPEAT (atac 1)),
   4.512 -	(strip_tac 1 ),
   4.513 -	(rtac is_ub_thelub 1),
   4.514 -	(etac ch2ch_MF2L 1),
   4.515 -	(atac 1)
   4.516 -	]);
   4.517 +        [
   4.518 +        (cut_facts_tac prems 1),
   4.519 +        (rtac antisym_less 1),
   4.520 +        (rtac (ub_rangeI RSN (2,is_lub_thelub)) 1),
   4.521 +        (etac ch2ch_lubMF2L 1),
   4.522 +        (REPEAT (atac 1)),
   4.523 +        (strip_tac 1 ),
   4.524 +        (rtac lub_mono3 1),
   4.525 +        (etac ch2ch_MF2L 1),
   4.526 +        (REPEAT (atac 1)),
   4.527 +        (etac ch2ch_MF2LR 1),
   4.528 +        (REPEAT (atac 1)),
   4.529 +        (rtac allI 1),
   4.530 +        (res_inst_tac [("m","i"),("n","ia")] nat_less_cases 1),
   4.531 +        (res_inst_tac [("x","ia")] exI 1),
   4.532 +        (rtac (chain_mono RS mp) 1),
   4.533 +        (etac allE 1),
   4.534 +        (etac ch2ch_MF2R 1),
   4.535 +        (REPEAT (atac 1)),
   4.536 +        (hyp_subst_tac 1),
   4.537 +        (res_inst_tac [("x","ia")] exI 1),
   4.538 +        (rtac refl_less 1),
   4.539 +        (res_inst_tac [("x","i")] exI 1),
   4.540 +        (rtac (chain_mono RS mp) 1),
   4.541 +        (etac ch2ch_MF2L 1),
   4.542 +        (REPEAT (atac 1)),
   4.543 +        (rtac lub_mono 1),
   4.544 +        (etac ch2ch_MF2LR 1),
   4.545 +        (REPEAT(atac 1)),
   4.546 +        (etac ch2ch_lubMF2L 1),
   4.547 +        (REPEAT (atac 1)),
   4.548 +        (strip_tac 1 ),
   4.549 +        (rtac is_ub_thelub 1),
   4.550 +        (etac ch2ch_MF2L 1),
   4.551 +        (atac 1)
   4.552 +        ]);
   4.553  
   4.554  qed_goal "diag_lubMF2_2" Cont.thy 
   4.555  "[|monofun(MF2::('a::po=>'b::po=>'c::pcpo));\
   4.556 @@ -356,14 +356,14 @@
   4.557  \ lub(range(%j. lub(range(%i. MF2(FY(j))(TY(i)))))) =\
   4.558  \ lub(range(%i. MF2(FY(i))(TY(i))))"
   4.559   (fn prems =>
   4.560 -	[
   4.561 -	(cut_facts_tac prems 1),
   4.562 -	(rtac trans 1),
   4.563 -	(rtac ex_lubMF2 1),
   4.564 -	(REPEAT (atac 1)),
   4.565 -	(etac diag_lubMF2_1 1),
   4.566 -	(REPEAT (atac 1))
   4.567 -	]);
   4.568 +        [
   4.569 +        (cut_facts_tac prems 1),
   4.570 +        (rtac trans 1),
   4.571 +        (rtac ex_lubMF2 1),
   4.572 +        (REPEAT (atac 1)),
   4.573 +        (etac diag_lubMF2_1 1),
   4.574 +        (REPEAT (atac 1))
   4.575 +        ]);
   4.576  
   4.577  
   4.578  
   4.579 @@ -377,55 +377,55 @@
   4.580  "[|cont(CF2);!f.cont(CF2(f));is_chain(FY);is_chain(TY)|] ==>\
   4.581  \ CF2(lub(range(FY)))(lub(range(TY))) = lub(range(%i.CF2(FY(i))(TY(i))))"
   4.582   (fn prems =>
   4.583 -	[
   4.584 -	(cut_facts_tac prems 1),
   4.585 -	(rtac ((hd prems) RS cont2contlub RS contlubE RS spec RS mp RS ssubst) 1),
   4.586 -	(atac 1),
   4.587 -	(rtac (thelub_fun RS ssubst) 1),
   4.588 -	(rtac ((hd prems) RS cont2mono RS ch2ch_monofun) 1),
   4.589 -	(atac 1),
   4.590 -	(rtac trans 1),
   4.591 -	(rtac (((hd (tl prems)) RS spec RS cont2contlub) RS contlubE RS                spec RS mp RS ext RS arg_cong RS arg_cong) 1),
   4.592 -	(atac 1),
   4.593 -	(rtac diag_lubMF2_2 1),
   4.594 -	(etac cont2mono 1),
   4.595 -	(rtac allI 1),
   4.596 -	(etac allE 1),
   4.597 -	(etac cont2mono 1),
   4.598 -	(REPEAT (atac 1))
   4.599 -	]);
   4.600 +        [
   4.601 +        (cut_facts_tac prems 1),
   4.602 +        (rtac ((hd prems) RS cont2contlub RS contlubE RS spec RS mp RS ssubst) 1),
   4.603 +        (atac 1),
   4.604 +        (rtac (thelub_fun RS ssubst) 1),
   4.605 +        (rtac ((hd prems) RS cont2mono RS ch2ch_monofun) 1),
   4.606 +        (atac 1),
   4.607 +        (rtac trans 1),
   4.608 +        (rtac (((hd (tl prems)) RS spec RS cont2contlub) RS contlubE RS                spec RS mp RS ext RS arg_cong RS arg_cong) 1),
   4.609 +        (atac 1),
   4.610 +        (rtac diag_lubMF2_2 1),
   4.611 +        (etac cont2mono 1),
   4.612 +        (rtac allI 1),
   4.613 +        (etac allE 1),
   4.614 +        (etac cont2mono 1),
   4.615 +        (REPEAT (atac 1))
   4.616 +        ]);
   4.617  
   4.618  (* ------------------------------------------------------------------------ *)
   4.619  (* The following results are about application for functions in 'a=>'b      *)
   4.620  (* ------------------------------------------------------------------------ *)
   4.621  
   4.622  qed_goal "monofun_fun_fun" Cont.thy 
   4.623 -	"f1 << f2 ==> f1(x) << f2(x)"
   4.624 +        "f1 << f2 ==> f1(x) << f2(x)"
   4.625  (fn prems =>
   4.626 -	[
   4.627 -	(cut_facts_tac prems 1),
   4.628 -	(etac (less_fun RS iffD1 RS spec) 1)
   4.629 -	]);
   4.630 +        [
   4.631 +        (cut_facts_tac prems 1),
   4.632 +        (etac (less_fun RS iffD1 RS spec) 1)
   4.633 +        ]);
   4.634  
   4.635  qed_goal "monofun_fun_arg" Cont.thy 
   4.636 -	"[|monofun(f); x1 << x2|] ==> f(x1) << f(x2)"
   4.637 +        "[|monofun(f); x1 << x2|] ==> f(x1) << f(x2)"
   4.638  (fn prems =>
   4.639 -	[
   4.640 -	(cut_facts_tac prems 1),
   4.641 -	(etac (monofunE RS spec RS spec RS mp) 1),
   4.642 -	(atac 1)
   4.643 -	]);
   4.644 +        [
   4.645 +        (cut_facts_tac prems 1),
   4.646 +        (etac (monofunE RS spec RS spec RS mp) 1),
   4.647 +        (atac 1)
   4.648 +        ]);
   4.649  
   4.650  qed_goal "monofun_fun" Cont.thy 
   4.651  "[|monofun(f1); monofun(f2); f1 << f2; x1 << x2|] ==> f1(x1) << f2(x2)"
   4.652  (fn prems =>
   4.653 -	[
   4.654 -	(cut_facts_tac prems 1),
   4.655 -	(rtac trans_less 1),
   4.656 -	(etac monofun_fun_arg 1),
   4.657 -	(atac 1),
   4.658 -	(etac monofun_fun_fun 1)
   4.659 -	]);
   4.660 +        [
   4.661 +        (cut_facts_tac prems 1),
   4.662 +        (rtac trans_less 1),
   4.663 +        (etac monofun_fun_arg 1),
   4.664 +        (atac 1),
   4.665 +        (etac monofun_fun_fun 1)
   4.666 +        ]);
   4.667  
   4.668  
   4.669  (* ------------------------------------------------------------------------ *)
   4.670 @@ -434,69 +434,69 @@
   4.671  (* ------------------------------------------------------------------------ *)
   4.672  
   4.673  qed_goal "mono2mono_MF1L" Cont.thy 
   4.674 -	"[|monofun(c1)|] ==> monofun(%x. c1 x y)"
   4.675 +        "[|monofun(c1)|] ==> monofun(%x. c1 x y)"
   4.676  (fn prems =>
   4.677 -	[
   4.678 -	(cut_facts_tac prems 1),
   4.679 -	(rtac monofunI 1),
   4.680 -	(strip_tac 1),
   4.681 -	(etac (monofun_fun_arg RS monofun_fun_fun) 1),
   4.682 -	(atac 1)
   4.683 -	]);
   4.684 +        [
   4.685 +        (cut_facts_tac prems 1),
   4.686 +        (rtac monofunI 1),
   4.687 +        (strip_tac 1),
   4.688 +        (etac (monofun_fun_arg RS monofun_fun_fun) 1),
   4.689 +        (atac 1)
   4.690 +        ]);
   4.691  
   4.692  qed_goal "cont2cont_CF1L" Cont.thy 
   4.693 -	"[|cont(c1)|] ==> cont(%x. c1 x y)"
   4.694 +        "[|cont(c1)|] ==> cont(%x. c1 x y)"
   4.695  (fn prems =>
   4.696 -	[
   4.697 -	(cut_facts_tac prems 1),
   4.698 -	(rtac monocontlub2cont 1),
   4.699 -	(etac (cont2mono RS mono2mono_MF1L) 1),
   4.700 -	(rtac contlubI 1),
   4.701 -	(strip_tac 1),
   4.702 -	(rtac ((hd prems) RS cont2contlub RS 
   4.703 -		contlubE RS spec RS mp RS ssubst) 1),
   4.704 -	(atac 1),
   4.705 -	(rtac (thelub_fun RS ssubst) 1),
   4.706 -	(rtac ch2ch_monofun 1),
   4.707 -	(etac cont2mono 1),
   4.708 -	(atac 1),
   4.709 -	(rtac refl 1)
   4.710 -	]);
   4.711 +        [
   4.712 +        (cut_facts_tac prems 1),
   4.713 +        (rtac monocontlub2cont 1),
   4.714 +        (etac (cont2mono RS mono2mono_MF1L) 1),
   4.715 +        (rtac contlubI 1),
   4.716 +        (strip_tac 1),
   4.717 +        (rtac ((hd prems) RS cont2contlub RS 
   4.718 +                contlubE RS spec RS mp RS ssubst) 1),
   4.719 +        (atac 1),
   4.720 +        (rtac (thelub_fun RS ssubst) 1),
   4.721 +        (rtac ch2ch_monofun 1),
   4.722 +        (etac cont2mono 1),
   4.723 +        (atac 1),
   4.724 +        (rtac refl 1)
   4.725 +        ]);
   4.726  
   4.727  (*********  Note "(%x.%y.c1 x y) = c1" ***********)
   4.728  
   4.729  qed_goal "mono2mono_MF1L_rev" Cont.thy
   4.730 -	"!y.monofun(%x.c1 x y) ==> monofun(c1)"
   4.731 +        "!y.monofun(%x.c1 x y) ==> monofun(c1)"
   4.732  (fn prems =>
   4.733 -	[
   4.734 -	(cut_facts_tac prems 1),
   4.735 -	(rtac monofunI 1),
   4.736 -	(strip_tac 1),
   4.737 -	(rtac (less_fun RS iffD2) 1),
   4.738 -	(strip_tac 1),
   4.739 -	(rtac ((hd prems) RS spec RS monofunE RS spec RS spec RS mp) 1),
   4.740 -	(atac 1)
   4.741 -	]);
   4.742 +        [
   4.743 +        (cut_facts_tac prems 1),
   4.744 +        (rtac monofunI 1),
   4.745 +        (strip_tac 1),
   4.746 +        (rtac (less_fun RS iffD2) 1),
   4.747 +        (strip_tac 1),
   4.748 +        (rtac ((hd prems) RS spec RS monofunE RS spec RS spec RS mp) 1),
   4.749 +        (atac 1)
   4.750 +        ]);
   4.751  
   4.752  qed_goal "cont2cont_CF1L_rev" Cont.thy
   4.753 -	"!y.cont(%x.c1 x y) ==> cont(c1)"
   4.754 +        "!y.cont(%x.c1 x y) ==> cont(c1)"
   4.755  (fn prems =>
   4.756 -	[
   4.757 -	(cut_facts_tac prems 1),
   4.758 -	(rtac monocontlub2cont 1),
   4.759 -	(rtac (cont2mono RS allI RS mono2mono_MF1L_rev ) 1),
   4.760 -	(etac spec 1),
   4.761 -	(rtac contlubI 1),
   4.762 -	(strip_tac 1),
   4.763 -	(rtac ext 1),
   4.764 -	(rtac (thelub_fun RS ssubst) 1),
   4.765 -	(rtac (cont2mono RS allI RS mono2mono_MF1L_rev RS ch2ch_monofun) 1),
   4.766 -	(etac spec 1),
   4.767 -	(atac 1),
   4.768 -	(rtac 
   4.769 -	((hd prems) RS spec RS cont2contlub RS contlubE RS spec RS mp) 1),
   4.770 -	(atac 1)
   4.771 -	]);
   4.772 +        [
   4.773 +        (cut_facts_tac prems 1),
   4.774 +        (rtac monocontlub2cont 1),
   4.775 +        (rtac (cont2mono RS allI RS mono2mono_MF1L_rev ) 1),
   4.776 +        (etac spec 1),
   4.777 +        (rtac contlubI 1),
   4.778 +        (strip_tac 1),
   4.779 +        (rtac ext 1),
   4.780 +        (rtac (thelub_fun RS ssubst) 1),
   4.781 +        (rtac (cont2mono RS allI RS mono2mono_MF1L_rev RS ch2ch_monofun) 1),
   4.782 +        (etac spec 1),
   4.783 +        (atac 1),
   4.784 +        (rtac 
   4.785 +        ((hd prems) RS spec RS cont2contlub RS contlubE RS spec RS mp) 1),
   4.786 +        (atac 1)
   4.787 +        ]);
   4.788  
   4.789  
   4.790  (* ------------------------------------------------------------------------ *)
   4.791 @@ -508,74 +508,74 @@
   4.792  "[|is_chain(Y::nat=>'a);!y.cont(%x.(c::'a=>'b=>'c) x y)|] ==>\
   4.793  \ (%y.lub(range(%i.c (Y i) y))) = (lub(range(%i.%y.c (Y i) y)))"
   4.794   (fn prems =>
   4.795 -	[
   4.796 -	(cut_facts_tac prems 1),
   4.797 -	(rtac trans 1),
   4.798 -	(rtac (cont2contlub RS contlubE RS spec RS mp) 2),
   4.799 -	(atac 3),
   4.800 -	(etac cont2cont_CF1L_rev 2),
   4.801 -	(rtac ext 1), 
   4.802 -	(rtac (cont2contlub RS contlubE RS spec RS mp RS sym) 1),
   4.803 -	(etac spec 1),
   4.804 -	(atac 1)
   4.805 -	]);
   4.806 +        [
   4.807 +        (cut_facts_tac prems 1),
   4.808 +        (rtac trans 1),
   4.809 +        (rtac (cont2contlub RS contlubE RS spec RS mp) 2),
   4.810 +        (atac 3),
   4.811 +        (etac cont2cont_CF1L_rev 2),
   4.812 +        (rtac ext 1), 
   4.813 +        (rtac (cont2contlub RS contlubE RS spec RS mp RS sym) 1),
   4.814 +        (etac spec 1),
   4.815 +        (atac 1)
   4.816 +        ]);
   4.817  
   4.818  
   4.819  qed_goal "mono2mono_app" Cont.thy 
   4.820  "[|monofun(ft);!x.monofun(ft(x));monofun(tt)|] ==>\
   4.821 -\	 monofun(%x.(ft(x))(tt(x)))"
   4.822 +\        monofun(%x.(ft(x))(tt(x)))"
   4.823   (fn prems =>
   4.824 -	[
   4.825 -	(cut_facts_tac prems 1),
   4.826 -	(rtac monofunI 1),
   4.827 -	(strip_tac 1),
   4.828 -	(res_inst_tac [("f1.0","ft(x)"),("f2.0","ft(y)")] monofun_fun 1),
   4.829 -	(etac spec 1),
   4.830 -	(etac spec 1),
   4.831 -	(etac (monofunE RS spec RS spec RS mp) 1),
   4.832 -	(atac 1),
   4.833 -	(etac (monofunE RS spec RS spec RS mp) 1),
   4.834 -	(atac 1)
   4.835 -	]);
   4.836 +        [
   4.837 +        (cut_facts_tac prems 1),
   4.838 +        (rtac monofunI 1),
   4.839 +        (strip_tac 1),
   4.840 +        (res_inst_tac [("f1.0","ft(x)"),("f2.0","ft(y)")] monofun_fun 1),
   4.841 +        (etac spec 1),
   4.842 +        (etac spec 1),
   4.843 +        (etac (monofunE RS spec RS spec RS mp) 1),
   4.844 +        (atac 1),
   4.845 +        (etac (monofunE RS spec RS spec RS mp) 1),
   4.846 +        (atac 1)
   4.847 +        ]);
   4.848  
   4.849  
   4.850  qed_goal "cont2contlub_app" Cont.thy 
   4.851  "[|cont(ft);!x.cont(ft(x));cont(tt)|] ==> contlub(%x.(ft(x))(tt(x)))"
   4.852   (fn prems =>
   4.853 -	[
   4.854 -	(cut_facts_tac prems 1),
   4.855 -	(rtac contlubI 1),
   4.856 -	(strip_tac 1),
   4.857 -	(res_inst_tac [("f3","tt")] (contlubE RS spec RS mp RS ssubst) 1),
   4.858 -	(etac cont2contlub 1),
   4.859 -	(atac 1),
   4.860 -	(rtac contlub_CF2 1),
   4.861 -	(REPEAT (atac 1)),
   4.862 -	(etac (cont2mono RS ch2ch_monofun) 1),
   4.863 -	(atac 1)
   4.864 -	]);
   4.865 +        [
   4.866 +        (cut_facts_tac prems 1),
   4.867 +        (rtac contlubI 1),
   4.868 +        (strip_tac 1),
   4.869 +        (res_inst_tac [("f3","tt")] (contlubE RS spec RS mp RS ssubst) 1),
   4.870 +        (etac cont2contlub 1),
   4.871 +        (atac 1),
   4.872 +        (rtac contlub_CF2 1),
   4.873 +        (REPEAT (atac 1)),
   4.874 +        (etac (cont2mono RS ch2ch_monofun) 1),
   4.875 +        (atac 1)
   4.876 +        ]);
   4.877  
   4.878  
   4.879  qed_goal "cont2cont_app" Cont.thy 
   4.880  "[|cont(ft);!x.cont(ft(x));cont(tt)|] ==>\
   4.881 -\	 cont(%x.(ft(x))(tt(x)))"
   4.882 +\        cont(%x.(ft(x))(tt(x)))"
   4.883   (fn prems =>
   4.884 -	[
   4.885 -	(rtac monocontlub2cont 1),
   4.886 -	(rtac mono2mono_app 1),
   4.887 -	(rtac cont2mono 1),
   4.888 -	(resolve_tac prems 1),
   4.889 -	(strip_tac 1),
   4.890 -	(rtac cont2mono 1),
   4.891 -	(cut_facts_tac prems 1),
   4.892 -	(etac spec 1),
   4.893 -	(rtac cont2mono 1),
   4.894 -	(resolve_tac prems 1),
   4.895 -	(rtac cont2contlub_app 1),
   4.896 -	(resolve_tac prems 1),
   4.897 -	(resolve_tac prems 1),
   4.898 -	(resolve_tac prems 1)
   4.899 -	]);
   4.900 +        [
   4.901 +        (rtac monocontlub2cont 1),
   4.902 +        (rtac mono2mono_app 1),
   4.903 +        (rtac cont2mono 1),
   4.904 +        (resolve_tac prems 1),
   4.905 +        (strip_tac 1),
   4.906 +        (rtac cont2mono 1),
   4.907 +        (cut_facts_tac prems 1),
   4.908 +        (etac spec 1),
   4.909 +        (rtac cont2mono 1),
   4.910 +        (resolve_tac prems 1),
   4.911 +        (rtac cont2contlub_app 1),
   4.912 +        (resolve_tac prems 1),
   4.913 +        (resolve_tac prems 1),
   4.914 +        (resolve_tac prems 1)
   4.915 +        ]);
   4.916  
   4.917  
   4.918  val cont2cont_app2 = (allI RSN (2,cont2cont_app));
   4.919 @@ -589,12 +589,12 @@
   4.920  
   4.921  qed_goal "cont_id" Cont.thy "cont(% x.x)"
   4.922   (fn prems =>
   4.923 -	[
   4.924 -	(rtac contI 1),
   4.925 -	(strip_tac 1),
   4.926 -	(etac thelubE 1),
   4.927 -	(rtac refl 1)
   4.928 -	]);
   4.929 +        [
   4.930 +        (rtac contI 1),
   4.931 +        (strip_tac 1),
   4.932 +        (etac thelubE 1),
   4.933 +        (rtac refl 1)
   4.934 +        ]);
   4.935  
   4.936  
   4.937  
   4.938 @@ -604,27 +604,27 @@
   4.939  
   4.940  qed_goalw "cont_const" Cont.thy [cont] "cont(%x.c)"
   4.941   (fn prems =>
   4.942 -	[
   4.943 -	(strip_tac 1),
   4.944 -	(rtac is_lubI 1),
   4.945 -	(rtac conjI 1),
   4.946 -	(rtac ub_rangeI 1),
   4.947 -	(strip_tac 1),
   4.948 -	(rtac refl_less 1),
   4.949 -	(strip_tac 1),
   4.950 -	(dtac ub_rangeE 1),
   4.951 -	(etac spec 1)
   4.952 -	]);
   4.953 +        [
   4.954 +        (strip_tac 1),
   4.955 +        (rtac is_lubI 1),
   4.956 +        (rtac conjI 1),
   4.957 +        (rtac ub_rangeI 1),
   4.958 +        (strip_tac 1),
   4.959 +        (rtac refl_less 1),
   4.960 +        (strip_tac 1),
   4.961 +        (dtac ub_rangeE 1),
   4.962 +        (etac spec 1)
   4.963 +        ]);
   4.964  
   4.965  
   4.966  qed_goal "cont2cont_app3" Cont.thy 
   4.967   "[|cont(f);cont(t) |] ==> cont(%x. f(t(x)))"
   4.968   (fn prems =>
   4.969 -	[
   4.970 -	(cut_facts_tac prems 1),
   4.971 -	(rtac cont2cont_app2 1),
   4.972 -	(rtac cont_const 1),
   4.973 -	(atac 1),
   4.974 -	(atac 1)
   4.975 -	]);
   4.976 +        [
   4.977 +        (cut_facts_tac prems 1),
   4.978 +        (rtac cont2cont_app2 1),
   4.979 +        (rtac cont_const 1),
   4.980 +        (atac 1),
   4.981 +        (atac 1)
   4.982 +        ]);
   4.983  
     5.1 --- a/src/HOLCF/Cprod1.ML	Mon Jan 29 14:16:13 1996 +0100
     5.2 +++ b/src/HOLCF/Cprod1.ML	Tue Jan 30 13:42:57 1996 +0100
     5.3 @@ -1,6 +1,6 @@
     5.4 -(*  Title: 	HOLCF/cprod1.ML
     5.5 +(*  Title:      HOLCF/cprod1.ML
     5.6      ID:         $Id$
     5.7 -    Author: 	Franz Regensburger
     5.8 +    Author:     Franz Regensburger
     5.9      Copyright   1993  Technische Universitaet Muenchen
    5.10  
    5.11  Lemmas for theory cprod1.thy 
    5.12 @@ -11,54 +11,54 @@
    5.13  qed_goalw "less_cprod1b" Cprod1.thy [less_cprod_def]
    5.14   "less_cprod p1 p2 = ( fst(p1) << fst(p2) & snd(p1) << snd(p2))"
    5.15   (fn prems =>
    5.16 -	[
    5.17 -	(rtac refl 1)
    5.18 -	]);
    5.19 +        [
    5.20 +        (rtac refl 1)
    5.21 +        ]);
    5.22  
    5.23  qed_goalw "less_cprod2a" Cprod1.thy [less_cprod_def]
    5.24   "less_cprod (x,y) (UU,UU) ==> x = UU & y = UU"
    5.25   (fn prems =>
    5.26 -	[
    5.27 -	(cut_facts_tac prems 1),
    5.28 -	(etac conjE 1),
    5.29 -	(dtac (fst_conv RS subst) 1),
    5.30 -	(dtac (fst_conv RS subst) 1),
    5.31 -	(dtac (fst_conv RS subst) 1),
    5.32 -	(dtac (snd_conv RS subst) 1),
    5.33 -	(dtac (snd_conv RS subst) 1),
    5.34 -	(dtac (snd_conv RS subst) 1),
    5.35 -	(rtac conjI 1),
    5.36 -	(etac UU_I 1),
    5.37 -	(etac UU_I 1)
    5.38 -	]);
    5.39 +        [
    5.40 +        (cut_facts_tac prems 1),
    5.41 +        (etac conjE 1),
    5.42 +        (dtac (fst_conv RS subst) 1),
    5.43 +        (dtac (fst_conv RS subst) 1),
    5.44 +        (dtac (fst_conv RS subst) 1),
    5.45 +        (dtac (snd_conv RS subst) 1),
    5.46 +        (dtac (snd_conv RS subst) 1),
    5.47 +        (dtac (snd_conv RS subst) 1),
    5.48 +        (rtac conjI 1),
    5.49 +        (etac UU_I 1),
    5.50 +        (etac UU_I 1)
    5.51 +        ]);
    5.52  
    5.53  qed_goal "less_cprod2b" Cprod1.thy 
    5.54   "less_cprod p (UU,UU) ==> p = (UU,UU)"
    5.55   (fn prems =>
    5.56 -	[
    5.57 -	(cut_facts_tac prems 1),
    5.58 -	(res_inst_tac [("p","p")] PairE 1),
    5.59 -	(hyp_subst_tac 1),
    5.60 -	(dtac less_cprod2a 1),
    5.61 -	(Asm_simp_tac 1)
    5.62 -	]);
    5.63 +        [
    5.64 +        (cut_facts_tac prems 1),
    5.65 +        (res_inst_tac [("p","p")] PairE 1),
    5.66 +        (hyp_subst_tac 1),
    5.67 +        (dtac less_cprod2a 1),
    5.68 +        (Asm_simp_tac 1)
    5.69 +        ]);
    5.70  
    5.71  qed_goalw "less_cprod2c" Cprod1.thy [less_cprod_def]
    5.72   "less_cprod (x1,y1) (x2,y2) ==> x1 << x2 & y1 << y2"
    5.73   (fn prems =>
    5.74 -	[
    5.75 -	(cut_facts_tac prems 1),
    5.76 -	(etac conjE 1),
    5.77 -	(dtac (fst_conv RS subst) 1),
    5.78 -	(dtac (fst_conv RS subst) 1),
    5.79 -	(dtac (fst_conv RS subst) 1),
    5.80 -	(dtac (snd_conv RS subst) 1),
    5.81 -	(dtac (snd_conv RS subst) 1),
    5.82 -	(dtac (snd_conv RS subst) 1),
    5.83 -	(rtac conjI 1),
    5.84 -	(atac 1),
    5.85 -	(atac 1)
    5.86 -	]);
    5.87 +        [
    5.88 +        (cut_facts_tac prems 1),
    5.89 +        (etac conjE 1),
    5.90 +        (dtac (fst_conv RS subst) 1),
    5.91 +        (dtac (fst_conv RS subst) 1),
    5.92 +        (dtac (fst_conv RS subst) 1),
    5.93 +        (dtac (snd_conv RS subst) 1),
    5.94 +        (dtac (snd_conv RS subst) 1),
    5.95 +        (dtac (snd_conv RS subst) 1),
    5.96 +        (rtac conjI 1),
    5.97 +        (atac 1),
    5.98 +        (atac 1)
    5.99 +        ]);
   5.100  
   5.101  (* ------------------------------------------------------------------------ *)
   5.102  (* less_cprod is a partial order on 'a * 'b                                 *)
   5.103 @@ -70,44 +70,44 @@
   5.104  qed_goal "antisym_less_cprod" Cprod1.thy 
   5.105   "[|less_cprod p1 p2;less_cprod p2 p1|] ==> p1=p2"
   5.106   (fn prems =>
   5.107 -	[
   5.108 -	(cut_facts_tac prems 1),
   5.109 -	(res_inst_tac [("p","p1")] PairE 1),
   5.110 -	(hyp_subst_tac 1),
   5.111 -	(res_inst_tac [("p","p2")] PairE 1),
   5.112 -	(hyp_subst_tac 1),
   5.113 -	(dtac less_cprod2c 1),
   5.114 -	(dtac less_cprod2c 1),
   5.115 -	(etac conjE 1),
   5.116 -	(etac conjE 1),
   5.117 -	(rtac (Pair_eq RS ssubst) 1),
   5.118 -	(fast_tac (HOL_cs addSIs [antisym_less]) 1)
   5.119 -	]);
   5.120 +        [
   5.121 +        (cut_facts_tac prems 1),
   5.122 +        (res_inst_tac [("p","p1")] PairE 1),
   5.123 +        (hyp_subst_tac 1),
   5.124 +        (res_inst_tac [("p","p2")] PairE 1),
   5.125 +        (hyp_subst_tac 1),
   5.126 +        (dtac less_cprod2c 1),
   5.127 +        (dtac less_cprod2c 1),
   5.128 +        (etac conjE 1),
   5.129 +        (etac conjE 1),
   5.130 +        (rtac (Pair_eq RS ssubst) 1),
   5.131 +        (fast_tac (HOL_cs addSIs [antisym_less]) 1)
   5.132 +        ]);
   5.133  
   5.134  
   5.135  qed_goal "trans_less_cprod" Cprod1.thy 
   5.136   "[|less_cprod p1 p2;less_cprod p2 p3|] ==> less_cprod p1 p3"
   5.137   (fn prems =>
   5.138 -	[
   5.139 -	(cut_facts_tac prems 1),
   5.140 -	(res_inst_tac [("p","p1")] PairE 1),
   5.141 -	(hyp_subst_tac 1),
   5.142 -	(res_inst_tac [("p","p3")] PairE 1),
   5.143 -	(hyp_subst_tac 1),
   5.144 -	(res_inst_tac [("p","p2")] PairE 1),
   5.145 -	(hyp_subst_tac 1),
   5.146 -	(dtac less_cprod2c 1),
   5.147 -	(dtac less_cprod2c 1),
   5.148 -	(rtac (less_cprod1b RS ssubst) 1),
   5.149 -	(Simp_tac 1),
   5.150 -	(etac conjE 1),
   5.151 -	(etac conjE 1),
   5.152 -	(rtac conjI 1),
   5.153 -	(etac trans_less 1),
   5.154 -	(atac 1),
   5.155 -	(etac trans_less 1),
   5.156 -	(atac 1)
   5.157 -	]);
   5.158 +        [
   5.159 +        (cut_facts_tac prems 1),
   5.160 +        (res_inst_tac [("p","p1")] PairE 1),
   5.161 +        (hyp_subst_tac 1),
   5.162 +        (res_inst_tac [("p","p3")] PairE 1),
   5.163 +        (hyp_subst_tac 1),
   5.164 +        (res_inst_tac [("p","p2")] PairE 1),
   5.165 +        (hyp_subst_tac 1),
   5.166 +        (dtac less_cprod2c 1),
   5.167 +        (dtac less_cprod2c 1),
   5.168 +        (rtac (less_cprod1b RS ssubst) 1),
   5.169 +        (Simp_tac 1),
   5.170 +        (etac conjE 1),
   5.171 +        (etac conjE 1),
   5.172 +        (rtac conjI 1),
   5.173 +        (etac trans_less 1),
   5.174 +        (atac 1),
   5.175 +        (etac trans_less 1),
   5.176 +        (atac 1)
   5.177 +        ]);
   5.178  
   5.179  
   5.180  
     6.1 --- a/src/HOLCF/Cprod2.ML	Mon Jan 29 14:16:13 1996 +0100
     6.2 +++ b/src/HOLCF/Cprod2.ML	Tue Jan 30 13:42:57 1996 +0100
     6.3 @@ -1,6 +1,6 @@
     6.4 -(*  Title: 	HOLCF/cprod2.ML
     6.5 +(*  Title:      HOLCF/cprod2.ML
     6.6      ID:         $Id$
     6.7 -    Author: 	Franz Regensburger
     6.8 +    Author:     Franz Regensburger
     6.9      Copyright   1993 Technische Universitaet Muenchen
    6.10  
    6.11  Lemmas for cprod2.thy 
    6.12 @@ -9,51 +9,51 @@
    6.13  open Cprod2;
    6.14  
    6.15  qed_goal "less_cprod3a" Cprod2.thy 
    6.16 -	"p1=(UU,UU) ==> p1 << p2"
    6.17 +        "p1=(UU,UU) ==> p1 << p2"
    6.18   (fn prems =>
    6.19 -	[
    6.20 -	(cut_facts_tac prems 1),
    6.21 -	(rtac (inst_cprod_po RS ssubst) 1),
    6.22 -	(rtac (less_cprod1b RS ssubst) 1),
    6.23 -	(hyp_subst_tac 1),
    6.24 -	(Asm_simp_tac  1)
    6.25 -	]);
    6.26 +        [
    6.27 +        (cut_facts_tac prems 1),
    6.28 +        (rtac (inst_cprod_po RS ssubst) 1),
    6.29 +        (rtac (less_cprod1b RS ssubst) 1),
    6.30 +        (hyp_subst_tac 1),
    6.31 +        (Asm_simp_tac  1)
    6.32 +        ]);
    6.33  
    6.34  qed_goal "less_cprod3b" Cprod2.thy
    6.35   "(p1 << p2) = (fst(p1)<<fst(p2) & snd(p1)<<snd(p2))"
    6.36   (fn prems =>
    6.37 -	[
    6.38 -	(rtac (inst_cprod_po RS ssubst) 1),
    6.39 -	(rtac less_cprod1b 1)
    6.40 -	]);
    6.41 +        [
    6.42 +        (rtac (inst_cprod_po RS ssubst) 1),
    6.43 +        (rtac less_cprod1b 1)
    6.44 +        ]);
    6.45  
    6.46  qed_goal "less_cprod4a" Cprod2.thy 
    6.47 -	"(x1,x2) << (UU,UU) ==> x1=UU & x2=UU"
    6.48 +        "(x1,x2) << (UU,UU) ==> x1=UU & x2=UU"
    6.49   (fn prems =>
    6.50 -	[
    6.51 -	(cut_facts_tac prems 1),
    6.52 -	(rtac less_cprod2a 1),
    6.53 -	(etac (inst_cprod_po RS subst) 1)
    6.54 -	]);
    6.55 +        [
    6.56 +        (cut_facts_tac prems 1),
    6.57 +        (rtac less_cprod2a 1),
    6.58 +        (etac (inst_cprod_po RS subst) 1)
    6.59 +        ]);
    6.60  
    6.61  qed_goal "less_cprod4b" Cprod2.thy 
    6.62 -	"p << (UU,UU) ==> p = (UU,UU)"
    6.63 +        "p << (UU,UU) ==> p = (UU,UU)"
    6.64  (fn prems =>
    6.65 -	[
    6.66 -	(cut_facts_tac prems 1),
    6.67 -	(rtac less_cprod2b 1),
    6.68 -	(etac (inst_cprod_po RS subst) 1)
    6.69 -	]);
    6.70 +        [
    6.71 +        (cut_facts_tac prems 1),
    6.72 +        (rtac less_cprod2b 1),
    6.73 +        (etac (inst_cprod_po RS subst) 1)
    6.74 +        ]);
    6.75  
    6.76  qed_goal "less_cprod4c" Cprod2.thy
    6.77   " (xa,ya) << (x,y) ==> xa<<x & ya << y"
    6.78  (fn prems =>
    6.79 -	[
    6.80 -	(cut_facts_tac prems 1),
    6.81 -	(rtac less_cprod2c 1),
    6.82 -	(etac (inst_cprod_po RS subst) 1),
    6.83 -	(REPEAT (atac 1))
    6.84 -	]);
    6.85 +        [
    6.86 +        (cut_facts_tac prems 1),
    6.87 +        (rtac less_cprod2c 1),
    6.88 +        (etac (inst_cprod_po RS subst) 1),
    6.89 +        (REPEAT (atac 1))
    6.90 +        ]);
    6.91  
    6.92  (* ------------------------------------------------------------------------ *)
    6.93  (* type cprod is pointed                                                    *)
    6.94 @@ -61,10 +61,10 @@
    6.95  
    6.96  qed_goal "minimal_cprod" Cprod2.thy  "(UU,UU)<<p"
    6.97  (fn prems =>
    6.98 -	[
    6.99 -	(rtac less_cprod3a 1),
   6.100 -	(rtac refl 1)
   6.101 -	]);
   6.102 +        [
   6.103 +        (rtac less_cprod3a 1),
   6.104 +        (rtac refl 1)
   6.105 +        ]);
   6.106  
   6.107  (* ------------------------------------------------------------------------ *)
   6.108  (* Pair <_,_>  is monotone in both arguments                                *)
   6.109 @@ -72,34 +72,34 @@
   6.110  
   6.111  qed_goalw "monofun_pair1" Cprod2.thy [monofun] "monofun(Pair)"
   6.112   (fn prems =>
   6.113 -	[
   6.114 -	(strip_tac 1),
   6.115 -	(rtac (less_fun RS iffD2) 1),
   6.116 -	(strip_tac 1),
   6.117 -	(rtac (less_cprod3b RS iffD2) 1),
   6.118 -	(Simp_tac 1)
   6.119 -	]);
   6.120 +        [
   6.121 +        (strip_tac 1),
   6.122 +        (rtac (less_fun RS iffD2) 1),
   6.123 +        (strip_tac 1),
   6.124 +        (rtac (less_cprod3b RS iffD2) 1),
   6.125 +        (Simp_tac 1)
   6.126 +        ]);
   6.127  
   6.128  qed_goalw "monofun_pair2" Cprod2.thy [monofun] "monofun(Pair(x))"
   6.129   (fn prems =>
   6.130 -	[
   6.131 -	(strip_tac 1),
   6.132 -	(rtac (less_cprod3b RS iffD2) 1),
   6.133 -	(Simp_tac 1)
   6.134 -	]);
   6.135 +        [
   6.136 +        (strip_tac 1),
   6.137 +        (rtac (less_cprod3b RS iffD2) 1),
   6.138 +        (Simp_tac 1)
   6.139 +        ]);
   6.140  
   6.141  qed_goal "monofun_pair" Cprod2.thy 
   6.142   "[|x1<<x2; y1<<y2|] ==> (x1,y1) << (x2,y2)"
   6.143   (fn prems =>
   6.144 -	[
   6.145 -	(cut_facts_tac prems 1),
   6.146 -	(rtac trans_less 1),
   6.147 -	(rtac (monofun_pair1 RS monofunE RS spec RS spec RS mp RS 
   6.148 -	(less_fun RS iffD1 RS spec)) 1),
   6.149 -	(rtac (monofun_pair2 RS monofunE RS spec RS spec RS mp) 2),
   6.150 -	(atac 1),
   6.151 -	(atac 1)
   6.152 -	]);
   6.153 +        [
   6.154 +        (cut_facts_tac prems 1),
   6.155 +        (rtac trans_less 1),
   6.156 +        (rtac (monofun_pair1 RS monofunE RS spec RS spec RS mp RS 
   6.157 +        (less_fun RS iffD1 RS spec)) 1),
   6.158 +        (rtac (monofun_pair2 RS monofunE RS spec RS spec RS mp) 2),
   6.159 +        (atac 1),
   6.160 +        (atac 1)
   6.161 +        ]);
   6.162  
   6.163  (* ------------------------------------------------------------------------ *)
   6.164  (* fst and snd are monotone                                                 *)
   6.165 @@ -107,27 +107,27 @@
   6.166  
   6.167  qed_goalw "monofun_fst" Cprod2.thy [monofun] "monofun(fst)"
   6.168   (fn prems =>
   6.169 -	[
   6.170 -	(strip_tac 1),
   6.171 -	(res_inst_tac [("p","x")] PairE 1),
   6.172 -	(hyp_subst_tac 1),
   6.173 -	(res_inst_tac [("p","y")] PairE 1),
   6.174 -	(hyp_subst_tac 1),
   6.175 -	(Asm_simp_tac  1),
   6.176 -	(etac (less_cprod4c RS conjunct1) 1)
   6.177 -	]);
   6.178 +        [
   6.179 +        (strip_tac 1),
   6.180 +        (res_inst_tac [("p","x")] PairE 1),
   6.181 +        (hyp_subst_tac 1),
   6.182 +        (res_inst_tac [("p","y")] PairE 1),
   6.183 +        (hyp_subst_tac 1),
   6.184 +        (Asm_simp_tac  1),
   6.185 +        (etac (less_cprod4c RS conjunct1) 1)
   6.186 +        ]);
   6.187  
   6.188  qed_goalw "monofun_snd" Cprod2.thy [monofun] "monofun(snd)"
   6.189   (fn prems =>
   6.190 -	[
   6.191 -	(strip_tac 1),
   6.192 -	(res_inst_tac [("p","x")] PairE 1),
   6.193 -	(hyp_subst_tac 1),
   6.194 -	(res_inst_tac [("p","y")] PairE 1),
   6.195 -	(hyp_subst_tac 1),
   6.196 -	(Asm_simp_tac  1),
   6.197 -	(etac (less_cprod4c RS conjunct2) 1)
   6.198 -	]);
   6.199 +        [
   6.200 +        (strip_tac 1),
   6.201 +        (res_inst_tac [("p","x")] PairE 1),
   6.202 +        (hyp_subst_tac 1),
   6.203 +        (res_inst_tac [("p","y")] PairE 1),
   6.204 +        (hyp_subst_tac 1),
   6.205 +        (Asm_simp_tac  1),
   6.206 +        (etac (less_cprod4c RS conjunct2) 1)
   6.207 +        ]);
   6.208  
   6.209  (* ------------------------------------------------------------------------ *)
   6.210  (* the type 'a * 'b is a cpo                                                *)
   6.211 @@ -137,28 +137,28 @@
   6.212  " is_chain(S) ==> range(S) <<| \
   6.213  \   (lub(range(%i.fst(S i))),lub(range(%i.snd(S i)))) "
   6.214   (fn prems =>
   6.215 -	[
   6.216 -	(cut_facts_tac prems 1),
   6.217 -	(rtac is_lubI 1),
   6.218 -	(rtac conjI 1),
   6.219 -	(rtac ub_rangeI 1),
   6.220 -	(rtac allI 1),
   6.221 -	(res_inst_tac [("t","S(i)")] (surjective_pairing RS ssubst) 1),
   6.222 -	(rtac monofun_pair 1),
   6.223 -	(rtac is_ub_thelub 1),
   6.224 -	(etac (monofun_fst RS ch2ch_monofun) 1),
   6.225 -	(rtac is_ub_thelub 1),
   6.226 -	(etac (monofun_snd RS ch2ch_monofun) 1),
   6.227 -	(strip_tac 1),
   6.228 -	(res_inst_tac [("t","u")] (surjective_pairing RS ssubst) 1),
   6.229 -	(rtac monofun_pair 1),
   6.230 -	(rtac is_lub_thelub 1),
   6.231 -	(etac (monofun_fst RS ch2ch_monofun) 1),
   6.232 -	(etac (monofun_fst RS ub2ub_monofun) 1),
   6.233 -	(rtac is_lub_thelub 1),
   6.234 -	(etac (monofun_snd RS ch2ch_monofun) 1),
   6.235 -	(etac (monofun_snd RS ub2ub_monofun) 1)
   6.236 -	]);
   6.237 +        [
   6.238 +        (cut_facts_tac prems 1),
   6.239 +        (rtac is_lubI 1),
   6.240 +        (rtac conjI 1),
   6.241 +        (rtac ub_rangeI 1),
   6.242 +        (rtac allI 1),
   6.243 +        (res_inst_tac [("t","S(i)")] (surjective_pairing RS ssubst) 1),
   6.244 +        (rtac monofun_pair 1),
   6.245 +        (rtac is_ub_thelub 1),
   6.246 +        (etac (monofun_fst RS ch2ch_monofun) 1),
   6.247 +        (rtac is_ub_thelub 1),
   6.248 +        (etac (monofun_snd RS ch2ch_monofun) 1),
   6.249 +        (strip_tac 1),
   6.250 +        (res_inst_tac [("t","u")] (surjective_pairing RS ssubst) 1),
   6.251 +        (rtac monofun_pair 1),
   6.252 +        (rtac is_lub_thelub 1),
   6.253 +        (etac (monofun_fst RS ch2ch_monofun) 1),
   6.254 +        (etac (monofun_fst RS ub2ub_monofun) 1),
   6.255 +        (rtac is_lub_thelub 1),
   6.256 +        (etac (monofun_snd RS ch2ch_monofun) 1),
   6.257 +        (etac (monofun_snd RS ub2ub_monofun) 1)
   6.258 +        ]);
   6.259  
   6.260  val thelub_cprod = (lub_cprod RS thelubI);
   6.261  (*
   6.262 @@ -169,12 +169,12 @@
   6.263  *)
   6.264  
   6.265  qed_goal "cpo_cprod" Cprod2.thy 
   6.266 -	"is_chain(S::nat=>'a*'b)==>? x.range(S)<<| x"
   6.267 +        "is_chain(S::nat=>'a*'b)==>? x.range(S)<<| x"
   6.268  (fn prems =>
   6.269 -	[
   6.270 -	(cut_facts_tac prems 1),
   6.271 -	(rtac exI 1),
   6.272 -	(etac lub_cprod 1)
   6.273 -	]);
   6.274 +        [
   6.275 +        (cut_facts_tac prems 1),
   6.276 +        (rtac exI 1),
   6.277 +        (etac lub_cprod 1)
   6.278 +        ]);
   6.279  
   6.280  
     7.1 --- a/src/HOLCF/Cprod3.ML	Mon Jan 29 14:16:13 1996 +0100
     7.2 +++ b/src/HOLCF/Cprod3.ML	Tue Jan 30 13:42:57 1996 +0100
     7.3 @@ -1,6 +1,6 @@
     7.4 -(*  Title: 	HOLCF/cprod3.ML
     7.5 +(*  Title:      HOLCF/cprod3.ML
     7.6      ID:         $Id$
     7.7 -    Author: 	Franz Regensburger
     7.8 +    Author:     Franz Regensburger
     7.9      Copyright   1993 Technische Universitaet Muenchen
    7.10  
    7.11  Lemmas for Cprod3.thy 
    7.12 @@ -17,120 +17,120 @@
    7.13  \ (lub(range(Y)),(x::'b)) =\
    7.14  \ (lub(range(%i. fst(Y i,x))),lub(range(%i. snd(Y i,x))))"
    7.15   (fn prems =>
    7.16 -	[
    7.17 -	(cut_facts_tac prems 1),
    7.18 -	(res_inst_tac [("f1","Pair")] (arg_cong RS cong) 1),
    7.19 -	(rtac lub_equal 1),
    7.20 -	(atac 1),
    7.21 -	(rtac (monofun_fst RS ch2ch_monofun) 1),
    7.22 -	(rtac ch2ch_fun 1),
    7.23 -	(rtac (monofun_pair1 RS ch2ch_monofun) 1),
    7.24 -	(atac 1),
    7.25 -	(rtac allI 1),
    7.26 -	(Simp_tac 1),
    7.27 -	(rtac sym 1),
    7.28 -	(Simp_tac 1),
    7.29 -	(rtac (lub_const RS thelubI) 1)
    7.30 -	]);
    7.31 +        [
    7.32 +        (cut_facts_tac prems 1),
    7.33 +        (res_inst_tac [("f1","Pair")] (arg_cong RS cong) 1),
    7.34 +        (rtac lub_equal 1),
    7.35 +        (atac 1),
    7.36 +        (rtac (monofun_fst RS ch2ch_monofun) 1),
    7.37 +        (rtac ch2ch_fun 1),
    7.38 +        (rtac (monofun_pair1 RS ch2ch_monofun) 1),
    7.39 +        (atac 1),
    7.40 +        (rtac allI 1),
    7.41 +        (Simp_tac 1),
    7.42 +        (rtac sym 1),
    7.43 +        (Simp_tac 1),
    7.44 +        (rtac (lub_const RS thelubI) 1)
    7.45 +        ]);
    7.46  
    7.47  qed_goal "contlub_pair1" Cprod3.thy "contlub(Pair)"
    7.48   (fn prems =>
    7.49 -	[
    7.50 -	(rtac contlubI 1),
    7.51 -	(strip_tac 1),
    7.52 -	(rtac (expand_fun_eq RS iffD2) 1),
    7.53 -	(strip_tac 1),
    7.54 -	(rtac (lub_fun RS thelubI RS ssubst) 1),
    7.55 -	(etac (monofun_pair1 RS ch2ch_monofun) 1),
    7.56 -	(rtac trans 1),
    7.57 -	(rtac (thelub_cprod RS sym) 2),
    7.58 -	(rtac ch2ch_fun 2),
    7.59 -	(etac (monofun_pair1 RS ch2ch_monofun) 2),
    7.60 -	(etac Cprod3_lemma1 1)
    7.61 -	]);
    7.62 +        [
    7.63 +        (rtac contlubI 1),
    7.64 +        (strip_tac 1),
    7.65 +        (rtac (expand_fun_eq RS iffD2) 1),
    7.66 +        (strip_tac 1),
    7.67 +        (rtac (lub_fun RS thelubI RS ssubst) 1),
    7.68 +        (etac (monofun_pair1 RS ch2ch_monofun) 1),
    7.69 +        (rtac trans 1),
    7.70 +        (rtac (thelub_cprod RS sym) 2),
    7.71 +        (rtac ch2ch_fun 2),
    7.72 +        (etac (monofun_pair1 RS ch2ch_monofun) 2),
    7.73 +        (etac Cprod3_lemma1 1)
    7.74 +        ]);
    7.75  
    7.76  qed_goal "Cprod3_lemma2" Cprod3.thy 
    7.77  "is_chain(Y::(nat=>'a)) ==>\
    7.78  \ ((x::'b),lub(range Y)) =\
    7.79  \ (lub(range(%i. fst(x,Y i))),lub(range(%i. snd(x, Y i))))"
    7.80   (fn prems =>
    7.81 -	[
    7.82 -	(cut_facts_tac prems 1),
    7.83 -	(res_inst_tac [("f1","Pair")] (arg_cong RS cong) 1),
    7.84 -	(rtac sym 1),
    7.85 -	(Simp_tac 1),
    7.86 -	(rtac (lub_const RS thelubI) 1),
    7.87 -	(rtac lub_equal 1),
    7.88 -	(atac 1),
    7.89 -	(rtac (monofun_snd RS ch2ch_monofun) 1),
    7.90 -	(rtac (monofun_pair2 RS ch2ch_monofun) 1),
    7.91 -	(atac 1),
    7.92 -	(rtac allI 1),
    7.93 -	(Simp_tac 1)
    7.94 -	]);
    7.95 +        [
    7.96 +        (cut_facts_tac prems 1),
    7.97 +        (res_inst_tac [("f1","Pair")] (arg_cong RS cong) 1),
    7.98 +        (rtac sym 1),
    7.99 +        (Simp_tac 1),
   7.100 +        (rtac (lub_const RS thelubI) 1),
   7.101 +        (rtac lub_equal 1),
   7.102 +        (atac 1),
   7.103 +        (rtac (monofun_snd RS ch2ch_monofun) 1),
   7.104 +        (rtac (monofun_pair2 RS ch2ch_monofun) 1),
   7.105 +        (atac 1),
   7.106 +        (rtac allI 1),
   7.107 +        (Simp_tac 1)
   7.108 +        ]);
   7.109  
   7.110  qed_goal "contlub_pair2" Cprod3.thy "contlub(Pair(x))"
   7.111   (fn prems =>
   7.112 -	[
   7.113 -	(rtac contlubI 1),
   7.114 -	(strip_tac 1),
   7.115 -	(rtac trans 1),
   7.116 -	(rtac (thelub_cprod RS sym) 2),
   7.117 -	(etac (monofun_pair2 RS ch2ch_monofun) 2),
   7.118 -	(etac Cprod3_lemma2 1)
   7.119 -	]);
   7.120 +        [
   7.121 +        (rtac contlubI 1),
   7.122 +        (strip_tac 1),
   7.123 +        (rtac trans 1),
   7.124 +        (rtac (thelub_cprod RS sym) 2),
   7.125 +        (etac (monofun_pair2 RS ch2ch_monofun) 2),
   7.126 +        (etac Cprod3_lemma2 1)
   7.127 +        ]);
   7.128  
   7.129  qed_goal "cont_pair1" Cprod3.thy "cont(Pair)"
   7.130  (fn prems =>
   7.131 -	[
   7.132 -	(rtac monocontlub2cont 1),
   7.133 -	(rtac monofun_pair1 1),
   7.134 -	(rtac contlub_pair1 1)
   7.135 -	]);
   7.136 +        [
   7.137 +        (rtac monocontlub2cont 1),
   7.138 +        (rtac monofun_pair1 1),
   7.139 +        (rtac contlub_pair1 1)
   7.140 +        ]);
   7.141  
   7.142  qed_goal "cont_pair2" Cprod3.thy "cont(Pair(x))"
   7.143  (fn prems =>
   7.144 -	[
   7.145 -	(rtac monocontlub2cont 1),
   7.146 -	(rtac monofun_pair2 1),
   7.147 -	(rtac contlub_pair2 1)
   7.148 -	]);
   7.149 +        [
   7.150 +        (rtac monocontlub2cont 1),
   7.151 +        (rtac monofun_pair2 1),
   7.152 +        (rtac contlub_pair2 1)
   7.153 +        ]);
   7.154  
   7.155  qed_goal "contlub_fst" Cprod3.thy "contlub(fst)"
   7.156   (fn prems =>
   7.157 -	[
   7.158 -	(rtac contlubI 1),
   7.159 -	(strip_tac 1),
   7.160 -	(rtac (lub_cprod RS thelubI RS ssubst) 1),
   7.161 -	(atac 1),
   7.162 -	(Simp_tac 1)
   7.163 -	]);
   7.164 +        [
   7.165 +        (rtac contlubI 1),
   7.166 +        (strip_tac 1),
   7.167 +        (rtac (lub_cprod RS thelubI RS ssubst) 1),
   7.168 +        (atac 1),
   7.169 +        (Simp_tac 1)
   7.170 +        ]);
   7.171  
   7.172  qed_goal "contlub_snd" Cprod3.thy "contlub(snd)"
   7.173   (fn prems =>
   7.174 -	[
   7.175 -	(rtac contlubI 1),
   7.176 -	(strip_tac 1),
   7.177 -	(rtac (lub_cprod RS thelubI RS ssubst) 1),
   7.178 -	(atac 1),
   7.179 -	(Simp_tac 1)
   7.180 -	]);
   7.181 +        [
   7.182 +        (rtac contlubI 1),
   7.183 +        (strip_tac 1),
   7.184 +        (rtac (lub_cprod RS thelubI RS ssubst) 1),
   7.185 +        (atac 1),
   7.186 +        (Simp_tac 1)
   7.187 +        ]);
   7.188  
   7.189  qed_goal "cont_fst" Cprod3.thy "cont(fst)"
   7.190  (fn prems =>
   7.191 -	[
   7.192 -	(rtac monocontlub2cont 1),
   7.193 -	(rtac monofun_fst 1),
   7.194 -	(rtac contlub_fst 1)
   7.195 -	]);
   7.196 +        [
   7.197 +        (rtac monocontlub2cont 1),
   7.198 +        (rtac monofun_fst 1),
   7.199 +        (rtac contlub_fst 1)
   7.200 +        ]);
   7.201  
   7.202  qed_goal "cont_snd" Cprod3.thy "cont(snd)"
   7.203  (fn prems =>
   7.204 -	[
   7.205 -	(rtac monocontlub2cont 1),
   7.206 -	(rtac monofun_snd 1),
   7.207 -	(rtac contlub_snd 1)
   7.208 -	]);
   7.209 +        [
   7.210 +        (rtac monocontlub2cont 1),
   7.211 +        (rtac monofun_snd 1),
   7.212 +        (rtac contlub_snd 1)
   7.213 +        ]);
   7.214  
   7.215  (* 
   7.216   -------------------------------------------------------------------------- 
   7.217 @@ -144,144 +144,144 @@
   7.218  (* ------------------------------------------------------------------------ *)
   7.219  
   7.220  qed_goalw "beta_cfun_cprod" Cprod3.thy [cpair_def]
   7.221 -	"(LAM x y.(x,y))`a`b = (a,b)"
   7.222 +        "(LAM x y.(x,y))`a`b = (a,b)"
   7.223   (fn prems =>
   7.224 -	[
   7.225 -	(rtac (beta_cfun RS ssubst) 1),
   7.226 -	(cont_tac 1),
   7.227 -	(rtac cont_pair2 1),
   7.228 -	(rtac cont2cont_CF1L 1),
   7.229 -	(rtac cont_pair1 1),
   7.230 -	(rtac (beta_cfun RS ssubst) 1),
   7.231 -	(rtac cont_pair2 1),
   7.232 -	(rtac refl 1)
   7.233 -	]);
   7.234 +        [
   7.235 +        (rtac (beta_cfun RS ssubst) 1),
   7.236 +        (cont_tac 1),
   7.237 +        (rtac cont_pair2 1),
   7.238 +        (rtac cont2cont_CF1L 1),
   7.239 +        (rtac cont_pair1 1),
   7.240 +        (rtac (beta_cfun RS ssubst) 1),
   7.241 +        (rtac cont_pair2 1),
   7.242 +        (rtac refl 1)
   7.243 +        ]);
   7.244  
   7.245  qed_goalw "inject_cpair" Cprod3.thy [cpair_def]
   7.246 -	" <a,b>=<aa,ba>  ==> a=aa & b=ba"
   7.247 +        " <a,b>=<aa,ba>  ==> a=aa & b=ba"
   7.248   (fn prems =>
   7.249 -	[
   7.250 -	(cut_facts_tac prems 1),
   7.251 -	(dtac (beta_cfun_cprod RS subst) 1),
   7.252 -	(dtac (beta_cfun_cprod RS subst) 1),
   7.253 -	(etac Pair_inject 1),
   7.254 -	(fast_tac HOL_cs 1)
   7.255 -	]);
   7.256 +        [
   7.257 +        (cut_facts_tac prems 1),
   7.258 +        (dtac (beta_cfun_cprod RS subst) 1),
   7.259 +        (dtac (beta_cfun_cprod RS subst) 1),
   7.260 +        (etac Pair_inject 1),
   7.261 +        (fast_tac HOL_cs 1)
   7.262 +        ]);
   7.263  
   7.264  qed_goalw "inst_cprod_pcpo2" Cprod3.thy [cpair_def] "UU = <UU,UU>"
   7.265   (fn prems =>
   7.266 -	[
   7.267 -	(rtac sym 1),
   7.268 -	(rtac trans 1),
   7.269 -	(rtac beta_cfun_cprod 1),
   7.270 -	(rtac sym 1),
   7.271 -	(rtac inst_cprod_pcpo 1)
   7.272 -	]);
   7.273 +        [
   7.274 +        (rtac sym 1),
   7.275 +        (rtac trans 1),
   7.276 +        (rtac beta_cfun_cprod 1),
   7.277 +        (rtac sym 1),
   7.278 +        (rtac inst_cprod_pcpo 1)
   7.279 +        ]);
   7.280  
   7.281  qed_goal "defined_cpair_rev" Cprod3.thy
   7.282   "<a,b> = UU ==> a = UU & b = UU"
   7.283   (fn prems =>
   7.284 -	[
   7.285 -	(cut_facts_tac prems 1),
   7.286 -	(dtac (inst_cprod_pcpo2 RS subst) 1),
   7.287 -	(etac inject_cpair 1)
   7.288 -	]);
   7.289 +        [
   7.290 +        (cut_facts_tac prems 1),
   7.291 +        (dtac (inst_cprod_pcpo2 RS subst) 1),
   7.292 +        (etac inject_cpair 1)
   7.293 +        ]);
   7.294  
   7.295  qed_goalw "Exh_Cprod2" Cprod3.thy [cpair_def]
   7.296 -	"? a b. z=<a,b>"
   7.297 +        "? a b. z=<a,b>"
   7.298   (fn prems =>
   7.299 -	[
   7.300 -	(rtac PairE 1),
   7.301 -	(rtac exI 1),
   7.302 -	(rtac exI 1),
   7.303 -	(etac (beta_cfun_cprod RS ssubst) 1)
   7.304 -	]);
   7.305 +        [
   7.306 +        (rtac PairE 1),
   7.307 +        (rtac exI 1),
   7.308 +        (rtac exI 1),
   7.309 +        (etac (beta_cfun_cprod RS ssubst) 1)
   7.310 +        ]);
   7.311  
   7.312  qed_goalw "cprodE" Cprod3.thy [cpair_def]
   7.313  "[|!!x y. [|p=<x,y> |] ==> Q|] ==> Q"
   7.314   (fn prems =>
   7.315 -	[
   7.316 -	(rtac PairE 1),
   7.317 -	(resolve_tac prems 1),
   7.318 -	(etac (beta_cfun_cprod RS ssubst) 1)
   7.319 -	]);
   7.320 +        [
   7.321 +        (rtac PairE 1),
   7.322 +        (resolve_tac prems 1),
   7.323 +        (etac (beta_cfun_cprod RS ssubst) 1)
   7.324 +        ]);
   7.325  
   7.326  qed_goalw "cfst2" Cprod3.thy [cfst_def,cpair_def] 
   7.327 -	"cfst`<x,y>=x"
   7.328 +        "cfst`<x,y>=x"
   7.329   (fn prems =>
   7.330 -	[
   7.331 -	(cut_facts_tac prems 1),
   7.332 -	(rtac (beta_cfun_cprod RS ssubst) 1),
   7.333 -	(rtac (beta_cfun RS ssubst) 1),
   7.334 -	(rtac cont_fst 1),
   7.335 -	(Simp_tac  1)
   7.336 -	]);
   7.337 +        [
   7.338 +        (cut_facts_tac prems 1),
   7.339 +        (rtac (beta_cfun_cprod RS ssubst) 1),
   7.340 +        (rtac (beta_cfun RS ssubst) 1),
   7.341 +        (rtac cont_fst 1),
   7.342 +        (Simp_tac  1)
   7.343 +        ]);
   7.344  
   7.345  qed_goalw "csnd2" Cprod3.thy [csnd_def,cpair_def] 
   7.346 -	"csnd`<x,y>=y"
   7.347 +        "csnd`<x,y>=y"
   7.348   (fn prems =>
   7.349 -	[
   7.350 -	(cut_facts_tac prems 1),
   7.351 -	(rtac (beta_cfun_cprod RS ssubst) 1),
   7.352 -	(rtac (beta_cfun RS ssubst) 1),
   7.353 -	(rtac cont_snd 1),
   7.354 -	(Simp_tac  1)
   7.355 -	]);
   7.356 +        [
   7.357 +        (cut_facts_tac prems 1),
   7.358 +        (rtac (beta_cfun_cprod RS ssubst) 1),
   7.359 +        (rtac (beta_cfun RS ssubst) 1),
   7.360 +        (rtac cont_snd 1),
   7.361 +        (Simp_tac  1)
   7.362 +        ]);
   7.363  
   7.364  qed_goalw "surjective_pairing_Cprod2" Cprod3.thy 
   7.365 -	[cfst_def,csnd_def,cpair_def] "<cfst`p , csnd`p> = p"
   7.366 +        [cfst_def,csnd_def,cpair_def] "<cfst`p , csnd`p> = p"
   7.367   (fn prems =>
   7.368 -	[
   7.369 -	(rtac (beta_cfun_cprod RS ssubst) 1),
   7.370 -	(rtac (beta_cfun RS ssubst) 1),
   7.371 -	(rtac cont_snd 1),
   7.372 -	(rtac (beta_cfun RS ssubst) 1),
   7.373 -	(rtac cont_fst 1),
   7.374 -	(rtac (surjective_pairing RS sym) 1)
   7.375 -	]);
   7.376 +        [
   7.377 +        (rtac (beta_cfun_cprod RS ssubst) 1),
   7.378 +        (rtac (beta_cfun RS ssubst) 1),
   7.379 +        (rtac cont_snd 1),
   7.380 +        (rtac (beta_cfun RS ssubst) 1),
   7.381 +        (rtac cont_fst 1),
   7.382 +        (rtac (surjective_pairing RS sym) 1)
   7.383 +        ]);
   7.384  
   7.385  
   7.386  qed_goalw "less_cprod5b" Cprod3.thy [cfst_def,csnd_def,cpair_def]
   7.387   " (p1 << p2) = (cfst`p1 << cfst`p2 & csnd`p1 << csnd`p2)"
   7.388   (fn prems =>
   7.389 -	[
   7.390 -	(rtac (beta_cfun RS ssubst) 1),
   7.391 -	(rtac cont_snd 1),
   7.392 -	(rtac (beta_cfun RS ssubst) 1),
   7.393 -	(rtac cont_snd 1),
   7.394 -	(rtac (beta_cfun RS ssubst) 1),
   7.395 -	(rtac cont_fst 1),
   7.396 -	(rtac (beta_cfun RS ssubst) 1),
   7.397 -	(rtac cont_fst 1),
   7.398 -	(rtac less_cprod3b 1)
   7.399 -	]);
   7.400 +        [
   7.401 +        (rtac (beta_cfun RS ssubst) 1),
   7.402 +        (rtac cont_snd 1),
   7.403 +        (rtac (beta_cfun RS ssubst) 1),
   7.404 +        (rtac cont_snd 1),
   7.405 +        (rtac (beta_cfun RS ssubst) 1),
   7.406 +        (rtac cont_fst 1),
   7.407 +        (rtac (beta_cfun RS ssubst) 1),
   7.408 +        (rtac cont_fst 1),
   7.409 +        (rtac less_cprod3b 1)
   7.410 +        ]);
   7.411  
   7.412  qed_goalw "less_cprod5c" Cprod3.thy [cfst_def,csnd_def,cpair_def]
   7.413   "<xa,ya> << <x,y> ==> xa<<x & ya << y"
   7.414   (fn prems =>
   7.415 -	[
   7.416 -	(cut_facts_tac prems 1),
   7.417 -	(rtac less_cprod4c 1),
   7.418 -	(dtac (beta_cfun_cprod RS subst) 1),
   7.419 -	(dtac (beta_cfun_cprod RS subst) 1),
   7.420 -	(atac 1)
   7.421 -	]);
   7.422 +        [
   7.423 +        (cut_facts_tac prems 1),
   7.424 +        (rtac less_cprod4c 1),
   7.425 +        (dtac (beta_cfun_cprod RS subst) 1),
   7.426 +        (dtac (beta_cfun_cprod RS subst) 1),
   7.427 +        (atac 1)
   7.428 +        ]);
   7.429  
   7.430  
   7.431  qed_goalw "lub_cprod2" Cprod3.thy [cfst_def,csnd_def,cpair_def]
   7.432  "[|is_chain(S)|] ==> range(S) <<| \
   7.433  \ <(lub(range(%i.cfst`(S i)))) , lub(range(%i.csnd`(S i)))>"
   7.434   (fn prems =>
   7.435 -	[
   7.436 -	(cut_facts_tac prems 1),
   7.437 -	(rtac (beta_cfun_cprod RS ssubst) 1),
   7.438 -	(rtac (beta_cfun RS ext RS ssubst) 1),
   7.439 -	(rtac cont_snd 1),
   7.440 -	(rtac (beta_cfun RS ext RS ssubst) 1),
   7.441 -	(rtac cont_fst 1),
   7.442 -	(rtac lub_cprod 1),
   7.443 -	(atac 1)
   7.444 -	]);
   7.445 +        [
   7.446 +        (cut_facts_tac prems 1),
   7.447 +        (rtac (beta_cfun_cprod RS ssubst) 1),
   7.448 +        (rtac (beta_cfun RS ext RS ssubst) 1),
   7.449 +        (rtac cont_snd 1),
   7.450 +        (rtac (beta_cfun RS ext RS ssubst) 1),
   7.451 +        (rtac cont_fst 1),
   7.452 +        (rtac lub_cprod 1),
   7.453 +        (atac 1)
   7.454 +        ]);
   7.455  
   7.456  val thelub_cprod2 = (lub_cprod2 RS thelubI);
   7.457  (*
   7.458 @@ -290,23 +290,23 @@
   7.459   <lub (range (%i. cfst`(?S1 i))), lub (range (%i. csnd`(?S1 i)))>" 
   7.460  *)
   7.461  qed_goalw "csplit2" Cprod3.thy [csplit_def]
   7.462 -	"csplit`f`<x,y> = f`x`y"
   7.463 +        "csplit`f`<x,y> = f`x`y"
   7.464   (fn prems =>
   7.465 -	[
   7.466 -	(rtac (beta_cfun RS ssubst) 1),
   7.467 -	(cont_tacR 1),
   7.468 -	(Simp_tac 1),
   7.469 -	(simp_tac (!simpset addsimps [cfst2,csnd2]) 1)
   7.470 -	]);
   7.471 +        [
   7.472 +        (rtac (beta_cfun RS ssubst) 1),
   7.473 +        (cont_tacR 1),
   7.474 +        (Simp_tac 1),
   7.475 +        (simp_tac (!simpset addsimps [cfst2,csnd2]) 1)
   7.476 +        ]);
   7.477  
   7.478  qed_goalw "csplit3" Cprod3.thy [csplit_def]
   7.479    "csplit`cpair`z=z"
   7.480   (fn prems =>
   7.481 -	[
   7.482 -	(rtac (beta_cfun RS ssubst) 1),
   7.483 -	(cont_tacR 1),
   7.484 -	(simp_tac (!simpset addsimps [surjective_pairing_Cprod2]) 1)
   7.485 -	]);
   7.486 +        [
   7.487 +        (rtac (beta_cfun RS ssubst) 1),
   7.488 +        (cont_tacR 1),
   7.489 +        (simp_tac (!simpset addsimps [surjective_pairing_Cprod2]) 1)
   7.490 +        ]);
   7.491  
   7.492  (* ------------------------------------------------------------------------ *)
   7.493  (* install simplifier for Cprod                                             *)
     8.1 --- a/src/HOLCF/Fix.ML	Mon Jan 29 14:16:13 1996 +0100
     8.2 +++ b/src/HOLCF/Fix.ML	Tue Jan 30 13:42:57 1996 +0100
     8.3 @@ -1,6 +1,6 @@
     8.4 -(*  Title: 	HOLCF/fix.ML
     8.5 +(*  Title:      HOLCF/fix.ML
     8.6      ID:         $Id$
     8.7 -    Author: 	Franz Regensburger
     8.8 +    Author:     Franz Regensburger
     8.9      Copyright   1993  Technische Universitaet Muenchen
    8.10  
    8.11  Lemmas for fix.thy 
    8.12 @@ -14,25 +14,25 @@
    8.13  
    8.14  qed_goal "iterate_0" Fix.thy "iterate 0 F x = x"
    8.15   (fn prems =>
    8.16 -	[
    8.17 -	(resolve_tac (nat_recs iterate_def) 1)
    8.18 -	]);
    8.19 +        [
    8.20 +        (resolve_tac (nat_recs iterate_def) 1)
    8.21 +        ]);
    8.22  
    8.23  qed_goal "iterate_Suc" Fix.thy "iterate (Suc n) F x  = F`(iterate n F x)"
    8.24   (fn prems =>
    8.25 -	[
    8.26 -	(resolve_tac (nat_recs iterate_def) 1)
    8.27 -	]);
    8.28 +        [
    8.29 +        (resolve_tac (nat_recs iterate_def) 1)
    8.30 +        ]);
    8.31  
    8.32  Addsimps [iterate_0, iterate_Suc];
    8.33  
    8.34  qed_goal "iterate_Suc2" Fix.thy "iterate (Suc n) F x = iterate n F (F`x)"
    8.35   (fn prems =>
    8.36 -	[
    8.37 -	(nat_ind_tac "n" 1),
    8.38 -	(Simp_tac 1),
    8.39 -	(Asm_simp_tac 1)
    8.40 -	]);
    8.41 +        [
    8.42 +        (nat_ind_tac "n" 1),
    8.43 +        (Simp_tac 1),
    8.44 +        (Asm_simp_tac 1)
    8.45 +        ]);
    8.46  
    8.47  (* ------------------------------------------------------------------------ *)
    8.48  (* the sequence of function itertaions is a chain                           *)
    8.49 @@ -40,26 +40,26 @@
    8.50  (* ------------------------------------------------------------------------ *)
    8.51  
    8.52  qed_goalw "is_chain_iterate2" Fix.thy [is_chain] 
    8.53 -	" x << F`x ==> is_chain (%i.iterate i F x)"
    8.54 +        " x << F`x ==> is_chain (%i.iterate i F x)"
    8.55   (fn prems =>
    8.56 -	[
    8.57 -	(cut_facts_tac prems 1),
    8.58 -	(strip_tac 1),
    8.59 -	(Simp_tac 1),
    8.60 -	(nat_ind_tac "i" 1),
    8.61 -	(Asm_simp_tac 1),
    8.62 -	(Asm_simp_tac 1),
    8.63 -	(etac monofun_cfun_arg 1)
    8.64 -	]);
    8.65 +        [
    8.66 +        (cut_facts_tac prems 1),
    8.67 +        (strip_tac 1),
    8.68 +        (Simp_tac 1),
    8.69 +        (nat_ind_tac "i" 1),
    8.70 +        (Asm_simp_tac 1),
    8.71 +        (Asm_simp_tac 1),
    8.72 +        (etac monofun_cfun_arg 1)
    8.73 +        ]);
    8.74  
    8.75  
    8.76  qed_goal "is_chain_iterate" Fix.thy  
    8.77 -	"is_chain (%i.iterate i F UU)"
    8.78 +        "is_chain (%i.iterate i F UU)"
    8.79   (fn prems =>
    8.80 -	[
    8.81 -	(rtac is_chain_iterate2 1),
    8.82 -	(rtac minimal 1)
    8.83 -	]);
    8.84 +        [
    8.85 +        (rtac is_chain_iterate2 1),
    8.86 +        (rtac minimal 1)
    8.87 +        ]);
    8.88  
    8.89  
    8.90  (* ------------------------------------------------------------------------ *)
    8.91 @@ -70,43 +70,43 @@
    8.92  
    8.93  qed_goalw "Ifix_eq" Fix.thy  [Ifix_def] "Ifix F =F`(Ifix F)"
    8.94   (fn prems =>
    8.95 -	[
    8.96 -	(rtac (contlub_cfun_arg RS ssubst) 1),
    8.97 -	(rtac is_chain_iterate 1),
    8.98 -	(rtac antisym_less 1),
    8.99 -	(rtac lub_mono 1),
   8.100 -	(rtac is_chain_iterate 1),
   8.101 -	(rtac ch2ch_fappR 1),
   8.102 -	(rtac is_chain_iterate 1),
   8.103 -	(rtac allI 1),
   8.104 -	(rtac (iterate_Suc RS subst) 1),
   8.105 -	(rtac (is_chain_iterate RS is_chainE RS spec) 1),
   8.106 -	(rtac is_lub_thelub 1),
   8.107 -	(rtac ch2ch_fappR 1),
   8.108 -	(rtac is_chain_iterate 1),
   8.109 -	(rtac ub_rangeI 1),
   8.110 -	(rtac allI 1),
   8.111 -	(rtac (iterate_Suc RS subst) 1),
   8.112 -	(rtac is_ub_thelub 1),
   8.113 -	(rtac is_chain_iterate 1)
   8.114 -	]);
   8.115 +        [
   8.116 +        (rtac (contlub_cfun_arg RS ssubst) 1),
   8.117 +        (rtac is_chain_iterate 1),
   8.118 +        (rtac antisym_less 1),
   8.119 +        (rtac lub_mono 1),
   8.120 +        (rtac is_chain_iterate 1),
   8.121 +        (rtac ch2ch_fappR 1),
   8.122 +        (rtac is_chain_iterate 1),
   8.123 +        (rtac allI 1),
   8.124 +        (rtac (iterate_Suc RS subst) 1),
   8.125 +        (rtac (is_chain_iterate RS is_chainE RS spec) 1),
   8.126 +        (rtac is_lub_thelub 1),
   8.127 +        (rtac ch2ch_fappR 1),
   8.128 +        (rtac is_chain_iterate 1),
   8.129 +        (rtac ub_rangeI 1),
   8.130 +        (rtac allI 1),
   8.131 +        (rtac (iterate_Suc RS subst) 1),
   8.132 +        (rtac is_ub_thelub 1),
   8.133 +        (rtac is_chain_iterate 1)
   8.134 +        ]);
   8.135  
   8.136  
   8.137  qed_goalw "Ifix_least" Fix.thy [Ifix_def] "F`x=x ==> Ifix(F) << x"
   8.138   (fn prems =>
   8.139 -	[
   8.140 -	(cut_facts_tac prems 1),
   8.141 -	(rtac is_lub_thelub 1),
   8.142 -	(rtac is_chain_iterate 1),
   8.143 -	(rtac ub_rangeI 1),
   8.144 -	(strip_tac 1),
   8.145 -	(nat_ind_tac "i" 1),
   8.146 -	(Asm_simp_tac 1),
   8.147 -	(Asm_simp_tac 1),
   8.148 -	(res_inst_tac [("t","x")] subst 1),
   8.149 -	(atac 1),
   8.150 -	(etac monofun_cfun_arg 1)
   8.151 -	]);
   8.152 +        [
   8.153 +        (cut_facts_tac prems 1),
   8.154 +        (rtac is_lub_thelub 1),
   8.155 +        (rtac is_chain_iterate 1),
   8.156 +        (rtac ub_rangeI 1),
   8.157 +        (strip_tac 1),
   8.158 +        (nat_ind_tac "i" 1),
   8.159 +        (Asm_simp_tac 1),
   8.160 +        (Asm_simp_tac 1),
   8.161 +        (res_inst_tac [("t","x")] subst 1),
   8.162 +        (atac 1),
   8.163 +        (etac monofun_cfun_arg 1)
   8.164 +        ]);
   8.165  
   8.166  
   8.167  (* ------------------------------------------------------------------------ *)
   8.168 @@ -115,18 +115,18 @@
   8.169  
   8.170  qed_goalw "monofun_iterate" Fix.thy  [monofun] "monofun(iterate(i))"
   8.171   (fn prems =>
   8.172 -	[
   8.173 -	(strip_tac 1),
   8.174 -	(nat_ind_tac "i" 1),
   8.175 -	(Asm_simp_tac 1),
   8.176 -	(Asm_simp_tac 1),
   8.177 -	(rtac (less_fun RS iffD2) 1),
   8.178 -	(rtac allI 1),
   8.179 -	(rtac monofun_cfun 1),
   8.180 -	(atac 1),
   8.181 -	(rtac (less_fun RS iffD1 RS spec) 1),
   8.182 -	(atac 1)
   8.183 -	]);
   8.184 +        [
   8.185 +        (strip_tac 1),
   8.186 +        (nat_ind_tac "i" 1),
   8.187 +        (Asm_simp_tac 1),
   8.188 +        (Asm_simp_tac 1),
   8.189 +        (rtac (less_fun RS iffD2) 1),
   8.190 +        (rtac allI 1),
   8.191 +        (rtac monofun_cfun 1),
   8.192 +        (atac 1),
   8.193 +        (rtac (less_fun RS iffD1 RS spec) 1),
   8.194 +        (atac 1)
   8.195 +        ]);
   8.196  
   8.197  (* ------------------------------------------------------------------------ *)
   8.198  (* the following lemma uses contlub_cfun which itself is based on a         *)
   8.199 @@ -136,42 +136,42 @@
   8.200  
   8.201  qed_goalw "contlub_iterate" Fix.thy  [contlub] "contlub(iterate(i))"
   8.202   (fn prems =>
   8.203 -	[
   8.204 -	(strip_tac 1),
   8.205 -	(nat_ind_tac "i" 1),
   8.206 -	(Asm_simp_tac 1),
   8.207 -	(rtac (lub_const RS thelubI RS sym) 1),
   8.208 -	(Asm_simp_tac 1),
   8.209 -	(rtac ext 1),
   8.210 -	(rtac (thelub_fun RS ssubst) 1),
   8.211 -	(rtac is_chainI 1),
   8.212 -	(rtac allI 1),
   8.213 -	(rtac (less_fun RS iffD2) 1),
   8.214 -	(rtac allI 1),
   8.215 -	(rtac (is_chainE RS spec) 1),
   8.216 -	(rtac (monofun_fapp1 RS ch2ch_MF2LR) 1),
   8.217 -	(rtac allI 1),
   8.218 -	(rtac monofun_fapp2 1),
   8.219 -	(atac 1),
   8.220 -	(rtac ch2ch_fun 1),
   8.221 -	(rtac (monofun_iterate RS ch2ch_monofun) 1),
   8.222 -	(atac 1),
   8.223 -	(rtac (thelub_fun RS ssubst) 1),
   8.224 -	(rtac (monofun_iterate RS ch2ch_monofun) 1),
   8.225 -	(atac 1),
   8.226 -	(rtac contlub_cfun  1),
   8.227 -	(atac 1),
   8.228 -	(etac (monofun_iterate RS ch2ch_monofun RS ch2ch_fun) 1)
   8.229 -	]);
   8.230 +        [
   8.231 +        (strip_tac 1),
   8.232 +        (nat_ind_tac "i" 1),
   8.233 +        (Asm_simp_tac 1),
   8.234 +        (rtac (lub_const RS thelubI RS sym) 1),
   8.235 +        (Asm_simp_tac 1),
   8.236 +        (rtac ext 1),
   8.237 +        (rtac (thelub_fun RS ssubst) 1),
   8.238 +        (rtac is_chainI 1),
   8.239 +        (rtac allI 1),
   8.240 +        (rtac (less_fun RS iffD2) 1),
   8.241 +        (rtac allI 1),
   8.242 +        (rtac (is_chainE RS spec) 1),
   8.243 +        (rtac (monofun_fapp1 RS ch2ch_MF2LR) 1),
   8.244 +        (rtac allI 1),
   8.245 +        (rtac monofun_fapp2 1),
   8.246 +        (atac 1),
   8.247 +        (rtac ch2ch_fun 1),
   8.248 +        (rtac (monofun_iterate RS ch2ch_monofun) 1),
   8.249 +        (atac 1),
   8.250 +        (rtac (thelub_fun RS ssubst) 1),
   8.251 +        (rtac (monofun_iterate RS ch2ch_monofun) 1),
   8.252 +        (atac 1),
   8.253 +        (rtac contlub_cfun  1),
   8.254 +        (atac 1),
   8.255 +        (etac (monofun_iterate RS ch2ch_monofun RS ch2ch_fun) 1)
   8.256 +        ]);
   8.257  
   8.258  
   8.259  qed_goal "cont_iterate" Fix.thy "cont(iterate(i))"
   8.260   (fn prems =>
   8.261 -	[
   8.262 -	(rtac monocontlub2cont 1),
   8.263 -	(rtac monofun_iterate 1),
   8.264 -	(rtac contlub_iterate 1)
   8.265 -	]);
   8.266 +        [
   8.267 +        (rtac monocontlub2cont 1),
   8.268 +        (rtac monofun_iterate 1),
   8.269 +        (rtac contlub_iterate 1)
   8.270 +        ]);
   8.271  
   8.272  (* ------------------------------------------------------------------------ *)
   8.273  (* a lemma about continuity of iterate in its third argument                *)
   8.274 @@ -179,37 +179,37 @@
   8.275  
   8.276  qed_goal "monofun_iterate2" Fix.thy "monofun(iterate n F)"
   8.277   (fn prems =>
   8.278 -	[
   8.279 -	(rtac monofunI 1),
   8.280 -	(strip_tac 1),
   8.281 -	(nat_ind_tac "n" 1),
   8.282 -	(Asm_simp_tac 1),
   8.283 -	(Asm_simp_tac 1),
   8.284 -	(etac monofun_cfun_arg 1)
   8.285 -	]);
   8.286 +        [
   8.287 +        (rtac monofunI 1),
   8.288 +        (strip_tac 1),
   8.289 +        (nat_ind_tac "n" 1),
   8.290 +        (Asm_simp_tac 1),
   8.291 +        (Asm_simp_tac 1),
   8.292 +        (etac monofun_cfun_arg 1)
   8.293 +        ]);
   8.294  
   8.295  qed_goal "contlub_iterate2" Fix.thy "contlub(iterate n F)"
   8.296   (fn prems =>
   8.297 -	[
   8.298 -	(rtac contlubI 1),
   8.299 -	(strip_tac 1),
   8.300 -	(nat_ind_tac "n" 1),
   8.301 -	(Simp_tac 1),
   8.302 -	(Simp_tac 1),
   8.303 -	(res_inst_tac [("t","iterate n1 F (lub(range(%u. Y u)))"),
   8.304 -	("s","lub(range(%i. iterate n1 F (Y i)))")] ssubst 1),
   8.305 -	(atac 1),
   8.306 -	(rtac contlub_cfun_arg 1),
   8.307 -	(etac (monofun_iterate2 RS ch2ch_monofun) 1)
   8.308 -	]);
   8.309 +        [
   8.310 +        (rtac contlubI 1),
   8.311 +        (strip_tac 1),
   8.312 +        (nat_ind_tac "n" 1),
   8.313 +        (Simp_tac 1),
   8.314 +        (Simp_tac 1),
   8.315 +        (res_inst_tac [("t","iterate n1 F (lub(range(%u. Y u)))"),
   8.316 +        ("s","lub(range(%i. iterate n1 F (Y i)))")] ssubst 1),
   8.317 +        (atac 1),
   8.318 +        (rtac contlub_cfun_arg 1),
   8.319 +        (etac (monofun_iterate2 RS ch2ch_monofun) 1)
   8.320 +        ]);
   8.321  
   8.322  qed_goal "cont_iterate2" Fix.thy "cont (iterate n F)"
   8.323   (fn prems =>
   8.324 -	[
   8.325 -	(rtac monocontlub2cont 1),
   8.326 -	(rtac monofun_iterate2 1),
   8.327 -	(rtac contlub_iterate2 1)
   8.328 -	]);
   8.329 +        [
   8.330 +        (rtac monocontlub2cont 1),
   8.331 +        (rtac monofun_iterate2 1),
   8.332 +        (rtac contlub_iterate2 1)
   8.333 +        ]);
   8.334  
   8.335  (* ------------------------------------------------------------------------ *)
   8.336  (* monotonicity and continuity of Ifix                                      *)
   8.337 @@ -217,15 +217,15 @@
   8.338  
   8.339  qed_goalw "monofun_Ifix" Fix.thy  [monofun,Ifix_def] "monofun(Ifix)"
   8.340   (fn prems =>
   8.341 -	[
   8.342 -	(strip_tac 1),
   8.343 -	(rtac lub_mono 1),
   8.344 -	(rtac is_chain_iterate 1),
   8.345 -	(rtac is_chain_iterate 1),
   8.346 -	(rtac allI 1),
   8.347 -	(rtac (less_fun RS iffD1 RS spec) 1),
   8.348 -	(etac (monofun_iterate RS monofunE RS spec RS spec RS mp) 1)
   8.349 -	]);
   8.350 +        [
   8.351 +        (strip_tac 1),
   8.352 +        (rtac lub_mono 1),
   8.353 +        (rtac is_chain_iterate 1),
   8.354 +        (rtac is_chain_iterate 1),
   8.355 +        (rtac allI 1),
   8.356 +        (rtac (less_fun RS iffD1 RS spec) 1),
   8.357 +        (etac (monofun_iterate RS monofunE RS spec RS spec RS mp) 1)
   8.358 +        ]);
   8.359  
   8.360  
   8.361  (* ------------------------------------------------------------------------ *)
   8.362 @@ -236,17 +236,17 @@
   8.363  qed_goal "is_chain_iterate_lub" Fix.thy   
   8.364  "is_chain(Y) ==> is_chain(%i. lub(range(%ia. iterate ia (Y i) UU)))"
   8.365   (fn prems =>
   8.366 -	[
   8.367 -	(cut_facts_tac prems 1),
   8.368 -	(rtac is_chainI 1),
   8.369 -	(strip_tac 1),
   8.370 -	(rtac lub_mono 1),
   8.371 -	(rtac is_chain_iterate 1),
   8.372 -	(rtac is_chain_iterate 1),
   8.373 -	(strip_tac 1),
   8.374 -	(etac (monofun_iterate RS ch2ch_monofun RS ch2ch_fun RS is_chainE 
   8.375 +        [
   8.376 +        (cut_facts_tac prems 1),
   8.377 +        (rtac is_chainI 1),
   8.378 +        (strip_tac 1),
   8.379 +        (rtac lub_mono 1),
   8.380 +        (rtac is_chain_iterate 1),
   8.381 +        (rtac is_chain_iterate 1),
   8.382 +        (strip_tac 1),
   8.383 +        (etac (monofun_iterate RS ch2ch_monofun RS ch2ch_fun RS is_chainE 
   8.384           RS spec) 1)
   8.385 -	]);
   8.386 +        ]);
   8.387  
   8.388  (* ------------------------------------------------------------------------ *)
   8.389  (* this exchange lemma is analog to the one for monotone functions          *)
   8.390 @@ -257,69 +257,69 @@
   8.391  qed_goal "contlub_Ifix_lemma1" Fix.thy 
   8.392  "is_chain(Y) ==>iterate n (lub(range Y)) y = lub(range(%i. iterate n (Y i) y))"
   8.393   (fn prems =>
   8.394 -	[
   8.395 -	(cut_facts_tac prems 1),
   8.396 -	(rtac (thelub_fun RS subst) 1),
   8.397 -	(rtac (monofun_iterate RS ch2ch_monofun) 1),
   8.398 -	(atac 1),
   8.399 -	(rtac fun_cong 1),
   8.400 -	(rtac (contlub_iterate RS contlubE RS spec RS mp RS ssubst) 1),
   8.401 -	(atac 1),
   8.402 -	(rtac refl 1)
   8.403 -	]);
   8.404 +        [
   8.405 +        (cut_facts_tac prems 1),
   8.406 +        (rtac (thelub_fun RS subst) 1),
   8.407 +        (rtac (monofun_iterate RS ch2ch_monofun) 1),
   8.408 +        (atac 1),
   8.409 +        (rtac fun_cong 1),
   8.410 +        (rtac (contlub_iterate RS contlubE RS spec RS mp RS ssubst) 1),
   8.411 +        (atac 1),
   8.412 +        (rtac refl 1)
   8.413 +        ]);
   8.414  
   8.415  
   8.416  qed_goal "ex_lub_iterate" Fix.thy  "is_chain(Y) ==>\
   8.417  \         lub(range(%i. lub(range(%ia. iterate i (Y ia) UU)))) =\
   8.418  \         lub(range(%i. lub(range(%ia. iterate ia (Y i) UU))))"
   8.419   (fn prems =>
   8.420 -	[
   8.421 -	(cut_facts_tac prems 1),
   8.422 -	(rtac antisym_less 1),
   8.423 -	(rtac is_lub_thelub 1),
   8.424 -	(rtac (contlub_Ifix_lemma1 RS ext RS subst) 1),
   8.425 -	(atac 1),
   8.426 -	(rtac is_chain_iterate 1),
   8.427 -	(rtac ub_rangeI 1),
   8.428 -	(strip_tac 1),
   8.429 -	(rtac lub_mono 1),
   8.430 -	(etac (monofun_iterate RS ch2ch_monofun RS ch2ch_fun) 1),
   8.431 -	(etac is_chain_iterate_lub 1),
   8.432 -	(strip_tac 1),
   8.433 -	(rtac is_ub_thelub 1),
   8.434 -	(rtac is_chain_iterate 1),
   8.435 -	(rtac is_lub_thelub 1),
   8.436 -	(etac is_chain_iterate_lub 1),
   8.437 -	(rtac ub_rangeI 1),
   8.438 -	(strip_tac 1),
   8.439 -	(rtac lub_mono 1),
   8.440 -	(rtac is_chain_iterate 1),
   8.441 -	(rtac (contlub_Ifix_lemma1 RS ext RS subst) 1),
   8.442 -	(atac 1),
   8.443 -	(rtac is_chain_iterate 1),
   8.444 -	(strip_tac 1),
   8.445 -	(rtac is_ub_thelub 1),
   8.446 -	(etac (monofun_iterate RS ch2ch_monofun RS ch2ch_fun) 1)
   8.447 -	]);
   8.448 +        [
   8.449 +        (cut_facts_tac prems 1),
   8.450 +        (rtac antisym_less 1),
   8.451 +        (rtac is_lub_thelub 1),
   8.452 +        (rtac (contlub_Ifix_lemma1 RS ext RS subst) 1),
   8.453 +        (atac 1),
   8.454 +        (rtac is_chain_iterate 1),
   8.455 +        (rtac ub_rangeI 1),
   8.456 +        (strip_tac 1),
   8.457 +        (rtac lub_mono 1),
   8.458 +        (etac (monofun_iterate RS ch2ch_monofun RS ch2ch_fun) 1),
   8.459 +        (etac is_chain_iterate_lub 1),
   8.460 +        (strip_tac 1),
   8.461 +        (rtac is_ub_thelub 1),
   8.462 +        (rtac is_chain_iterate 1),
   8.463 +        (rtac is_lub_thelub 1),
   8.464 +        (etac is_chain_iterate_lub 1),
   8.465 +        (rtac ub_rangeI 1),
   8.466 +        (strip_tac 1),
   8.467 +        (rtac lub_mono 1),
   8.468 +        (rtac is_chain_iterate 1),
   8.469 +        (rtac (contlub_Ifix_lemma1 RS ext RS subst) 1),
   8.470 +        (atac 1),
   8.471 +        (rtac is_chain_iterate 1),
   8.472 +        (strip_tac 1),
   8.473 +        (rtac is_ub_thelub 1),
   8.474 +        (etac (monofun_iterate RS ch2ch_monofun RS ch2ch_fun) 1)
   8.475 +        ]);
   8.476  
   8.477  
   8.478  qed_goalw "contlub_Ifix" Fix.thy  [contlub,Ifix_def] "contlub(Ifix)"
   8.479   (fn prems =>
   8.480 -	[
   8.481 -	(strip_tac 1),
   8.482 -	(rtac (contlub_Ifix_lemma1 RS ext RS ssubst) 1),
   8.483 -	(atac 1),
   8.484 -	(etac ex_lub_iterate 1)
   8.485 -	]);
   8.486 +        [
   8.487 +        (strip_tac 1),
   8.488 +        (rtac (contlub_Ifix_lemma1 RS ext RS ssubst) 1),
   8.489 +        (atac 1),
   8.490 +        (etac ex_lub_iterate 1)
   8.491 +        ]);
   8.492  
   8.493  
   8.494  qed_goal "cont_Ifix" Fix.thy "cont(Ifix)"
   8.495   (fn prems =>
   8.496 -	[
   8.497 -	(rtac monocontlub2cont 1),
   8.498 -	(rtac monofun_Ifix 1),
   8.499 -	(rtac contlub_Ifix 1)
   8.500 -	]);
   8.501 +        [
   8.502 +        (rtac monocontlub2cont 1),
   8.503 +        (rtac monofun_Ifix 1),
   8.504 +        (rtac contlub_Ifix 1)
   8.505 +        ]);
   8.506  
   8.507  (* ------------------------------------------------------------------------ *)
   8.508  (* propagate properties of Ifix to its continuous counterpart               *)
   8.509 @@ -327,65 +327,65 @@
   8.510  
   8.511  qed_goalw "fix_eq" Fix.thy  [fix_def] "fix`F = F`(fix`F)"
   8.512   (fn prems =>
   8.513 -	[
   8.514 -	(asm_simp_tac (!simpset addsimps [cont_Ifix]) 1),
   8.515 -	(rtac Ifix_eq 1)
   8.516 -	]);
   8.517 +        [
   8.518 +        (asm_simp_tac (!simpset addsimps [cont_Ifix]) 1),
   8.519 +        (rtac Ifix_eq 1)
   8.520 +        ]);
   8.521  
   8.522  qed_goalw "fix_least" Fix.thy [fix_def] "F`x = x ==> fix`F << x"
   8.523   (fn prems =>
   8.524 -	[
   8.525 -	(cut_facts_tac prems 1),
   8.526 -	(asm_simp_tac (!simpset addsimps [cont_Ifix]) 1),
   8.527 -	(etac Ifix_least 1)
   8.528 -	]);
   8.529 +        [
   8.530 +        (cut_facts_tac prems 1),
   8.531 +        (asm_simp_tac (!simpset addsimps [cont_Ifix]) 1),
   8.532 +        (etac Ifix_least 1)
   8.533 +        ]);
   8.534  
   8.535  
   8.536  qed_goal "fix_eqI" Fix.thy
   8.537  "[| F`x = x; !z. F`z = z --> x << z |] ==> x = fix`F"
   8.538   (fn prems =>
   8.539 -	[
   8.540 -	(cut_facts_tac prems 1),
   8.541 -	(rtac antisym_less 1),
   8.542 -	(etac allE 1),
   8.543 -	(etac mp 1),
   8.544 -	(rtac (fix_eq RS sym) 1),
   8.545 -	(etac fix_least 1)
   8.546 -	]);
   8.547 +        [
   8.548 +        (cut_facts_tac prems 1),
   8.549 +        (rtac antisym_less 1),
   8.550 +        (etac allE 1),
   8.551 +        (etac mp 1),
   8.552 +        (rtac (fix_eq RS sym) 1),
   8.553 +        (etac fix_least 1)
   8.554 +        ]);
   8.555  
   8.556  
   8.557  qed_goal "fix_eq2" Fix.thy "f == fix`F ==> f = F`f"
   8.558   (fn prems =>
   8.559 -	[
   8.560 -	(rewrite_goals_tac prems),
   8.561 -	(rtac fix_eq 1)
   8.562 -	]);
   8.563 +        [
   8.564 +        (rewrite_goals_tac prems),
   8.565 +        (rtac fix_eq 1)
   8.566 +        ]);
   8.567  
   8.568  qed_goal "fix_eq3" Fix.thy "f == fix`F ==> f`x = F`f`x"
   8.569   (fn prems =>
   8.570 -	[
   8.571 -	(rtac trans 1),
   8.572 -	(rtac ((hd prems) RS fix_eq2 RS cfun_fun_cong) 1),
   8.573 -	(rtac refl 1)
   8.574 -	]);
   8.575 +        [
   8.576 +        (rtac trans 1),
   8.577 +        (rtac ((hd prems) RS fix_eq2 RS cfun_fun_cong) 1),
   8.578 +        (rtac refl 1)
   8.579 +        ]);
   8.580  
   8.581  fun fix_tac3 thm i  = ((rtac trans i) THEN (rtac (thm RS fix_eq3) i)); 
   8.582  
   8.583  qed_goal "fix_eq4" Fix.thy "f = fix`F ==> f = F`f"
   8.584   (fn prems =>
   8.585 -	[
   8.586 -	(cut_facts_tac prems 1),
   8.587 -	(hyp_subst_tac 1),
   8.588 -	(rtac fix_eq 1)
   8.589 -	]);
   8.590 +        [
   8.591 +        (cut_facts_tac prems 1),
   8.592 +        (hyp_subst_tac 1),
   8.593 +        (rtac fix_eq 1)
   8.594 +        ]);
   8.595  
   8.596  qed_goal "fix_eq5" Fix.thy "f = fix`F ==> f`x = F`f`x"
   8.597   (fn prems =>
   8.598 -	[
   8.599 -	(rtac trans 1),
   8.600 -	(rtac ((hd prems) RS fix_eq4 RS cfun_fun_cong) 1),
   8.601 -	(rtac refl 1)
   8.602 -	]);
   8.603 +        [
   8.604 +        (rtac trans 1),
   8.605 +        (rtac ((hd prems) RS fix_eq4 RS cfun_fun_cong) 1),
   8.606 +        (rtac refl 1)
   8.607 +        ]);
   8.608  
   8.609  fun fix_tac5 thm i  = ((rtac trans i) THEN (rtac (thm RS fix_eq5) i)); 
   8.610  
   8.611 @@ -404,12 +404,12 @@
   8.612  
   8.613  fun fix_prover2 thy fixdef thm = prove_goal thy thm
   8.614   (fn prems =>
   8.615 -	[
   8.616 -	(rtac trans 1),
   8.617 -	(rtac (fix_eq2) 1),
   8.618 -	(rtac fixdef 1),
   8.619 -	(rtac beta_cfun 1),
   8.620 -	(cont_tacR 1)
   8.621 +        [
   8.622 +        (rtac trans 1),
   8.623 +        (rtac (fix_eq2) 1),
   8.624 +        (rtac fixdef 1),
   8.625 +        (rtac beta_cfun 1),
   8.626 +        (cont_tacR 1)
   8.627          ]);
   8.628  
   8.629  (* ------------------------------------------------------------------------ *)
   8.630 @@ -419,11 +419,11 @@
   8.631  
   8.632  qed_goal "Ifix_def2" Fix.thy "Ifix=(%x. lub(range(%i. iterate i x UU)))"
   8.633   (fn prems =>
   8.634 -	[
   8.635 -	(rtac ext 1),
   8.636 -	(rewrite_goals_tac [Ifix_def]),
   8.637 -	(rtac refl 1)
   8.638 -	]);
   8.639 +        [
   8.640 +        (rtac ext 1),
   8.641 +        (rewtac Ifix_def),
   8.642 +        (rtac refl 1)
   8.643 +        ]);
   8.644  
   8.645  (* ------------------------------------------------------------------------ *)
   8.646  (* direct connection between fix and iteration without Ifix                 *)
   8.647 @@ -432,10 +432,10 @@
   8.648  qed_goalw "fix_def2" Fix.thy [fix_def]
   8.649   "fix`F = lub(range(%i. iterate i F UU))"
   8.650   (fn prems =>
   8.651 -	[
   8.652 -	(fold_goals_tac [Ifix_def]),
   8.653 -	(asm_simp_tac (!simpset addsimps [cont_Ifix]) 1)
   8.654 -	]);
   8.655 +        [
   8.656 +        (fold_goals_tac [Ifix_def]),
   8.657 +        (asm_simp_tac (!simpset addsimps [cont_Ifix]) 1)
   8.658 +        ]);
   8.659  
   8.660  
   8.661  (* ------------------------------------------------------------------------ *)
   8.662 @@ -447,19 +447,19 @@
   8.663  (* ------------------------------------------------------------------------ *)
   8.664  
   8.665  qed_goalw "adm_def2" Fix.thy [adm_def]
   8.666 -	"adm(P) = (!Y. is_chain(Y) --> (!i.P(Y(i))) --> P(lub(range(Y))))"
   8.667 +        "adm(P) = (!Y. is_chain(Y) --> (!i.P(Y(i))) --> P(lub(range(Y))))"
   8.668   (fn prems =>
   8.669 -	[
   8.670 -	(rtac refl 1)
   8.671 -	]);
   8.672 +        [
   8.673 +        (rtac refl 1)
   8.674 +        ]);
   8.675  
   8.676  qed_goalw "admw_def2" Fix.thy [admw_def]
   8.677 -	"admw(P) = (!F.(!n.P(iterate n F UU)) -->\
   8.678 -\			 P (lub(range(%i.iterate i F UU))))"
   8.679 +        "admw(P) = (!F.(!n.P(iterate n F UU)) -->\
   8.680 +\                        P (lub(range(%i.iterate i F UU))))"
   8.681   (fn prems =>
   8.682 -	[
   8.683 -	(rtac refl 1)
   8.684 -	]);
   8.685 +        [
   8.686 +        (rtac refl 1)
   8.687 +        ]);
   8.688  
   8.689  (* ------------------------------------------------------------------------ *)
   8.690  (* an admissible formula is also weak admissible                            *)
   8.691 @@ -467,14 +467,14 @@
   8.692  
   8.693  qed_goalw "adm_impl_admw"  Fix.thy [admw_def] "adm(P)==>admw(P)"
   8.694   (fn prems =>
   8.695 -	[
   8.696 -	(cut_facts_tac prems 1),
   8.697 -	(strip_tac 1),
   8.698 -	(rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
   8.699 -	(atac 1),
   8.700 -	(rtac is_chain_iterate 1),
   8.701 -	(atac 1)
   8.702 -	]);
   8.703 +        [
   8.704 +        (cut_facts_tac prems 1),
   8.705 +        (strip_tac 1),
   8.706 +        (rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
   8.707 +        (atac 1),
   8.708 +        (rtac is_chain_iterate 1),
   8.709 +        (atac 1)
   8.710 +        ]);
   8.711  
   8.712  (* ------------------------------------------------------------------------ *)
   8.713  (* fixed point induction                                                    *)
   8.714 @@ -483,20 +483,20 @@
   8.715  qed_goal "fix_ind"  Fix.thy  
   8.716  "[| adm(P);P(UU);!!x. P(x) ==> P(F`x)|] ==> P(fix`F)"
   8.717   (fn prems =>
   8.718 -	[
   8.719 -	(cut_facts_tac prems 1),
   8.720 -	(rtac (fix_def2 RS ssubst) 1),
   8.721 -	(rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
   8.722 -	(atac 1),
   8.723 -	(rtac is_chain_iterate 1),
   8.724 -	(rtac allI 1),
   8.725 -	(nat_ind_tac "i" 1),
   8.726 -	(rtac (iterate_0 RS ssubst) 1),
   8.727 -	(atac 1),
   8.728 -	(rtac (iterate_Suc RS ssubst) 1),
   8.729 -	(resolve_tac prems 1),
   8.730 -	(atac 1)
   8.731 -	]);
   8.732 +        [
   8.733 +        (cut_facts_tac prems 1),
   8.734 +        (rtac (fix_def2 RS ssubst) 1),
   8.735 +        (rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
   8.736 +        (atac 1),
   8.737 +        (rtac is_chain_iterate 1),
   8.738 +        (rtac allI 1),
   8.739 +        (nat_ind_tac "i" 1),
   8.740 +        (rtac (iterate_0 RS ssubst) 1),
   8.741 +        (atac 1),
   8.742 +        (rtac (iterate_Suc RS ssubst) 1),
   8.743 +        (resolve_tac prems 1),
   8.744 +        (atac 1)
   8.745 +        ]);
   8.746  
   8.747  (* ------------------------------------------------------------------------ *)
   8.748  (* computational induction for weak admissible formulae                     *)
   8.749 @@ -505,14 +505,14 @@
   8.750  qed_goal "wfix_ind"  Fix.thy  
   8.751  "[| admw(P); !n. P(iterate n F UU)|] ==> P(fix`F)"
   8.752   (fn prems =>
   8.753 -	[
   8.754 -	(cut_facts_tac prems 1),
   8.755 -	(rtac (fix_def2 RS ssubst) 1),
   8.756 -	(rtac (admw_def2 RS iffD1 RS spec RS mp) 1),
   8.757 -	(atac 1),
   8.758 -	(rtac allI 1),
   8.759 -	(etac spec 1)
   8.760 -	]);
   8.761 +        [
   8.762 +        (cut_facts_tac prems 1),
   8.763 +        (rtac (fix_def2 RS ssubst) 1),
   8.764 +        (rtac (admw_def2 RS iffD1 RS spec RS mp) 1),
   8.765 +        (atac 1),
   8.766 +        (rtac allI 1),
   8.767 +        (etac spec 1)
   8.768 +        ]);
   8.769  
   8.770  (* ------------------------------------------------------------------------ *)
   8.771  (* for chain-finite (easy) types every formula is admissible                *)
   8.772 @@ -521,67 +521,67 @@
   8.773  qed_goalw "adm_max_in_chain"  Fix.thy  [adm_def]
   8.774  "!Y. is_chain(Y::nat=>'a) --> (? n.max_in_chain n Y) ==> adm(P::'a=>bool)"
   8.775   (fn prems =>
   8.776 -	[
   8.777 -	(cut_facts_tac prems 1),
   8.778 -	(strip_tac 1),
   8.779 -	(rtac exE 1),
   8.780 -	(rtac mp 1),
   8.781 -	(etac spec 1),
   8.782 -	(atac 1),
   8.783 -	(rtac (lub_finch1 RS thelubI RS ssubst) 1),
   8.784 -	(atac 1),
   8.785 -	(atac 1),
   8.786 -	(etac spec 1)
   8.787 -	]);
   8.788 +        [
   8.789 +        (cut_facts_tac prems 1),
   8.790 +        (strip_tac 1),
   8.791 +        (rtac exE 1),
   8.792 +        (rtac mp 1),
   8.793 +        (etac spec 1),
   8.794 +        (atac 1),
   8.795 +        (rtac (lub_finch1 RS thelubI RS ssubst) 1),
   8.796 +        (atac 1),
   8.797 +        (atac 1),
   8.798 +        (etac spec 1)
   8.799 +        ]);
   8.800  
   8.801  
   8.802  qed_goalw "adm_chain_finite"  Fix.thy  [chain_finite_def]
   8.803 -	"chain_finite(x::'a) ==> adm(P::'a=>bool)"
   8.804 +        "chain_finite(x::'a) ==> adm(P::'a=>bool)"
   8.805   (fn prems =>
   8.806 -	[
   8.807 -	(cut_facts_tac prems 1),
   8.808 -	(etac adm_max_in_chain 1)
   8.809 -	]);
   8.810 +        [
   8.811 +        (cut_facts_tac prems 1),
   8.812 +        (etac adm_max_in_chain 1)
   8.813 +        ]);
   8.814  
   8.815  (* ------------------------------------------------------------------------ *)
   8.816  (* flat types are chain_finite                                              *)
   8.817  (* ------------------------------------------------------------------------ *)
   8.818  
   8.819  qed_goalw "flat_imp_chain_finite"  Fix.thy  [is_flat_def,chain_finite_def]
   8.820 -	"is_flat(x::'a)==>chain_finite(x::'a)"
   8.821 +        "is_flat(x::'a)==>chain_finite(x::'a)"
   8.822   (fn prems =>
   8.823 -	[
   8.824 -	(rewrite_goals_tac [max_in_chain_def]),
   8.825 -	(cut_facts_tac prems 1),
   8.826 -	(strip_tac 1),
   8.827 -	(res_inst_tac [("Q","!i.Y(i)=UU")] classical2 1),
   8.828 -	(res_inst_tac [("x","0")] exI 1),
   8.829 -	(strip_tac 1),
   8.830 -	(rtac trans 1),
   8.831 -	(etac spec 1),
   8.832 -	(rtac sym 1),
   8.833 -	(etac spec 1),
   8.834 -	(rtac (chain_mono2 RS exE) 1),
   8.835 -	(fast_tac HOL_cs 1),
   8.836 -	(atac 1),
   8.837 -	(res_inst_tac [("x","Suc(x)")] exI 1),
   8.838 -	(strip_tac 1),
   8.839 -	(rtac disjE 1),
   8.840 -	(atac 3),
   8.841 -	(rtac mp 1),
   8.842 -	(dtac spec 1),
   8.843 -	(etac spec 1),
   8.844 -	(etac (le_imp_less_or_eq RS disjE) 1),
   8.845 -	(etac (chain_mono RS mp) 1),
   8.846 -	(atac 1),
   8.847 -	(hyp_subst_tac 1),
   8.848 -	(rtac refl_less 1),
   8.849 -	(res_inst_tac [("P","Y(Suc(x)) = UU")] notE 1),
   8.850 -	(atac 2),
   8.851 -	(rtac mp 1),
   8.852 -	(etac spec 1),
   8.853 -	(Asm_simp_tac 1)
   8.854 -	]);
   8.855 +        [
   8.856 +        (rewtac max_in_chain_def),
   8.857 +        (cut_facts_tac prems 1),
   8.858 +        (strip_tac 1),
   8.859 +        (res_inst_tac [("Q","!i.Y(i)=UU")] classical2 1),
   8.860 +        (res_inst_tac [("x","0")] exI 1),
   8.861 +        (strip_tac 1),
   8.862 +        (rtac trans 1),
   8.863 +        (etac spec 1),
   8.864 +        (rtac sym 1),
   8.865 +        (etac spec 1),
   8.866 +        (rtac (chain_mono2 RS exE) 1),
   8.867 +        (fast_tac HOL_cs 1),
   8.868 +        (atac 1),
   8.869 +        (res_inst_tac [("x","Suc(x)")] exI 1),
   8.870 +        (strip_tac 1),
   8.871 +        (rtac disjE 1),
   8.872 +        (atac 3),
   8.873 +        (rtac mp 1),
   8.874 +        (dtac spec 1),
   8.875 +        (etac spec 1),
   8.876 +        (etac (le_imp_less_or_eq RS disjE) 1),
   8.877 +        (etac (chain_mono RS mp) 1),
   8.878 +        (atac 1),
   8.879 +        (hyp_subst_tac 1),
   8.880 +        (rtac refl_less 1),
   8.881 +        (res_inst_tac [("P","Y(Suc(x)) = UU")] notE 1),
   8.882 +        (atac 2),
   8.883 +        (rtac mp 1),
   8.884 +        (etac spec 1),
   8.885 +        (Asm_simp_tac 1)
   8.886 +        ]);
   8.887  
   8.888  
   8.889  val adm_flat = flat_imp_chain_finite RS adm_chain_finite;
   8.890 @@ -589,11 +589,11 @@
   8.891  
   8.892  qed_goalw "flat_void" Fix.thy [is_flat_def] "is_flat(UU::void)"
   8.893   (fn prems =>
   8.894 -	[
   8.895 -	(strip_tac 1),
   8.896 -	(rtac disjI1 1),
   8.897 -	(rtac unique_void2 1)
   8.898 -	]);
   8.899 +        [
   8.900 +        (strip_tac 1),
   8.901 +        (rtac disjI1 1),
   8.902 +        (rtac unique_void2 1)
   8.903 +        ]);
   8.904  
   8.905  (* ------------------------------------------------------------------------ *)
   8.906  (* continuous isomorphisms are strict                                       *)
   8.907 @@ -604,46 +604,46 @@
   8.908  "!!f g.[|!y.f`(g`y)=(y::'b) ; !x.g`(f`x)=(x::'a) |] \
   8.909  \ ==> f`UU=UU & g`UU=UU"
   8.910   (fn prems =>
   8.911 -	[
   8.912 -	(rtac conjI 1),
   8.913 -	(rtac UU_I 1),
   8.914 -	(res_inst_tac [("s","f`(g`(UU::'b))"),("t","UU::'b")] subst 1),
   8.915 -	(etac spec 1),
   8.916 -	(rtac (minimal RS monofun_cfun_arg) 1),
   8.917 -	(rtac UU_I 1),
   8.918 -	(res_inst_tac [("s","g`(f`(UU::'a))"),("t","UU::'a")] subst 1),
   8.919 -	(etac spec 1),
   8.920 -	(rtac (minimal RS monofun_cfun_arg) 1)
   8.921 -	]);
   8.922 +        [
   8.923 +        (rtac conjI 1),
   8.924 +        (rtac UU_I 1),
   8.925 +        (res_inst_tac [("s","f`(g`(UU::'b))"),("t","UU::'b")] subst 1),
   8.926 +        (etac spec 1),
   8.927 +        (rtac (minimal RS monofun_cfun_arg) 1),
   8.928 +        (rtac UU_I 1),
   8.929 +        (res_inst_tac [("s","g`(f`(UU::'a))"),("t","UU::'a")] subst 1),
   8.930 +        (etac spec 1),
   8.931 +        (rtac (minimal RS monofun_cfun_arg) 1)
   8.932 +        ]);
   8.933  
   8.934  
   8.935  qed_goal "isorep_defined" Fix.thy 
   8.936 -	"[|!x.rep`(abs`x)=x;!y.abs`(rep`y)=y; z~=UU|] ==> rep`z ~= UU"
   8.937 +        "[|!x.rep`(abs`x)=x;!y.abs`(rep`y)=y; z~=UU|] ==> rep`z ~= UU"
   8.938   (fn prems =>
   8.939 -	[
   8.940 -	(cut_facts_tac prems 1),
   8.941 -	(etac swap 1),
   8.942 -	(dtac notnotD 1),
   8.943 -	(dres_inst_tac [("f","abs")] cfun_arg_cong 1),
   8.944 -	(etac box_equals 1),
   8.945 -	(fast_tac HOL_cs 1),
   8.946 -	(etac (iso_strict RS conjunct1) 1),
   8.947 -	(atac 1)
   8.948 -	]);
   8.949 +        [
   8.950 +        (cut_facts_tac prems 1),
   8.951 +        (etac swap 1),
   8.952 +        (dtac notnotD 1),
   8.953 +        (dres_inst_tac [("f","abs")] cfun_arg_cong 1),
   8.954 +        (etac box_equals 1),
   8.955 +        (fast_tac HOL_cs 1),
   8.956 +        (etac (iso_strict RS conjunct1) 1),
   8.957 +        (atac 1)
   8.958 +        ]);
   8.959  
   8.960  qed_goal "isoabs_defined" Fix.thy 
   8.961 -	"[|!x.rep`(abs`x) = x;!y.abs`(rep`y)=y ; z~=UU|] ==> abs`z ~= UU"
   8.962 +        "[|!x.rep`(abs`x) = x;!y.abs`(rep`y)=y ; z~=UU|] ==> abs`z ~= UU"
   8.963   (fn prems =>
   8.964 -	[
   8.965 -	(cut_facts_tac prems 1),
   8.966 -	(etac swap 1),
   8.967 -	(dtac notnotD 1),
   8.968 -	(dres_inst_tac [("f","rep")] cfun_arg_cong 1),
   8.969 -	(etac box_equals 1),
   8.970 -	(fast_tac HOL_cs 1),
   8.971 -	(etac (iso_strict RS conjunct2) 1),
   8.972 -	(atac 1)
   8.973 -	]);
   8.974 +        [
   8.975 +        (cut_facts_tac prems 1),
   8.976 +        (etac swap 1),
   8.977 +        (dtac notnotD 1),
   8.978 +        (dres_inst_tac [("f","rep")] cfun_arg_cong 1),
   8.979 +        (etac box_equals 1),
   8.980 +        (fast_tac HOL_cs 1),
   8.981 +        (etac (iso_strict RS conjunct2) 1),
   8.982 +        (atac 1)
   8.983 +        ]);
   8.984  
   8.985  (* ------------------------------------------------------------------------ *)
   8.986  (* propagation of flatness and chainfiniteness by continuous isomorphisms   *)
   8.987 @@ -653,51 +653,51 @@
   8.988  "!!f g.[|chain_finite(x::'a); !y.f`(g`y)=(y::'b) ; !x.g`(f`x)=(x::'a) |] \
   8.989  \ ==> chain_finite(y::'b)"
   8.990   (fn prems =>
   8.991 -	[
   8.992 -	(rewrite_goals_tac [max_in_chain_def]),
   8.993 -	(strip_tac 1),
   8.994 -	(rtac exE 1),
   8.995 -	(res_inst_tac [("P","is_chain(%i.g`(Y i))")] mp 1),
   8.996 -	(etac spec 1),
   8.997 -	(etac ch2ch_fappR 1),
   8.998 -	(rtac exI 1),
   8.999 -	(strip_tac 1),
  8.1000 -	(res_inst_tac [("s","f`(g`(Y x))"),("t","Y(x)")] subst 1),
  8.1001 -	(etac spec 1),
  8.1002 -	(res_inst_tac [("s","f`(g`(Y j))"),("t","Y(j)")] subst 1),
  8.1003 -	(etac spec 1),
  8.1004 -	(rtac cfun_arg_cong 1),
  8.1005 -	(rtac mp 1),
  8.1006 -	(etac spec 1),
  8.1007 -	(atac 1)
  8.1008 -	]);
  8.1009 +        [
  8.1010 +        (rewtac max_in_chain_def),
  8.1011 +        (strip_tac 1),
  8.1012 +        (rtac exE 1),
  8.1013 +        (res_inst_tac [("P","is_chain(%i.g`(Y i))")] mp 1),
  8.1014 +        (etac spec 1),
  8.1015 +        (etac ch2ch_fappR 1),
  8.1016 +        (rtac exI 1),
  8.1017 +        (strip_tac 1),
  8.1018 +        (res_inst_tac [("s","f`(g`(Y x))"),("t","Y(x)")] subst 1),
  8.1019 +        (etac spec 1),
  8.1020 +        (res_inst_tac [("s","f`(g`(Y j))"),("t","Y(j)")] subst 1),
  8.1021 +        (etac spec 1),
  8.1022 +        (rtac cfun_arg_cong 1),
  8.1023 +        (rtac mp 1),
  8.1024 +        (etac spec 1),
  8.1025 +        (atac 1)
  8.1026 +        ]);
  8.1027  
  8.1028  qed_goalw "flat2flat"  Fix.thy  [is_flat_def]
  8.1029  "!!f g.[|is_flat(x::'a); !y.f`(g`y)=(y::'b) ; !x.g`(f`x)=(x::'a) |] \
  8.1030  \ ==> is_flat(y::'b)"
  8.1031   (fn prems =>
  8.1032 -	[
  8.1033 -	(strip_tac 1),
  8.1034 -	(rtac disjE 1),
  8.1035 -	(res_inst_tac [("P","g`x<<g`y")] mp 1),
  8.1036 -	(etac monofun_cfun_arg 2),
  8.1037 -	(dtac spec 1),
  8.1038 -	(etac spec 1),
  8.1039 -	(rtac disjI1 1),
  8.1040 -	(rtac trans 1),
  8.1041 -	(res_inst_tac [("s","f`(g`x)"),("t","x")] subst 1),
  8.1042 -	(etac spec 1),
  8.1043 -	(etac cfun_arg_cong 1),
  8.1044 -	(rtac (iso_strict RS conjunct1) 1),
  8.1045 -	(atac 1),
  8.1046 -	(atac 1),
  8.1047 -	(rtac disjI2 1),
  8.1048 -	(res_inst_tac [("s","f`(g`x)"),("t","x")] subst 1),
  8.1049 -	(etac spec 1),
  8.1050 -	(res_inst_tac [("s","f`(g`y)"),("t","y")] subst 1),
  8.1051 -	(etac spec 1),
  8.1052 -	(etac cfun_arg_cong 1)
  8.1053 -	]);
  8.1054 +        [
  8.1055 +        (strip_tac 1),
  8.1056 +        (rtac disjE 1),
  8.1057 +        (res_inst_tac [("P","g`x<<g`y")] mp 1),
  8.1058 +        (etac monofun_cfun_arg 2),
  8.1059 +        (dtac spec 1),
  8.1060 +        (etac spec 1),
  8.1061 +        (rtac disjI1 1),
  8.1062 +        (rtac trans 1),
  8.1063 +        (res_inst_tac [("s","f`(g`x)"),("t","x")] subst 1),
  8.1064 +        (etac spec 1),
  8.1065 +        (etac cfun_arg_cong 1),
  8.1066 +        (rtac (iso_strict RS conjunct1) 1),
  8.1067 +        (atac 1),
  8.1068 +        (atac 1),
  8.1069 +        (rtac disjI2 1),
  8.1070 +        (res_inst_tac [("s","f`(g`x)"),("t","x")] subst 1),
  8.1071 +        (etac spec 1),
  8.1072 +        (res_inst_tac [("s","f`(g`y)"),("t","y")] subst 1),
  8.1073 +        (etac spec 1),
  8.1074 +        (etac cfun_arg_cong 1)
  8.1075 +        ]);
  8.1076  
  8.1077  (* ------------------------------------------------------------------------- *)
  8.1078  (* a result about functions with flat codomain                               *)
  8.1079 @@ -706,191 +706,191 @@
  8.1080  qed_goalw "flat_codom" Fix.thy [is_flat_def]
  8.1081  "[|is_flat(y::'b);f`(x::'a)=(c::'b)|] ==> f`(UU::'a)=(UU::'b) | (!z.f`(z::'a)=c)"
  8.1082   (fn prems =>
  8.1083 -	[
  8.1084 -	(cut_facts_tac prems 1),
  8.1085 -	(res_inst_tac [("Q","f`(x::'a)=(UU::'b)")] classical2 1),
  8.1086 -	(rtac disjI1 1),
  8.1087 -	(rtac UU_I 1),
  8.1088 -	(res_inst_tac [("s","f`(x)"),("t","UU::'b")] subst 1),
  8.1089 -	(atac 1),
  8.1090 -	(rtac (minimal RS monofun_cfun_arg) 1),
  8.1091 -	(res_inst_tac [("Q","f`(UU::'a)=(UU::'b)")] classical2 1),
  8.1092 -	(etac disjI1 1),
  8.1093 -	(rtac disjI2 1),
  8.1094 -	(rtac allI 1),
  8.1095 -	(res_inst_tac [("s","f`x"),("t","c")] subst 1),
  8.1096 -	(atac 1),
  8.1097 -	(res_inst_tac [("a","f`(UU::'a)")] (refl RS box_equals) 1),
  8.1098 -	(etac allE 1),(etac allE 1),
  8.1099 -	(dtac mp 1),
  8.1100 -	(res_inst_tac [("fo5","f")] (minimal RS monofun_cfun_arg) 1),
  8.1101 -	(etac disjE 1),
  8.1102 -	(contr_tac 1),
  8.1103 -	(atac 1),
  8.1104 -	(etac allE 1),
  8.1105 -	(etac allE 1),
  8.1106 -	(dtac mp 1),
  8.1107 -	(res_inst_tac [("fo5","f")] (minimal RS monofun_cfun_arg) 1),
  8.1108 -	(etac disjE 1),
  8.1109 -	(contr_tac 1),
  8.1110 -	(atac 1)
  8.1111 -	]);
  8.1112 +        [
  8.1113 +        (cut_facts_tac prems 1),
  8.1114 +        (res_inst_tac [("Q","f`(x::'a)=(UU::'b)")] classical2 1),
  8.1115 +        (rtac disjI1 1),
  8.1116 +        (rtac UU_I 1),
  8.1117 +        (res_inst_tac [("s","f`(x)"),("t","UU::'b")] subst 1),
  8.1118 +        (atac 1),
  8.1119 +        (rtac (minimal RS monofun_cfun_arg) 1),
  8.1120 +        (res_inst_tac [("Q","f`(UU::'a)=(UU::'b)")] classical2 1),
  8.1121 +        (etac disjI1 1),
  8.1122 +        (rtac disjI2 1),
  8.1123 +        (rtac allI 1),
  8.1124 +        (res_inst_tac [("s","f`x"),("t","c")] subst 1),
  8.1125 +        (atac 1),
  8.1126 +        (res_inst_tac [("a","f`(UU::'a)")] (refl RS box_equals) 1),
  8.1127 +        (etac allE 1),(etac allE 1),
  8.1128 +        (dtac mp 1),
  8.1129 +        (res_inst_tac [("fo5","f")] (minimal RS monofun_cfun_arg) 1),
  8.1130 +        (etac disjE 1),
  8.1131 +        (contr_tac 1),
  8.1132 +        (atac 1),
  8.1133 +        (etac allE 1),
  8.1134 +        (etac allE 1),
  8.1135 +        (dtac mp 1),
  8.1136 +        (res_inst_tac [("fo5","f")] (minimal RS monofun_cfun_arg) 1),
  8.1137 +        (etac disjE 1),
  8.1138 +        (contr_tac 1),
  8.1139 +        (atac 1)
  8.1140 +        ]);
  8.1141  
  8.1142  (* ------------------------------------------------------------------------ *)
  8.1143  (* admissibility of special formulae and propagation                        *)
  8.1144  (* ------------------------------------------------------------------------ *)
  8.1145  
  8.1146  qed_goalw "adm_less"  Fix.thy [adm_def]
  8.1147 -	"[|cont u;cont v|]==> adm(%x.u x << v x)"
  8.1148 +        "[|cont u;cont v|]==> adm(%x.u x << v x)"
  8.1149   (fn prems =>
  8.1150 -	[
  8.1151 -	(cut_facts_tac prems 1),
  8.1152 -	(strip_tac 1),
  8.1153 -	(etac (cont2contlub RS contlubE RS spec RS mp RS ssubst) 1),
  8.1154 -	(atac 1),
  8.1155 -	(etac (cont2contlub RS contlubE RS spec RS mp RS ssubst) 1),
  8.1156 -	(atac 1),
  8.1157 -	(rtac lub_mono 1),
  8.1158 -	(cut_facts_tac prems 1),
  8.1159 -	(etac (cont2mono RS ch2ch_monofun) 1),
  8.1160 -	(atac 1),
  8.1161 -	(cut_facts_tac prems 1),
  8.1162 -	(etac (cont2mono RS ch2ch_monofun) 1),
  8.1163 -	(atac 1),
  8.1164 -	(atac 1)
  8.1165 -	]);
  8.1166 +        [
  8.1167 +        (cut_facts_tac prems 1),
  8.1168 +        (strip_tac 1),
  8.1169 +        (etac (cont2contlub RS contlubE RS spec RS mp RS ssubst) 1),
  8.1170 +        (atac 1),
  8.1171 +        (etac (cont2contlub RS contlubE RS spec RS mp RS ssubst) 1),
  8.1172 +        (atac 1),
  8.1173 +        (rtac lub_mono 1),
  8.1174 +        (cut_facts_tac prems 1),
  8.1175 +        (etac (cont2mono RS ch2ch_monofun) 1),
  8.1176 +        (atac 1),
  8.1177 +        (cut_facts_tac prems 1),
  8.1178 +        (etac (cont2mono RS ch2ch_monofun) 1),
  8.1179 +        (atac 1),
  8.1180 +        (atac 1)
  8.1181 +        ]);
  8.1182  
  8.1183  qed_goal "adm_conj"  Fix.thy  
  8.1184 -	"[| adm P; adm Q |] ==> adm(%x. P x & Q x)"
  8.1185 +        "[| adm P; adm Q |] ==> adm(%x. P x & Q x)"
  8.1186   (fn prems =>
  8.1187 -	[
  8.1188 -	(cut_facts_tac prems 1),
  8.1189 -	(rtac (adm_def2 RS iffD2) 1),
  8.1190 -	(strip_tac 1),
  8.1191 -	(rtac conjI 1),
  8.1192 -	(rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
  8.1193 -	(atac 1),
  8.1194 -	(atac 1),
  8.1195 -	(fast_tac HOL_cs 1),
  8.1196 -	(rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
  8.1197 -	(atac 1),
  8.1198 -	(atac 1),
  8.1199 -	(fast_tac HOL_cs 1)
  8.1200 -	]);
  8.1201 +        [
  8.1202 +        (cut_facts_tac prems 1),
  8.1203 +        (rtac (adm_def2 RS iffD2) 1),
  8.1204 +        (strip_tac 1),
  8.1205 +        (rtac conjI 1),
  8.1206 +        (rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
  8.1207 +        (atac 1),
  8.1208 +        (atac 1),
  8.1209 +        (fast_tac HOL_cs 1),
  8.1210 +        (rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
  8.1211 +        (atac 1),
  8.1212 +        (atac 1),
  8.1213 +        (fast_tac HOL_cs 1)
  8.1214 +        ]);
  8.1215  
  8.1216  qed_goal "adm_cong"  Fix.thy  
  8.1217 -	"(!x. P x = Q x) ==> adm P = adm Q "
  8.1218 +        "(!x. P x = Q x) ==> adm P = adm Q "
  8.1219   (fn prems =>
  8.1220 -	[
  8.1221 -	(cut_facts_tac prems 1),
  8.1222 -	(res_inst_tac [("s","P"),("t","Q")] subst 1),
  8.1223 -	(rtac refl 2),
  8.1224 -	(rtac ext 1),
  8.1225 -	(etac spec 1)
  8.1226 -	]);
  8.1227 +        [
  8.1228 +        (cut_facts_tac prems 1),
  8.1229 +        (res_inst_tac [("s","P"),("t","Q")] subst 1),
  8.1230 +        (rtac refl 2),
  8.1231 +        (rtac ext 1),
  8.1232 +        (etac spec 1)
  8.1233 +        ]);
  8.1234  
  8.1235  qed_goalw "adm_not_free"  Fix.thy [adm_def] "adm(%x.t)"
  8.1236   (fn prems =>
  8.1237 -	[
  8.1238 -	(fast_tac HOL_cs 1)
  8.1239 -	]);
  8.1240 +        [
  8.1241 +        (fast_tac HOL_cs 1)
  8.1242 +        ]);
  8.1243  
  8.1244  qed_goalw "adm_not_less"  Fix.thy [adm_def]
  8.1245 -	"cont t ==> adm(%x.~ (t x) << u)"
  8.1246 +        "cont t ==> adm(%x.~ (t x) << u)"
  8.1247   (fn prems =>
  8.1248 -	[
  8.1249 -	(cut_facts_tac prems 1),
  8.1250 -	(strip_tac 1),
  8.1251 -	(rtac contrapos 1),
  8.1252 -	(etac spec 1),
  8.1253 -	(rtac trans_less 1),
  8.1254 -	(atac 2),
  8.1255 -	(etac (cont2mono RS monofun_fun_arg) 1),
  8.1256 -	(rtac is_ub_thelub 1),
  8.1257 -	(atac 1)
  8.1258 -	]);
  8.1259 +        [
  8.1260 +        (cut_facts_tac prems 1),
  8.1261 +        (strip_tac 1),
  8.1262 +        (rtac contrapos 1),
  8.1263 +        (etac spec 1),
  8.1264 +        (rtac trans_less 1),
  8.1265 +        (atac 2),
  8.1266 +        (etac (cont2mono RS monofun_fun_arg) 1),
  8.1267 +        (rtac is_ub_thelub 1),
  8.1268 +        (atac 1)
  8.1269 +        ]);
  8.1270  
  8.1271  qed_goal "adm_all"  Fix.thy  
  8.1272 -	" !y.adm(P y) ==> adm(%x.!y.P y x)"
  8.1273 +        " !y.adm(P y) ==> adm(%x.!y.P y x)"
  8.1274   (fn prems =>
  8.1275 -	[
  8.1276 -	(cut_facts_tac prems 1),
  8.1277 -	(rtac (adm_def2 RS iffD2) 1),
  8.1278 -	(strip_tac 1),
  8.1279 -	(rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
  8.1280 -	(etac spec 1),
  8.1281 -	(atac 1),
  8.1282 -	(rtac allI 1),
  8.1283 -	(dtac spec 1),
  8.1284 -	(etac spec 1)
  8.1285 -	]);
  8.1286 +        [
  8.1287 +        (cut_facts_tac prems 1),
  8.1288 +        (rtac (adm_def2 RS iffD2) 1),
  8.1289 +        (strip_tac 1),
  8.1290 +        (rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
  8.1291 +        (etac spec 1),
  8.1292 +        (atac 1),
  8.1293 +        (rtac allI 1),
  8.1294 +        (dtac spec 1),
  8.1295 +        (etac spec 1)
  8.1296 +        ]);
  8.1297  
  8.1298  val adm_all2 = (allI RS adm_all);
  8.1299  
  8.1300  qed_goal "adm_subst"  Fix.thy  
  8.1301 -	"[|cont t; adm P|] ==> adm(%x. P (t x))"
  8.1302 +        "[|cont t; adm P|] ==> adm(%x. P (t x))"
  8.1303   (fn prems =>
  8.1304 -	[
  8.1305 -	(cut_facts_tac prems 1),
  8.1306 -	(rtac (adm_def2 RS iffD2) 1),
  8.1307 -	(strip_tac 1),
  8.1308 -	(rtac (cont2contlub RS contlubE RS spec RS mp RS ssubst) 1),
  8.1309 -	(atac 1),
  8.1310 -	(atac 1),
  8.1311 -	(rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
  8.1312 -	(atac 1),
  8.1313 -	(rtac (cont2mono RS ch2ch_monofun) 1),
  8.1314 -	(atac 1),
  8.1315 -	(atac 1),
  8.1316 -	(atac 1)
  8.1317 -	]);
  8.1318 +        [
  8.1319 +        (cut_facts_tac prems 1),
  8.1320 +        (rtac (adm_def2 RS iffD2) 1),
  8.1321 +        (strip_tac 1),
  8.1322 +        (rtac (cont2contlub RS contlubE RS spec RS mp RS ssubst) 1),
  8.1323 +        (atac 1),
  8.1324 +        (atac 1),
  8.1325 +        (rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
  8.1326 +        (atac 1),
  8.1327 +        (rtac (cont2mono RS ch2ch_monofun) 1),
  8.1328 +        (atac 1),
  8.1329 +        (atac 1),
  8.1330 +        (atac 1)
  8.1331 +        ]);
  8.1332  
  8.1333  qed_goal "adm_UU_not_less"  Fix.thy "adm(%x.~ UU << t(x))"
  8.1334   (fn prems =>
  8.1335 -	[
  8.1336 -	(res_inst_tac [("P2","%x.False")] (adm_cong RS iffD1) 1),
  8.1337 -	(Asm_simp_tac 1),
  8.1338 -	(rtac adm_not_free 1)
  8.1339 -	]);
  8.1340 +        [
  8.1341 +        (res_inst_tac [("P2","%x.False")] (adm_cong RS iffD1) 1),
  8.1342 +        (Asm_simp_tac 1),
  8.1343 +        (rtac adm_not_free 1)
  8.1344 +        ]);
  8.1345  
  8.1346  qed_goalw "adm_not_UU"  Fix.thy [adm_def] 
  8.1347 -	"cont(t)==> adm(%x.~ (t x) = UU)"
  8.1348 +        "cont(t)==> adm(%x.~ (t x) = UU)"
  8.1349   (fn prems =>
  8.1350 -	[
  8.1351 -	(cut_facts_tac prems 1),
  8.1352 -	(strip_tac 1),
  8.1353 -	(rtac contrapos 1),
  8.1354 -	(etac spec 1),
  8.1355 -	(rtac (chain_UU_I RS spec) 1),
  8.1356 -	(rtac (cont2mono RS ch2ch_monofun) 1),
  8.1357 -	(atac 1),
  8.1358 -	(atac 1),
  8.1359 -	(rtac (cont2contlub RS contlubE RS spec RS mp RS subst) 1),
  8.1360 -	(atac 1),
  8.1361 -	(atac 1),
  8.1362 -	(atac 1)
  8.1363 -	]);
  8.1364 +        [
  8.1365 +        (cut_facts_tac prems 1),
  8.1366 +        (strip_tac 1),
  8.1367 +        (rtac contrapos 1),
  8.1368 +        (etac spec 1),
  8.1369 +        (rtac (chain_UU_I RS spec) 1),
  8.1370 +        (rtac (cont2mono RS ch2ch_monofun) 1),
  8.1371 +        (atac 1),
  8.1372 +        (atac 1),
  8.1373 +        (rtac (cont2contlub RS contlubE RS spec RS mp RS subst) 1),
  8.1374 +        (atac 1),
  8.1375 +        (atac 1),
  8.1376 +        (atac 1)
  8.1377 +        ]);
  8.1378  
  8.1379  qed_goal "adm_eq"  Fix.thy 
  8.1380 -	"[|cont u ; cont v|]==> adm(%x. u x = v x)"
  8.1381 +        "[|cont u ; cont v|]==> adm(%x. u x = v x)"
  8.1382   (fn prems =>
  8.1383 -	[
  8.1384 -	(rtac (adm_cong RS iffD1) 1),
  8.1385 -	(rtac allI 1),
  8.1386 -	(rtac iffI 1),
  8.1387 -	(rtac antisym_less 1),
  8.1388 -	(rtac antisym_less_inverse 3),
  8.1389 -	(atac 3),
  8.1390 -	(etac conjunct1 1),
  8.1391 -	(etac conjunct2 1),
  8.1392 -	(rtac adm_conj 1),
  8.1393 -	(rtac adm_less 1),
  8.1394 -	(resolve_tac prems 1),
  8.1395 -	(resolve_tac prems 1),
  8.1396 -	(rtac adm_less 1),
  8.1397 -	(resolve_tac prems 1),
  8.1398 -	(resolve_tac prems 1)
  8.1399 -	]);
  8.1400 +        [
  8.1401 +        (rtac (adm_cong RS iffD1) 1),
  8.1402 +        (rtac allI 1),
  8.1403 +        (rtac iffI 1),
  8.1404 +        (rtac antisym_less 1),
  8.1405 +        (rtac antisym_less_inverse 3),
  8.1406 +        (atac 3),
  8.1407 +        (etac conjunct1 1),
  8.1408 +        (etac conjunct2 1),
  8.1409 +        (rtac adm_conj 1),
  8.1410 +        (rtac adm_less 1),
  8.1411 +        (resolve_tac prems 1),
  8.1412 +        (resolve_tac prems 1),
  8.1413 +        (rtac adm_less 1),
  8.1414 +        (resolve_tac prems 1),
  8.1415 +        (resolve_tac prems 1)
  8.1416 +        ]);
  8.1417  
  8.1418  
  8.1419  (* ------------------------------------------------------------------------ *)
  8.1420 @@ -901,279 +901,279 @@
  8.1421  "[| is_chain Y; !n.P (Y n) | Q(Y n)|]\
  8.1422  \ ==> (? i.!j. i<j --> Q(Y(j))) | (!i.? j.i<j & P(Y(j)))"
  8.1423   (fn prems =>
  8.1424 -	[
  8.1425 -	(cut_facts_tac prems 1),
  8.1426 -	(fast_tac HOL_cs 1)
  8.1427 -	]);
  8.1428 +        [
  8.1429 +        (cut_facts_tac prems 1),
  8.1430 +        (fast_tac HOL_cs 1)
  8.1431 +        ]);
  8.1432  
  8.1433  qed_goal "adm_disj_lemma2"  Fix.thy  
  8.1434  "[| adm(Q); ? X.is_chain(X) & (!n.Q(X(n))) &\
  8.1435  \   lub(range(Y))=lub(range(X))|] ==> Q(lub(range(Y)))"
  8.1436   (fn prems =>
  8.1437 -	[
  8.1438 -	(cut_facts_tac prems 1),
  8.1439 -	(etac exE 1),
  8.1440 -	(etac conjE 1),
  8.1441 -	(etac conjE 1),
  8.1442 -	(res_inst_tac [("s","lub(range(X))"),("t","lub(range(Y))")] ssubst 1),
  8.1443 -	(atac 1),
  8.1444 -	(rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
  8.1445 -	(atac 1),
  8.1446 -	(atac 1),
  8.1447 -	(atac 1)
  8.1448 -	]);
  8.1449 +        [
  8.1450 +        (cut_facts_tac prems 1),
  8.1451 +        (etac exE 1),
  8.1452 +        (etac conjE 1),
  8.1453 +        (etac conjE 1),
  8.1454 +        (res_inst_tac [("s","lub(range(X))"),("t","lub(range(Y))")] ssubst 1),
  8.1455 +        (atac 1),
  8.1456 +        (rtac (adm_def2 RS iffD1 RS spec RS mp RS mp) 1),
  8.1457 +        (atac 1),
  8.1458 +        (atac 1),
  8.1459 +        (atac 1)
  8.1460 +        ]);
  8.1461  
  8.1462  qed_goal "adm_disj_lemma3"  Fix.thy
  8.1463  "[| is_chain(Y); ! j. i < j --> Q(Y(j)) |] ==>\
  8.1464  \         is_chain(%m. if m < Suc i then Y(Suc i) else Y m)"
  8.1465   (fn prems =>
  8.1466 -	[
  8.1467 -	(cut_facts_tac prems 1),
  8.1468 -	(rtac is_chainI 1),
  8.1469 -	(rtac allI 1),
  8.1470 -	(res_inst_tac [("m","i"),("n","ia")] nat_less_cases 1),
  8.1471 -	(res_inst_tac [("s","False"),("t","ia < Suc(i)")] ssubst 1),
  8.1472 -	(rtac iffI 1),
  8.1473 -	(etac FalseE 2),
  8.1474 -	(rtac notE 1),
  8.1475 -	(rtac (not_less_eq RS iffD2) 1),
  8.1476 -	(atac 1),
  8.1477 -	(atac 1),
  8.1478 -	(res_inst_tac [("s","False"),("t","Suc(ia) < Suc(i)")] ssubst 1),
  8.1479 -	(Asm_simp_tac  1),
  8.1480 -	(rtac iffI 1),
  8.1481 -	(etac FalseE 2),
  8.1482 -	(rtac notE 1),
  8.1483 -	(etac less_not_sym 1),	
  8.1484 -	(atac 1),
  8.1485 -	(Asm_simp_tac 1),
  8.1486 -	(etac (is_chainE RS spec) 1),
  8.1487 -	(hyp_subst_tac 1),
  8.1488 -	(Asm_simp_tac 1),
  8.1489 -	(Asm_simp_tac 1)
  8.1490 -	]);
  8.1491 +        [
  8.1492 +        (cut_facts_tac prems 1),
  8.1493 +        (rtac is_chainI 1),
  8.1494 +        (rtac allI 1),
  8.1495 +        (res_inst_tac [("m","i"),("n","ia")] nat_less_cases 1),
  8.1496 +        (res_inst_tac [("s","False"),("t","ia < Suc(i)")] ssubst 1),
  8.1497 +        (rtac iffI 1),
  8.1498 +        (etac FalseE 2),
  8.1499 +        (rtac notE 1),
  8.1500 +        (rtac (not_less_eq RS iffD2) 1),
  8.1501 +        (atac 1),
  8.1502 +        (atac 1),
  8.1503 +        (res_inst_tac [("s","False"),("t","Suc(ia) < Suc(i)")] ssubst 1),
  8.1504 +        (Asm_simp_tac  1),
  8.1505 +        (rtac iffI 1),
  8.1506 +        (etac FalseE 2),
  8.1507 +        (rtac notE 1),
  8.1508 +        (etac less_not_sym 1),  
  8.1509 +        (atac 1),
  8.1510 +        (Asm_simp_tac 1),
  8.1511 +        (etac (is_chainE RS spec) 1),
  8.1512 +        (hyp_subst_tac 1),
  8.1513 +        (Asm_simp_tac 1),
  8.1514 +        (Asm_simp_tac 1)
  8.1515 +        ]);
  8.1516  
  8.1517  qed_goal "adm_disj_lemma4"  Fix.thy
  8.1518  "[| ! j. i < j --> Q(Y(j)) |] ==>\
  8.1519 -\	 ! n. Q( if n < Suc i then Y(Suc i) else Y n)"
  8.1520 +\        ! n. Q( if n < Suc i then Y(Suc i) else Y n)"
  8.1521   (fn prems =>
  8.1522 -	[
  8.1523 -	(cut_facts_tac prems 1),
  8.1524 -	(rtac allI 1),
  8.1525 -	(res_inst_tac [("m","n"),("n","Suc(i)")] nat_less_cases 1),
  8.1526 -	(res_inst_tac[("s","Y(Suc(i))"),("t","if n<Suc(i) then Y(Suc(i)) else Y n")] ssubst 1),
  8.1527 -	(Asm_simp_tac 1),
  8.1528 -	(etac allE 1),
  8.1529 -	(rtac mp 1),
  8.1530 -	(atac 1),
  8.1531 -	(Asm_simp_tac 1),
  8.1532 -	(res_inst_tac[("s","Y(n)"),("t","if n<Suc(i) then Y(Suc(i)) else Y(n)")] ssubst 1),
  8.1533 -	(Asm_simp_tac 1),
  8.1534 -	(hyp_subst_tac 1),
  8.1535 -	(dtac spec 1),
  8.1536 -	(rtac mp 1),
  8.1537 -	(atac 1),
  8.1538 -	(Asm_simp_tac 1),
  8.1539 -	(res_inst_tac [("s","Y(n)"),("t","if n < Suc(i) then Y(Suc(i)) else Y(n)")] ssubst 1),
  8.1540 -	(res_inst_tac [("s","False"),("t","n < Suc(i)")] ssubst 1),
  8.1541 -	(rtac iffI 1),
  8.1542 -	(etac FalseE 2),
  8.1543 -	(rtac notE 1),
  8.1544 -	(etac less_not_sym 1),	
  8.1545 -	(atac 1),
  8.1546 -	(Asm_simp_tac 1),
  8.1547 -	(dtac spec 1),
  8.1548 -	(rtac mp 1),
  8.1549 -	(atac 1),
  8.1550 -	(etac Suc_lessD 1)
  8.1551 -	]);
  8.1552 +        [
  8.1553 +        (cut_facts_tac prems 1),
  8.1554 +        (rtac allI 1),
  8.1555 +        (res_inst_tac [("m","n"),("n","Suc(i)")] nat_less_cases 1),
  8.1556 +        (res_inst_tac[("s","Y(Suc(i))"),("t","if n<Suc(i) then Y(Suc(i)) else Y n")] ssubst 1),
  8.1557 +        (Asm_simp_tac 1),
  8.1558 +        (etac allE 1),
  8.1559 +        (rtac mp 1),
  8.1560 +        (atac 1),
  8.1561 +        (Asm_simp_tac 1),
  8.1562 +        (res_inst_tac[("s","Y(n)"),("t","if n<Suc(i) then Y(Suc(i)) else Y(n)")] ssubst 1),
  8.1563 +        (Asm_simp_tac 1),
  8.1564 +        (hyp_subst_tac 1),
  8.1565 +        (dtac spec 1),
  8.1566 +        (rtac mp 1),
  8.1567 +        (atac 1),
  8.1568 +        (Asm_simp_tac 1),
  8.1569 +        (res_inst_tac [("s","Y(n)"),("t","if n < Suc(i) then Y(Suc(i)) else Y(n)")] ssubst 1),
  8.1570 +        (res_inst_tac [("s","False"),("t","n < Suc(i)")] ssubst 1),
  8.1571 +        (rtac iffI 1),
  8.1572 +        (etac FalseE 2),
  8.1573 +        (rtac notE 1),
  8.1574 +        (etac less_not_sym 1),  
  8.1575 +        (atac 1),
  8.1576 +        (Asm_simp_tac 1),
  8.1577 +        (dtac spec 1),
  8.1578 +        (rtac mp 1),
  8.1579 +        (atac 1),
  8.1580 +        (etac Suc_lessD 1)
  8.1581 +        ]);
  8.1582  
  8.1583  qed_goal "adm_disj_lemma5"  Fix.thy
  8.1584  "[| is_chain(Y::nat=>'a); ! j. i < j --> Q(Y(j)) |] ==>\
  8.1585  \         lub(range(Y)) = lub(range(%m. if m< Suc(i) then Y(Suc(i)) else Y m))"
  8.1586   (fn prems =>
  8.1587 -	[
  8.1588 -	(cut_facts_tac prems 1),
  8.1589 -	(rtac lub_equal2 1),
  8.1590 -	(atac 2),
  8.1591 -	(rtac adm_disj_lemma3 2),
  8.1592 -	(atac 2),
  8.1593 -	(atac 2),
  8.1594 -	(res_inst_tac [("x","i")] exI 1),
  8.1595 -	(strip_tac 1),
  8.1596 -	(res_inst_tac [("s","False"),("t","ia < Suc(i)")] ssubst 1),
  8.1597 -	(rtac iffI 1),
  8.1598 -	(etac FalseE 2),
  8.1599 -	(rtac notE 1),
  8.1600 -	(rtac (not_less_eq RS iffD2) 1),
  8.1601 -	(atac 1),
  8.1602 -	(atac 1),
  8.1603 -	(rtac (if_False RS ssubst) 1),
  8.1604 -	(rtac refl 1)
  8.1605 -	]);
  8.1606 +        [
  8.1607 +        (cut_facts_tac prems 1),
  8.1608 +        (rtac lub_equal2 1),
  8.1609 +        (atac 2),
  8.1610 +        (rtac adm_disj_lemma3 2),
  8.1611 +        (atac 2),
  8.1612 +        (atac 2),
  8.1613 +        (res_inst_tac [("x","i")] exI 1),
  8.1614 +        (strip_tac 1),
  8.1615 +        (res_inst_tac [("s","False"),("t","ia < Suc(i)")] ssubst 1),
  8.1616 +        (rtac iffI 1),
  8.1617 +        (etac FalseE 2),
  8.1618 +        (rtac notE 1),
  8.1619 +        (rtac (not_less_eq RS iffD2) 1),
  8.1620 +        (atac 1),
  8.1621 +        (atac 1),
  8.1622 +        (rtac (if_False RS ssubst) 1),
  8.1623 +        (rtac refl 1)
  8.1624 +        ]);
  8.1625  
  8.1626  qed_goal "adm_disj_lemma6"  Fix.thy
  8.1627  "[| is_chain(Y::nat=>'a); ? i. ! j. i < j --> Q(Y(j)) |] ==>\
  8.1628  \         ? X. is_chain(X) & (! n. Q(X(n))) & lub(range(Y)) = lub(range(X))"
  8.1629   (fn prems =>
  8.1630 -	[
  8.1631 -	(cut_facts_tac prems 1),
  8.1632 -	(etac exE 1),
  8.1633 -	(res_inst_tac [("x","%m.if m<Suc(i) then Y(Suc(i)) else Y m")] exI 1),
  8.1634 -	(rtac conjI 1),
  8.1635 -	(rtac adm_disj_lemma3 1),
  8.1636 -	(atac 1),
  8.1637 -	(atac 1),
  8.1638 -	(rtac conjI 1),
  8.1639 -	(rtac adm_disj_lemma4 1),
  8.1640 -	(atac 1),
  8.1641 -	(rtac adm_disj_lemma5 1),
  8.1642 -	(atac 1),
  8.1643 -	(atac 1)
  8.1644 -	]);
  8.1645 +        [
  8.1646 +        (cut_facts_tac prems 1),
  8.1647 +        (etac exE 1),
  8.1648 +        (res_inst_tac [("x","%m.if m<Suc(i) then Y(Suc(i)) else Y m")] exI 1),
  8.1649 +        (rtac conjI 1),
  8.1650 +        (rtac adm_disj_lemma3 1),
  8.1651 +        (atac 1),
  8.1652 +        (atac 1),
  8.1653 +        (rtac conjI 1),
  8.1654 +        (rtac adm_disj_lemma4 1),
  8.1655 +        (atac 1),
  8.1656 +        (rtac adm_disj_lemma5 1),
  8.1657 +        (atac 1),
  8.1658 +        (atac 1)
  8.1659 +        ]);
  8.1660  
  8.1661  
  8.1662  qed_goal "adm_disj_lemma7"  Fix.thy 
  8.1663  "[| is_chain(Y::nat=>'a); ! i. ? j. i < j & P(Y(j))  |] ==>\
  8.1664  \         is_chain(%m. Y(theleast(%j. m<j & P(Y(j)))))"
  8.1665   (fn prems =>
  8.1666 -	[
  8.1667 -	(cut_facts_tac prems 1),
  8.1668 -	(rtac is_chainI 1),
  8.1669 -	(rtac allI 1),
  8.1670 -	(rtac chain_mono3 1),
  8.1671 -	(atac 1),
  8.1672 -	(rtac theleast2 1),
  8.1673 -	(rtac conjI 1),
  8.1674 -	(rtac Suc_lessD 1),
  8.1675 -	(etac allE 1),
  8.1676 -	(etac exE 1),
  8.1677 -	(rtac (theleast1 RS conjunct1) 1),
  8.1678 -	(atac 1),
  8.1679 -	(etac allE 1),
  8.1680 -	(etac exE 1),
  8.1681 -	(rtac (theleast1 RS conjunct2) 1),
  8.1682 -	(atac 1)
  8.1683 -	]);
  8.1684 +        [
  8.1685 +        (cut_facts_tac prems 1),
  8.1686 +        (rtac is_chainI 1),
  8.1687 +        (rtac allI 1),
  8.1688 +        (rtac chain_mono3 1),
  8.1689 +        (atac 1),
  8.1690 +        (rtac theleast2 1),
  8.1691 +        (rtac conjI 1),
  8.1692 +        (rtac Suc_lessD 1),
  8.1693 +        (etac allE 1),
  8.1694 +        (etac exE 1),
  8.1695 +        (rtac (theleast1 RS conjunct1) 1),
  8.1696 +        (atac 1),
  8.1697 +        (etac allE 1),
  8.1698 +        (etac exE 1),
  8.1699 +        (rtac (theleast1 RS conjunct2) 1),
  8.1700 +        (atac 1)
  8.1701 +        ]);
  8.1702  
  8.1703  qed_goal "adm_disj_lemma8"  Fix.thy 
  8.1704  "[| ! i. ? j. i < j & P(Y(j)) |] ==> ! m. P(Y(theleast(%j. m<j & P(Y(j)))))"
  8.1705   (fn prems =>
  8.1706 -	[
  8.1707 -	(cut_facts_tac prems 1),
  8.1708 -	(strip_tac 1),
  8.1709 -	(etac allE 1),
  8.1710 -	(etac exE 1),
  8.1711 -	(etac (theleast1 RS conjunct2) 1)
  8.1712 -	]);
  8.1713 +        [
  8.1714 +        (cut_facts_tac prems 1),
  8.1715 +        (strip_tac 1),
  8.1716 +        (etac allE 1),
  8.1717 +        (etac exE 1),
  8.1718 +        (etac (theleast1 RS conjunct2) 1)
  8.1719 +        ]);
  8.1720  
  8.1721  qed_goal "adm_disj_lemma9"  Fix.thy
  8.1722  "[| is_chain(Y::nat=>'a); ! i. ? j. i < j & P(Y(j)) |] ==>\
  8.1723  \         lub(range(Y)) = lub(range(%m. Y(theleast(%j. m<j & P(Y(j))))))"
  8.1724   (fn prems =>
  8.1725 -	[
  8.1726 -	(cut_facts_tac prems 1),
  8.1727 -	(rtac antisym_less 1),
  8.1728 -	(rtac lub_mono 1),
  8.1729 -	(atac 1),
  8.1730 -	(rtac adm_disj_lemma7 1),
  8.1731 -	(atac 1),
  8.1732 -	(atac 1),
  8.1733 -	(strip_tac 1),
  8.1734 -	(rtac (chain_mono RS mp) 1),
  8.1735 -	(atac 1),
  8.1736 -	(etac allE 1),
  8.1737 -	(etac exE 1),
  8.1738 -	(rtac (theleast1 RS conjunct1) 1),
  8.1739 -	(atac 1),
  8.1740 -	(rtac lub_mono3 1),
  8.1741 -	(rtac adm_disj_lemma7 1),
  8.1742 -	(atac 1),
  8.1743 -	(atac 1),
  8.1744 -	(atac 1),
  8.1745 -	(strip_tac 1),
  8.1746 -	(rtac exI 1),
  8.1747 -	(rtac (chain_mono RS mp) 1),
  8.1748 -	(atac 1),
  8.1749 -	(rtac lessI 1)
  8.1750 -	]);
  8.1751 +        [
  8.1752 +        (cut_facts_tac prems 1),
  8.1753 +        (rtac antisym_less 1),
  8.1754 +        (rtac lub_mono 1),
  8.1755 +        (atac 1),
  8.1756 +        (rtac adm_disj_lemma7 1),
  8.1757 +        (atac 1),
  8.1758 +        (atac 1),
  8.1759 +        (strip_tac 1),
  8.1760 +        (rtac (chain_mono RS mp) 1),
  8.1761 +        (atac 1),
  8.1762 +        (etac allE 1),
  8.1763 +        (etac exE 1),
  8.1764 +        (rtac (theleast1 RS conjunct1) 1),
  8.1765 +        (atac 1),
  8.1766 +        (rtac lub_mono3 1),
  8.1767 +        (rtac adm_disj_lemma7 1),
  8.1768 +        (atac 1),
  8.1769 +        (atac 1),
  8.1770 +        (atac 1),
  8.1771 +        (strip_tac 1),
  8.1772 +        (rtac exI 1),
  8.1773 +        (rtac (chain_mono RS mp) 1),
  8.1774 +        (atac 1),
  8.1775 +        (rtac lessI 1)
  8.1776 +        ]);
  8.1777  
  8.1778  qed_goal "adm_disj_lemma10"  Fix.thy
  8.1779  "[| is_chain(Y::nat=>'a); ! i. ? j. i < j & P(Y(j)) |] ==>\
  8.1780  \         ? X. is_chain(X) & (! n. P(X(n))) & lub(range(Y)) = lub(range(X))"
  8.1781   (fn prems =>
  8.1782 -	[
  8.1783 -	(cut_facts_tac prems 1),
  8.1784 -	(res_inst_tac [("x","%m. Y(theleast(%j. m<j & P(Y(j))))")] exI 1),
  8.1785 -	(rtac conjI 1),
  8.1786 -	(rtac adm_disj_lemma7 1),
  8.1787 -	(atac 1),
  8.1788 -	(atac 1),
  8.1789 -	(rtac conjI 1),
  8.1790 -	(rtac adm_disj_lemma8 1),
  8.1791 -	(atac 1),
  8.1792 -	(rtac adm_disj_lemma9 1),
  8.1793 -	(atac 1),
  8.1794 -	(atac 1)
  8.1795 -	]);
  8.1796 +        [
  8.1797 +        (cut_facts_tac prems 1),
  8.1798 +        (res_inst_tac [("x","%m. Y(theleast(%j. m<j & P(Y(j))))")] exI 1),
  8.1799 +        (rtac conjI 1),
  8.1800 +        (rtac adm_disj_lemma7 1),
  8.1801 +        (atac 1),
  8.1802 +        (atac 1),
  8.1803 +        (rtac conjI 1),
  8.1804 +        (rtac adm_disj_lemma8 1),
  8.1805 +        (atac 1),
  8.1806 +        (rtac adm_disj_lemma9 1),
  8.1807 +        (atac 1),
  8.1808 +        (atac 1)
  8.1809 +        ]);
  8.1810  
  8.1811  
  8.1812  qed_goal "adm_disj_lemma11" Fix.thy
  8.1813  "[| adm(P); is_chain(Y); ! i. ? j. i < j & P(Y(j)) |]==>P(lub(range(Y)))"
  8.1814   (fn prems =>
  8.1815 -	[
  8.1816 -	(cut_facts_tac prems 1),
  8.1817 -	(etac adm_disj_lemma2 1),
  8.1818 -	(etac adm_disj_lemma10 1),
  8.1819 -	(atac 1)
  8.1820 -	]);
  8.1821 +        [
  8.1822 +        (cut_facts_tac prems 1),
  8.1823 +        (etac adm_disj_lemma2 1),
  8.1824 +        (etac adm_disj_lemma10 1),
  8.1825 +        (atac 1)
  8.1826 +        ]);
  8.1827  
  8.1828  qed_goal "adm_disj_lemma12" Fix.thy
  8.1829  "[| adm(P); is_chain(Y);? i. ! j. i < j --> P(Y(j))|]==>P(lub(range(Y)))"
  8.1830   (fn prems =>
  8.1831 -	[
  8.1832 -	(cut_facts_tac prems 1),
  8.1833 -	(etac adm_disj_lemma2 1),
  8.1834 -	(etac adm_disj_lemma6 1),
  8.1835 -	(atac 1)
  8.1836 -	]);
  8.1837 +        [
  8.1838 +        (cut_facts_tac prems 1),
  8.1839 +        (etac adm_disj_lemma2 1),
  8.1840 +        (etac adm_disj_lemma6 1),
  8.1841 +        (atac 1)
  8.1842 +        ]);
  8.1843  
  8.1844  qed_goal "adm_disj"  Fix.thy  
  8.1845 -	"[| adm P; adm Q |] ==> adm(%x.P x | Q x)"
  8.1846 +        "[| adm P; adm Q |] ==> adm(%x.P x | Q x)"
  8.1847   (fn prems =>
  8.1848 -	[
  8.1849 -	(cut_facts_tac prems 1),
  8.1850 -	(rtac (adm_def2 RS iffD2) 1),
  8.1851 -	(strip_tac 1),
  8.1852 -	(rtac (adm_disj_lemma1 RS disjE) 1),
  8.1853 -	(atac 1),
  8.1854 -	(atac 1),
  8.1855 -	(rtac disjI2 1),
  8.1856 -	(etac adm_disj_lemma12 1),
  8.1857 -	(atac 1),
  8.1858 -	(atac 1),
  8.1859 -	(rtac disjI1 1),
  8.1860 -	(etac adm_disj_lemma11 1),
  8.1861 -	(atac 1),
  8.1862 -	(atac 1)
  8.1863 -	]);
  8.1864 +        [
  8.1865 +        (cut_facts_tac prems 1),
  8.1866 +        (rtac (adm_def2 RS iffD2) 1),
  8.1867 +        (strip_tac 1),
  8.1868 +        (rtac (adm_disj_lemma1 RS disjE) 1),
  8.1869 +        (atac 1),
  8.1870 +        (atac 1),
  8.1871 +        (rtac disjI2 1),
  8.1872 +        (etac adm_disj_lemma12 1),
  8.1873 +        (atac 1),
  8.1874 +        (atac 1),
  8.1875 +        (rtac disjI1 1),
  8.1876 +        (etac adm_disj_lemma11 1),
  8.1877 +        (atac 1),
  8.1878 +        (atac 1)
  8.1879 +        ]);
  8.1880  
  8.1881  
  8.1882  qed_goal "adm_impl"  Fix.thy  
  8.1883 -	"[| adm(%x.~(P x)); adm Q |] ==> adm(%x.P x --> Q x)"
  8.1884 +        "[| adm(%x.~(P x)); adm Q |] ==> adm(%x.P x --> Q x)"
  8.1885   (fn prems =>
  8.1886 -	[
  8.1887 -	(cut_facts_tac prems 1),
  8.1888 -	(res_inst_tac [("P2","%x.~(P x)|Q x")] (adm_cong RS iffD1) 1),
  8.1889 -	(fast_tac HOL_cs 1),
  8.1890 -	(rtac adm_disj 1),
  8.1891 -	(atac 1),
  8.1892 -	(atac 1)
  8.1893 -	]);
  8.1894 +        [
  8.1895 +        (cut_facts_tac prems 1),
  8.1896 +        (res_inst_tac [("P2","%x.~(P x)|Q x")] (adm_cong RS iffD1) 1),
  8.1897 +        (fast_tac HOL_cs 1),
  8.1898 +        (rtac adm_disj 1),
  8.1899 +        (atac 1),
  8.1900 +        (atac 1)
  8.1901 +        ]);
  8.1902  
  8.1903  
  8.1904  
  8.1905  val adm_thms = [adm_impl,adm_disj,adm_eq,adm_not_UU,adm_UU_not_less,
  8.1906 -	adm_all2,adm_not_less,adm_not_free,adm_conj,adm_less
  8.1907 -	];
  8.1908 +        adm_all2,adm_not_less,adm_not_free,adm_conj,adm_less
  8.1909 +        ];
  8.1910  
     9.1 --- a/src/HOLCF/Fun1.ML	Mon Jan 29 14:16:13 1996 +0100
     9.2 +++ b/src/HOLCF/Fun1.ML	Tue Jan 30 13:42:57 1996 +0100
     9.3 @@ -1,6 +1,6 @@
     9.4 -(*  Title: 	HOLCF/fun1.ML
     9.5 +(*  Title:      HOLCF/fun1.ML
     9.6      ID:         $Id$
     9.7 -    Author: 	Franz Regensburger
     9.8 +    Author:     Franz Regensburger
     9.9      Copyright   1993  Technische Universitaet Muenchen
    9.10  
    9.11  Lemmas for fun1.thy 
    9.12 @@ -14,30 +14,30 @@
    9.13  
    9.14  qed_goalw "refl_less_fun" Fun1.thy [less_fun_def] "less_fun f f"
    9.15  (fn prems =>
    9.16 -	[
    9.17 -	(fast_tac (HOL_cs addSIs [refl_less]) 1)
    9.18 -	]);
    9.19 +        [
    9.20 +        (fast_tac (HOL_cs addSIs [refl_less]) 1)
    9.21 +        ]);
    9.22  
    9.23  qed_goalw "antisym_less_fun" Fun1.thy [less_fun_def] 
    9.24 -	"[|less_fun f1 f2; less_fun f2 f1|] ==> f1 = f2"
    9.25 +        "[|less_fun f1 f2; less_fun f2 f1|] ==> f1 = f2"
    9.26  (fn prems =>
    9.27 -	[
    9.28 -	(cut_facts_tac prems 1),
    9.29 -	(rtac (expand_fun_eq RS ssubst) 1),
    9.30 -	(fast_tac (HOL_cs addSIs [antisym_less]) 1)
    9.31 -	]);
    9.32 +        [
    9.33 +        (cut_facts_tac prems 1),
    9.34 +        (rtac (expand_fun_eq RS ssubst) 1),
    9.35 +        (fast_tac (HOL_cs addSIs [antisym_less]) 1)
    9.36 +        ]);
    9.37  
    9.38  qed_goalw "trans_less_fun" Fun1.thy [less_fun_def] 
    9.39 -	"[|less_fun f1 f2; less_fun f2 f3 |] ==> less_fun f1 f3"
    9.40 +        "[|less_fun f1 f2; less_fun f2 f3 |] ==> less_fun f1 f3"
    9.41  (fn prems =>
    9.42 -	[
    9.43 -	(cut_facts_tac prems 1),
    9.44 -	(strip_tac 1),
    9.45 -	(rtac trans_less 1),
    9.46 -	(etac allE 1),
    9.47 -	(atac 1),
    9.48 -	((etac allE 1) THEN (atac 1))
    9.49 -	]);
    9.50 +        [
    9.51 +        (cut_facts_tac prems 1),
    9.52 +        (strip_tac 1),
    9.53 +        (rtac trans_less 1),
    9.54 +        (etac allE 1),
    9.55 +        (atac 1),
    9.56 +        ((etac allE 1) THEN (atac 1))
    9.57 +        ]);
    9.58  
    9.59  (* 
    9.60   -------------------------------------------------------------------------- 
    10.1 --- a/src/HOLCF/Fun2.ML	Mon Jan 29 14:16:13 1996 +0100
    10.2 +++ b/src/HOLCF/Fun2.ML	Tue Jan 30 13:42:57 1996 +0100
    10.3 @@ -1,6 +1,6 @@
    10.4 -(*  Title: 	HOLCF/fun2.ML
    10.5 +(*  Title:      HOLCF/fun2.ML
    10.6      ID:         $Id$
    10.7 -    Author: 	Franz Regensburger
    10.8 +    Author:     Franz Regensburger
    10.9      Copyright   1993 Technische Universitaet Muenchen
   10.10  
   10.11  Lemmas for fun2.thy 
   10.12 @@ -14,11 +14,11 @@
   10.13  
   10.14  qed_goalw "minimal_fun"  Fun2.thy [UU_fun_def] "UU_fun << f"
   10.15  (fn prems =>
   10.16 -	[
   10.17 -	(rtac (inst_fun_po RS ssubst) 1),
   10.18 -	(rewrite_goals_tac [less_fun_def]),
   10.19 -	(fast_tac (HOL_cs addSIs [minimal]) 1)
   10.20 -	]);
   10.21 +        [
   10.22 +        (rtac (inst_fun_po RS ssubst) 1),
   10.23 +        (rewtac less_fun_def),
   10.24 +        (fast_tac (HOL_cs addSIs [minimal]) 1)
   10.25 +        ]);
   10.26  
   10.27  (* ------------------------------------------------------------------------ *)
   10.28  (* make the symbol << accessible for type fun                               *)
   10.29 @@ -26,28 +26,28 @@
   10.30  
   10.31  qed_goal "less_fun"  Fun2.thy  "(f1 << f2) = (! x. f1(x) << f2(x))"
   10.32  (fn prems =>
   10.33 -	[
   10.34 -	(rtac (inst_fun_po RS ssubst) 1),
   10.35 -	(fold_goals_tac [less_fun_def]),
   10.36 -	(rtac refl 1)
   10.37 -	]);
   10.38 +        [
   10.39 +        (rtac (inst_fun_po RS ssubst) 1),
   10.40 +        (fold_goals_tac [less_fun_def]),
   10.41 +        (rtac refl 1)
   10.42 +        ]);
   10.43  
   10.44  (* ------------------------------------------------------------------------ *)
   10.45  (* chains of functions yield chains in the po range                         *)
   10.46  (* ------------------------------------------------------------------------ *)
   10.47  
   10.48  qed_goal "ch2ch_fun"  Fun2.thy 
   10.49 -	"is_chain(S::nat=>('a::term => 'b::po)) ==> is_chain(% i.S(i)(x))"
   10.50 +        "is_chain(S::nat=>('a::term => 'b::po)) ==> is_chain(% i.S(i)(x))"
   10.51  (fn prems =>
   10.52 -	[
   10.53 -	(cut_facts_tac prems 1),
   10.54 -	(rewrite_goals_tac [is_chain]),
   10.55 -	(rtac allI 1),
   10.56 -	(rtac spec 1),
   10.57 -	(rtac (less_fun RS subst) 1),
   10.58 -	(etac allE 1),
   10.59 -	(atac 1)
   10.60 -	]);
   10.61 +        [
   10.62 +        (cut_facts_tac prems 1),
   10.63 +        (rewtac is_chain),
   10.64 +        (rtac allI 1),
   10.65 +        (rtac spec 1),
   10.66 +        (rtac (less_fun RS subst) 1),
   10.67 +        (etac allE 1),
   10.68 +        (atac 1)
   10.69 +        ]);
   10.70  
   10.71  (* ------------------------------------------------------------------------ *)
   10.72  (* upper bounds of function chains yield upper bound in the po range        *)
   10.73 @@ -56,51 +56,51 @@
   10.74  qed_goal "ub2ub_fun" Fun2.thy 
   10.75     " range(S::nat=>('a::term => 'b::po)) <| u ==> range(%i. S i x) <| u(x)"
   10.76  (fn prems =>
   10.77 -	[
   10.78 -	(cut_facts_tac prems 1),
   10.79 -	(rtac ub_rangeI 1),
   10.80 -	(rtac allI 1),
   10.81 -	(rtac allE 1),
   10.82 -	(rtac (less_fun RS subst) 1),
   10.83 -	(etac (ub_rangeE RS spec) 1),
   10.84 -	(atac 1)
   10.85 -	]);
   10.86 +        [
   10.87 +        (cut_facts_tac prems 1),
   10.88 +        (rtac ub_rangeI 1),
   10.89 +        (rtac allI 1),
   10.90 +        (rtac allE 1),
   10.91 +        (rtac (less_fun RS subst) 1),
   10.92 +        (etac (ub_rangeE RS spec) 1),
   10.93 +        (atac 1)
   10.94 +        ]);
   10.95  
   10.96  (* ------------------------------------------------------------------------ *)
   10.97  (* Type 'a::term => 'b::pcpo is chain complete                              *)
   10.98  (* ------------------------------------------------------------------------ *)
   10.99  
  10.100  qed_goal "lub_fun"  Fun2.thy
  10.101 -	"is_chain(S::nat=>('a::term => 'b::pcpo)) ==> \
  10.102 +        "is_chain(S::nat=>('a::term => 'b::pcpo)) ==> \
  10.103  \        range(S) <<| (% x.lub(range(% i.S(i)(x))))"
  10.104  (fn prems =>
  10.105 -	[
  10.106 -	(cut_facts_tac prems 1),
  10.107 -	(rtac is_lubI 1),
  10.108 -	(rtac conjI 1),
  10.109 -	(rtac ub_rangeI 1),
  10.110 -	(rtac allI 1),
  10.111 -	(rtac (less_fun RS ssubst) 1),
  10.112 -	(rtac allI 1),
  10.113 -	(rtac is_ub_thelub 1),
  10.114 -	(etac ch2ch_fun 1),
  10.115 -	(strip_tac 1),
  10.116 -	(rtac (less_fun RS ssubst) 1),
  10.117 -	(rtac allI 1),
  10.118 -	(rtac is_lub_thelub 1),
  10.119 -	(etac ch2ch_fun 1),
  10.120 -	(etac ub2ub_fun 1)
  10.121 -	]);
  10.122 +        [
  10.123 +        (cut_facts_tac prems 1),
  10.124 +        (rtac is_lubI 1),
  10.125 +        (rtac conjI 1),
  10.126 +        (rtac ub_rangeI 1),
  10.127 +        (rtac allI 1),
  10.128 +        (rtac (less_fun RS ssubst) 1),
  10.129 +        (rtac allI 1),
  10.130 +        (rtac is_ub_thelub 1),
  10.131 +        (etac ch2ch_fun 1),
  10.132 +        (strip_tac 1),
  10.133 +        (rtac (less_fun RS ssubst) 1),
  10.134 +        (rtac allI 1),
  10.135 +        (rtac is_lub_thelub 1),
  10.136 +        (etac ch2ch_fun 1),
  10.137 +        (etac ub2ub_fun 1)
  10.138 +        ]);
  10.139  
  10.140  val thelub_fun = (lub_fun RS thelubI);
  10.141  (* is_chain ?S1 ==> lub (range ?S1) = (%x. lub (range (%i. ?S1 i x))) *)
  10.142  
  10.143  qed_goal "cpo_fun"  Fun2.thy
  10.144 -	"is_chain(S::nat=>('a::term => 'b::pcpo)) ==> ? x. range(S) <<| x"
  10.145 +        "is_chain(S::nat=>('a::term => 'b::pcpo)) ==> ? x. range(S) <<| x"
  10.146  (fn prems =>
  10.147 -	[
  10.148 -	(cut_facts_tac prems 1),
  10.149 -	(rtac exI 1),
  10.150 -	(etac lub_fun 1)
  10.151 -	]);
  10.152 +        [
  10.153 +        (cut_facts_tac prems 1),
  10.154 +        (rtac exI 1),
  10.155 +        (etac lub_fun 1)
  10.156 +        ]);
  10.157  
    11.1 --- a/src/HOLCF/Fun3.ML	Mon Jan 29 14:16:13 1996 +0100
    11.2 +++ b/src/HOLCF/Fun3.ML	Tue Jan 30 13:42:57 1996 +0100
    11.3 @@ -1,6 +1,6 @@
    11.4 -(*  Title: 	HOLCF/fun3.ML
    11.5 +(*  Title:      HOLCF/fun3.ML
    11.6      ID:         $Id$
    11.7 -    Author: 	Franz Regensburger
    11.8 +    Author:     Franz Regensburger
    11.9      Copyright   1993 Technische Universitaet Muenchen
   11.10  *)
   11.11  
    12.1 --- a/src/HOLCF/HOLCF.ML	Mon Jan 29 14:16:13 1996 +0100
    12.2 +++ b/src/HOLCF/HOLCF.ML	Tue Jan 30 13:42:57 1996 +0100
    12.3 @@ -1,6 +1,6 @@
    12.4 -(*  Title: 	HOLCF/HOLCF.ML
    12.5 +(*  Title:      HOLCF/HOLCF.ML
    12.6      ID:         $Id$
    12.7 -    Author: 	Franz Regensburger
    12.8 +    Author:     Franz Regensburger
    12.9      Copyright   1993 Technische Universitaet Muenchen
   12.10  *)
   12.11  
    13.1 --- a/src/HOLCF/Holcfb.ML	Mon Jan 29 14:16:13 1996 +0100
    13.2 +++ b/src/HOLCF/Holcfb.ML	Tue Jan 30 13:42:57 1996 +0100
    13.3 @@ -1,6 +1,6 @@
    13.4 -(*  Title: 	HOLCF/holcfb.ML
    13.5 +(*  Title:      HOLCF/holcfb.ML
    13.6      ID:         $Id$
    13.7 -    Author: 	Franz Regensburger
    13.8 +    Author:     Franz Regensburger
    13.9      Copyright   1993  Technische Universitaet Muenchen
   13.10  
   13.11  Lemmas for Holcfb.thy 
   13.12 @@ -13,27 +13,27 @@
   13.13  (* ------------------------------------------------------------------------ *)
   13.14  
   13.15  qed_goal "well_ordering_nat"  Nat.thy 
   13.16 -	"!P. P(x::nat) --> (? y. P(y) & (! x. P(x) --> y <= x))"
   13.17 +        "!P. P(x::nat) --> (? y. P(y) & (! x. P(x) --> y <= x))"
   13.18   (fn prems =>
   13.19 -	[
   13.20 -	(res_inst_tac [("n","x")] less_induct 1),
   13.21 -	(strip_tac 1),
   13.22 -	(res_inst_tac [("Q","? k.k<n & P(k)")] (excluded_middle RS disjE) 1),
   13.23 -	(etac exE 2),
   13.24 -	(etac conjE 2),
   13.25 -	(rtac mp 2),
   13.26 -	(etac allE 2),
   13.27 -	(etac impE 2),
   13.28 -	(atac 2),
   13.29 -	(etac spec 2),
   13.30 -	(atac 2),
   13.31 -	(res_inst_tac [("x","n")] exI 1),
   13.32 -	(rtac conjI 1),
   13.33 -	(atac 1),
   13.34 -	(strip_tac 1),
   13.35 -	(rtac leI  1),
   13.36 -	(fast_tac HOL_cs 1)
   13.37 -	]);
   13.38 +        [
   13.39 +        (res_inst_tac [("n","x")] less_induct 1),
   13.40 +        (strip_tac 1),
   13.41 +        (res_inst_tac [("Q","? k.k<n & P(k)")] (excluded_middle RS disjE) 1),
   13.42 +        (etac exE 2),
   13.43 +        (etac conjE 2),
   13.44 +        (rtac mp 2),
   13.45 +        (etac allE 2),
   13.46 +        (etac impE 2),
   13.47 +        (atac 2),
   13.48 +        (etac spec 2),
   13.49 +        (atac 2),
   13.50 +        (res_inst_tac [("x","n")] exI 1),
   13.51 +        (rtac conjI 1),
   13.52 +        (atac 1),
   13.53 +        (strip_tac 1),
   13.54 +        (rtac leI  1),
   13.55 +        (fast_tac HOL_cs 1)
   13.56 +        ]);
   13.57  
   13.58  
   13.59  (* ------------------------------------------------------------------------ *)
   13.60 @@ -43,24 +43,24 @@
   13.61  qed_goalw "theleast"  Holcfb.thy [theleast_def] 
   13.62  "P(x) ==> P(theleast(P)) & (!x.P(x)--> theleast(P) <= x)"
   13.63   (fn prems =>
   13.64 -	[
   13.65 -	(cut_facts_tac prems 1),
   13.66 -	(rtac (well_ordering_nat RS spec RS mp RS exE) 1),
   13.67 -	(atac 1),
   13.68 -	(rtac selectI 1),
   13.69 -	(atac 1)
   13.70 -	]);
   13.71 +        [
   13.72 +        (cut_facts_tac prems 1),
   13.73 +        (rtac (well_ordering_nat RS spec RS mp RS exE) 1),
   13.74 +        (atac 1),
   13.75 +        (rtac selectI 1),
   13.76 +        (atac 1)
   13.77 +        ]);
   13.78  
   13.79  val theleast1= theleast RS conjunct1;
   13.80  (* ?P1(?x1) ==> ?P1(theleast(?P1)) *)
   13.81  
   13.82  qed_goal "theleast2"  Holcfb.thy  "P(x) ==> theleast(P) <= x"
   13.83   (fn prems =>
   13.84 -	[
   13.85 -	(rtac (theleast RS conjunct2 RS spec RS mp) 1),
   13.86 -	(resolve_tac prems 1),
   13.87 -	(resolve_tac prems 1)
   13.88 -	]);
   13.89 +        [
   13.90 +        (rtac (theleast RS conjunct2 RS spec RS mp) 1),
   13.91 +        (resolve_tac prems 1),
   13.92 +        (resolve_tac prems 1)
   13.93 +        ]);
   13.94  
   13.95  
   13.96  (* ------------------------------------------------------------------------ *)
   13.97 @@ -70,80 +70,80 @@
   13.98  
   13.99  qed_goal "de_morgan1" HOL.thy "(~a & ~b)=(~(a | b))"
  13.100  (fn prems =>
  13.101 -	[
  13.102 -	(rtac iffI 1),
  13.103 -	(fast_tac HOL_cs 1),
  13.104 -	(fast_tac HOL_cs 1)
  13.105 -	]);
  13.106 +        [
  13.107 +        (rtac iffI 1),
  13.108 +        (fast_tac HOL_cs 1),
  13.109 +        (fast_tac HOL_cs 1)
  13.110 +        ]);
  13.111  
  13.112  qed_goal "de_morgan2" HOL.thy "(~a | ~b)=(~(a & b))"
  13.113  (fn prems =>
  13.114 -	[
  13.115 -	(rtac iffI 1),
  13.116 -	(fast_tac HOL_cs 1),
  13.117 -	(fast_tac HOL_cs 1)
  13.118 -	]);
  13.119 +        [
  13.120 +        (rtac iffI 1),
  13.121 +        (fast_tac HOL_cs 1),
  13.122 +        (fast_tac HOL_cs 1)
  13.123 +        ]);
  13.124  
  13.125  
  13.126  qed_goal "notall2ex" HOL.thy "(~ (!x.P(x))) = (? x.~P(x))"
  13.127  (fn prems =>
  13.128 -	[
  13.129 -	(rtac iffI 1),
  13.130 -	(fast_tac HOL_cs 1),
  13.131 -	(fast_tac HOL_cs 1)
  13.132 -	]);
  13.133 +        [
  13.134 +        (rtac iffI 1),
  13.135 +        (fast_tac HOL_cs 1),
  13.136 +        (fast_tac HOL_cs 1)
  13.137 +        ]);
  13.138  
  13.139  qed_goal "notex2all" HOL.thy "(~ (? x.P(x))) = (!x.~P(x))"
  13.140  (fn prems =>
  13.141 -	[
  13.142 -	(rtac iffI 1),
  13.143 -	(fast_tac HOL_cs 1),
  13.144 -	(fast_tac HOL_cs 1)
  13.145 -	]);
  13.146 +        [
  13.147 +        (rtac iffI 1),
  13.148 +        (fast_tac HOL_cs 1),
  13.149 +        (fast_tac HOL_cs 1)
  13.150 +        ]);
  13.151  
  13.152  
  13.153  qed_goal "selectI3" HOL.thy "(? x. P(x)) ==> P(@ x.P(x))"
  13.154  (fn prems =>
  13.155 -	[
  13.156 -	(cut_facts_tac prems 1),
  13.157 -	(etac exE 1),
  13.158 -	(etac selectI 1)
  13.159 -	]);
  13.160 +        [
  13.161 +        (cut_facts_tac prems 1),
  13.162 +        (etac exE 1),
  13.163 +        (etac selectI 1)
  13.164 +        ]);
  13.165  
  13.166  qed_goal "selectE" HOL.thy "P(@ x.P(x)) ==> (? x. P(x))"
  13.167  (fn prems =>
  13.168 -	[
  13.169 -	(cut_facts_tac prems 1),
  13.170 -	(etac exI 1)
  13.171 -	]);
  13.172 +        [
  13.173 +        (cut_facts_tac prems 1),
  13.174 +        (etac exI 1)
  13.175 +        ]);
  13.176  
  13.177  qed_goal "select_eq_Ex" HOL.thy "(P(@ x.P(x))) =  (? x. P(x))"
  13.178  (fn prems =>
  13.179 -	[
  13.180 -	(rtac (iff RS mp  RS mp) 1),
  13.181 -	(strip_tac 1),
  13.182 -	(etac selectE 1),
  13.183 -	(strip_tac 1),
  13.184 -	(etac selectI3 1)
  13.185 -	]);
  13.186 +        [
  13.187 +        (rtac (iff RS mp  RS mp) 1),
  13.188 +        (strip_tac 1),
  13.189 +        (etac selectE 1),
  13.190 +        (strip_tac 1),
  13.191 +        (etac selectI3 1)
  13.192 +        ]);
  13.193  
  13.194  
  13.195  qed_goal "notnotI" HOL.thy "P ==> ~~P"
  13.196  (fn prems =>
  13.197 -	[
  13.198 -	(cut_facts_tac prems 1),
  13.199 -	(fast_tac HOL_cs 1)
  13.200 -	]);
  13.201 +        [
  13.202 +        (cut_facts_tac prems 1),
  13.203 +        (fast_tac HOL_cs 1)
  13.204 +        ]);
  13.205  
  13.206  
  13.207  qed_goal "classical2" HOL.thy "[|Q ==> R; ~Q ==> R|]==>R"
  13.208   (fn prems =>
  13.209 -	[
  13.210 -	(rtac disjE 1),
  13.211 -	(rtac excluded_middle 1),
  13.212 -	(eresolve_tac prems 1),
  13.213 -	(eresolve_tac prems 1)
  13.214 -	]);
  13.215 +        [
  13.216 +        (rtac disjE 1),
  13.217 +        (rtac excluded_middle 1),
  13.218 +        (eresolve_tac prems 1),
  13.219 +        (eresolve_tac prems 1)
  13.220 +        ]);
  13.221  
  13.222  
  13.223  
  13.224 @@ -154,13 +154,13 @@
  13.225  qed_goal "nat_less_cases" Nat.thy 
  13.226      "[| (m::nat) < n ==> P(n,m); m=n ==> P(n,m);n < m ==> P(n,m)|]==>P(n,m)"
  13.227  ( fn prems =>
  13.228 -	[
  13.229 -	(res_inst_tac [("m1","n"),("n1","m")] (less_linear RS disjE) 1),
  13.230 -	(etac disjE 2),
  13.231 -	(etac (hd (tl (tl prems))) 1),
  13.232 -	(etac (sym RS hd (tl prems)) 1),
  13.233 -	(etac (hd prems) 1)
  13.234 -	]);
  13.235 +        [
  13.236 +        (res_inst_tac [("m1","n"),("n1","m")] (less_linear RS disjE) 1),
  13.237 +        (etac disjE 2),
  13.238 +        (etac (hd (tl (tl prems))) 1),
  13.239 +        (etac (sym RS hd (tl prems)) 1),
  13.240 +        (etac (hd prems) 1)
  13.241 +        ]);
  13.242  
  13.243  
  13.244  
    14.1 --- a/src/HOLCF/Lift1.ML	Mon Jan 29 14:16:13 1996 +0100
    14.2 +++ b/src/HOLCF/Lift1.ML	Tue Jan 30 13:42:57 1996 +0100
    14.3 @@ -1,188 +1,188 @@
    14.4 -(*  Title: 	HOLCF/lift1.ML
    14.5 +(*  Title:      HOLCF/lift1.ML
    14.6      ID:         $Id$
    14.7 -    Author: 	Franz Regensburger
    14.8 +    Author:     Franz Regensburger
    14.9      Copyright   1993  Technische Universitaet Muenchen
   14.10  *)
   14.11  
   14.12  open Lift1;
   14.13  
   14.14  qed_goalw "Exh_Lift" Lift1.thy [UU_lift_def,Iup_def ]
   14.15 -	"z = UU_lift | (? x. z = Iup(x))"
   14.16 +        "z = UU_lift | (? x. z = Iup(x))"
   14.17   (fn prems =>
   14.18 -	[
   14.19 -	(rtac (Rep_Lift_inverse RS subst) 1),
   14.20 -	(res_inst_tac [("s","Rep_Lift(z)")] sumE 1),
   14.21 -	(rtac disjI1 1),
   14.22 -	(res_inst_tac [("f","Abs_Lift")] arg_cong 1),
   14.23 -	(rtac (unique_void2 RS subst) 1),
   14.24 -	(atac 1),
   14.25 -	(rtac disjI2 1),
   14.26 -	(rtac exI 1),
   14.27 -	(res_inst_tac [("f","Abs_Lift")] arg_cong 1),
   14.28 -	(atac 1)
   14.29 -	]);
   14.30 +        [
   14.31 +        (rtac (Rep_Lift_inverse RS subst) 1),
   14.32 +        (res_inst_tac [("s","Rep_Lift(z)")] sumE 1),
   14.33 +        (rtac disjI1 1),
   14.34 +        (res_inst_tac [("f","Abs_Lift")] arg_cong 1),
   14.35 +        (rtac (unique_void2 RS subst) 1),
   14.36 +        (atac 1),
   14.37 +        (rtac disjI2 1),
   14.38 +        (rtac exI 1),
   14.39 +        (res_inst_tac [("f","Abs_Lift")] arg_cong 1),
   14.40 +        (atac 1)
   14.41 +        ]);
   14.42  
   14.43  qed_goal "inj_Abs_Lift" Lift1.thy "inj(Abs_Lift)"
   14.44   (fn prems =>
   14.45 -	[
   14.46 -	(rtac inj_inverseI 1),
   14.47 -	(rtac Abs_Lift_inverse 1)
   14.48 -	]);
   14.49 +        [
   14.50 +        (rtac inj_inverseI 1),
   14.51 +        (rtac Abs_Lift_inverse 1)
   14.52 +        ]);
   14.53  
   14.54  qed_goal "inj_Rep_Lift" Lift1.thy "inj(Rep_Lift)"
   14.55   (fn prems =>
   14.56 -	[
   14.57 -	(rtac inj_inverseI 1),
   14.58 -	(rtac Rep_Lift_inverse 1)
   14.59 -	]);
   14.60 +        [
   14.61 +        (rtac inj_inverseI 1),
   14.62 +        (rtac Rep_Lift_inverse 1)
   14.63 +        ]);
   14.64  
   14.65  qed_goalw "inject_Iup" Lift1.thy [Iup_def] "Iup(x)=Iup(y) ==> x=y"
   14.66   (fn prems =>
   14.67 -	[
   14.68 -	(cut_facts_tac prems 1),
   14.69 -	(rtac (inj_Inr RS injD) 1),
   14.70 -	(rtac (inj_Abs_Lift RS injD) 1),
   14.71 -	(atac 1)
   14.72 -	]);
   14.73 +        [
   14.74 +        (cut_facts_tac prems 1),
   14.75 +        (rtac (inj_Inr RS injD) 1),
   14.76 +        (rtac (inj_Abs_Lift RS injD) 1),
   14.77 +        (atac 1)
   14.78 +        ]);
   14.79  
   14.80  qed_goalw "defined_Iup" Lift1.thy [Iup_def,UU_lift_def] "Iup(x)~=UU_lift"
   14.81   (fn prems =>
   14.82 -	[
   14.83 -	(rtac notI 1),
   14.84 -	(rtac notE 1),
   14.85 -	(rtac Inl_not_Inr 1),
   14.86 -	(rtac sym 1),
   14.87 -	(etac (inj_Abs_Lift RS  injD) 1)
   14.88 -	]);
   14.89 +        [
   14.90 +        (rtac notI 1),
   14.91 +        (rtac notE 1),
   14.92 +        (rtac Inl_not_Inr 1),
   14.93 +        (rtac sym 1),
   14.94 +        (etac (inj_Abs_Lift RS  injD) 1)
   14.95 +        ]);
   14.96  
   14.97  
   14.98  qed_goal "liftE"  Lift1.thy
   14.99 -	"[| p=UU_lift ==> Q; !!x. p=Iup(x)==>Q|] ==>Q"
  14.100 +        "[| p=UU_lift ==> Q; !!x. p=Iup(x)==>Q|] ==>Q"
  14.101   (fn prems =>
  14.102 -	[
  14.103 -	(rtac (Exh_Lift RS disjE) 1),
  14.104 -	(eresolve_tac prems 1),
  14.105 -	(etac exE 1),
  14.106 -	(eresolve_tac prems 1)
  14.107 -	]);
  14.108 +        [
  14.109 +        (rtac (Exh_Lift RS disjE) 1),
  14.110 +        (eresolve_tac prems 1),
  14.111 +        (etac exE 1),
  14.112 +        (eresolve_tac prems 1)
  14.113 +        ]);
  14.114  
  14.115  qed_goalw "Ilift1"  Lift1.thy [Ilift_def,UU_lift_def]
  14.116 -	"Ilift(f)(UU_lift)=UU"
  14.117 +        "Ilift(f)(UU_lift)=UU"
  14.118   (fn prems =>
  14.119 -	[
  14.120 -	(rtac (Abs_Lift_inverse RS ssubst) 1),
  14.121 -	(rtac (sum_case_Inl RS ssubst) 1),
  14.122 -	(rtac refl 1)
  14.123 -	]);
  14.124 +        [
  14.125 +        (rtac (Abs_Lift_inverse RS ssubst) 1),
  14.126 +        (rtac (sum_case_Inl RS ssubst) 1),
  14.127 +        (rtac refl 1)
  14.128 +        ]);
  14.129  
  14.130  qed_goalw "Ilift2"  Lift1.thy [Ilift_def,Iup_def]
  14.131 -	"Ilift(f)(Iup(x))=f`x"
  14.132 +        "Ilift(f)(Iup(x))=f`x"
  14.133   (fn prems =>
  14.134 -	[
  14.135 -	(rtac (Abs_Lift_inverse RS ssubst) 1),
  14.136 -	(rtac (sum_case_Inr RS ssubst) 1),
  14.137 -	(rtac refl 1)
  14.138 -	]);
  14.139 +        [
  14.140 +        (rtac (Abs_Lift_inverse RS ssubst) 1),
  14.141 +        (rtac (sum_case_Inr RS ssubst) 1),
  14.142 +        (rtac refl 1)
  14.143 +        ]);
  14.144  
  14.145  val Lift0_ss = (simpset_of "Cfun3") addsimps [Ilift1,Ilift2];
  14.146  
  14.147  qed_goalw "less_lift1a"  Lift1.thy [less_lift_def,UU_lift_def]
  14.148 -	"less_lift(UU_lift)(z)"
  14.149 +        "less_lift(UU_lift)(z)"
  14.150   (fn prems =>
  14.151 -	[
  14.152 -	(rtac (Abs_Lift_inverse RS ssubst) 1),
  14.153 -	(rtac (sum_case_Inl RS ssubst) 1),
  14.154 -	(rtac TrueI 1)
  14.155 -	]);
  14.156 +        [
  14.157 +        (rtac (Abs_Lift_inverse RS ssubst) 1),
  14.158 +        (rtac (sum_case_Inl RS ssubst) 1),
  14.159 +        (rtac TrueI 1)
  14.160 +        ]);
  14.161  
  14.162  qed_goalw "less_lift1b"  Lift1.thy [Iup_def,less_lift_def,UU_lift_def]
  14.163 -	"~less_lift (Iup x) UU_lift"
  14.164 +        "~less_lift (Iup x) UU_lift"
  14.165   (fn prems =>
  14.166 -	[
  14.167 -	(rtac notI 1),
  14.168 -	(rtac iffD1 1),
  14.169 -	(atac 2),
  14.170 -	(rtac (Abs_Lift_inverse RS ssubst) 1),
  14.171 -	(rtac (Abs_Lift_inverse RS ssubst) 1),
  14.172 -	(rtac (sum_case_Inr RS ssubst) 1),
  14.173 -	(rtac (sum_case_Inl RS ssubst) 1),
  14.174 -	(rtac refl 1)
  14.175 -	]);
  14.176 +        [
  14.177 +        (rtac notI 1),
  14.178 +        (rtac iffD1 1),
  14.179 +        (atac 2),
  14.180 +        (rtac (Abs_Lift_inverse RS ssubst) 1),
  14.181 +        (rtac (Abs_Lift_inverse RS ssubst) 1),
  14.182 +        (rtac (sum_case_Inr RS ssubst) 1),
  14.183 +        (rtac (sum_case_Inl RS ssubst) 1),
  14.184 +        (rtac refl 1)
  14.185 +        ]);
  14.186  
  14.187  qed_goalw "less_lift1c"  Lift1.thy [Iup_def,less_lift_def,UU_lift_def]
  14.188 -	"less_lift (Iup x) (Iup y)=(x<<y)"
  14.189 +        "less_lift (Iup x) (Iup y)=(x<<y)"
  14.190   (fn prems =>
  14.191 -	[
  14.192 -	(rtac (Abs_Lift_inverse RS ssubst) 1),
  14.193 -	(rtac (Abs_Lift_inverse RS ssubst) 1),
  14.194 -	(rtac (sum_case_Inr RS ssubst) 1),
  14.195 -	(rtac (sum_case_Inr RS ssubst) 1),
  14.196 -	(rtac refl 1)
  14.197 -	]);
  14.198 +        [
  14.199 +        (rtac (Abs_Lift_inverse RS ssubst) 1),
  14.200 +        (rtac (Abs_Lift_inverse RS ssubst) 1),
  14.201 +        (rtac (sum_case_Inr RS ssubst) 1),
  14.202 +        (rtac (sum_case_Inr RS ssubst) 1),
  14.203 +        (rtac refl 1)
  14.204 +        ]);
  14.205  
  14.206  
  14.207  qed_goal "refl_less_lift"  Lift1.thy "less_lift p p"
  14.208   (fn prems =>
  14.209 -	[
  14.210 -	(res_inst_tac [("p","p")] liftE 1),
  14.211 -	(hyp_subst_tac 1),
  14.212 -	(rtac less_lift1a 1),
  14.213 -	(hyp_subst_tac 1),
  14.214 -	(rtac (less_lift1c RS iffD2) 1),
  14.215 -	(rtac refl_less 1)
  14.216 -	]);
  14.217 +        [
  14.218 +        (res_inst_tac [("p","p")] liftE 1),
  14.219 +        (hyp_subst_tac 1),
  14.220 +        (rtac less_lift1a 1),
  14.221 +        (hyp_subst_tac 1),
  14.222 +        (rtac (less_lift1c RS iffD2) 1),
  14.223 +        (rtac refl_less 1)
  14.224 +        ]);
  14.225  
  14.226  qed_goal "antisym_less_lift"  Lift1.thy 
  14.227 -	"[|less_lift p1 p2;less_lift p2 p1|] ==> p1=p2"
  14.228 +        "[|less_lift p1 p2;less_lift p2 p1|] ==> p1=p2"
  14.229   (fn prems =>
  14.230 -	[
  14.231 -	(cut_facts_tac prems 1),
  14.232 -	(res_inst_tac [("p","p1")] liftE 1),
  14.233 -	(hyp_subst_tac 1),
  14.234 -	(res_inst_tac [("p","p2")] liftE 1),
  14.235 -	(hyp_subst_tac 1),
  14.236 -	(rtac refl 1),
  14.237 -	(hyp_subst_tac 1),
  14.238 -	(res_inst_tac [("P","less_lift (Iup x) UU_lift")] notE 1),
  14.239 -	(rtac less_lift1b 1),
  14.240 -	(atac 1),
  14.241 -	(hyp_subst_tac 1),
  14.242 -	(res_inst_tac [("p","p2")] liftE 1),
  14.243 -	(hyp_subst_tac 1),
  14.244 -	(res_inst_tac [("P","less_lift (Iup x) UU_lift")] notE 1),
  14.245 -	(rtac less_lift1b 1),
  14.246 -	(atac 1),
  14.247 -	(hyp_subst_tac 1),
  14.248 -	(rtac arg_cong 1),
  14.249 -	(rtac antisym_less 1),
  14.250 -	(etac (less_lift1c RS iffD1) 1),
  14.251 -	(etac (less_lift1c RS iffD1) 1)
  14.252 -	]);
  14.253 +        [
  14.254 +        (cut_facts_tac prems 1),
  14.255 +        (res_inst_tac [("p","p1")] liftE 1),
  14.256 +        (hyp_subst_tac 1),
  14.257 +        (res_inst_tac [("p","p2")] liftE 1),
  14.258 +        (hyp_subst_tac 1),
  14.259 +        (rtac refl 1),
  14.260 +        (hyp_subst_tac 1),
  14.261 +        (res_inst_tac [("P","less_lift (Iup x) UU_lift")] notE 1),
  14.262 +        (rtac less_lift1b 1),
  14.263 +        (atac 1),
  14.264 +        (hyp_subst_tac 1),
  14.265 +        (res_inst_tac [("p","p2")] liftE 1),
  14.266 +        (hyp_subst_tac 1),
  14.267 +        (res_inst_tac [("P","less_lift (Iup x) UU_lift")] notE 1),
  14.268 +        (rtac less_lift1b 1),
  14.269 +        (atac 1),
  14.270 +        (hyp_subst_tac 1),
  14.271 +        (rtac arg_cong 1),
  14.272 +        (rtac antisym_less 1),
  14.273 +        (etac (less_lift1c RS iffD1) 1),
  14.274 +        (etac (less_lift1c RS iffD1) 1)
  14.275 +        ]);
  14.276  
  14.277  qed_goal "trans_less_lift"  Lift1.thy 
  14.278 -	"[|less_lift p1 p2;less_lift p2 p3|] ==> less_lift p1 p3"
  14.279 +        "[|less_lift p1 p2;less_lift p2 p3|] ==> less_lift p1 p3"
  14.280   (fn prems =>
  14.281 -	[
  14.282 -	(cut_facts_tac prems 1),
  14.283 -	(res_inst_tac [("p","p1")] liftE 1),
  14.284 -	(hyp_subst_tac 1),
  14.285 -	(rtac less_lift1a 1),
  14.286 -	(hyp_subst_tac 1),
  14.287 -	(res_inst_tac [("p","p2")] liftE 1),
  14.288 -	(hyp_subst_tac 1),
  14.289 -	(rtac notE 1),
  14.290 -	(rtac less_lift1b 1),
  14.291 -	(atac 1),
  14.292 -	(hyp_subst_tac 1),
  14.293 -	(res_inst_tac [("p","p3")] liftE 1),
  14.294 -	(hyp_subst_tac 1),
  14.295 -	(rtac notE 1),
  14.296 -	(rtac less_lift1b 1),
  14.297 -	(atac 1),
  14.298 -	(hyp_subst_tac 1),
  14.299 -	(rtac (less_lift1c RS iffD2) 1),
  14.300 -	(rtac trans_less 1),
  14.301 -	(etac (less_lift1c RS iffD1) 1),
  14.302 -	(etac (less_lift1c RS iffD1) 1)
  14.303 -	]);
  14.304 +        [
  14.305 +        (cut_facts_tac prems 1),
  14.306 +        (res_inst_tac [("p","p1")] liftE 1),
  14.307 +        (hyp_subst_tac 1),
  14.308 +        (rtac less_lift1a 1),
  14.309 +        (hyp_subst_tac 1),
  14.310 +        (res_inst_tac [("p","p2")] liftE 1),
  14.311 +        (hyp_subst_tac 1),
  14.312 +        (rtac notE 1),
  14.313 +        (rtac less_lift1b 1),
  14.314 +        (atac 1),
  14.315 +        (hyp_subst_tac 1),
  14.316 +        (res_inst_tac [("p","p3")] liftE 1),
  14.317 +        (hyp_subst_tac 1),
  14.318 +        (rtac notE 1),
  14.319 +        (rtac less_lift1b 1),
  14.320 +        (atac 1),
  14.321 +        (hyp_subst_tac 1),
  14.322 +        (rtac (less_lift1c RS iffD2) 1),
  14.323 +        (rtac trans_less 1),
  14.324 +        (etac (less_lift1c RS iffD1) 1),
  14.325 +        (etac (less_lift1c RS iffD1) 1)
  14.326 +        ]);
  14.327  
    15.1 --- a/src/HOLCF/Lift2.ML	Mon Jan 29 14:16:13 1996 +0100
    15.2 +++ b/src/HOLCF/Lift2.ML	Tue Jan 30 13:42:57 1996 +0100
    15.3 @@ -1,6 +1,6 @@
    15.4 -(*  Title: 	HOLCF/lift2.ML
    15.5 +(*  Title:      HOLCF/lift2.ML
    15.6      ID:         $Id$
    15.7 -    Author: 	Franz Regensburger
    15.8 +    Author:     Franz Regensburger
    15.9      Copyright   1993 Technische Universitaet Muenchen
   15.10  
   15.11  Lemmas for lift2.thy 
   15.12 @@ -14,10 +14,10 @@
   15.13  
   15.14  qed_goal "minimal_lift" Lift2.thy "UU_lift << z"
   15.15   (fn prems =>
   15.16 -	[
   15.17 -	(rtac (inst_lift_po RS ssubst) 1),
   15.18 -	(rtac less_lift1a 1)
   15.19 -	]);
   15.20 +        [
   15.21 +        (rtac (inst_lift_po RS ssubst) 1),
   15.22 +        (rtac less_lift1a 1)
   15.23 +        ]);
   15.24  
   15.25  (* -------------------------------------------------------------------------*)
   15.26  (* access to less_lift in class po                                          *)
   15.27 @@ -25,17 +25,17 @@
   15.28  
   15.29  qed_goal "less_lift2b" Lift2.thy "~ Iup(x) << UU_lift"
   15.30   (fn prems =>
   15.31 -	[
   15.32 -	(rtac (inst_lift_po RS ssubst) 1),
   15.33 -	(rtac less_lift1b 1)
   15.34 -	]);
   15.35 +        [
   15.36 +        (rtac (inst_lift_po RS ssubst) 1),
   15.37 +        (rtac less_lift1b 1)
   15.38 +        ]);
   15.39  
   15.40  qed_goal "less_lift2c" Lift2.thy "(Iup(x)<<Iup(y)) = (x<<y)"
   15.41   (fn prems =>
   15.42 -	[
   15.43 -	(rtac (inst_lift_po RS ssubst) 1),
   15.44 -	(rtac less_lift1c 1)
   15.45 -	]);
   15.46 +        [
   15.47 +        (rtac (inst_lift_po RS ssubst) 1),
   15.48 +        (rtac less_lift1c 1)
   15.49 +        ]);
   15.50  
   15.51  (* ------------------------------------------------------------------------ *)
   15.52  (* Iup and Ilift are monotone                                               *)
   15.53 @@ -43,40 +43,40 @@
   15.54  
   15.55  qed_goalw "monofun_Iup" Lift2.thy [monofun] "monofun(Iup)"
   15.56   (fn prems =>
   15.57 -	[
   15.58 -	(strip_tac 1),
   15.59 -	(etac (less_lift2c RS iffD2) 1)
   15.60 -	]);
   15.61 +        [
   15.62 +        (strip_tac 1),
   15.63 +        (etac (less_lift2c RS iffD2) 1)
   15.64 +        ]);
   15.65  
   15.66  qed_goalw "monofun_Ilift1" Lift2.thy [monofun] "monofun(Ilift)"
   15.67   (fn prems =>
   15.68 -	[
   15.69 -	(strip_tac 1),
   15.70 -	(rtac (less_fun RS iffD2) 1),
   15.71 -	(strip_tac 1),
   15.72 -	(res_inst_tac [("p","xa")] liftE 1),
   15.73 +        [
   15.74 +        (strip_tac 1),
   15.75 +        (rtac (less_fun RS iffD2) 1),
   15.76 +        (strip_tac 1),
   15.77 +        (res_inst_tac [("p","xa")] liftE 1),
   15.78          (asm_simp_tac Lift0_ss 1),
   15.79          (asm_simp_tac Lift0_ss 1),
   15.80 -	(etac monofun_cfun_fun 1)
   15.81 -	]);
   15.82 +        (etac monofun_cfun_fun 1)
   15.83 +        ]);
   15.84  
   15.85  qed_goalw "monofun_Ilift2" Lift2.thy [monofun] "monofun(Ilift(f))"
   15.86   (fn prems =>
   15.87 -	[
   15.88 -	(strip_tac 1),
   15.89 -	(res_inst_tac [("p","x")] liftE 1),
   15.90 +        [
   15.91 +        (strip_tac 1),
   15.92 +        (res_inst_tac [("p","x")] liftE 1),
   15.93          (asm_simp_tac Lift0_ss 1),
   15.94          (asm_simp_tac Lift0_ss 1),
   15.95 -	(res_inst_tac [("p","y")] liftE 1),
   15.96 -	(hyp_subst_tac 1),
   15.97 -	(rtac notE 1),
   15.98 -	(rtac less_lift2b 1),
   15.99 -	(atac 1),
  15.100 +        (res_inst_tac [("p","y")] liftE 1),
  15.101 +        (hyp_subst_tac 1),
  15.102 +        (rtac notE 1),
  15.103 +        (rtac less_lift2b 1),
  15.104 +        (atac 1),
  15.105          (asm_simp_tac Lift0_ss 1),
  15.106 -	(rtac monofun_cfun_arg 1),
  15.107 -	(hyp_subst_tac 1),
  15.108 -	(etac (less_lift2c  RS iffD1) 1)
  15.109 -	]);
  15.110 +        (rtac monofun_cfun_arg 1),
  15.111 +        (hyp_subst_tac 1),
  15.112 +        (etac (less_lift2c  RS iffD1) 1)
  15.113 +        ]);
  15.114  
  15.115  (* ------------------------------------------------------------------------ *)
  15.116  (* Some kind of surjectivity lemma                                          *)
  15.117 @@ -85,10 +85,10 @@
  15.118  
  15.119  qed_goal "lift_lemma1" Lift2.thy  "z=Iup(x) ==> Iup(Ilift(LAM x.x)(z)) = z"
  15.120   (fn prems =>
  15.121 -	[
  15.122 -	(cut_facts_tac prems 1),
  15.123 +        [
  15.124 +        (cut_facts_tac prems 1),
  15.125          (asm_simp_tac Lift0_ss 1)
  15.126 -	]);
  15.127 +        ]);
  15.128  
  15.129  (* ------------------------------------------------------------------------ *)
  15.130  (* ('a)u is a cpo                                                           *)
  15.131 @@ -98,61 +98,61 @@
  15.132  "[|is_chain(Y);? i x.Y(i)=Iup(x)|] ==>\
  15.133  \ range(Y) <<| Iup(lub(range(%i.(Ilift (LAM x.x) (Y(i))))))"
  15.134   (fn prems =>
  15.135 -	[
  15.136 -	(cut_facts_tac prems 1),
  15.137 -	(rtac is_lubI 1),
  15.138 -	(rtac conjI 1),
  15.139 -	(rtac ub_rangeI 1),
  15.140 -	(rtac allI 1),
  15.141 -	(res_inst_tac [("p","Y(i)")] liftE 1),
  15.142 -	(res_inst_tac [("s","UU_lift"),("t","Y(i)")] subst 1),
  15.143 -	(etac sym 1),
  15.144 -	(rtac minimal_lift 1),
  15.145 -	(res_inst_tac [("t","Y(i)")] (lift_lemma1 RS subst) 1),
  15.146 -	(atac 1),
  15.147 -	(rtac (less_lift2c RS iffD2) 1),
  15.148 -	(rtac is_ub_thelub 1),
  15.149 -	(etac (monofun_Ilift2 RS ch2ch_monofun) 1),
  15.150 -	(strip_tac 1),
  15.151 -	(res_inst_tac [("p","u")] liftE 1),
  15.152 -	(etac exE 1),
  15.153 -	(etac exE 1),
  15.154 -	(res_inst_tac [("P","Y(i)<<UU_lift")] notE 1),
  15.155 -	(res_inst_tac [("s","Iup(x)"),("t","Y(i)")] ssubst 1),
  15.156 -	(atac 1),
  15.157 -	(rtac less_lift2b 1),
  15.158 -	(hyp_subst_tac 1),
  15.159 -	(etac (ub_rangeE RS spec) 1),
  15.160 -	(res_inst_tac [("t","u")] (lift_lemma1 RS subst) 1),
  15.161 -	(atac 1),
  15.162 -	(rtac (less_lift2c RS iffD2) 1),
  15.163 -	(rtac is_lub_thelub 1),
  15.164 -	(etac (monofun_Ilift2 RS ch2ch_monofun) 1),
  15.165 -	(etac (monofun_Ilift2 RS ub2ub_monofun) 1)
  15.166 -	]);
  15.167 +        [
  15.168 +        (cut_facts_tac prems 1),
  15.169 +        (rtac is_lubI 1),
  15.170 +        (rtac conjI 1),
  15.171 +        (rtac ub_rangeI 1),
  15.172 +        (rtac allI 1),
  15.173 +        (res_inst_tac [("p","Y(i)")] liftE 1),
  15.174 +        (res_inst_tac [("s","UU_lift"),("t","Y(i)")] subst 1),
  15.175 +        (etac sym 1),
  15.176 +        (rtac minimal_lift 1),
  15.177 +        (res_inst_tac [("t","Y(i)")] (lift_lemma1 RS subst) 1),
  15.178 +        (atac 1),
  15.179 +        (rtac (less_lift2c RS iffD2) 1),
  15.180 +        (rtac is_ub_thelub 1),
  15.181 +        (etac (monofun_Ilift2 RS ch2ch_monofun) 1),
  15.182 +        (strip_tac 1),
  15.183 +        (res_inst_tac [("p","u")] liftE 1),
  15.184 +        (etac exE 1),
  15.185 +        (etac exE 1),
  15.186 +        (res_inst_tac [("P","Y(i)<<UU_lift")] notE 1),
  15.187 +        (res_inst_tac [("s","Iup(x)"),("t","Y(i)")] ssubst 1),
  15.188 +        (atac 1),
  15.189 +        (rtac less_lift2b 1),
  15.190 +        (hyp_subst_tac 1),
  15.191 +        (etac (ub_rangeE RS spec) 1),
  15.192 +        (res_inst_tac [("t","u")] (lift_lemma1 RS subst) 1),
  15.193 +        (atac 1),
  15.194 +        (rtac (less_lift2c RS iffD2) 1),
  15.195 +        (rtac is_lub_thelub 1),
  15.196 +        (etac (monofun_Ilift2 RS ch2ch_monofun) 1),
  15.197 +        (etac (monofun_Ilift2 RS ub2ub_monofun) 1)
  15.198 +        ]);
  15.199  
  15.200  qed_goal "lub_lift1b" Lift2.thy 
  15.201  "[|is_chain(Y);!i x. Y(i)~=Iup(x)|] ==>\
  15.202  \ range(Y) <<| UU_lift"
  15.203   (fn prems =>
  15.204 -	[
  15.205 -	(cut_facts_tac prems 1),
  15.206 -	(rtac is_lubI 1),
  15.207 -	(rtac conjI 1),
  15.208 -	(rtac ub_rangeI 1),
  15.209 -	(rtac allI 1),
  15.210 -	(res_inst_tac [("p","Y(i)")] liftE 1),
  15.211 -	(res_inst_tac [("s","UU_lift"),("t","Y(i)")] ssubst 1),
  15.212 -	(atac 1),
  15.213 -	(rtac refl_less 1),
  15.214 -	(rtac notE 1),
  15.215 -	(dtac spec 1),
  15.216 -	(dtac spec 1),
  15.217 -	(atac 1),
  15.218 -	(atac 1),
  15.219 -	(strip_tac 1),
  15.220 -	(rtac minimal_lift 1)
  15.221 -	]);
  15.222 +        [
  15.223 +        (cut_facts_tac prems 1),
  15.224 +        (rtac is_lubI 1),
  15.225 +        (rtac conjI 1),
  15.226 +        (rtac ub_rangeI 1),
  15.227 +        (rtac allI 1),
  15.228 +        (res_inst_tac [("p","Y(i)")] liftE 1),
  15.229 +        (res_inst_tac [("s","UU_lift"),("t","Y(i)")] ssubst 1),
  15.230 +        (atac 1),
  15.231 +        (rtac refl_less 1),
  15.232 +        (rtac notE 1),
  15.233 +        (dtac spec 1),
  15.234 +        (dtac spec 1),
  15.235 +        (atac 1),
  15.236 +        (atac 1),
  15.237 +        (strip_tac 1),
  15.238 +        (rtac minimal_lift 1)
  15.239 +        ]);
  15.240  
  15.241  val thelub_lift1a = lub_lift1a RS thelubI;
  15.242  (*
  15.243 @@ -167,17 +167,17 @@
  15.244  *)
  15.245  
  15.246  qed_goal "cpo_lift" Lift2.thy 
  15.247 -	"is_chain(Y::nat=>('a)u) ==> ? x.range(Y) <<|x"
  15.248 +        "is_chain(Y::nat=>('a)u) ==> ? x.range(Y) <<|x"
  15.249   (fn prems =>
  15.250 -	[
  15.251 -	(cut_facts_tac prems 1),
  15.252 -	(rtac disjE 1),
  15.253 -	(rtac exI 2),
  15.254 -	(etac lub_lift1a 2),
  15.255 -	(atac 2),
  15.256 -	(rtac exI 2),
  15.257 -	(etac lub_lift1b 2),
  15.258 -	(atac 2),
  15.259 -	(fast_tac HOL_cs 1)
  15.260 -	]);
  15.261 +        [
  15.262 +        (cut_facts_tac prems 1),
  15.263 +        (rtac disjE 1),
  15.264 +        (rtac exI 2),
  15.265 +        (etac lub_lift1a 2),
  15.266 +        (atac 2),
  15.267 +        (rtac exI 2),
  15.268 +        (etac lub_lift1b 2),
  15.269 +        (atac 2),
  15.270 +        (fast_tac HOL_cs 1)
  15.271 +        ]);
  15.272  
    16.1 --- a/src/HOLCF/Lift3.ML	Mon Jan 29 14:16:13 1996 +0100
    16.2 +++ b/src/HOLCF/Lift3.ML	Tue Jan 30 13:42:57 1996 +0100
    16.3 @@ -1,6 +1,6 @@
    16.4 -(*  Title: 	HOLCF/lift3.ML
    16.5 +(*  Title:      HOLCF/lift3.ML
    16.6      ID:         $Id$
    16.7 -    Author: 	Franz Regensburger
    16.8 +    Author:     Franz Regensburger
    16.9      Copyright   1993 Technische Universitaet Muenchen
   16.10  
   16.11  Lemmas for lift3.thy
   16.12 @@ -14,17 +14,17 @@
   16.13  
   16.14  qed_goal "less_lift3b" Lift3.thy "~ Iup(x) << UU"
   16.15   (fn prems =>
   16.16 -	[
   16.17 -	(rtac (inst_lift_pcpo RS ssubst) 1),
   16.18 -	(rtac less_lift2b 1)
   16.19 -	]);
   16.20 +        [
   16.21 +        (rtac (inst_lift_pcpo RS ssubst) 1),
   16.22 +        (rtac less_lift2b 1)
   16.23 +        ]);
   16.24  
   16.25  qed_goal "defined_Iup2" Lift3.thy "Iup(x) ~= UU"
   16.26   (fn prems =>
   16.27 -	[
   16.28 -	(rtac (inst_lift_pcpo RS ssubst) 1),
   16.29 -	(rtac defined_Iup 1)
   16.30 -	]);
   16.31 +        [
   16.32 +        (rtac (inst_lift_pcpo RS ssubst) 1),
   16.33 +        (rtac defined_Iup 1)
   16.34 +        ]);
   16.35  
   16.36  (* ------------------------------------------------------------------------ *)
   16.37  (* continuity for Iup                                                       *)
   16.38 @@ -32,28 +32,28 @@
   16.39  
   16.40  qed_goal "contlub_Iup" Lift3.thy "contlub(Iup)"
   16.41   (fn prems =>
   16.42 -	[
   16.43 -	(rtac contlubI 1),
   16.44 -	(strip_tac 1),
   16.45 -	(rtac trans 1),
   16.46 -	(rtac (thelub_lift1a RS sym) 2),
   16.47 -	(fast_tac HOL_cs 3),
   16.48 -	(etac (monofun_Iup RS ch2ch_monofun) 2),
   16.49 -	(res_inst_tac [("f","Iup")] arg_cong  1),
   16.50 -	(rtac lub_equal 1),
   16.51 -	(atac 1),
   16.52 -	(rtac (monofun_Ilift2 RS ch2ch_monofun) 1),
   16.53 -	(etac (monofun_Iup RS ch2ch_monofun) 1),
   16.54 +        [
   16.55 +        (rtac contlubI 1),
   16.56 +        (strip_tac 1),
   16.57 +        (rtac trans 1),
   16.58 +        (rtac (thelub_lift1a RS sym) 2),
   16.59 +        (fast_tac HOL_cs 3),
   16.60 +        (etac (monofun_Iup RS ch2ch_monofun) 2),
   16.61 +        (res_inst_tac [("f","Iup")] arg_cong  1),
   16.62 +        (rtac lub_equal 1),
   16.63 +        (atac 1),
   16.64 +        (rtac (monofun_Ilift2 RS ch2ch_monofun) 1),
   16.65 +        (etac (monofun_Iup RS ch2ch_monofun) 1),
   16.66          (asm_simp_tac Lift0_ss 1)
   16.67 -	]);
   16.68 +        ]);
   16.69  
   16.70  qed_goal "cont_Iup" Lift3.thy "cont(Iup)"
   16.71   (fn prems =>
   16.72 -	[
   16.73 -	(rtac monocontlub2cont 1),
   16.74 -	(rtac monofun_Iup 1),
   16.75 -	(rtac contlub_Iup 1)
   16.76 -	]);
   16.77 +        [
   16.78 +        (rtac monocontlub2cont 1),
   16.79 +        (rtac monofun_Iup 1),
   16.80 +        (rtac contlub_Iup 1)
   16.81 +        ]);
   16.82  
   16.83  
   16.84  (* ------------------------------------------------------------------------ *)
   16.85 @@ -62,83 +62,83 @@
   16.86  
   16.87  qed_goal "contlub_Ilift1" Lift3.thy "contlub(Ilift)"
   16.88   (fn prems =>
   16.89 -	[
   16.90 -	(rtac contlubI 1),
   16.91 -	(strip_tac 1),
   16.92 -	(rtac trans 1),
   16.93 -	(rtac (thelub_fun RS sym) 2),
   16.94 -	(etac (monofun_Ilift1 RS ch2ch_monofun) 2),
   16.95 -	(rtac ext 1),
   16.96 -	(res_inst_tac [("p","x")] liftE 1),
   16.97 +        [
   16.98 +        (rtac contlubI 1),
   16.99 +        (strip_tac 1),
  16.100 +        (rtac trans 1),
  16.101 +        (rtac (thelub_fun RS sym) 2),
  16.102 +        (etac (monofun_Ilift1 RS ch2ch_monofun) 2),
  16.103 +        (rtac ext 1),
  16.104 +        (res_inst_tac [("p","x")] liftE 1),
  16.105          (asm_simp_tac Lift0_ss 1),
  16.106 -	(rtac (lub_const RS thelubI RS sym) 1),
  16.107 +        (rtac (lub_const RS thelubI RS sym) 1),
  16.108          (asm_simp_tac Lift0_ss 1),
  16.109 -	(etac contlub_cfun_fun 1)
  16.110 -	]);
  16.111 +        (etac contlub_cfun_fun 1)
  16.112 +        ]);
  16.113  
  16.114  
  16.115  qed_goal "contlub_Ilift2" Lift3.thy "contlub(Ilift(f))"
  16.116   (fn prems =>
  16.117 -	[
  16.118 -	(rtac contlubI 1),
  16.119 -	(strip_tac 1),
  16.120 -	(rtac disjE 1),
  16.121 -	(rtac (thelub_lift1a RS ssubst) 2),
  16.122 -	(atac 2),
  16.123 -	(atac 2),
  16.124 +        [
  16.125 +        (rtac contlubI 1),
  16.126 +        (strip_tac 1),
  16.127 +        (rtac disjE 1),
  16.128 +        (rtac (thelub_lift1a RS ssubst) 2),
  16.129 +        (atac 2),
  16.130 +        (atac 2),
  16.131          (asm_simp_tac Lift0_ss 2),
  16.132 -	(rtac (thelub_lift1b RS ssubst) 3),
  16.133 -	(atac 3),
  16.134 -	(atac 3),
  16.135 -	(fast_tac HOL_cs 1),
  16.136 +        (rtac (thelub_lift1b RS ssubst) 3),
  16.137 +        (atac 3),
  16.138 +        (atac 3),
  16.139 +        (fast_tac HOL_cs 1),
  16.140          (asm_simp_tac Lift0_ss 2),
  16.141 -	(rtac (chain_UU_I_inverse RS sym) 2),
  16.142 -	(rtac allI 2),
  16.143 -	(res_inst_tac [("p","Y(i)")] liftE 2),
  16.144 +        (rtac (chain_UU_I_inverse RS sym) 2),
  16.145 +        (rtac allI 2),
  16.146 +        (res_inst_tac [("p","Y(i)")] liftE 2),
  16.147          (asm_simp_tac Lift0_ss 2),
  16.148 -	(rtac notE 2),
  16.149 -	(dtac spec 2),
  16.150 -	(etac spec 2),
  16.151 -	(atac 2),
  16.152 -	(rtac (contlub_cfun_arg RS ssubst) 1),
  16.153 -	(etac (monofun_Ilift2 RS ch2ch_monofun) 1),
  16.154 -	(rtac lub_equal2 1),
  16.155 -	(rtac (monofun_fapp2 RS ch2ch_monofun) 2),
  16.156 -	(etac (monofun_Ilift2 RS ch2ch_monofun) 2),
  16.157 -	(etac (monofun_Ilift2 RS ch2ch_monofun) 2),
  16.158 -	(rtac (chain_mono2 RS exE) 1),
  16.159 -	(atac 2),
  16.160 -	(etac exE 1),
  16.161 -	(etac exE 1),
  16.162 -	(rtac exI 1),
  16.163 -	(res_inst_tac [("s","Iup(x)"),("t","Y(i)")] ssubst 1),
  16.164 -	(atac 1),
  16.165 -	(rtac defined_Iup2 1),
  16.166 -	(rtac exI 1),
  16.167 -	(strip_tac 1),
  16.168 -	(res_inst_tac [("p","Y(i)")] liftE 1),
  16.169 +        (rtac notE 2),
  16.170 +        (dtac spec 2),
  16.171 +        (etac spec 2),
  16.172 +        (atac 2),
  16.173 +        (rtac (contlub_cfun_arg RS ssubst) 1),
  16.174 +        (etac (monofun_Ilift2 RS ch2ch_monofun) 1),
  16.175 +        (rtac lub_equal2 1),
  16.176 +        (rtac (monofun_fapp2 RS ch2ch_monofun) 2),
  16.177 +        (etac (monofun_Ilift2 RS ch2ch_monofun) 2),
  16.178 +        (etac (monofun_Ilift2 RS ch2ch_monofun) 2),
  16.179 +        (rtac (chain_mono2 RS exE) 1),
  16.180 +        (atac 2),
  16.181 +        (etac exE 1),
  16.182 +        (etac exE 1),
  16.183 +        (rtac exI 1),
  16.184 +        (res_inst_tac [("s","Iup(x)"),("t","Y(i)")] ssubst 1),
  16.185 +        (atac 1),
  16.186 +        (rtac defined_Iup2 1),
  16.187 +        (rtac exI 1),
  16.188 +        (strip_tac 1),
  16.189 +        (res_inst_tac [("p","Y(i)")] liftE 1),
  16.190          (asm_simp_tac Lift0_ss 2),
  16.191 -	(res_inst_tac [("P","Y(i) = UU")] notE 1),
  16.192 -	(fast_tac HOL_cs 1),
  16.193 -	(rtac (inst_lift_pcpo RS ssubst) 1),
  16.194 -	(atac 1)
  16.195 -	]);
  16.196 +        (res_inst_tac [("P","Y(i) = UU")] notE 1),
  16.197 +        (fast_tac HOL_cs 1),
  16.198 +        (rtac (inst_lift_pcpo RS ssubst) 1),
  16.199 +        (atac 1)
  16.200 +        ]);
  16.201  
  16.202  qed_goal "cont_Ilift1" Lift3.thy "cont(Ilift)"
  16.203   (fn prems =>
  16.204 -	[
  16.205 -	(rtac monocontlub2cont 1),
  16.206 -	(rtac monofun_Ilift1 1),
  16.207 -	(rtac contlub_Ilift1 1)
  16.208 -	]);
  16.209 +        [
  16.210 +        (rtac monocontlub2cont 1),
  16.211 +        (rtac monofun_Ilift1 1),
  16.212 +        (rtac contlub_Ilift1 1)
  16.213 +        ]);
  16.214  
  16.215  qed_goal "cont_Ilift2" Lift3.thy "cont(Ilift(f))"
  16.216   (fn prems =>
  16.217 -	[
  16.218 -	(rtac monocontlub2cont 1),
  16.219 -	(rtac monofun_Ilift2 1),
  16.220 -	(rtac contlub_Ilift2 1)
  16.221 -	]);
  16.222 +        [
  16.223 +        (rtac monocontlub2cont 1),
  16.224 +        (rtac monofun_Ilift2 1),
  16.225 +        (rtac contlub_Ilift2 1)
  16.226 +        ]);
  16.227  
  16.228  
  16.229  (* ------------------------------------------------------------------------ *)
  16.230 @@ -147,200 +147,200 @@
  16.231  
  16.232  qed_goalw "Exh_Lift1" Lift3.thy [up_def] "z = UU | (? x. z = up`x)"
  16.233   (fn prems =>
  16.234 -	[
  16.235 +        [
  16.236          (simp_tac (Lift0_ss addsimps [cont_Iup]) 1),
  16.237 -	(rtac (inst_lift_pcpo RS ssubst) 1),
  16.238 -	(rtac Exh_Lift 1)
  16.239 -	]);
  16.240 +        (rtac (inst_lift_pcpo RS ssubst) 1),
  16.241 +        (rtac Exh_Lift 1)
  16.242 +        ]);
  16.243  
  16.244  qed_goalw "inject_up" Lift3.thy [up_def] "up`x=up`y ==> x=y"
  16.245   (fn prems =>
  16.246 -	[
  16.247 -	(cut_facts_tac prems 1),
  16.248 -	(rtac inject_Iup 1),
  16.249 -	(etac box_equals 1),
  16.250 +        [
  16.251 +        (cut_facts_tac prems 1),
  16.252 +        (rtac inject_Iup 1),
  16.253 +        (etac box_equals 1),
  16.254          (simp_tac (Lift0_ss addsimps [cont_Iup]) 1),
  16.255          (simp_tac (Lift0_ss addsimps [cont_Iup]) 1)
  16.256 - 	]);
  16.257 +        ]);
  16.258  
  16.259  qed_goalw "defined_up" Lift3.thy [up_def] " up`x ~= UU"
  16.260   (fn prems =>
  16.261 -	[
  16.262 +        [
  16.263          (simp_tac (Lift0_ss addsimps [cont_Iup]) 1),
  16.264 -	(rtac defined_Iup2 1)
  16.265 -	]);
  16.266 +        (rtac defined_Iup2 1)
  16.267 +        ]);
  16.268  
  16.269  qed_goalw "liftE1" Lift3.thy [up_def] 
  16.270 -	"[| p=UU ==> Q; !!x. p=up`x==>Q|] ==>Q"
  16.271 +        "[| p=UU ==> Q; !!x. p=up`x==>Q|] ==>Q"
  16.272   (fn prems =>
  16.273 -	[
  16.274 -	(rtac liftE 1),
  16.275 -	(resolve_tac prems 1),
  16.276 -	(etac (inst_lift_pcpo RS ssubst) 1),
  16.277 -	(resolve_tac (tl prems) 1),
  16.278 +        [
  16.279 +        (rtac liftE 1),
  16.280 +        (resolve_tac prems 1),
  16.281 +        (etac (inst_lift_pcpo RS ssubst) 1),
  16.282 +        (resolve_tac (tl prems) 1),
  16.283          (asm_simp_tac (Lift0_ss addsimps [cont_Iup]) 1)
  16.284 -	]);
  16.285 +        ]);
  16.286  
  16.287  
  16.288  qed_goalw "lift1" Lift3.thy [up_def,lift_def] "lift`f`UU=UU"
  16.289   (fn prems =>
  16.290 -	[
  16.291 -	(rtac (inst_lift_pcpo RS ssubst) 1),
  16.292 -	(rtac (beta_cfun RS ssubst) 1),
  16.293 -	(REPEAT (resolve_tac (cont_lemmas @ [cont_Iup,cont_Ilift1,
  16.294 -		cont_Ilift2,cont2cont_CF1L]) 1)),
  16.295 -	(rtac (beta_cfun RS ssubst) 1),
  16.296 -	(REPEAT (resolve_tac (cont_lemmas @ [cont_Iup,cont_Ilift1,
  16.297 -		cont_Ilift2,cont2cont_CF1L]) 1)),
  16.298 -	(simp_tac (Lift0_ss addsimps [cont_Iup,cont_Ilift1,cont_Ilift2]) 1)
  16.299 -	]);
  16.300 +        [
  16.301 +        (rtac (inst_lift_pcpo RS ssubst) 1),
  16.302 +        (rtac (beta_cfun RS ssubst) 1),
  16.303 +        (REPEAT (resolve_tac (cont_lemmas @ [cont_Iup,cont_Ilift1,
  16.304 +                cont_Ilift2,cont2cont_CF1L]) 1)),
  16.305 +        (rtac (beta_cfun RS ssubst) 1),
  16.306 +        (REPEAT (resolve_tac (cont_lemmas @ [cont_Iup,cont_Ilift1,
  16.307 +                cont_Ilift2,cont2cont_CF1L]) 1)),
  16.308 +        (simp_tac (Lift0_ss addsimps [cont_Iup,cont_Ilift1,cont_Ilift2]) 1)
  16.309 +        ]);
  16.310  
  16.311  qed_goalw "lift2" Lift3.thy [up_def,lift_def] "lift`f`(up`x)=f`x"
  16.312   (fn prems =>
  16.313 -	[
  16.314 -	(rtac (beta_cfun RS ssubst) 1),
  16.315 -	(rtac cont_Iup 1),
  16.316 -	(rtac (beta_cfun RS ssubst) 1),
  16.317 -	(REPEAT (resolve_tac (cont_lemmas @ [cont_Iup,cont_Ilift1,
  16.318 -		cont_Ilift2,cont2cont_CF1L]) 1)),
  16.319 -	(rtac (beta_cfun RS ssubst) 1),
  16.320 -	(rtac cont_Ilift2 1),
  16.321 -	(simp_tac (Lift0_ss addsimps [cont_Iup,cont_Ilift1,cont_Ilift2]) 1)
  16.322 -	]);
  16.323 +        [
  16.324 +        (rtac (beta_cfun RS ssubst) 1),
  16.325 +        (rtac cont_Iup 1),
  16.326 +        (rtac (beta_cfun RS ssubst) 1),
  16.327 +        (REPEAT (resolve_tac (cont_lemmas @ [cont_Iup,cont_Ilift1,
  16.328 +                cont_Ilift2,cont2cont_CF1L]) 1)),
  16.329 +        (rtac (beta_cfun RS ssubst) 1),
  16.330 +        (rtac cont_Ilift2 1),
  16.331 +        (simp_tac (Lift0_ss addsimps [cont_Iup,cont_Ilift1,cont_Ilift2]) 1)
  16.332 +        ]);
  16.333  
  16.334  qed_goalw "less_lift4b" Lift3.thy [up_def,lift_def] "~ up`x << UU"
  16.335   (fn prems =>
  16.336 -	[
  16.337 +        [
  16.338          (simp_tac (Lift0_ss addsimps [cont_Iup]) 1),
  16.339 -	(rtac less_lift3b 1)
  16.340 -	]);
  16.341 +        (rtac less_lift3b 1)
  16.342 +        ]);
  16.343  
  16.344  qed_goalw "less_lift4c" Lift3.thy [up_def,lift_def]
  16.345 -	 "(up`x << up`y) = (x<<y)"
  16.346 +         "(up`x << up`y) = (x<<y)"
  16.347   (fn prems =>
  16.348 -	[
  16.349 +        [
  16.350          (simp_tac (Lift0_ss addsimps [cont_Iup]) 1),
  16.351 -	(rtac less_lift2c 1)
  16.352 -	]);
  16.353 +        (rtac less_lift2c 1)
  16.354 +        ]);
  16.355  
  16.356  qed_goalw "thelub_lift2a" Lift3.thy [up_def,lift_def] 
  16.357  "[| is_chain(Y); ? i x. Y(i) = up`x |] ==>\
  16.358  \      lub(range(Y)) = up`(lub(range(%i. lift`(LAM x. x)`(Y i))))"
  16.359   (fn prems =>
  16.360 -	[
  16.361 -	(cut_facts_tac prems 1),
  16.362 -	(rtac (beta_cfun RS ssubst) 1),
  16.363 -	(REPEAT (resolve_tac (cont_lemmas @ [cont_Iup,cont_Ilift1,
  16.364 -		cont_Ilift2,cont2cont_CF1L]) 1)),
  16.365 -	(rtac (beta_cfun RS ssubst) 1),
  16.366 -	(REPEAT (resolve_tac (cont_lemmas @ [cont_Iup,cont_Ilift1,
  16.367 -		cont_Ilift2,cont2cont_CF1L]) 1)),
  16.368 +        [
  16.369 +        (cut_facts_tac prems 1),
  16.370 +        (rtac (beta_cfun RS ssubst) 1),
  16.371 +        (REPEAT (resolve_tac (cont_lemmas @ [cont_Iup,cont_Ilift1,
  16.372 +                cont_Ilift2,cont2cont_CF1L]) 1)),
  16.373 +        (rtac (beta_cfun RS ssubst) 1),
  16.374 +        (REPEAT (resolve_tac (cont_lemmas @ [cont_Iup,cont_Ilift1,
  16.375 +                cont_Ilift2,cont2cont_CF1L]) 1)),
  16.376  
  16.377 -	(rtac (beta_cfun RS ext RS ssubst) 1),
  16.378 -	(REPEAT (resolve_tac (cont_lemmas @ [cont_Iup,cont_Ilift1,
  16.379 -		cont_Ilift2,cont2cont_CF1L]) 1)),
  16.380 -	(rtac thelub_lift1a 1),
  16.381 -	(atac 1),
  16.382 -	(etac exE 1),
  16.383 -	(etac exE 1),
  16.384 -	(rtac exI 1),
  16.385 -	(rtac exI 1),
  16.386 -	(etac box_equals 1),
  16.387 -	(rtac refl 1),
  16.388 -	(simp_tac (Lift0_ss addsimps [cont_Iup]) 1)
  16.389 -	]);
  16.390 +        (rtac (beta_cfun RS ext RS ssubst) 1),
  16.391 +        (REPEAT (resolve_tac (cont_lemmas @ [cont_Iup,cont_Ilift1,
  16.392 +                cont_Ilift2,cont2cont_CF1L]) 1)),
  16.393 +        (rtac thelub_lift1a 1),
  16.394 +        (atac 1),
  16.395 +        (etac exE 1),
  16.396 +        (etac exE 1),
  16.397 +        (rtac exI 1),
  16.398 +        (rtac exI 1),
  16.399 +        (etac box_equals 1),
  16.400 +        (rtac refl 1),
  16.401 +        (simp_tac (Lift0_ss addsimps [cont_Iup]) 1)
  16.402 +        ]);
  16.403  
  16.404  
  16.405  
  16.406  qed_goalw "thelub_lift2b" Lift3.thy [up_def,lift_def] 
  16.407  "[| is_chain(Y); ! i x. Y(i) ~= up`x |] ==> lub(range(Y)) = UU"
  16.408   (fn prems =>
  16.409 -	[
  16.410 -	(cut_facts_tac prems 1),
  16.411 -	(rtac (inst_lift_pcpo RS ssubst) 1),
  16.412 -	(rtac thelub_lift1b 1),
  16.413 -	(atac 1),
  16.414 -	(strip_tac 1),
  16.415 -	(dtac spec 1),
  16.416 -	(dtac spec 1),
  16.417 -	(rtac swap 1),
  16.418 -	(atac 1),
  16.419 -	(dtac notnotD 1),
  16.420 -	(etac box_equals 1),
  16.421 -	(rtac refl 1),
  16.422 +        [
  16.423 +        (cut_facts_tac prems 1),
  16.424 +        (rtac (inst_lift_pcpo RS ssubst) 1),
  16.425 +        (rtac thelub_lift1b 1),
  16.426 +        (atac 1),
  16.427 +        (strip_tac 1),
  16.428 +        (dtac spec 1),
  16.429 +        (dtac spec 1),
  16.430 +        (rtac swap 1),
  16.431 +        (atac 1),
  16.432 +        (dtac notnotD 1),
  16.433 +        (etac box_equals 1),
  16.434 +        (rtac refl 1),
  16.435          (simp_tac (Lift0_ss addsimps [cont_Iup]) 1)
  16.436 -	]);
  16.437 +        ]);
  16.438  
  16.439  
  16.440  qed_goal "lift_lemma2" Lift3.thy  " (? x.z = up`x) = (z~=UU)"
  16.441   (fn prems =>
  16.442 -	[
  16.443 -	(rtac iffI 1),
  16.444 -	(etac exE 1),
  16.445 -	(hyp_subst_tac 1),
  16.446 -	(rtac defined_up 1),
  16.447 -	(res_inst_tac [("p","z")] liftE1 1),
  16.448 -	(etac notE 1),
  16.449 -	(atac 1),
  16.450 -	(etac exI 1)
  16.451 -	]);
  16.452 +        [
  16.453 +        (rtac iffI 1),
  16.454 +        (etac exE 1),
  16.455 +        (hyp_subst_tac 1),
  16.456 +        (rtac defined_up 1),
  16.457 +        (res_inst_tac [("p","z")] liftE1 1),
  16.458 +        (etac notE 1),
  16.459 +        (atac 1),
  16.460 +        (etac exI 1)
  16.461 +        ]);
  16.462  
  16.463  
  16.464  qed_goal "thelub_lift2a_rev" Lift3.thy  
  16.465  "[| is_chain(Y); lub(range(Y)) = up`x |] ==> ? i x. Y(i) = up`x"
  16.466   (fn prems =>
  16.467 -	[
  16.468 -	(cut_facts_tac prems 1),
  16.469 -	(rtac exE 1),
  16.470 -	(rtac chain_UU_I_inverse2 1),
  16.471 -	(rtac (lift_lemma2 RS iffD1) 1),
  16.472 -	(etac exI 1),
  16.473 -	(rtac exI 1),
  16.474 -	(rtac (lift_lemma2 RS iffD2) 1),
  16.475 -	(atac 1)
  16.476 -	]);
  16.477 +        [
  16.478 +        (cut_facts_tac prems 1),
  16.479 +        (rtac exE 1),
  16.480 +        (rtac chain_UU_I_inverse2 1),
  16.481 +        (rtac (lift_lemma2 RS iffD1) 1),
  16.482 +        (etac exI 1),
  16.483 +        (rtac exI 1),
  16.484 +        (rtac (lift_lemma2 RS iffD2) 1),
  16.485 +        (atac 1)
  16.486 +        ]);
  16.487  
  16.488  qed_goal "thelub_lift2b_rev" Lift3.thy  
  16.489  "[| is_chain(Y); lub(range(Y)) = UU |] ==> ! i x.  Y(i) ~= up`x"
  16.490   (fn prems =>
  16.491 -	[
  16.492 -	(cut_facts_tac prems 1),
  16.493 -	(rtac allI 1),
  16.494 -	(rtac (notex2all RS iffD1) 1),
  16.495 -	(rtac contrapos 1),
  16.496 -	(etac (lift_lemma2 RS iffD1) 2),
  16.497 -	(rtac notnotI 1),
  16.498 -	(rtac (chain_UU_I RS spec) 1),
  16.499 -	(atac 1),
  16.500 -	(atac 1)
  16.501 -	]);
  16.502 +        [
  16.503 +        (cut_facts_tac prems 1),
  16.504 +        (rtac allI 1),
  16.505 +        (rtac (notex2all RS iffD1) 1),
  16.506 +        (rtac contrapos 1),
  16.507 +        (etac (lift_lemma2 RS iffD1) 2),
  16.508 +        (rtac notnotI 1),
  16.509 +        (rtac (chain_UU_I RS spec) 1),
  16.510 +        (atac 1),
  16.511 +        (atac 1)
  16.512 +        ]);
  16.513  
  16.514  
  16.515  qed_goal "thelub_lift3" Lift3.thy  
  16.516  "is_chain(Y) ==> lub(range(Y)) = UU |\
  16.517  \                lub(range(Y)) = up`(lub(range(%i. lift`(LAM x.x)`(Y i))))"
  16.518   (fn prems =>
  16.519 -	[
  16.520 -	(cut_facts_tac prems 1),
  16.521 -	(rtac disjE 1),
  16.522 -	(rtac disjI1 2),
  16.523 -	(rtac thelub_lift2b 2),
  16.524 -	(atac 2),
  16.525 -	(atac 2),
  16.526 -	(rtac disjI2 2),
  16.527 -	(rtac thelub_lift2a 2),
  16.528 -	(atac 2),
  16.529 -	(atac 2),
  16.530 -	(fast_tac HOL_cs 1)
  16.531 -	]);
  16.532 +        [
  16.533 +        (cut_facts_tac prems 1),
  16.534 +        (rtac disjE 1),
  16.535 +        (rtac disjI1 2),
  16.536 +        (rtac thelub_lift2b 2),
  16.537 +        (atac 2),
  16.538 +        (atac 2),
  16.539 +        (rtac disjI2 2),
  16.540 +        (rtac thelub_lift2a 2),
  16.541 +        (atac 2),
  16.542 +        (atac 2),
  16.543 +        (fast_tac HOL_cs 1)
  16.544 +        ]);
  16.545  
  16.546  qed_goal "lift3" Lift3.thy "lift`up`x=x"
  16.547   (fn prems =>
  16.548 -	[
  16.549 -	(res_inst_tac [("p","x")] liftE1 1),
  16.550 -	(asm_simp_tac ((simpset_of "Cfun3") addsimps [lift1,lift2]) 1),
  16.551 -	(asm_simp_tac ((simpset_of "Cfun3") addsimps [lift1,lift2]) 1)
  16.552 -	]);
  16.553 +        [
  16.554 +        (res_inst_tac [("p","x")] liftE1 1),
  16.555 +        (asm_simp_tac ((simpset_of "Cfun3") addsimps [lift1,lift2]) 1),
  16.556 +        (asm_simp_tac ((simpset_of "Cfun3") addsimps [lift1,lift2]) 1)
  16.557 +        ]);
  16.558  
  16.559  (* ------------------------------------------------------------------------ *)
  16.560  (* install simplifier for ('a)u                                             *)
    17.1 --- a/src/HOLCF/One.ML	Mon Jan 29 14:16:13 1996 +0100
    17.2 +++ b/src/HOLCF/One.ML	Tue Jan 30 13:42:57 1996 +0100
    17.3 @@ -1,6 +1,6 @@
    17.4 -(*  Title: 	HOLCF/one.thy
    17.5 +(*  Title:      HOLCF/one.thy
    17.6      ID:         $Id$
    17.7 -    Author: 	Franz Regensburger
    17.8 +    Author:     Franz Regensburger
    17.9      Copyright   1993 Technische Universitaet Muenchen
   17.10  
   17.11  Lemmas for one.thy 
   17.12 @@ -14,28 +14,28 @@
   17.13  
   17.14  qed_goalw "Exh_one" One.thy [one_def] "z=UU | z = one"
   17.15   (fn prems =>
   17.16 -	[
   17.17 -	(res_inst_tac [("p","rep_one`z")] liftE1 1),
   17.18 -	(rtac disjI1 1),
   17.19 -	(rtac ((abs_one_iso RS allI) RS ((rep_one_iso RS allI) RS iso_strict )
   17.20 -		RS conjunct2 RS subst) 1),
   17.21 -	(rtac (abs_one_iso RS subst) 1),
   17.22 -	(etac cfun_arg_cong 1),
   17.23 -	(rtac disjI2 1),
   17.24 -	(rtac (abs_one_iso RS subst) 1),
   17.25 -	(rtac cfun_arg_cong 1),
   17.26 -	(rtac (unique_void2 RS subst) 1),
   17.27 -	(atac 1)
   17.28 -	]);
   17.29 +        [
   17.30 +        (res_inst_tac [("p","rep_one`z")] liftE1 1),
   17.31 +        (rtac disjI1 1),
   17.32 +        (rtac ((abs_one_iso RS allI) RS ((rep_one_iso RS allI) RS iso_strict )
   17.33 +                RS conjunct2 RS subst) 1),
   17.34 +        (rtac (abs_one_iso RS subst) 1),
   17.35 +        (etac cfun_arg_cong 1),
   17.36 +        (rtac disjI2 1),
   17.37 +        (rtac (abs_one_iso RS subst) 1),
   17.38 +        (rtac cfun_arg_cong 1),
   17.39 +        (rtac (unique_void2 RS subst) 1),
   17.40 +        (atac 1)
   17.41 +        ]);
   17.42  
   17.43  qed_goal "oneE" One.thy
   17.44 -	"[| p=UU ==> Q; p = one ==>Q|] ==>Q"
   17.45 +        "[| p=UU ==> Q; p = one ==>Q|] ==>Q"
   17.46   (fn prems =>
   17.47 -	[
   17.48 -	(rtac (Exh_one RS disjE) 1),
   17.49 -	(eresolve_tac prems 1),
   17.50 -	(eresolve_tac prems 1)
   17.51 -	]);
   17.52 +        [
   17.53 +        (rtac (Exh_one RS disjE) 1),
   17.54 +        (eresolve_tac prems 1),
   17.55 +        (eresolve_tac prems 1)
   17.56 +        ]);
   17.57  
   17.58  (* ------------------------------------------------------------------------ *)
   17.59  (* distinctness for type one : stored in a list                             *)
   17.60 @@ -44,23 +44,23 @@
   17.61  val dist_less_one = [
   17.62  prove_goalw One.thy [one_def] "~one << UU"
   17.63   (fn prems =>
   17.64 -	[
   17.65 -	(rtac classical3 1),
   17.66 -	(rtac less_lift4b 1),
   17.67 -	(rtac (rep_one_iso RS subst) 1),
   17.68 -	(rtac (rep_one_iso RS subst) 1),
   17.69 -	(rtac monofun_cfun_arg 1),
   17.70 -	(etac ((abs_one_iso RS allI) RS ((rep_one_iso RS allI) RS iso_strict ) 
   17.71 -		RS conjunct2 RS ssubst) 1)
   17.72 -	])
   17.73 +        [
   17.74 +        (rtac classical3 1),
   17.75 +        (rtac less_lift4b 1),
   17.76 +        (rtac (rep_one_iso RS subst) 1),
   17.77 +        (rtac (rep_one_iso RS subst) 1),
   17.78 +        (rtac monofun_cfun_arg 1),
   17.79 +        (etac ((abs_one_iso RS allI) RS ((rep_one_iso RS allI) RS iso_strict ) 
   17.80 +                RS conjunct2 RS ssubst) 1)
   17.81 +        ])
   17.82  ];
   17.83  
   17.84  val  dist_eq_one = [prove_goal One.thy "one~=UU"
   17.85   (fn prems =>
   17.86 -	[
   17.87 -	(rtac not_less2not_eq 1),
   17.88 -	(resolve_tac dist_less_one 1)
   17.89 -	])];
   17.90 +        [
   17.91 +        (rtac not_less2not_eq 1),
   17.92 +        (resolve_tac dist_less_one 1)
   17.93 +        ])];
   17.94  
   17.95  val dist_eq_one = dist_eq_one @ (map (fn thm => (thm RS not_sym)) dist_eq_one);
   17.96  
   17.97 @@ -70,15 +70,15 @@
   17.98  
   17.99  qed_goalw "flat_one" One.thy [is_flat_def] "is_flat(one)"
  17.100   (fn prems =>
  17.101 -	[
  17.102 -	(rtac allI 1),
  17.103 -	(rtac allI 1),
  17.104 -	(res_inst_tac [("p","x")] oneE 1),
  17.105 -	(Asm_simp_tac 1),
  17.106 -	(res_inst_tac [("p","y")] oneE 1),
  17.107 -	(asm_simp_tac (!simpset addsimps dist_less_one) 1),
  17.108 -	(Asm_simp_tac 1)
  17.109 -	]);
  17.110 +        [
  17.111 +        (rtac allI 1),
  17.112 +        (rtac allI 1),
  17.113 +        (res_inst_tac [("p","x")] oneE 1),
  17.114 +        (Asm_simp_tac 1),
  17.115 +        (res_inst_tac [("p","y")] oneE 1),
  17.116 +        (asm_simp_tac (!simpset addsimps dist_less_one) 1),
  17.117 +        (Asm_simp_tac 1)
  17.118 +        ]);
  17.119  
  17.120  
  17.121  (* ------------------------------------------------------------------------ *)
  17.122 @@ -88,11 +88,11 @@
  17.123  
  17.124  fun prover s =  prove_goalw One.thy [one_when_def,one_def] s
  17.125   (fn prems =>
  17.126 -	[
  17.127 -	(simp_tac (!simpset addsimps [(rep_one_iso ),
  17.128 -	(abs_one_iso RS allI) RS ((rep_one_iso RS allI) 
  17.129 -	RS iso_strict) RS conjunct1] )1)
  17.130 -	]);
  17.131 +        [
  17.132 +        (simp_tac (!simpset addsimps [(rep_one_iso ),
  17.133 +        (abs_one_iso RS allI) RS ((rep_one_iso RS allI) 
  17.134 +        RS iso_strict) RS conjunct1] )1)
  17.135 +        ]);
  17.136  
  17.137  val one_when = map prover ["one_when`x`UU = UU","one_when`x`one = x"];
  17.138  
    18.1 --- a/src/HOLCF/Pcpo.ML	Mon Jan 29 14:16:13 1996 +0100
    18.2 +++ b/src/HOLCF/Pcpo.ML	Tue Jan 30 13:42:57 1996 +0100
    18.3 @@ -1,6 +1,6 @@
    18.4 -(*  Title: 	HOLCF/pcpo.ML
    18.5 +(*  Title:      HOLCF/pcpo.ML
    18.6      ID:         $Id$
    18.7 -    Author: 	Franz Regensburger
    18.8 +    Author:     Franz Regensburger
    18.9      Copyright   1993 Technische Universitaet Muenchen
   18.10  
   18.11  Lemmas for pcpo.thy
   18.12 @@ -13,14 +13,14 @@
   18.13  (* ------------------------------------------------------------------------ *)
   18.14  
   18.15  qed_goal "thelubE"  Pcpo.thy 
   18.16 -	"[| is_chain(S);lub(range(S)) = (l::'a::pcpo)|] ==> range(S) <<| l "
   18.17 +        "[| is_chain(S);lub(range(S)) = (l::'a::pcpo)|] ==> range(S) <<| l "
   18.18  (fn prems =>
   18.19 -	[
   18.20 -	(cut_facts_tac prems 1), 
   18.21 -	(hyp_subst_tac 1),
   18.22 -	(rtac lubI 1),
   18.23 -	(etac cpo 1)
   18.24 -	]);
   18.25 +        [
   18.26 +        (cut_facts_tac prems 1), 
   18.27 +        (hyp_subst_tac 1),
   18.28 +        (rtac lubI 1),
   18.29 +        (etac cpo 1)
   18.30 +        ]);
   18.31  
   18.32  (* ------------------------------------------------------------------------ *)
   18.33  (* Properties of the lub                                                    *)
   18.34 @@ -39,18 +39,18 @@
   18.35  (* ------------------------------------------------------------------------ *)
   18.36  
   18.37  qed_goal "lub_mono" Pcpo.thy 
   18.38 -	"[|is_chain(C1::(nat=>'a::pcpo));is_chain(C2); ! k. C1(k) << C2(k)|]\
   18.39 +        "[|is_chain(C1::(nat=>'a::pcpo));is_chain(C2); ! k. C1(k) << C2(k)|]\
   18.40  \           ==> lub(range(C1)) << lub(range(C2))"
   18.41  (fn prems =>
   18.42 -	[
   18.43 -	(cut_facts_tac prems 1),
   18.44 -	(etac is_lub_thelub 1),
   18.45 -	(rtac ub_rangeI 1),
   18.46 -	(rtac allI 1),
   18.47 -	(rtac trans_less 1),
   18.48 -	(etac spec 1),
   18.49 -	(etac is_ub_thelub 1)
   18.50 -	]);
   18.51 +        [
   18.52 +        (cut_facts_tac prems 1),
   18.53 +        (etac is_lub_thelub 1),
   18.54 +        (rtac ub_rangeI 1),
   18.55 +        (rtac allI 1),
   18.56 +        (rtac trans_less 1),
   18.57 +        (etac spec 1),
   18.58 +        (etac is_ub_thelub 1)
   18.59 +        ]);
   18.60  
   18.61  (* ------------------------------------------------------------------------ *)
   18.62  (* the = relation between two chains is preserved by their lubs            *)
   18.63 @@ -58,24 +58,24 @@
   18.64  
   18.65  qed_goal "lub_equal" Pcpo.thy
   18.66  "[| is_chain(C1::(nat=>'a::pcpo));is_chain(C2);!k.C1(k)=C2(k)|]\
   18.67 -\	==> lub(range(C1))=lub(range(C2))"
   18.68 +\       ==> lub(range(C1))=lub(range(C2))"
   18.69  (fn prems =>
   18.70 -	[
   18.71 -	(cut_facts_tac prems 1),
   18.72 -	(rtac antisym_less 1),
   18.73 -	(rtac lub_mono 1),
   18.74 -	(atac 1),
   18.75 -	(atac 1),
   18.76 -	(strip_tac 1),
   18.77 -	(rtac (antisym_less_inverse RS conjunct1) 1),
   18.78 -	(etac spec 1),
   18.79 -	(rtac lub_mono 1),
   18.80 -	(atac 1),
   18.81 -	(atac 1),
   18.82 -	(strip_tac 1),
   18.83 -	(rtac (antisym_less_inverse RS conjunct2) 1),
   18.84 -	(etac spec 1)
   18.85 -	]);
   18.86 +        [
   18.87 +        (cut_facts_tac prems 1),
   18.88 +        (rtac antisym_less 1),
   18.89 +        (rtac lub_mono 1),
   18.90 +        (atac 1),
   18.91 +        (atac 1),
   18.92 +        (strip_tac 1),
   18.93 +        (rtac (antisym_less_inverse RS conjunct1) 1),
   18.94 +        (etac spec 1),
   18.95 +        (rtac lub_mono 1),
   18.96 +        (atac 1),
   18.97 +        (atac 1),
   18.98 +        (strip_tac 1),
   18.99 +        (rtac (antisym_less_inverse RS conjunct2) 1),
  18.100 +        (etac spec 1)
  18.101 +        ]);
  18.102  
  18.103  (* ------------------------------------------------------------------------ *)
  18.104  (* more results about mono and = of lubs of chains                          *)
  18.105 @@ -85,64 +85,64 @@
  18.106  "[|? j.!i. j<i --> X(i::nat)=Y(i);is_chain(X::nat=>'a::pcpo);is_chain(Y)|]\
  18.107  \ ==> lub(range(X))<<lub(range(Y))"
  18.108   (fn prems =>
  18.109 -	[
  18.110 -	(rtac  exE 1),
  18.111 -	(resolve_tac prems 1),
  18.112 -	(rtac is_lub_thelub 1),
  18.113 -	(resolve_tac prems 1),
  18.114 -	(rtac ub_rangeI 1),
  18.115 -	(strip_tac 1),
  18.116 -	(res_inst_tac [("Q","x<i")] classical2 1),
  18.117 -	(res_inst_tac [("s","Y(i)"),("t","X(i)")] subst 1),
  18.118 -	(rtac sym 1),
  18.119 -	(fast_tac HOL_cs 1),
  18.120 -	(rtac is_ub_thelub 1),
  18.121 -	(resolve_tac prems 1),
  18.122 -	(res_inst_tac [("y","X(Suc(x))")] trans_less 1),
  18.123 -	(rtac (chain_mono RS mp) 1),
  18.124 -	(resolve_tac prems 1),
  18.125 -	(rtac (not_less_eq RS subst) 1),
  18.126 -	(atac 1),
  18.127 -	(res_inst_tac [("s","Y(Suc(x))"),("t","X(Suc(x))")] subst 1),
  18.128 -	(rtac sym 1),
  18.129 -	(Asm_simp_tac 1),
  18.130 -	(rtac is_ub_thelub 1),
  18.131 -	(resolve_tac prems 1)
  18.132 -	]);
  18.133 +        [
  18.134 +        (rtac  exE 1),
  18.135 +        (resolve_tac prems 1),
  18.136 +        (rtac is_lub_thelub 1),
  18.137 +        (resolve_tac prems 1),
  18.138 +        (rtac ub_rangeI 1),
  18.139 +        (strip_tac 1),
  18.140 +        (res_inst_tac [("Q","x<i")] classical2 1),
  18.141 +        (res_inst_tac [("s","Y(i)"),("t","X(i)")] subst 1),
  18.142 +        (rtac sym 1),
  18.143 +        (fast_tac HOL_cs 1),
  18.144 +        (rtac is_ub_thelub 1),
  18.145 +        (resolve_tac prems 1),
  18.146 +        (res_inst_tac [("y","X(Suc(x))")] trans_less 1),
  18.147 +        (rtac (chain_mono RS mp) 1),
  18.148 +        (resolve_tac prems 1),
  18.149 +        (rtac (not_less_eq RS subst) 1),
  18.150 +        (atac 1),
  18.151 +        (res_inst_tac [("s","Y(Suc(x))"),("t","X(Suc(x))")] subst 1),
  18.152 +        (rtac sym 1),
  18.153 +        (Asm_simp_tac 1),
  18.154 +        (rtac is_ub_thelub 1),
  18.155 +        (resolve_tac prems 1)
  18.156 +        ]);
  18.157  
  18.158  qed_goal "lub_equal2" Pcpo.thy 
  18.159  "[|? j.!i. j<i --> X(i)=Y(i);is_chain(X::nat=>'a::pcpo);is_chain(Y)|]\
  18.160  \ ==> lub(range(X))=lub(range(Y))"
  18.161   (fn prems =>
  18.162 -	[
  18.163 -	(rtac antisym_less 1),
  18.164 -	(rtac lub_mono2 1),
  18.165 -	(REPEAT (resolve_tac prems 1)),
  18.166 -	(cut_facts_tac prems 1),
  18.167 -	(rtac lub_mono2 1),
  18.168 -	(safe_tac HOL_cs),
  18.169 -	(step_tac HOL_cs 1),
  18.170 -	(safe_tac HOL_cs),
  18.171 -	(rtac sym 1),
  18.172 -	(fast_tac HOL_cs 1)
  18.173 -	]);
  18.174 +        [
  18.175 +        (rtac antisym_less 1),
  18.176 +        (rtac lub_mono2 1),
  18.177 +        (REPEAT (resolve_tac prems 1)),
  18.178 +        (cut_facts_tac prems 1),
  18.179 +        (rtac lub_mono2 1),
  18.180 +        (safe_tac HOL_cs),
  18.181 +        (step_tac HOL_cs 1),
  18.182 +        (safe_tac HOL_cs),
  18.183 +        (rtac sym 1),
  18.184 +        (fast_tac HOL_cs 1)
  18.185 +        ]);
  18.186  
  18.187  qed_goal "lub_mono3" Pcpo.thy "[|is_chain(Y::nat=>'a::pcpo);is_chain(X);\
  18.188  \! i. ? j. Y(i)<< X(j)|]==> lub(range(Y))<<lub(range(X))"
  18.189   (fn prems =>
  18.190 -	[
  18.191 -	(cut_facts_tac prems 1),
  18.192 -	(rtac is_lub_thelub 1),
  18.193 -	(atac 1),
  18.194 -	(rtac ub_rangeI 1),
  18.195 -	(strip_tac 1),
  18.196 -	(etac allE 1),
  18.197 -	(etac exE 1),
  18.198 -	(rtac trans_less 1),
  18.199 -	(rtac is_ub_thelub 2),
  18.200 -	(atac 2),
  18.201 -	(atac 1)
  18.202 -	]);
  18.203 +        [
  18.204 +        (cut_facts_tac prems 1),
  18.205 +        (rtac is_lub_thelub 1),
  18.206 +        (atac 1),
  18.207 +        (rtac ub_rangeI 1),
  18.208 +        (strip_tac 1),
  18.209 +        (etac allE 1),
  18.210 +        (etac exE 1),
  18.211 +        (rtac trans_less 1),
  18.212 +        (rtac is_ub_thelub 2),
  18.213 +        (atac 2),
  18.214 +        (atac 1)
  18.215 +        ]);
  18.216  
  18.217  (* ------------------------------------------------------------------------ *)
  18.218  (* usefull lemmas about UU                                                  *)
  18.219 @@ -150,96 +150,96 @@
  18.220  
  18.221  qed_goal "eq_UU_iff" Pcpo.thy "(x=UU)=(x<<UU)"
  18.222   (fn prems =>
  18.223 -	[
  18.224 -	(rtac iffI 1),
  18.225 -	(hyp_subst_tac 1),
  18.226 -	(rtac refl_less 1),
  18.227 -	(rtac antisym_less 1),
  18.228 -	(atac 1),
  18.229 -	(rtac minimal 1)
  18.230 -	]);
  18.231 +        [
  18.232 +        (rtac iffI 1),
  18.233 +        (hyp_subst_tac 1),
  18.234 +        (rtac refl_less 1),
  18.235 +        (rtac antisym_less 1),
  18.236 +        (atac 1),
  18.237 +        (rtac minimal 1)
  18.238 +        ]);
  18.239  
  18.240  qed_goal "UU_I" Pcpo.thy "x << UU ==> x = UU"
  18.241   (fn prems =>
  18.242 -	[
  18.243 -	(rtac (eq_UU_iff RS ssubst) 1),
  18.244 -	(resolve_tac prems 1)
  18.245 -	]);
  18.246 +        [
  18.247 +        (rtac (eq_UU_iff RS ssubst) 1),
  18.248 +        (resolve_tac prems 1)
  18.249 +        ]);
  18.250  
  18.251  qed_goal "not_less2not_eq" Pcpo.thy "~x<<y ==> ~x=y"
  18.252   (fn prems =>
  18.253 -	[
  18.254 -	(cut_facts_tac prems 1),
  18.255 -	(rtac classical3 1),
  18.256 -	(atac 1),
  18.257 -	(hyp_subst_tac 1),
  18.258 -	(rtac refl_less 1)
  18.259 -	]);
  18.260 +        [
  18.261 +        (cut_facts_tac prems 1),
  18.262 +        (rtac classical3 1),
  18.263 +        (atac 1),
  18.264 +        (hyp_subst_tac 1),
  18.265 +        (rtac refl_less 1)
  18.266 +        ]);
  18.267  
  18.268  qed_goal "chain_UU_I" Pcpo.thy
  18.269 -	"[|is_chain(Y);lub(range(Y))=UU|] ==> ! i.Y(i)=UU"
  18.270 +        "[|is_chain(Y);lub(range(Y))=UU|] ==> ! i.Y(i)=UU"
  18.271   (fn prems =>
  18.272 -	[
  18.273 -	(cut_facts_tac prems 1),
  18.274 -	(rtac allI 1),
  18.275 -	(rtac antisym_less 1),
  18.276 -	(rtac minimal 2),
  18.277 -	(etac subst 1),
  18.278 -	(etac is_ub_thelub 1)
  18.279 -	]);
  18.280 +        [
  18.281 +        (cut_facts_tac prems 1),
  18.282 +        (rtac allI 1),
  18.283 +        (rtac antisym_less 1),
  18.284 +        (rtac minimal 2),
  18.285 +        (etac subst 1),
  18.286 +        (etac is_ub_thelub 1)
  18.287 +        ]);
  18.288  
  18.289  
  18.290  qed_goal "chain_UU_I_inverse" Pcpo.thy 
  18.291 -	"!i.Y(i::nat)=UU ==> lub(range(Y::(nat=>'a::pcpo)))=UU"
  18.292 +        "!i.Y(i::nat)=UU ==> lub(range(Y::(nat=>'a::pcpo)))=UU"
  18.293   (fn prems =>
  18.294 -	[
  18.295 -	(cut_facts_tac prems 1),
  18.296 -	(rtac lub_chain_maxelem 1),
  18.297 -	(rtac exI 1),
  18.298 -	(etac spec 1),
  18.299 -	(rtac allI 1),
  18.300 -	(rtac (antisym_less_inverse RS conjunct1) 1),
  18.301 -	(etac spec 1)
  18.302 -	]);
  18.303 +        [
  18.304 +        (cut_facts_tac prems 1),
  18.305 +        (rtac lub_chain_maxelem 1),
  18.306 +        (rtac exI 1),
  18.307 +        (etac spec 1),
  18.308 +        (rtac allI 1),
  18.309 +        (rtac (antisym_less_inverse RS conjunct1) 1),
  18.310 +        (etac spec 1)
  18.311 +        ]);
  18.312  
  18.313  qed_goal "chain_UU_I_inverse2" Pcpo.thy 
  18.314 -	"~lub(range(Y::(nat=>'a::pcpo)))=UU ==> ? i.~ Y(i)=UU"
  18.315 +        "~lub(range(Y::(nat=>'a::pcpo)))=UU ==> ? i.~ Y(i)=UU"
  18.316   (fn prems =>
  18.317 -	[
  18.318 -	(cut_facts_tac prems 1),
  18.319 -	(rtac (notall2ex RS iffD1) 1),
  18.320 -	(rtac swap 1),
  18.321 -	(rtac chain_UU_I_inverse 2),
  18.322 -	(etac notnotD 2),
  18.323 -	(atac 1)
  18.324 -	]);
  18.325 +        [
  18.326 +        (cut_facts_tac prems 1),
  18.327 +        (rtac (notall2ex RS iffD1) 1),
  18.328 +        (rtac swap 1),
  18.329 +        (rtac chain_UU_I_inverse 2),
  18.330 +        (etac notnotD 2),
  18.331 +        (atac 1)
  18.332 +        ]);
  18.333  
  18.334  
  18.335  qed_goal "notUU_I" Pcpo.thy "[| x<<y; ~x=UU |] ==> ~y=UU"
  18.336  (fn prems =>
  18.337 -	[
  18.338 -	(cut_facts_tac prems 1),
  18.339 -	(etac contrapos 1),
  18.340 -	(rtac UU_I 1),
  18.341 -	(hyp_subst_tac 1),
  18.342 -	(atac 1)
  18.343 -	]);
  18.344 +        [
  18.345 +        (cut_facts_tac prems 1),
  18.346 +        (etac contrapos 1),
  18.347 +        (rtac UU_I 1),
  18.348 +        (hyp_subst_tac 1),
  18.349 +        (atac 1)
  18.350 +        ]);
  18.351  
  18.352  
  18.353  qed_goal "chain_mono2" Pcpo.thy 
  18.354  "[|? j.~Y(j)=UU;is_chain(Y::nat=>'a::pcpo)|]\
  18.355  \ ==> ? j.!i.j<i-->~Y(i)=UU"
  18.356   (fn prems =>
  18.357 -	[
  18.358 -	(cut_facts_tac prems 1),
  18.359 -	(safe_tac HOL_cs),
  18.360 -	(step_tac HOL_cs 1),
  18.361 -	(strip_tac 1),
  18.362 -	(rtac notUU_I 1),
  18.363 -	(atac 2),
  18.364 -	(etac (chain_mono RS mp) 1),
  18.365 -	(atac 1)
  18.366 -	]);
  18.367 +        [
  18.368 +        (cut_facts_tac prems 1),
  18.369 +        (safe_tac HOL_cs),
  18.370 +        (step_tac HOL_cs 1),
  18.371 +        (strip_tac 1),
  18.372 +        (rtac notUU_I 1),
  18.373 +        (atac 2),
  18.374 +        (etac (chain_mono RS mp) 1),
  18.375 +        (atac 1)
  18.376 +        ]);
  18.377  
  18.378  
  18.379  
  18.380 @@ -250,15 +250,15 @@
  18.381  
  18.382  qed_goal "unique_void2" Pcpo.thy "(x::void)=UU"
  18.383   (fn prems =>
  18.384 -	[
  18.385 -	(rtac (inst_void_pcpo RS ssubst) 1),
  18.386 -	(rtac (Rep_Void_inverse RS subst) 1),
  18.387 -	(rtac (Rep_Void_inverse RS subst) 1),
  18.388 -	(rtac arg_cong 1),
  18.389 -	(rtac box_equals 1),
  18.390 -	(rtac refl 1),
  18.391 -	(rtac (unique_void RS sym) 1),
  18.392 -	(rtac (unique_void RS sym) 1)
  18.393 -	]);
  18.394 +        [
  18.395 +        (rtac (inst_void_pcpo RS ssubst) 1),
  18.396 +        (rtac (Rep_Void_inverse RS subst) 1),
  18.397 +        (rtac (Rep_Void_inverse RS subst) 1),
  18.398 +        (rtac arg_cong 1),
  18.399 +        (rtac box_equals 1),
  18.400 +        (rtac refl 1),
  18.401 +        (rtac (unique_void RS sym) 1),
  18.402 +        (rtac (unique_void RS sym) 1)
  18.403 +        ]);
  18.404  
  18.405  
    19.1 --- a/src/HOLCF/Porder.ML	Mon Jan 29 14:16:13 1996 +0100
    19.2 +++ b/src/HOLCF/Porder.ML	Tue Jan 30 13:42:57 1996 +0100
    19.3 @@ -1,6 +1,6 @@
    19.4 -(*  Title: 	HOLCF/porder.thy
    19.5 +(*  Title:      HOLCF/porder.thy
    19.6      ID:         $Id$
    19.7 -    Author: 	Franz Regensburger
    19.8 +    Author:     Franz Regensburger
    19.9      Copyright   1993 Technische Universitaet Muenchen
   19.10  
   19.11  Lemmas for theory porder.thy 
   19.12 @@ -16,76 +16,76 @@
   19.13  
   19.14  qed_goal "antisym_less_inverse" Porder.thy "x=y ==> x << y & y << x"
   19.15  (fn prems =>
   19.16 -	[
   19.17 -	(cut_facts_tac prems 1),
   19.18 -	(rtac conjI 1),
   19.19 -	((rtac subst 1) THEN (rtac refl_less 2) THEN (atac 1)),
   19.20 -	((rtac subst 1) THEN (rtac refl_less 2) THEN (etac sym 1))
   19.21 -	]);
   19.22 +        [
   19.23 +        (cut_facts_tac prems 1),
   19.24 +        (rtac conjI 1),
   19.25 +        ((rtac subst 1) THEN (rtac refl_less 2) THEN (atac 1)),
   19.26 +        ((rtac subst 1) THEN (rtac refl_less 2) THEN (etac sym 1))
   19.27 +        ]);
   19.28  
   19.29  
   19.30  qed_goal "box_less" Porder.thy 
   19.31  "[| a << b; c << a; b << d|] ==> c << d"
   19.32   (fn prems =>
   19.33 -	[
   19.34 -	(cut_facts_tac prems 1),
   19.35 -	(etac trans_less 1),
   19.36 -	(etac trans_less 1),
   19.37 -	(atac 1)
   19.38 -	]);
   19.39 +        [
   19.40 +        (cut_facts_tac prems 1),
   19.41 +        (etac trans_less 1),
   19.42 +        (etac trans_less 1),
   19.43 +        (atac 1)
   19.44 +        ]);
   19.45  
   19.46  (* ------------------------------------------------------------------------ *)
   19.47  (* lubs are unique                                                          *)
   19.48  (* ------------------------------------------------------------------------ *)
   19.49  
   19.50  qed_goalw "unique_lub " Porder.thy [is_lub, is_ub] 
   19.51 -	"[| S <<| x ; S <<| y |] ==> x=y"
   19.52 +        "[| S <<| x ; S <<| y |] ==> x=y"
   19.53  ( fn prems =>
   19.54 -	[
   19.55 -	(cut_facts_tac prems 1),
   19.56 -	(etac conjE 1),
   19.57 -	(etac conjE 1),
   19.58 -	(rtac antisym_less 1),
   19.59 -	(rtac mp 1),((etac allE 1) THEN (atac 1) THEN (atac 1)),
   19.60 -	(rtac mp 1),((etac allE 1) THEN (atac 1) THEN (atac 1))
   19.61 -	]);
   19.62 +        [
   19.63 +        (cut_facts_tac prems 1),
   19.64 +        (etac conjE 1),
   19.65 +        (etac conjE 1),
   19.66 +        (rtac antisym_less 1),
   19.67 +        (rtac mp 1),((etac allE 1) THEN (atac 1) THEN (atac 1)),
   19.68 +        (rtac mp 1),((etac allE 1) THEN (atac 1) THEN (atac 1))
   19.69 +        ]);
   19.70  
   19.71  (* ------------------------------------------------------------------------ *)
   19.72  (* chains are monotone functions                                            *)
   19.73  (* ------------------------------------------------------------------------ *)
   19.74  
   19.75  qed_goalw "chain_mono" Porder.thy [is_chain]
   19.76 -	" is_chain(F) ==> x<y --> F(x)<<F(y)"
   19.77 +        " is_chain(F) ==> x<y --> F(x)<<F(y)"
   19.78  ( fn prems =>
   19.79 -	[
   19.80 -	(cut_facts_tac prems 1),
   19.81 -	(nat_ind_tac "y" 1),
   19.82 -	(rtac impI 1),
   19.83 -	(etac less_zeroE 1),
   19.84 -	(rtac (less_Suc_eq RS ssubst) 1),
   19.85 -	(strip_tac 1),
   19.86 -	(etac disjE 1),
   19.87 -	(rtac trans_less 1),
   19.88 -	(etac allE 2),
   19.89 -	(atac 2),
   19.90 -	(fast_tac HOL_cs 1),
   19.91 -	(hyp_subst_tac 1),
   19.92 -	(etac allE 1),
   19.93 -	(atac 1)
   19.94 -	]);
   19.95 +        [
   19.96 +        (cut_facts_tac prems 1),
   19.97 +        (nat_ind_tac "y" 1),
   19.98 +        (rtac impI 1),
   19.99 +        (etac less_zeroE 1),
  19.100 +        (rtac (less_Suc_eq RS ssubst) 1),
  19.101 +        (strip_tac 1),
  19.102 +        (etac disjE 1),
  19.103 +        (rtac trans_less 1),
  19.104 +        (etac allE 2),
  19.105 +        (atac 2),
  19.106 +        (fast_tac HOL_cs 1),
  19.107 +        (hyp_subst_tac 1),
  19.108 +        (etac allE 1),
  19.109 +        (atac 1)
  19.110 +        ]);
  19.111  
  19.112  qed_goal "chain_mono3"  Porder.thy 
  19.113 -	"[| is_chain(F); x <= y |] ==> F(x) << F(y)"
  19.114 +        "[| is_chain(F); x <= y |] ==> F(x) << F(y)"
  19.115   (fn prems =>
  19.116 -	[
  19.117 -	(cut_facts_tac prems 1),
  19.118 -	(rtac (le_imp_less_or_eq RS disjE) 1),
  19.119 -	(atac 1),
  19.120 -	(etac (chain_mono RS mp) 1),
  19.121 -	(atac 1),
  19.122 -	(hyp_subst_tac 1),
  19.123 -	(rtac refl_less 1)
  19.124 -	]);
  19.125 +        [
  19.126 +        (cut_facts_tac prems 1),
  19.127 +        (rtac (le_imp_less_or_eq RS disjE) 1),
  19.128 +        (atac 1),
  19.129 +        (etac (chain_mono RS mp) 1),
  19.130 +        (atac 1),
  19.131 +        (hyp_subst_tac 1),
  19.132 +        (rtac refl_less 1)
  19.133 +        ]);
  19.134  
  19.135  
  19.136  (* ------------------------------------------------------------------------ *)
  19.137 @@ -95,26 +95,26 @@
  19.138  qed_goalw "chain_is_tord" Porder.thy [is_tord,range_def] 
  19.139  "is_chain(F) ==> is_tord(range(F))"
  19.140   (fn prems =>
  19.141 -	[
  19.142 -	(cut_facts_tac prems 1),
  19.143 -	(REPEAT (rtac allI 1 )),
  19.144 -	(rtac (mem_Collect_eq RS ssubst) 1),
  19.145 -	(rtac (mem_Collect_eq RS ssubst) 1),
  19.146 -	(strip_tac 1),
  19.147 -	(etac conjE 1),
  19.148 -	(REPEAT (etac exE 1)),
  19.149 -	(REPEAT (hyp_subst_tac 1)),
  19.150 -	(rtac nat_less_cases 1),
  19.151 -	(rtac disjI1 1),
  19.152 -	(etac (chain_mono RS mp) 1),
  19.153 -	(atac 1),
  19.154 -	(rtac disjI1 1),
  19.155 -	(hyp_subst_tac 1),
  19.156 -	(rtac refl_less 1),
  19.157 -	(rtac disjI2 1),
  19.158 -	(etac (chain_mono RS mp) 1),
  19.159 -	(atac 1)
  19.160 -	]);
  19.161 +        [
  19.162 +        (cut_facts_tac prems 1),
  19.163 +        (REPEAT (rtac allI 1 )),
  19.164 +        (rtac (mem_Collect_eq RS ssubst) 1),
  19.165 +        (rtac (mem_Collect_eq RS ssubst) 1),
  19.166 +        (strip_tac 1),
  19.167 +        (etac conjE 1),
  19.168 +        (REPEAT (etac exE 1)),
  19.169 +        (REPEAT (hyp_subst_tac 1)),
  19.170 +        (rtac nat_less_cases 1),
  19.171 +        (rtac disjI1 1),
  19.172 +        (etac (chain_mono RS mp) 1),
  19.173 +        (atac 1),
  19.174 +        (rtac disjI1 1),
  19.175 +        (hyp_subst_tac 1),
  19.176 +        (rtac refl_less 1),
  19.177 +        (rtac disjI2 1),
  19.178 +        (etac (chain_mono RS mp) 1),
  19.179 +        (atac 1)
  19.180 +        ]);
  19.181  
  19.182  (* ------------------------------------------------------------------------ *)
  19.183  (* technical lemmas about lub and is_lub                                    *)
  19.184 @@ -122,38 +122,38 @@
  19.185  
  19.186  qed_goal "lubI" Porder.thy "(? x. M <<| x) ==> M <<| lub(M)"
  19.187  (fn prems =>
  19.188 -	[
  19.189 -	(cut_facts_tac prems 1),
  19.190 -	(rtac (lub RS ssubst) 1),
  19.191 -	(etac selectI3 1)
  19.192 -	]);
  19.193 +        [
  19.194 +        (cut_facts_tac prems 1),
  19.195 +        (rtac (lub RS ssubst) 1),
  19.196 +        (etac selectI3 1)
  19.197 +        ]);
  19.198  
  19.199  qed_goal "lubE" Porder.thy " M <<| lub(M) ==>  ? x. M <<| x"
  19.200  (fn prems =>
  19.201 -	[
  19.202 -	(cut_facts_tac prems 1),
  19.203 -	(etac exI 1)
  19.204 -	]);
  19.205 +        [
  19.206 +        (cut_facts_tac prems 1),
  19.207 +        (etac exI 1)
  19.208 +        ]);
  19.209  
  19.210  qed_goal "lub_eq" Porder.thy 
  19.211 -	"(? x. M <<| x)  = M <<| lub(M)"
  19.212 +        "(? x. M <<| x)  = M <<| lub(M)"
  19.213  (fn prems => 
  19.214 -	[
  19.215 -	(rtac (lub RS ssubst) 1),
  19.216 -	(rtac (select_eq_Ex RS subst) 1),
  19.217 -	(rtac refl 1)
  19.218 -	]);
  19.219 +        [
  19.220 +        (rtac (lub RS ssubst) 1),
  19.221 +        (rtac (select_eq_Ex RS subst) 1),
  19.222 +        (rtac refl 1)
  19.223 +        ]);
  19.224  
  19.225  
  19.226  qed_goal "thelubI"  Porder.thy " M <<| l ==> lub(M) = l"
  19.227  (fn prems =>
  19.228 -	[
  19.229 -	(cut_facts_tac prems 1), 
  19.230 -	(rtac unique_lub 1),
  19.231 -	(rtac (lub RS ssubst) 1),
  19.232 -	(etac selectI 1),
  19.233 -	(atac 1)
  19.234 -	]);
  19.235 +        [
  19.236 +        (cut_facts_tac prems 1), 
  19.237 +        (rtac unique_lub 1),
  19.238 +        (rtac (lub RS ssubst) 1),
  19.239 +        (etac selectI 1),
  19.240 +        (atac 1)
  19.241 +        ]);
  19.242  
  19.243  
  19.244  (* ------------------------------------------------------------------------ *)
  19.245 @@ -161,60 +161,60 @@
  19.246  (* ------------------------------------------------------------------------ *)
  19.247  
  19.248  qed_goalw "is_lubE"  Porder.thy [is_lub]
  19.249 -	"S <<| x  ==> S <| x & (! u. S <| u  --> x << u)"
  19.250 +        "S <<| x  ==> S <| x & (! u. S <| u  --> x << u)"
  19.251  (fn prems =>
  19.252 -	[
  19.253 -	(cut_facts_tac prems 1),
  19.254 -	(atac 1)
  19.255 -	]);
  19.256 +        [
  19.257 +        (cut_facts_tac prems 1),
  19.258 +        (atac 1)
  19.259 +        ]);
  19.260  
  19.261  qed_goalw "is_lubI"  Porder.thy [is_lub]
  19.262 -	"S <| x & (! u. S <| u  --> x << u) ==> S <<| x"
  19.263 +        "S <| x & (! u. S <| u  --> x << u) ==> S <<| x"
  19.264  (fn prems =>
  19.265 -	[
  19.266 -	(cut_facts_tac prems 1),
  19.267 -	(atac 1)
  19.268 -	]);
  19.269 +        [
  19.270 +        (cut_facts_tac prems 1),
  19.271 +        (atac 1)
  19.272 +        ]);
  19.273  
  19.274  qed_goalw "is_chainE" Porder.thy [is_chain] 
  19.275   "is_chain(F) ==> ! i. F(i) << F(Suc(i))"
  19.276  (fn prems =>
  19.277 -	[
  19.278 -	(cut_facts_tac prems 1),
  19.279 -	(atac 1)]);
  19.280 +        [
  19.281 +        (cut_facts_tac prems 1),
  19.282 +        (atac 1)]);
  19.283  
  19.284  qed_goalw "is_chainI" Porder.thy [is_chain] 
  19.285   "! i. F(i) << F(Suc(i)) ==> is_chain(F) "
  19.286  (fn prems =>
  19.287 -	[
  19.288 -	(cut_facts_tac prems 1),
  19.289 -	(atac 1)]);
  19.290 +        [
  19.291 +        (cut_facts_tac prems 1),
  19.292 +        (atac 1)]);
  19.293  
  19.294  (* ------------------------------------------------------------------------ *)
  19.295  (* technical lemmas about (least) upper bounds of chains                    *)
  19.296  (* ------------------------------------------------------------------------ *)
  19.297  
  19.298  qed_goalw "ub_rangeE"  Porder.thy [is_ub]
  19.299 -	"range(S) <| x  ==> ! i. S(i) << x"
  19.300 +        "range(S) <| x  ==> ! i. S(i) << x"
  19.301  (fn prems =>
  19.302 -	[
  19.303 -	(cut_facts_tac prems 1),
  19.304 -	(strip_tac 1),
  19.305 -	(rtac mp 1),
  19.306 -	(etac spec 1),
  19.307 -	(rtac rangeI 1)
  19.308 -	]);
  19.309 +        [
  19.310 +        (cut_facts_tac prems 1),
  19.311 +        (strip_tac 1),
  19.312 +        (rtac mp 1),
  19.313 +        (etac spec 1),
  19.314 +        (rtac rangeI 1)
  19.315 +        ]);
  19.316  
  19.317  qed_goalw "ub_rangeI" Porder.thy [is_ub]
  19.318 -	"! i. S(i) << x  ==> range(S) <| x"
  19.319 +        "! i. S(i) << x  ==> range(S) <| x"
  19.320  (fn prems =>
  19.321 -	[
  19.322 -	(cut_facts_tac prems 1),
  19.323 -	(strip_tac 1),
  19.324 -	(etac rangeE 1),
  19.325 -	(hyp_subst_tac 1),
  19.326 -	(etac spec 1)
  19.327 -	]);
  19.328 +        [
  19.329 +        (cut_facts_tac prems 1),
  19.330 +        (strip_tac 1),
  19.331 +        (etac rangeE 1),
  19.332 +        (hyp_subst_tac 1),
  19.333 +        (etac spec 1)
  19.334 +        ]);
  19.335  
  19.336  val is_ub_lub = (is_lubE RS conjunct1 RS ub_rangeE RS spec);
  19.337  (* range(?S1) <<| ?x1 ==> ?S1(?x) << ?x1                                    *)
  19.338 @@ -232,28 +232,28 @@
  19.339  
  19.340  qed_goal "less_void" Porder.thy "((u1::void) << u2) = (u1 = u2)"
  19.341  (fn prems =>
  19.342 -	[
  19.343 -	(rtac (inst_void_po RS ssubst) 1),
  19.344 -	(rewrite_goals_tac [less_void_def]),
  19.345 -	(rtac iffI 1),
  19.346 -	(rtac injD 1),
  19.347 -	(atac 2),
  19.348 -	(rtac inj_inverseI 1),
  19.349 -	(rtac Rep_Void_inverse 1),
  19.350 -	(etac arg_cong 1)
  19.351 -	]);
  19.352 +        [
  19.353 +        (rtac (inst_void_po RS ssubst) 1),
  19.354 +        (rewtac less_void_def),
  19.355 +        (rtac iffI 1),
  19.356 +        (rtac injD 1),
  19.357 +        (atac 2),
  19.358 +        (rtac inj_inverseI 1),
  19.359 +        (rtac Rep_Void_inverse 1),
  19.360 +        (etac arg_cong 1)
  19.361 +        ]);
  19.362  
  19.363  (* ------------------------------------------------------------------------ *)
  19.364  (* void is pointed. The least element is UU_void                            *)
  19.365  (* ------------------------------------------------------------------------ *)
  19.366  
  19.367 -qed_goal "minimal_void" Porder.thy  	"UU_void << x"
  19.368 +qed_goal "minimal_void" Porder.thy      "UU_void << x"
  19.369  (fn prems =>
  19.370 -	[
  19.371 -	(rtac (inst_void_po RS ssubst) 1),
  19.372 -	(rewrite_goals_tac [less_void_def]),
  19.373 -	(simp_tac (!simpset addsimps [unique_void]) 1)
  19.374 -	]);
  19.375 +        [
  19.376 +        (rtac (inst_void_po RS ssubst) 1),
  19.377 +        (rewtac less_void_def),
  19.378 +        (simp_tac (!simpset addsimps [unique_void]) 1)
  19.379 +        ]);
  19.380  
  19.381  (* ------------------------------------------------------------------------ *)
  19.382  (* UU_void is the trivial lub of all chains in void                         *)
  19.383 @@ -261,16 +261,16 @@
  19.384  
  19.385  qed_goalw "lub_void"  Porder.thy [is_lub] "M <<| UU_void"
  19.386  (fn prems =>
  19.387 -	[
  19.388 -	(rtac conjI 1),
  19.389 -	(rewrite_goals_tac [is_ub]),
  19.390 -	(strip_tac 1),
  19.391 -	(rtac (inst_void_po RS ssubst) 1),
  19.392 -	(rewrite_goals_tac [less_void_def]),
  19.393 -	(simp_tac (!simpset addsimps [unique_void]) 1),
  19.394 -	(strip_tac 1),
  19.395 -	(rtac minimal_void 1)
  19.396 -	]);
  19.397 +        [
  19.398 +        (rtac conjI 1),
  19.399 +        (rewtac is_ub),
  19.400 +        (strip_tac 1),
  19.401 +        (rtac (inst_void_po RS ssubst) 1),
  19.402 +        (rewtac less_void_def),
  19.403 +        (simp_tac (!simpset addsimps [unique_void]) 1),
  19.404 +        (strip_tac 1),
  19.405 +        (rtac minimal_void 1)
  19.406 +        ]);
  19.407  
  19.408  (* ------------------------------------------------------------------------ *)
  19.409  (* lub(?M) = UU_void                                                        *)
  19.410 @@ -283,13 +283,13 @@
  19.411  (* ------------------------------------------------------------------------ *)
  19.412  
  19.413  qed_goal "cpo_void" Porder.thy
  19.414 -	"is_chain((S::nat=>void)) ==> ? x. range(S) <<| x "
  19.415 +        "is_chain((S::nat=>void)) ==> ? x. range(S) <<| x "
  19.416  (fn prems =>
  19.417 -	[
  19.418 -	(cut_facts_tac prems 1),
  19.419 -	(res_inst_tac [("x","UU_void")] exI 1),
  19.420 -	(rtac lub_void 1)
  19.421 -	]);
  19.422 +        [
  19.423 +        (cut_facts_tac prems 1),
  19.424 +        (res_inst_tac [("x","UU_void")] exI 1),
  19.425 +        (rtac lub_void 1)
  19.426 +        ]);
  19.427  
  19.428  (* ------------------------------------------------------------------------ *)
  19.429  (* end of prototype lemmas for class pcpo                                   *)
  19.430 @@ -301,72 +301,72 @@
  19.431  (* ------------------------------------------------------------------------ *)
  19.432  
  19.433  qed_goalw "lub_finch1" Porder.thy [max_in_chain_def]
  19.434 -	"[| is_chain(C) ; max_in_chain i C|] ==> range(C) <<| C(i)"
  19.435 +        "[| is_chain(C) ; max_in_chain i C|] ==> range(C) <<| C(i)"
  19.436  (fn prems =>
  19.437 -	[
  19.438 -	(cut_facts_tac prems 1),
  19.439 -	(rtac is_lubI 1),
  19.440 -	(rtac conjI 1),
  19.441 -	(rtac ub_rangeI 1),
  19.442 -	(rtac allI 1),
  19.443 -	(res_inst_tac [("m","i")] nat_less_cases 1),
  19.444 -	(rtac (antisym_less_inverse RS conjunct2) 1),
  19.445 -	(etac (disjI1 RS less_or_eq_imp_le RS rev_mp) 1),
  19.446 -	(etac spec 1),
  19.447 -	(rtac (antisym_less_inverse RS conjunct2) 1),
  19.448 -	(etac (disjI2 RS less_or_eq_imp_le RS rev_mp) 1),
  19.449 -	(etac spec 1),
  19.450 -	(etac (chain_mono RS mp) 1),
  19.451 -	(atac 1),
  19.452 -	(strip_tac 1),
  19.453 -	(etac (ub_rangeE RS spec) 1)
  19.454 -	]);	
  19.455 +        [
  19.456 +        (cut_facts_tac prems 1),
  19.457 +        (rtac is_lubI 1),
  19.458 +        (rtac conjI 1),
  19.459 +        (rtac ub_rangeI 1),
  19.460 +        (rtac allI 1),
  19.461 +        (res_inst_tac [("m","i")] nat_less_cases 1),
  19.462 +        (rtac (antisym_less_inverse RS conjunct2) 1),
  19.463 +        (etac (disjI1 RS less_or_eq_imp_le RS rev_mp) 1),
  19.464 +        (etac spec 1),
  19.465 +        (rtac (antisym_less_inverse RS conjunct2) 1),
  19.466 +        (etac (disjI2 RS less_or_eq_imp_le RS rev_mp) 1),
  19.467 +        (etac spec 1),
  19.468 +        (etac (chain_mono RS mp) 1),
  19.469 +        (atac 1),
  19.470 +        (strip_tac 1),
  19.471 +        (etac (ub_rangeE RS spec) 1)
  19.472 +        ]);     
  19.473  
  19.474  qed_goalw "lub_finch2" Porder.thy [finite_chain_def]
  19.475 -	"finite_chain(C) ==> range(C) <<| C(@ i. max_in_chain i C)"
  19.476 +        "finite_chain(C) ==> range(C) <<| C(@ i. max_in_chain i C)"
  19.477   (fn prems=>
  19.478 -	[
  19.479 -	(cut_facts_tac prems 1),
  19.480 -	(rtac lub_finch1 1),
  19.481 -	(etac conjunct1 1),
  19.482 -	(rtac selectI3 1),
  19.483 -	(etac conjunct2 1)
  19.484 -	]);
  19.485 +        [
  19.486 +        (cut_facts_tac prems 1),
  19.487 +        (rtac lub_finch1 1),
  19.488 +        (etac conjunct1 1),
  19.489 +        (rtac selectI3 1),
  19.490 +        (etac conjunct2 1)
  19.491 +        ]);
  19.492  
  19.493  
  19.494  qed_goal "bin_chain" Porder.thy "x<<y ==> is_chain (%i. if i=0 then x else y)"
  19.495   (fn prems =>
  19.496 -	[
  19.497 -	(cut_facts_tac prems 1),
  19.498 -	(rtac is_chainI 1),
  19.499 -	(rtac allI 1),
  19.500 -	(nat_ind_tac "i" 1),
  19.501 -	(Asm_simp_tac 1),
  19.502 -	(Asm_simp_tac 1),
  19.503 -	(rtac refl_less 1)
  19.504 -	]);
  19.505 +        [
  19.506 +        (cut_facts_tac prems 1),
  19.507 +        (rtac is_chainI 1),
  19.508 +        (rtac allI 1),
  19.509 +        (nat_ind_tac "i" 1),
  19.510 +        (Asm_simp_tac 1),
  19.511 +        (Asm_simp_tac 1),
  19.512 +        (rtac refl_less 1)
  19.513 +        ]);
  19.514  
  19.515  qed_goalw "bin_chainmax" Porder.thy [max_in_chain_def,le_def]
  19.516 -	"x<<y ==> max_in_chain (Suc 0) (%i. if (i=0) then x else y)"
  19.517 +        "x<<y ==> max_in_chain (Suc 0) (%i. if (i=0) then x else y)"
  19.518  (fn prems =>
  19.519 -	[
  19.520 -	(cut_facts_tac prems 1),
  19.521 -	(rtac allI 1),
  19.522 -	(nat_ind_tac "j" 1),
  19.523 -	(Asm_simp_tac 1),
  19.524 -	(Asm_simp_tac 1)
  19.525 -	]);
  19.526 +        [
  19.527 +        (cut_facts_tac prems 1),
  19.528 +        (rtac allI 1),
  19.529 +        (nat_ind_tac "j" 1),
  19.530 +        (Asm_simp_tac 1),
  19.531 +        (Asm_simp_tac 1)
  19.532 +        ]);
  19.533  
  19.534  qed_goal "lub_bin_chain" Porder.thy 
  19.535 -	"x << y ==> range(%i. if (i=0) then x else y) <<| y"
  19.536 +        "x << y ==> range(%i. if (i=0) then x else y) <<| y"
  19.537  (fn prems=>
  19.538 -	[ (cut_facts_tac prems 1),
  19.539 -	(res_inst_tac [("s","if (Suc 0) = 0 then x else y")] subst 1),
  19.540 -	(rtac lub_finch1 2),
  19.541 -	(etac bin_chain 2),
  19.542 -	(etac bin_chainmax 2),
  19.543 -	(Simp_tac  1)
  19.544 -	]);
  19.545 +        [ (cut_facts_tac prems 1),
  19.546 +        (res_inst_tac [("s","if (Suc 0) = 0 then x else y")] subst 1),
  19.547 +        (rtac lub_finch1 2),
  19.548 +        (etac bin_chain 2),
  19.549 +        (etac bin_chainmax 2),
  19.550 +        (Simp_tac  1)
  19.551 +        ]);
  19.552  
  19.553  (* ------------------------------------------------------------------------ *)
  19.554  (* the maximal element in a chain is its lub                                *)
  19.555 @@ -375,17 +375,17 @@
  19.556  qed_goal "lub_chain_maxelem" Porder.thy
  19.557  "[|? i.Y(i)=c;!i.Y(i)<<c|] ==> lub(range(Y)) = c"
  19.558   (fn prems =>
  19.559 -	[
  19.560 -	(cut_facts_tac prems 1),
  19.561 -	(rtac thelubI 1),
  19.562 -	(rtac is_lubI 1),
  19.563 -	(rtac conjI 1),
  19.564 -	(etac ub_rangeI 1),
  19.565 -	(strip_tac 1),
  19.566 -	(etac exE 1),
  19.567 -	(hyp_subst_tac 1),
  19.568 -	(etac (ub_rangeE RS spec) 1)
  19.569 -	]);
  19.570 +        [
  19.571 +        (cut_facts_tac prems 1),
  19.572 +        (rtac thelubI 1),
  19.573 +        (rtac is_lubI 1),
  19.574 +        (rtac conjI 1),
  19.575 +        (etac ub_rangeI 1),
  19.576 +        (strip_tac 1),
  19.577 +        (etac exE 1),
  19.578 +        (hyp_subst_tac 1),
  19.579 +        (etac (ub_rangeE RS spec) 1)
  19.580 +        ]);
  19.581  
  19.582  (* ------------------------------------------------------------------------ *)
  19.583  (* the lub of a constant chain is the constant                              *)
  19.584 @@ -393,15 +393,15 @@
  19.585  
  19.586  qed_goal "lub_const" Porder.thy "range(%x.c) <<| c"
  19.587   (fn prems =>
  19.588 -	[
  19.589 -	(rtac is_lubI 1),
  19.590 -	(rtac conjI 1),
  19.591 -	(rtac ub_rangeI 1),
  19.592 -	(strip_tac 1),
  19.593 -	(rtac refl_less 1),
  19.594 -	(strip_tac 1),
  19.595 -	(etac (ub_rangeE RS spec) 1)
  19.596 -	]);
  19.597 +        [
  19.598 +        (rtac is_lubI 1),
  19.599 +        (rtac conjI 1),
  19.600 +        (rtac ub_rangeI 1),
  19.601 +        (strip_tac 1),
  19.602 +        (rtac refl_less 1),
  19.603 +        (strip_tac 1),
  19.604 +        (etac (ub_rangeE RS spec) 1)
  19.605 +        ]);
  19.606  
  19.607  
  19.608  
    20.1 --- a/src/HOLCF/ROOT.ML	Mon Jan 29 14:16:13 1996 +0100
    20.2 +++ b/src/HOLCF/ROOT.ML	Tue Jan 30 13:42:57 1996 +0100
    20.3 @@ -1,7 +1,7 @@
    20.4 -(*  Title:	HOLCF/ROOT
    20.5 +(*  Title:      HOLCF/ROOT
    20.6      ID:         $Id$
    20.7 -    Author: 	Franz Regensburger
    20.8 -    Copyright	1993 Technische Universitaet Muenchen
    20.9 +    Author:     Franz Regensburger
   20.10 +    Copyright   1993 Technische Universitaet Muenchen
   20.11  
   20.12  ROOT file for the conservative extension of HOL by the LCF logic.
   20.13  Should be executed in subdirectory HOLCF.
   20.14 @@ -40,4 +40,4 @@
   20.15  
   20.16  print_depth 100;  
   20.17  
   20.18 -val HOLCF_build_completed = ();	(*indicate successful build*)
   20.19 +val HOLCF_build_completed = (); (*indicate successful build*)
    21.1 --- a/src/HOLCF/Sprod0.ML	Mon Jan 29 14:16:13 1996 +0100
    21.2 +++ b/src/HOLCF/Sprod0.ML	Tue Jan 30 13:42:57 1996 +0100
    21.3 @@ -1,6 +1,6 @@
    21.4 -(*  Title: 	HOLCF/sprod0.thy
    21.5 +(*  Title:      HOLCF/sprod0.thy
    21.6      ID:         $Id$
    21.7 -    Author: 	Franz Regensburger
    21.8 +    Author:     Franz Regensburger
    21.9      Copyright   1993  Technische Universitaet Muenchen
   21.10  
   21.11  Lemmas for theory sprod0.thy
   21.12 @@ -13,20 +13,20 @@
   21.13  (* ------------------------------------------------------------------------ *)
   21.14  
   21.15  qed_goalw "SprodI" Sprod0.thy [Sprod_def]
   21.16 -	"(Spair_Rep a b):Sprod"
   21.17 +        "(Spair_Rep a b):Sprod"
   21.18  (fn prems =>
   21.19 -	[
   21.20 -	(EVERY1 [rtac CollectI, rtac exI,rtac exI, rtac refl])
   21.21 -	]);
   21.22 +        [
   21.23 +        (EVERY1 [rtac CollectI, rtac exI,rtac exI, rtac refl])
   21.24 +        ]);
   21.25  
   21.26  
   21.27  qed_goal "inj_onto_Abs_Sprod" Sprod0.thy 
   21.28 -	"inj_onto Abs_Sprod Sprod"
   21.29 +        "inj_onto Abs_Sprod Sprod"
   21.30  (fn prems =>
   21.31 -	[
   21.32 -	(rtac inj_onto_inverseI 1),
   21.33 -	(etac Abs_Sprod_inverse 1)
   21.34 -	]);
   21.35 +        [
   21.36 +        (rtac inj_onto_inverseI 1),
   21.37 +        (etac Abs_Sprod_inverse 1)
   21.38 +        ]);
   21.39  
   21.40  
   21.41  (* ------------------------------------------------------------------------ *)
   21.42 @@ -37,27 +37,27 @@
   21.43  qed_goalw "strict_Spair_Rep" Sprod0.thy [Spair_Rep_def]
   21.44   "(a=UU | b=UU) ==> (Spair_Rep a b) = (Spair_Rep UU UU)"
   21.45   (fn prems =>
   21.46 -	[
   21.47 -	(cut_facts_tac prems 1),
   21.48 -	(rtac ext 1),
   21.49 -	(rtac ext 1),
   21.50 -	(rtac iffI 1),
   21.51 -	(fast_tac HOL_cs 1),
   21.52 -	(fast_tac HOL_cs 1)
   21.53 -	]);
   21.54 +        [
   21.55 +        (cut_facts_tac prems 1),
   21.56 +        (rtac ext 1),
   21.57 +        (rtac ext 1),
   21.58 +        (rtac iffI 1),
   21.59 +        (fast_tac HOL_cs 1),
   21.60 +        (fast_tac HOL_cs 1)
   21.61 +        ]);
   21.62  
   21.63  qed_goalw "defined_Spair_Rep_rev" Sprod0.thy [Spair_Rep_def]
   21.64   "(Spair_Rep a b) = (Spair_Rep UU UU) ==> (a=UU | b=UU)"
   21.65   (fn prems =>
   21.66 -	[
   21.67 -	(res_inst_tac [("Q","a=UU|b=UU")] classical2 1),
   21.68 -	(atac 1),
   21.69 -	(rtac disjI1 1),
   21.70 -	(rtac ((hd prems) RS fun_cong RS fun_cong RS iffD2 RS mp RS 
   21.71 -	conjunct1 RS sym) 1),
   21.72 -	(fast_tac HOL_cs 1),
   21.73 -	(fast_tac HOL_cs 1)
   21.74 -	]);
   21.75 +        [
   21.76 +        (res_inst_tac [("Q","a=UU|b=UU")] classical2 1),
   21.77 +        (atac 1),
   21.78 +        (rtac disjI1 1),
   21.79 +        (rtac ((hd prems) RS fun_cong RS fun_cong RS iffD2 RS mp RS 
   21.80 +        conjunct1 RS sym) 1),
   21.81 +        (fast_tac HOL_cs 1),
   21.82 +        (fast_tac HOL_cs 1)
   21.83 +        ]);
   21.84  
   21.85  
   21.86  (* ------------------------------------------------------------------------ *)
   21.87 @@ -67,26 +67,26 @@
   21.88  qed_goalw "inject_Spair_Rep" Sprod0.thy [Spair_Rep_def]
   21.89  "[|~aa=UU ; ~ba=UU ; Spair_Rep a b = Spair_Rep aa ba |] ==> a=aa & b=ba"
   21.90   (fn prems =>
   21.91 -	[
   21.92 -	(cut_facts_tac prems 1),
   21.93 -	(rtac ((nth_elem (2,prems)) RS fun_cong  RS fun_cong 
   21.94 -		RS iffD1 RS mp) 1),
   21.95 -	(fast_tac HOL_cs 1),
   21.96 -	(fast_tac HOL_cs 1)
   21.97 -	]);
   21.98 +        [
   21.99 +        (cut_facts_tac prems 1),
  21.100 +        (rtac ((nth_elem (2,prems)) RS fun_cong  RS fun_cong 
  21.101 +                RS iffD1 RS mp) 1),
  21.102 +        (fast_tac HOL_cs 1),
  21.103 +        (fast_tac HOL_cs 1)
  21.104 +        ]);
  21.105  
  21.106  
  21.107  qed_goalw "inject_Ispair" Sprod0.thy [Ispair_def]
  21.108 -	"[|~aa=UU ; ~ba=UU ; Ispair a b = Ispair aa ba |] ==> a=aa & b=ba"
  21.109 +        "[|~aa=UU ; ~ba=UU ; Ispair a b = Ispair aa ba |] ==> a=aa & b=ba"
  21.110  (fn prems =>
  21.111 -	[
  21.112 -	(cut_facts_tac prems 1),
  21.113 -	(etac inject_Spair_Rep 1),
  21.114 -	(atac 1),
  21.115 -	(etac (inj_onto_Abs_Sprod  RS inj_ontoD) 1),
  21.116 -	(rtac SprodI 1),
  21.117 -	(rtac SprodI 1)
  21.118 -	]);
  21.119 +        [
  21.120 +        (cut_facts_tac prems 1),
  21.121 +        (etac inject_Spair_Rep 1),
  21.122 +        (atac 1),
  21.123 +        (etac (inj_onto_Abs_Sprod  RS inj_ontoD) 1),
  21.124 +        (rtac SprodI 1),
  21.125 +        (rtac SprodI 1)
  21.126 +        ]);
  21.127  
  21.128  
  21.129  (* ------------------------------------------------------------------------ *)
  21.130 @@ -96,62 +96,62 @@
  21.131  qed_goalw "strict_Ispair" Sprod0.thy [Ispair_def] 
  21.132   "(a=UU | b=UU) ==> Ispair a b = Ispair UU UU"
  21.133  (fn prems =>
  21.134 -	[
  21.135 -	(cut_facts_tac prems 1),
  21.136 -	(etac (strict_Spair_Rep RS arg_cong) 1)
  21.137 -	]);
  21.138 +        [
  21.139 +        (cut_facts_tac prems 1),
  21.140 +        (etac (strict_Spair_Rep RS arg_cong) 1)
  21.141 +        ]);
  21.142  
  21.143  qed_goalw "strict_Ispair1" Sprod0.thy [Ispair_def]
  21.144 -	"Ispair UU b  = Ispair UU UU"
  21.145 +        "Ispair UU b  = Ispair UU UU"
  21.146  (fn prems =>
  21.147 -	[
  21.148 -	(rtac (strict_Spair_Rep RS arg_cong) 1),
  21.149 -	(rtac disjI1 1),
  21.150 -	(rtac refl 1)
  21.151 -	]);
  21.152 +        [
  21.153 +        (rtac (strict_Spair_Rep RS arg_cong) 1),
  21.154 +        (rtac disjI1 1),
  21.155 +        (rtac refl 1)
  21.156 +        ]);
  21.157  
  21.158  qed_goalw "strict_Ispair2" Sprod0.thy [Ispair_def]
  21.159 -	"Ispair a UU = Ispair UU UU"
  21.160 +        "Ispair a UU = Ispair UU UU"
  21.161  (fn prems =>
  21.162 -	[
  21.163 -	(rtac (strict_Spair_Rep RS arg_cong) 1),
  21.164 -	(rtac disjI2 1),
  21.165 -	(rtac refl 1)
  21.166 -	]);
  21.167 +        [
  21.168 +        (rtac (strict_Spair_Rep RS arg_cong) 1),
  21.169 +        (rtac disjI2 1),
  21.170 +        (rtac refl 1)
  21.171 +        ]);
  21.172  
  21.173  qed_goal "strict_Ispair_rev" Sprod0.thy 
  21.174 -	"~Ispair x y = Ispair UU UU ==> ~x=UU & ~y=UU"
  21.175 +        "~Ispair x y = Ispair UU UU ==> ~x=UU & ~y=UU"
  21.176  (fn prems =>
  21.177 -	[
  21.178 -	(cut_facts_tac prems 1),
  21.179 -	(rtac (de_morgan1 RS ssubst) 1),
  21.180 -	(etac contrapos 1),
  21.181 -	(etac strict_Ispair 1)
  21.182 -	]);
  21.183 +        [
  21.184 +        (cut_facts_tac prems 1),
  21.185 +        (rtac (de_morgan1 RS ssubst) 1),
  21.186 +        (etac contrapos 1),
  21.187 +        (etac strict_Ispair 1)
  21.188 +        ]);
  21.189  
  21.190  qed_goalw "defined_Ispair_rev" Sprod0.thy [Ispair_def]
  21.191 -	"Ispair a b  = Ispair UU UU ==> (a = UU | b = UU)"
  21.192 +        "Ispair a b  = Ispair UU UU ==> (a = UU | b = UU)"
  21.193  (fn prems =>
  21.194 -	[
  21.195 -	(cut_facts_tac prems 1),
  21.196 -	(rtac defined_Spair_Rep_rev 1),
  21.197 -	(rtac (inj_onto_Abs_Sprod  RS inj_ontoD) 1),
  21.198 -	(atac 1),
  21.199 -	(rtac SprodI 1),
  21.200 -	(rtac SprodI 1)
  21.201 -	]);
  21.202 +        [
  21.203 +        (cut_facts_tac prems 1),
  21.204 +        (rtac defined_Spair_Rep_rev 1),
  21.205 +        (rtac (inj_onto_Abs_Sprod  RS inj_ontoD) 1),
  21.206 +        (atac 1),
  21.207 +        (rtac SprodI 1),
  21.208 +        (rtac SprodI 1)
  21.209 +        ]);
  21.210  
  21.211  qed_goal "defined_Ispair" Sprod0.thy  
  21.212  "[|a~=UU; b~=UU|] ==> (Ispair a b) ~= (Ispair UU UU)" 
  21.213  (fn prems =>
  21.214 -	[
  21.215 -	(cut_facts_tac prems 1),
  21.216 -	(rtac contrapos 1),
  21.217 -	(etac defined_Ispair_rev 2),
  21.218 -	(rtac (de_morgan1 RS iffD1) 1),
  21.219 -	(etac conjI 1),
  21.220 -	(atac 1)
  21.221 -	]);
  21.222 +        [
  21.223 +        (cut_facts_tac prems 1),
  21.224 +        (rtac contrapos 1),
  21.225 +        (etac defined_Ispair_rev 2),
  21.226 +        (rtac (de_morgan1 RS iffD1) 1),
  21.227 +        (etac conjI 1),
  21.228 +        (atac 1)
  21.229 +        ]);
  21.230  
  21.231  
  21.232  (* ------------------------------------------------------------------------ *)
  21.233 @@ -159,27 +159,27 @@
  21.234  (* ------------------------------------------------------------------------ *)
  21.235  
  21.236  qed_goalw "Exh_Sprod" Sprod0.thy [Ispair_def]
  21.237 -	"z=Ispair UU UU | (? a b. z=Ispair a b & a~=UU & b~=UU)"
  21.238 +        "z=Ispair UU UU | (? a b. z=Ispair a b & a~=UU & b~=UU)"
  21.239  (fn prems =>
  21.240 -	[
  21.241 -	(rtac (rewrite_rule [Sprod_def] Rep_Sprod RS CollectE) 1),
  21.242 -	(etac exE 1),
  21.243 -	(etac exE 1),
  21.244 -	(rtac (excluded_middle RS disjE) 1),