author | ballarin |
Mon, 19 Jan 2009 20:37:08 +0100 | |
changeset 29566 | 937baa077df2 |
parent 25135 | 4f8176c940cf |
child 35174 | e15040ae75d7 |
permissions | -rw-r--r-- |
1479 | 1 |
(* Title: HOLCF/ex/Fix2.thy |
1274 | 2 |
ID: $Id$ |
1479 | 3 |
Author: Franz Regensburger |
1274 | 4 |
|
17291 | 5 |
Show that fix is the unique least fixed-point operator. |
12036 | 6 |
From axioms gix1_def,gix2_def it follows that fix = gix |
1274 | 7 |
*) |
8 |
||
17291 | 9 |
theory Fix2 |
10 |
imports HOLCF |
|
11 |
begin |
|
1274 | 12 |
|
25135
4f8176c940cf
modernized specifications ('definition', 'axiomatization');
wenzelm
parents:
19742
diff
changeset
|
13 |
axiomatization |
4f8176c940cf
modernized specifications ('definition', 'axiomatization');
wenzelm
parents:
19742
diff
changeset
|
14 |
gix :: "('a->'a)->'a" where |
4f8176c940cf
modernized specifications ('definition', 'axiomatization');
wenzelm
parents:
19742
diff
changeset
|
15 |
gix1_def: "F$(gix$F) = gix$F" and |
17291 | 16 |
gix2_def: "F$y=y ==> gix$F << y" |
1274 | 17 |
|
19742 | 18 |
|
19 |
lemma lemma1: "fix = gix" |
|
20 |
apply (rule ext_cfun) |
|
21 |
apply (rule antisym_less) |
|
22 |
apply (rule fix_least) |
|
23 |
apply (rule gix1_def) |
|
24 |
apply (rule gix2_def) |
|
25 |
apply (rule fix_eq [symmetric]) |
|
26 |
done |
|
27 |
||
28 |
lemma lemma2: "gix$F=lub(range(%i. iterate i$F$UU))" |
|
29 |
apply (rule lemma1 [THEN subst]) |
|
30 |
apply (rule fix_def2) |
|
31 |
done |
|
1274 | 32 |
|
33 |
end |