src/HOLCF/Fix.thy
changeset 1410 324aa8134639
parent 1168 74be52691d62
child 1479 21eb5e156d91
equal deleted inserted replaced
1409:3cc3fde8d005 1410:324aa8134639
    16 Ifix    :: "('a->'a)=>'a"
    16 Ifix    :: "('a->'a)=>'a"
    17 fix     :: "('a->'a)->'a"
    17 fix     :: "('a->'a)->'a"
    18 adm          :: "('a=>bool)=>bool"
    18 adm          :: "('a=>bool)=>bool"
    19 admw         :: "('a=>bool)=>bool"
    19 admw         :: "('a=>bool)=>bool"
    20 chain_finite :: "'a=>bool"
    20 chain_finite :: "'a=>bool"
    21 flat         :: "'a=>bool"
    21 is_flat         :: "'a=>bool"
    22 
    22 
    23 defs
    23 defs
    24 
    24 
    25 iterate_def   "iterate n F c == nat_rec n c (%n x.F`x)"
    25 iterate_def   "iterate n F c == nat_rec n c (%n x.F`x)"
    26 Ifix_def      "Ifix F == lub(range(%i.iterate i F UU))"
    26 Ifix_def      "Ifix F == lub(range(%i.iterate i F UU))"
    33 			    P (lub(range (%i. iterate i F UU)))" 
    33 			    P (lub(range (%i. iterate i F UU)))" 
    34 
    34 
    35 chain_finite_def  "chain_finite (x::'a)==
    35 chain_finite_def  "chain_finite (x::'a)==
    36                         !Y. is_chain (Y::nat=>'a) --> (? n.max_in_chain n Y)"
    36                         !Y. is_chain (Y::nat=>'a) --> (? n.max_in_chain n Y)"
    37 
    37 
    38 flat_def          "flat (x::'a) ==
    38 is_flat_def          "is_flat (x::'a) ==
    39                         ! x y. (x::'a) << y --> (x = UU) | (x=y)"
    39                         ! x y. (x::'a) << y --> (x = UU) | (x=y)"
    40 
    40 
    41 end
    41 end
    42 
    42