src/HOLCF/ex/Dagstuhl.ML
author wenzelm
Fri, 07 Mar 1997 11:48:46 +0100
changeset 2754 59bd96046ad6
parent 2570 24d7e8fb8261
child 3032 74c5f175aa8e
permissions -rw-r--r--
moved settings comment to build;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2570
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     1
(* $Id$ *)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     2
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     3
open Dagstuhl;
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     4
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     5
val YS_def2  = fix_prover2 Dagstuhl.thy  YS_def  "YS = y && YS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     6
val YYS_def2 = fix_prover2 Dagstuhl.thy YYS_def "YYS = y && y && YYS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     7
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     8
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     9
val prems = goal Dagstuhl.thy "YYS << y && YYS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    10
by (rtac (YYS_def RS def_fix_ind) 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    11
by (Simp_tac 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    12
by (cont_tacR 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    13
by (stac beta_cfun 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    14
by (cont_tacR 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    15
by (rtac monofun_cfun_arg 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    16
by (rtac monofun_cfun_arg 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    17
by (atac 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    18
val lemma3 = result();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    19
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    20
val prems = goal Dagstuhl.thy "y && YYS << YYS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    21
by (stac YYS_def2 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    22
back();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    23
by (rtac monofun_cfun_arg 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    24
by (rtac lemma3 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    25
val lemma4=result();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    26
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    27
(* val  lemma5 = lemma3 RS (lemma4 RS antisym_less) *)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    28
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    29
val prems = goal Dagstuhl.thy "y && YYS = YYS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    30
by (rtac antisym_less 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    31
by (rtac lemma4 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    32
by (rtac lemma3 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    33
val lemma5=result();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    34
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    35
val prems = goal Dagstuhl.thy "YS = YYS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    36
by (rtac stream.take_lemma 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    37
by (nat_ind_tac "n" 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    38
by (simp_tac (!simpset addsimps stream.rews) 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    39
by (stac YS_def2 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    40
by (stac YYS_def2 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    41
by (asm_simp_tac (!simpset addsimps stream.rews) 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    42
by (rtac (lemma5 RS sym RS subst) 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    43
by (rtac refl 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    44
val wir_moel=result();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    45
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    46
(* ------------------------------------------------------------------------ *)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    47
(* Zweite L"osung: Bernhard M"oller                                         *)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    48
(* statt Beweis von  wir_moel "uber take_lemma beidseitige Inclusion        *)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    49
(* verwendet lemma5                                                         *)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    50
(* ------------------------------------------------------------------------ *)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    51
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    52
val prems = goal Dagstuhl.thy "YYS << YS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    53
by (rewtac YYS_def);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    54
by (rtac fix_least 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    55
by (stac beta_cfun 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    56
by (cont_tacR 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    57
by (simp_tac (!simpset addsimps [YS_def2 RS sym]) 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    58
val lemma6=result();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    59
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    60
val prems = goal Dagstuhl.thy "YS << YYS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    61
by (rtac (YS_def RS def_fix_ind) 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    62
by (Simp_tac 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    63
by (cont_tacR 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    64
by (stac beta_cfun 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    65
by (cont_tacR 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    66
by (stac (lemma5 RS sym) 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    67
by (etac monofun_cfun_arg 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    68
val lemma7 = result();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    69
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    70
val  wir_moel = lemma6 RS (lemma7 RS antisym_less);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    71