src/HOLCF/ex/Dnat.thy
changeset 21404 eb85850d3eb7
parent 19764 372065f34795
child 27108 e447b3107696
equal deleted inserted replaced
21403:dd58f13a8eb4 21404:eb85850d3eb7
     8 theory Dnat imports HOLCF begin
     8 theory Dnat imports HOLCF begin
     9 
     9 
    10 domain dnat = dzero | dsucc (dpred :: dnat)
    10 domain dnat = dzero | dsucc (dpred :: dnat)
    11 
    11 
    12 definition
    12 definition
    13   iterator :: "dnat -> ('a -> 'a) -> 'a -> 'a"
    13   iterator :: "dnat -> ('a -> 'a) -> 'a -> 'a" where
    14   "iterator = fix $ (LAM h n f x.
    14   "iterator = fix $ (LAM h n f x.
    15     case n of dzero => x
    15     case n of dzero => x
    16       | dsucc $ m => f $ (h $ m $ f $ x))"
    16       | dsucc $ m => f $ (h $ m $ f $ x))"
    17 
    17 
    18 text {*
    18 text {*