src/HOLCF/ex/Dagstuhl.ML
author berghofe
Mon, 05 Aug 2002 14:32:56 +0200
changeset 13454 01e2496dee05
parent 12036 49f6c49454c2
child 15188 9d57263faf9e
permissions -rw-r--r--
Replaced nat_ind_tac by induct_tac.
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
val YS_def2  = fix_prover2 Dagstuhl.thy  YS_def  "YS = y && YS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     4
val YYS_def2 = fix_prover2 Dagstuhl.thy YYS_def "YYS = y && y && YYS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     5
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     6
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     7
val prems = goal Dagstuhl.thy "YYS << y && YYS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     8
by (rtac (YYS_def RS def_fix_ind) 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     9
by (Simp_tac 1);
3032
74c5f175aa8e minor changes due to more powerful continuity check in Lift3.ML
mueller
parents: 2570
diff changeset
    10
by (Simp_tac 1);
74c5f175aa8e minor changes due to more powerful continuity check in Lift3.ML
mueller
parents: 2570
diff changeset
    11
by (Simp_tac 1);
2570
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    12
by (rtac monofun_cfun_arg 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    13
by (rtac monofun_cfun_arg 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    14
by (atac 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    15
val lemma3 = result();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    16
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    17
val prems = goal Dagstuhl.thy "y && YYS << YYS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    18
by (stac YYS_def2 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    19
back();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    20
by (rtac monofun_cfun_arg 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    21
by (rtac lemma3 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    22
val lemma4=result();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    23
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    24
(* val  lemma5 = lemma3 RS (lemma4 RS antisym_less) *)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    25
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    26
val prems = goal Dagstuhl.thy "y && YYS = YYS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    27
by (rtac antisym_less 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    28
by (rtac lemma4 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    29
by (rtac lemma3 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    30
val lemma5=result();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    31
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    32
val prems = goal Dagstuhl.thy "YS = YYS";
4044
fdfef2d484ca domain package:
oheimb
parents: 3032
diff changeset
    33
by (resolve_tac stream.take_lemmas 1);
13454
01e2496dee05 Replaced nat_ind_tac by induct_tac.
berghofe
parents: 12036
diff changeset
    34
by (induct_tac "n" 1);
4098
71e05eb27fb6 isatool fixclasimp;
wenzelm
parents: 4044
diff changeset
    35
by (simp_tac (simpset() addsimps stream.rews) 1);
2570
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    36
by (stac YS_def2 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    37
by (stac YYS_def2 1);
4098
71e05eb27fb6 isatool fixclasimp;
wenzelm
parents: 4044
diff changeset
    38
by (asm_simp_tac (simpset() addsimps stream.rews) 1);
2570
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    39
by (rtac (lemma5 RS sym RS subst) 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    40
by (rtac refl 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    41
val wir_moel=result();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    42
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    43
(* ------------------------------------------------------------------------ *)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    44
(* Zweite L"osung: Bernhard M"oller                                         *)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    45
(* statt Beweis von  wir_moel "uber take_lemma beidseitige Inclusion        *)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    46
(* verwendet lemma5                                                         *)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    47
(* ------------------------------------------------------------------------ *)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    48
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    49
val prems = goal Dagstuhl.thy "YYS << YS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    50
by (rewtac YYS_def);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    51
by (rtac fix_least 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    52
by (stac beta_cfun 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    53
by (cont_tacR 1);
4098
71e05eb27fb6 isatool fixclasimp;
wenzelm
parents: 4044
diff changeset
    54
by (simp_tac (simpset() addsimps [YS_def2 RS sym]) 1);
2570
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    55
val lemma6=result();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    56
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    57
val prems = goal Dagstuhl.thy "YS << YYS";
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    58
by (rtac (YS_def RS def_fix_ind) 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    59
by (Simp_tac 1);
3032
74c5f175aa8e minor changes due to more powerful continuity check in Lift3.ML
mueller
parents: 2570
diff changeset
    60
by (Simp_tac 1);
74c5f175aa8e minor changes due to more powerful continuity check in Lift3.ML
mueller
parents: 2570
diff changeset
    61
by (Simp_tac 1);
2570
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    62
by (stac (lemma5 RS sym) 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    63
by (etac monofun_cfun_arg 1);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    64
val lemma7 = result();
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    65
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    66
val  wir_moel = lemma6 RS (lemma7 RS antisym_less);
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    67