src/HOL/HOLCF/ex/Fix2.thy
author wenzelm
Sun, 30 Jan 2011 13:02:18 +0100
changeset 41648 6d736d983d5c
parent 40774 0437dbc127b3
child 42151 4da4fc77664b
permissions -rw-r--r--
clarified example settings for Proof General;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1479
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
     1
(*  Title:      HOLCF/ex/Fix2.thy
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
     2
    Author:     Franz Regensburger
1274
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
     3
17291
94f6113fe9ed converted to Isar theory format;
wenzelm
parents: 14981
diff changeset
     4
Show that fix is the unique least fixed-point operator.
12036
wenzelm
parents: 10835
diff changeset
     5
From axioms gix1_def,gix2_def it follows that fix = gix
1274
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
     6
*)
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
     7
17291
94f6113fe9ed converted to Isar theory format;
wenzelm
parents: 14981
diff changeset
     8
theory Fix2
94f6113fe9ed converted to Isar theory format;
wenzelm
parents: 14981
diff changeset
     9
imports HOLCF
94f6113fe9ed converted to Isar theory format;
wenzelm
parents: 14981
diff changeset
    10
begin
1274
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    11
25135
4f8176c940cf modernized specifications ('definition', 'axiomatization');
wenzelm
parents: 19742
diff changeset
    12
axiomatization
4f8176c940cf modernized specifications ('definition', 'axiomatization');
wenzelm
parents: 19742
diff changeset
    13
  gix :: "('a->'a)->'a" where
4f8176c940cf modernized specifications ('definition', 'axiomatization');
wenzelm
parents: 19742
diff changeset
    14
  gix1_def: "F$(gix$F) = gix$F" and
17291
94f6113fe9ed converted to Isar theory format;
wenzelm
parents: 14981
diff changeset
    15
  gix2_def: "F$y=y ==> gix$F << y"
1274
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    16
19742
86f21beabafc removed legacy ML scripts;
wenzelm
parents: 17291
diff changeset
    17
86f21beabafc removed legacy ML scripts;
wenzelm
parents: 17291
diff changeset
    18
lemma lemma1: "fix = gix"
40002
c5b5f7a3a3b1 new theorem names: fun_below_iff, fun_belowI, cfun_eq_iff, cfun_eqI, cfun_below_iff, cfun_belowI
huffman
parents: 35174
diff changeset
    19
apply (rule cfun_eqI)
40431
682d6c455670 discontinue a bunch of legacy theorem names
huffman
parents: 40002
diff changeset
    20
apply (rule below_antisym)
19742
86f21beabafc removed legacy ML scripts;
wenzelm
parents: 17291
diff changeset
    21
apply (rule fix_least)
86f21beabafc removed legacy ML scripts;
wenzelm
parents: 17291
diff changeset
    22
apply (rule gix1_def)
86f21beabafc removed legacy ML scripts;
wenzelm
parents: 17291
diff changeset
    23
apply (rule gix2_def)
86f21beabafc removed legacy ML scripts;
wenzelm
parents: 17291
diff changeset
    24
apply (rule fix_eq [symmetric])
86f21beabafc removed legacy ML scripts;
wenzelm
parents: 17291
diff changeset
    25
done
86f21beabafc removed legacy ML scripts;
wenzelm
parents: 17291
diff changeset
    26
86f21beabafc removed legacy ML scripts;
wenzelm
parents: 17291
diff changeset
    27
lemma lemma2: "gix$F=lub(range(%i. iterate i$F$UU))"
86f21beabafc removed legacy ML scripts;
wenzelm
parents: 17291
diff changeset
    28
apply (rule lemma1 [THEN subst])
86f21beabafc removed legacy ML scripts;
wenzelm
parents: 17291
diff changeset
    29
apply (rule fix_def2)
86f21beabafc removed legacy ML scripts;
wenzelm
parents: 17291
diff changeset
    30
done
1274
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    31
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    32
end