src/HOLCF/Cfun3.ML
author huffman
Wed, 02 Mar 2005 22:57:08 +0100
changeset 15563 9e125b675253
parent 14981 e73f8140af78
child 15566 eb3b1a5c304e
permissions -rw-r--r--
converted to new-style theory
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
     1
(*  Title:      HOLCF/Cfun3
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
     2
    ID:         $Id$
1461
6bcb44e4d6e5 expanded tabs
clasohm
parents: 1267
diff changeset
     3
    Author:     Franz Regensburger
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
     4
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
     5
Class instance of  -> for class pcpo
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
     6
*)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
     7
2640
ee4dfce170a0 Changes of HOLCF from Oscar Slotosch:
slotosch
parents: 2566
diff changeset
     8
(* for compatibility with old HOLCF-Version *)
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
     9
Goal "UU = Abs_CFun(%x. UU)";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    10
by (simp_tac (HOL_ss addsimps [UU_def,UU_cfun_def]) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    11
qed "inst_cfun_pcpo";
2640
ee4dfce170a0 Changes of HOLCF from Oscar Slotosch:
slotosch
parents: 2566
diff changeset
    12
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    13
(* ------------------------------------------------------------------------ *)
5291
5706f0ef1d43 eliminated fabs,fapp.
slotosch
parents: 4721
diff changeset
    14
(* the contlub property for Rep_CFun its 'first' argument                       *)
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    15
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    16
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
    17
Goal "contlub(Rep_CFun)";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    18
by (rtac contlubI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    19
by (strip_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    20
by (rtac (expand_fun_eq RS iffD2) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    21
by (strip_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    22
by (stac thelub_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    23
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    24
by (stac Cfunapp2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    25
by (etac cont_lubcfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    26
by (stac thelub_fun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    27
by (etac (monofun_Rep_CFun1 RS ch2ch_monofun) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    28
by (rtac refl 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    29
qed "contlub_Rep_CFun1";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    30
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    31
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    32
(* ------------------------------------------------------------------------ *)
5291
5706f0ef1d43 eliminated fabs,fapp.
slotosch
parents: 4721
diff changeset
    33
(* the cont property for Rep_CFun in its first argument                        *)
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    34
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    35
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
    36
Goal "cont(Rep_CFun)";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    37
by (rtac monocontlub2cont 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    38
by (rtac monofun_Rep_CFun1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    39
by (rtac contlub_Rep_CFun1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    40
qed "cont_Rep_CFun1";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    41
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    42
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    43
(* ------------------------------------------------------------------------ *)
5291
5706f0ef1d43 eliminated fabs,fapp.
slotosch
parents: 4721
diff changeset
    44
(* contlub, cont properties of Rep_CFun in its first argument in mixfix _[_]   *)
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    45
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    46
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
    47
Goal 
4721
c8a8482a8124 renamed is_chain to chain, is_tord to tord, replaced chain_finite by chfin
oheimb
parents: 4423
diff changeset
    48
"chain(FY) ==>\
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
    49
\ lub(range FY)$x = lub(range (%i. FY(i)$x))";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    50
by (rtac trans 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    51
by (etac (contlub_Rep_CFun1 RS contlubE RS spec RS mp RS fun_cong) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    52
by (stac thelub_fun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    53
by (etac (monofun_Rep_CFun1 RS ch2ch_monofun) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    54
by (rtac refl 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    55
qed "contlub_cfun_fun";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    56
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    57
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
    58
Goal 
4721
c8a8482a8124 renamed is_chain to chain, is_tord to tord, replaced chain_finite by chfin
oheimb
parents: 4423
diff changeset
    59
"chain(FY) ==>\
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
    60
\ range(%i. FY(i)$x) <<| lub(range FY)$x";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    61
by (rtac thelubE 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    62
by (etac ch2ch_Rep_CFunL 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    63
by (etac (contlub_cfun_fun RS sym) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    64
qed "cont_cfun_fun";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    65
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    66
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    67
(* ------------------------------------------------------------------------ *)
5291
5706f0ef1d43 eliminated fabs,fapp.
slotosch
parents: 4721
diff changeset
    68
(* contlub, cont  properties of Rep_CFun in both argument in mixfix _[_]       *)
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    69
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    70
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
    71
Goal 
4721
c8a8482a8124 renamed is_chain to chain, is_tord to tord, replaced chain_finite by chfin
oheimb
parents: 4423
diff changeset
    72
"[|chain(FY);chain(TY)|] ==>\
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
    73
\ (lub(range FY))$(lub(range TY)) = lub(range(%i. FY(i)$(TY i)))";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    74
by (rtac contlub_CF2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    75
by (rtac cont_Rep_CFun1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    76
by (rtac allI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    77
by (rtac cont_Rep_CFun2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    78
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    79
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    80
qed "contlub_cfun";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    81
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
    82
Goal 
4721
c8a8482a8124 renamed is_chain to chain, is_tord to tord, replaced chain_finite by chfin
oheimb
parents: 4423
diff changeset
    83
"[|chain(FY);chain(TY)|] ==>\
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
    84
\ range(%i.(FY i)$(TY i)) <<| (lub (range FY))$(lub(range TY))";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    85
by (rtac thelubE 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    86
by (rtac (monofun_Rep_CFun1 RS ch2ch_MF2LR) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    87
by (rtac allI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    88
by (rtac monofun_Rep_CFun2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    89
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    90
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    91
by (etac (contlub_cfun RS sym) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    92
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
    93
qed "cont_cfun";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    94
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    95
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    96
(* ------------------------------------------------------------------------ *)
5291
5706f0ef1d43 eliminated fabs,fapp.
slotosch
parents: 4721
diff changeset
    97
(* cont2cont lemma for Rep_CFun                                               *)
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    98
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
    99
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   100
Goal "[|cont(%x. ft x);cont(%x. tt x)|] ==> cont(%x. (ft x)$(tt x))";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   101
by (best_tac (claset() addIs [cont2cont_app2, cont_const, cont_Rep_CFun1,
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   102
	                      cont_Rep_CFun2]) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   103
qed "cont2cont_Rep_CFun";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   104
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   105
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   106
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   107
(* ------------------------------------------------------------------------ *)
1168
74be52691d62 The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents: 961
diff changeset
   108
(* cont2mono Lemma for %x. LAM y. c1(x)(y)                                  *)
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   109
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   110
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   111
val [p1,p2] = Goal  
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   112
 "[| !!x. cont(c1 x); !!y. monofun(%x. c1 x y)|] ==> monofun(%x. LAM y. c1 x y)";
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   113
by (rtac monofunI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   114
by (strip_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   115
by (stac less_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   116
by (stac less_fun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   117
by (rtac allI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   118
by (stac beta_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   119
by (rtac p1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   120
by (stac beta_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   121
by (rtac p1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   122
by (etac (p2 RS monofunE RS spec RS spec RS mp) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   123
qed "cont2mono_LAM";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   124
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   125
(* ------------------------------------------------------------------------ *)
1168
74be52691d62 The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents: 961
diff changeset
   126
(* cont2cont Lemma for %x. LAM y. c1 x y)                                 *)
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   127
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   128
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   129
val [p1,p2] = Goal  
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   130
 "[| !!x. cont(c1 x); !!y. cont(%x. c1 x y) |] ==> cont(%x. LAM y. c1 x y)";
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   131
by (rtac monocontlub2cont 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   132
by (rtac (p1 RS cont2mono_LAM) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   133
by (rtac (p2 RS cont2mono) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   134
by (rtac contlubI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   135
by (strip_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   136
by (stac thelub_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   137
by (rtac (p1 RS cont2mono_LAM RS ch2ch_monofun) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   138
by (rtac (p2 RS cont2mono) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   139
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   140
by (res_inst_tac [("f","Abs_CFun")] arg_cong 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   141
by (rtac ext 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   142
by (stac (p1 RS beta_cfun RS ext) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   143
by (etac (p2 RS cont2contlub RS contlubE RS spec RS mp) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   144
qed "cont2cont_LAM";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   145
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   146
(* ------------------------------------------------------------------------ *)
1168
74be52691d62 The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents: 961
diff changeset
   147
(* cont2cont tactic                                                       *)
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   148
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   149
5291
5706f0ef1d43 eliminated fabs,fapp.
slotosch
parents: 4721
diff changeset
   150
val cont_lemmas1 = [cont_const, cont_id, cont_Rep_CFun2,
5706f0ef1d43 eliminated fabs,fapp.
slotosch
parents: 4721
diff changeset
   151
                    cont2cont_Rep_CFun,cont2cont_LAM];
2566
cbf02fc74332 changed handling of cont_lemmas and adm_lemmas
oheimb
parents: 2033
diff changeset
   152
cbf02fc74332 changed handling of cont_lemmas and adm_lemmas
oheimb
parents: 2033
diff changeset
   153
Addsimps cont_lemmas1;
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   154
4004
773f3c061777 corrected two comments
oheimb
parents: 3842
diff changeset
   155
(* HINT: cont_tac is now installed in simplifier in Lift.ML ! *)
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   156
2566
cbf02fc74332 changed handling of cont_lemmas and adm_lemmas
oheimb
parents: 2033
diff changeset
   157
(*val cont_tac = (fn i => (resolve_tac cont_lemmas i));*)
cbf02fc74332 changed handling of cont_lemmas and adm_lemmas
oheimb
parents: 2033
diff changeset
   158
(*val cont_tacR = (fn i => (REPEAT (cont_tac i)));*)
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   159
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   160
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   161
(* function application _[_]  is strict in its first arguments              *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   162
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   163
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   164
Goal "(UU::'a::cpo->'b)$x = (UU::'b)";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   165
by (stac inst_cfun_pcpo 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   166
by (stac beta_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   167
by (Simp_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   168
by (rtac refl 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   169
qed "strict_Rep_CFun1";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   170
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   171
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   172
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   173
(* results about strictify                                                  *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   174
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   175
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   176
Goalw [Istrictify_def]
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   177
        "Istrictify(f)(UU)= (UU)";
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   178
by (Simp_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   179
qed "Istrictify1";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   180
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   181
Goalw [Istrictify_def]
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   182
        "~x=UU ==> Istrictify(f)(x)=f$x";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   183
by (Asm_simp_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   184
qed "Istrictify2";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   185
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   186
Goal "monofun(Istrictify)";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   187
by (rtac monofunI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   188
by (strip_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   189
by (rtac (less_fun RS iffD2) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   190
by (strip_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   191
by (res_inst_tac [("Q","xa=UU")] (excluded_middle RS disjE) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   192
by (stac Istrictify2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   193
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   194
by (stac Istrictify2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   195
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   196
by (rtac monofun_cfun_fun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   197
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   198
by (hyp_subst_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   199
by (stac Istrictify1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   200
by (stac Istrictify1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   201
by (rtac refl_less 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   202
qed "monofun_Istrictify1";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   203
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   204
Goal "monofun(Istrictify(f))";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   205
by (rtac monofunI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   206
by (strip_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   207
by (res_inst_tac [("Q","x=UU")] (excluded_middle RS disjE) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   208
by (stac Istrictify2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   209
by (etac notUU_I 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   210
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   211
by (stac Istrictify2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   212
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   213
by (rtac monofun_cfun_arg 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   214
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   215
by (hyp_subst_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   216
by (stac Istrictify1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   217
by (rtac minimal 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   218
qed "monofun_Istrictify2";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   219
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   220
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   221
Goal "contlub(Istrictify)";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   222
by (rtac contlubI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   223
by (strip_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   224
by (rtac (expand_fun_eq RS iffD2) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   225
by (strip_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   226
by (stac thelub_fun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   227
by (etac (monofun_Istrictify1 RS ch2ch_monofun) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   228
by (res_inst_tac [("Q","x=UU")] (excluded_middle RS disjE) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   229
by (stac Istrictify2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   230
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   231
by (stac (Istrictify2 RS ext) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   232
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   233
by (stac thelub_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   234
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   235
by (stac beta_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   236
by (rtac cont_lubcfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   237
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   238
by (rtac refl 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   239
by (hyp_subst_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   240
by (stac Istrictify1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   241
by (stac (Istrictify1 RS ext) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   242
by (rtac (chain_UU_I_inverse RS sym) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   243
by (rtac (refl RS allI) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   244
qed "contlub_Istrictify1";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   245
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   246
Goal "contlub(Istrictify(f::'a -> 'b))";
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   247
by (rtac contlubI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   248
by (strip_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   249
by (case_tac "lub(range(Y))=(UU::'a)" 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   250
by (asm_simp_tac (simpset() addsimps [Istrictify1, chain_UU_I_inverse, chain_UU_I, Istrictify1]) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   251
by (stac Istrictify2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   252
by (atac 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   253
by (res_inst_tac [("s","lub(range(%i. f$(Y i)))")] trans 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   254
by (rtac contlub_cfun_arg 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   255
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   256
by (rtac lub_equal2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   257
by (best_tac (claset() addIs [ch2ch_monofun, monofun_Istrictify2]) 3);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   258
by (best_tac (claset() addIs [ch2ch_monofun, monofun_Rep_CFun2]) 2);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   259
by (rtac (chain_mono2 RS exE) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   260
by (atac 2);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   261
by (etac chain_UU_I_inverse2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   262
by (blast_tac (claset() addIs [Istrictify2 RS sym]) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   263
qed "contlub_Istrictify2";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   264
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   265
1779
1155c06fa956 introduced forgotten bind_thm calls
oheimb
parents: 1675
diff changeset
   266
bind_thm ("cont_Istrictify1", contlub_Istrictify1 RS 
1461
6bcb44e4d6e5 expanded tabs
clasohm
parents: 1267
diff changeset
   267
        (monofun_Istrictify1 RS monocontlub2cont)); 
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   268
1779
1155c06fa956 introduced forgotten bind_thm calls
oheimb
parents: 1675
diff changeset
   269
bind_thm ("cont_Istrictify2", contlub_Istrictify2 RS 
1461
6bcb44e4d6e5 expanded tabs
clasohm
parents: 1267
diff changeset
   270
        (monofun_Istrictify2 RS monocontlub2cont)); 
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   271
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   272
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   273
Goalw [strictify_def] "strictify$f$UU=UU";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   274
by (stac beta_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   275
by (simp_tac (simpset() addsimps [cont_Istrictify2,cont_Istrictify1, cont2cont_CF1L]) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   276
by (stac beta_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   277
by (rtac cont_Istrictify2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   278
by (rtac Istrictify1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   279
qed "strictify1";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   280
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   281
Goalw [strictify_def] "~x=UU ==> strictify$f$x=f$x";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   282
by (stac beta_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   283
by (simp_tac (simpset() addsimps [cont_Istrictify2,cont_Istrictify1, cont2cont_CF1L]) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   284
by (stac beta_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   285
by (rtac cont_Istrictify2 1);
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   286
by (etac Istrictify2 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   287
qed "strictify2";
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   288
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   289
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   290
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   291
(* Instantiate the simplifier                                               *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   292
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   293
5291
5706f0ef1d43 eliminated fabs,fapp.
slotosch
parents: 4721
diff changeset
   294
Addsimps [minimal,refl_less,beta_cfun,strict_Rep_CFun1,strictify1, strictify2];
1267
bca91b4e1710 added local simpsets
clasohm
parents: 1168
diff changeset
   295
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   296
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   297
(* ------------------------------------------------------------------------ *)
1168
74be52691d62 The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents: 961
diff changeset
   298
(* use cont_tac as autotac.                                                *)
243
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   299
(* ------------------------------------------------------------------------ *)
c22b85994e17 Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff changeset
   300
4004
773f3c061777 corrected two comments
oheimb
parents: 3842
diff changeset
   301
(* HINT: cont_tac is now installed in simplifier in Lift.ML ! *)
4098
71e05eb27fb6 isatool fixclasimp;
wenzelm
parents: 4004
diff changeset
   302
(*simpset_ref() := simpset() addsolver (K (DEPTH_SOLVE_1 o cont_tac));*)
3326
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   303
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   304
(* ------------------------------------------------------------------------ *)
4721
c8a8482a8124 renamed is_chain to chain, is_tord to tord, replaced chain_finite by chfin
oheimb
parents: 4423
diff changeset
   305
(* some lemmata for functions with flat/chfin domain/range types	    *)
3326
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   306
(* ------------------------------------------------------------------------ *)
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   307
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   308
Goal "chain (Y::nat => 'a::cpo->'b::chfin) \
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   309
\     ==> !s. ? n. lub(range(Y))$s = Y n$s";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   310
by (rtac allI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   311
by (stac contlub_cfun_fun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   312
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   313
by (fast_tac (HOL_cs addSIs [thelubI,chfin,lub_finch2,chfin2finch,ch2ch_Rep_CFunL])1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   314
qed "chfin_Rep_CFunR";
3326
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   315
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   316
(* ------------------------------------------------------------------------ *)
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   317
(* continuous isomorphisms are strict                                       *)
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   318
(* a prove for embedding projection pairs is similar                        *)
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   319
(* ------------------------------------------------------------------------ *)
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   320
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   321
Goal  
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   322
"!!f g.[|!y. f$(g$y)=(y::'b) ; !x. g$(f$x)=(x::'a) |] \
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   323
\ ==> f$UU=UU & g$UU=UU";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   324
by (rtac conjI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   325
by (rtac UU_I 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   326
by (res_inst_tac [("s","f$(g$(UU::'b))"),("t","UU::'b")] subst 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   327
by (etac spec 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   328
by (rtac (minimal RS monofun_cfun_arg) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   329
by (rtac UU_I 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   330
by (res_inst_tac [("s","g$(f$(UU::'a))"),("t","UU::'a")] subst 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   331
by (etac spec 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   332
by (rtac (minimal RS monofun_cfun_arg) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   333
qed "iso_strict";
3326
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   334
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   335
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   336
Goal "[|!x. rep$(ab$x)=x;!y. ab$(rep$y)=y; z~=UU|] ==> rep$z ~= UU";
10230
5eb935d6cc69 tidying and renaming of contrapos rules
paulson
parents: 9248
diff changeset
   337
by (etac contrapos_nn 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   338
by (dres_inst_tac [("f","ab")] cfun_arg_cong 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   339
by (etac box_equals 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   340
by (fast_tac HOL_cs 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   341
by (etac (iso_strict RS conjunct1) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   342
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   343
qed "isorep_defined";
3326
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   344
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   345
Goal "[|!x. rep$(ab$x) = x;!y. ab$(rep$y)=y ; z~=UU|] ==> ab$z ~= UU";
10230
5eb935d6cc69 tidying and renaming of contrapos rules
paulson
parents: 9248
diff changeset
   346
by (etac contrapos_nn 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   347
by (dres_inst_tac [("f","rep")] cfun_arg_cong 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   348
by (etac box_equals 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   349
by (fast_tac HOL_cs 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   350
by (etac (iso_strict RS conjunct2) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   351
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   352
qed "isoabs_defined";
3326
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   353
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   354
(* ------------------------------------------------------------------------ *)
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   355
(* propagation of flatness and chainfiniteness by continuous isomorphisms   *)
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   356
(* ------------------------------------------------------------------------ *)
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   357
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   358
Goal "!!f g.[|! Y::nat=>'a. chain Y --> (? n. max_in_chain n Y); \
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   359
\ !y. f$(g$y)=(y::'b) ; !x. g$(f$x)=(x::'a::chfin) |] \
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   360
\ ==> ! Y::nat=>'b. chain Y --> (? n. max_in_chain n Y)";
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   361
by (rewtac max_in_chain_def);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   362
by (strip_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   363
by (rtac exE 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   364
by (res_inst_tac [("P","chain(%i. g$(Y i))")] mp 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   365
by (etac spec 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   366
by (etac ch2ch_Rep_CFunR 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   367
by (rtac exI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   368
by (strip_tac 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   369
by (res_inst_tac [("s","f$(g$(Y x))"),("t","Y(x)")] subst 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   370
by (etac spec 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   371
by (res_inst_tac [("s","f$(g$(Y j))"),("t","Y(j)")] subst 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   372
by (etac spec 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   373
by (rtac cfun_arg_cong 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   374
by (rtac mp 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   375
by (etac spec 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   376
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   377
qed "chfin2chfin";
3326
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   378
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   379
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   380
Goal "!!f g.[|!x y::'a. x<<y --> x=UU | x=y; \
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   381
\ !y. f$(g$y)=(y::'b); !x. g$(f$x)=(x::'a)|] ==> !x y::'b. x<<y --> x=UU | x=y";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   382
by (strip_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   383
by (rtac disjE 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   384
by (res_inst_tac [("P","g$x<<g$y")] mp 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   385
by (etac monofun_cfun_arg 2);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   386
by (dtac spec 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   387
by (etac spec 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   388
by (rtac disjI1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   389
by (rtac trans 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   390
by (res_inst_tac [("s","f$(g$x)"),("t","x")] subst 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   391
by (etac spec 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   392
by (etac cfun_arg_cong 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   393
by (rtac (iso_strict RS conjunct1) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   394
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   395
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   396
by (rtac disjI2 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   397
by (res_inst_tac [("s","f$(g$x)"),("t","x")] subst 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   398
by (etac spec 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   399
by (res_inst_tac [("s","f$(g$y)"),("t","y")] subst 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   400
by (etac spec 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   401
by (etac cfun_arg_cong 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   402
qed "flat2flat";
3326
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   403
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   404
(* ------------------------------------------------------------------------- *)
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   405
(* a result about functions with flat codomain                               *)
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   406
(* ------------------------------------------------------------------------- *)
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   407
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   408
Goal "f$(x::'a)=(c::'b::flat) ==> f$(UU::'a)=(UU::'b) | (!z. f$(z::'a)=c)";
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   409
by (case_tac "f$(x::'a)=(UU::'b)" 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   410
by (rtac disjI1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   411
by (rtac UU_I 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   412
by (res_inst_tac [("s","f$(x)"),("t","UU::'b")] subst 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   413
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   414
by (rtac (minimal RS monofun_cfun_arg) 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   415
by (case_tac "f$(UU::'a)=(UU::'b)" 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   416
by (etac disjI1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   417
by (rtac disjI2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   418
by (rtac allI 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   419
by (hyp_subst_tac 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   420
by (res_inst_tac [("a","f$(UU::'a)")] (refl RS box_equals) 1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   421
by (res_inst_tac [("fo5","f")] ((minimal RS monofun_cfun_arg) RS (ax_flat RS spec RS spec RS mp) RS disjE) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   422
by (contr_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   423
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   424
by (res_inst_tac [("fo5","f")] ((minimal RS monofun_cfun_arg) RS (ax_flat RS spec RS spec RS mp) RS disjE) 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   425
by (contr_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   426
by (atac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   427
qed "flat_codom";
3326
930c9bed5a09 Moved the classes flat chfin from Fix to Pcpo.
slotosch
parents: 3031
diff changeset
   428
3327
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   429
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   430
(* ------------------------------------------------------------------------ *)
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   431
(* Access to definitions                                                    *)
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   432
(* ------------------------------------------------------------------------ *)
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   433
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   434
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   435
Goalw [ID_def] "ID$x=x";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   436
by (stac beta_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   437
by (rtac cont_id 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   438
by (rtac refl 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   439
qed "ID1";
3327
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   440
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   441
Goalw [oo_def] "(f oo g)=(LAM x. f$(g$x))";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   442
by (stac beta_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   443
by (Simp_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   444
by (stac beta_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   445
by (Simp_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   446
by (rtac refl 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   447
qed "cfcomp1";
3327
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   448
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   449
Goal  "(f oo g)$x=f$(g$x)";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   450
by (stac cfcomp1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   451
by (stac beta_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   452
by (Simp_tac 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   453
by (rtac refl 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   454
qed "cfcomp2";
3327
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   455
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   456
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   457
(* ------------------------------------------------------------------------ *)
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   458
(* Show that interpretation of (pcpo,_->_) is a category                    *)
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   459
(* The class of objects is interpretation of syntactical class pcpo         *)
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   460
(* The class of arrows  between objects 'a and 'b is interpret. of 'a -> 'b *)
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   461
(* The identity arrow is interpretation of ID                               *)
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   462
(* The composition of f and g is interpretation of oo                       *)
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   463
(* ------------------------------------------------------------------------ *)
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   464
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   465
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   466
Goal "f oo ID = f ";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   467
by (rtac ext_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   468
by (stac cfcomp2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   469
by (stac ID1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   470
by (rtac refl 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   471
qed "ID2";
3327
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   472
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   473
Goal "ID oo f = f ";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   474
by (rtac ext_cfun 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   475
by (stac cfcomp2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   476
by (stac ID1 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   477
by (rtac refl 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   478
qed "ID3";
3327
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   479
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   480
9248
e1dee89de037 massive tidy-up: goal -> Goal, remove use of prems, etc.
paulson
parents: 9245
diff changeset
   481
Goal "f oo (g oo h) = (f oo g) oo h";
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   482
by (rtac ext_cfun 1);
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10230
diff changeset
   483
by (res_inst_tac [("s","f$(g$(h$x))")] trans  1);
9245
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   484
by (stac cfcomp2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   485
by (stac cfcomp2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   486
by (rtac refl 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   487
by (stac cfcomp2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   488
by (stac cfcomp2 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   489
by (rtac refl 1);
428385c4bc50 removed most batch-style proofs
paulson
parents: 8820
diff changeset
   490
qed "assoc_oo";
3327
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   491
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   492
(* ------------------------------------------------------------------------ *)
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   493
(* Merge the different rewrite rules for the simplifier                     *)
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   494
(* ------------------------------------------------------------------------ *)
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   495
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   496
Addsimps ([ID1,ID2,ID3,cfcomp2]);
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   497
9b8e638f8602 Eliminated ccc1. Moved ID,oo into Cfun.
slotosch
parents: 3326
diff changeset
   498