src/HOL/HOLCF/ex/Fix2.thy
changeset 40774 0437dbc127b3
parent 40431 682d6c455670
child 42151 4da4fc77664b
equal deleted inserted replaced
40773:6c12f5e24e34 40774:0437dbc127b3
       
     1 (*  Title:      HOLCF/ex/Fix2.thy
       
     2     Author:     Franz Regensburger
       
     3 
       
     4 Show that fix is the unique least fixed-point operator.
       
     5 From axioms gix1_def,gix2_def it follows that fix = gix
       
     6 *)
       
     7 
       
     8 theory Fix2
       
     9 imports HOLCF
       
    10 begin
       
    11 
       
    12 axiomatization
       
    13   gix :: "('a->'a)->'a" where
       
    14   gix1_def: "F$(gix$F) = gix$F" and
       
    15   gix2_def: "F$y=y ==> gix$F << y"
       
    16 
       
    17 
       
    18 lemma lemma1: "fix = gix"
       
    19 apply (rule cfun_eqI)
       
    20 apply (rule below_antisym)
       
    21 apply (rule fix_least)
       
    22 apply (rule gix1_def)
       
    23 apply (rule gix2_def)
       
    24 apply (rule fix_eq [symmetric])
       
    25 done
       
    26 
       
    27 lemma lemma2: "gix$F=lub(range(%i. iterate i$F$UU))"
       
    28 apply (rule lemma1 [THEN subst])
       
    29 apply (rule fix_def2)
       
    30 done
       
    31 
       
    32 end