| 
1479
 | 
     1  | 
(*  Title:      HOLCF/ex/Loop.thy
  | 
| 
244
 | 
     2  | 
    ID:         $Id$
  | 
| 
1479
 | 
     3  | 
    Author:     Franz Regensburger
  | 
| 
244
 | 
     4  | 
*)
  | 
| 
 | 
     5  | 
  | 
| 
17291
 | 
     6  | 
header {* Theory for a loop primitive like while *}
 | 
| 
244
 | 
     7  | 
  | 
| 
17291
 | 
     8  | 
theory Loop
  | 
| 
 | 
     9  | 
imports HOLCF
  | 
| 
 | 
    10  | 
begin
  | 
| 
244
 | 
    11  | 
  | 
| 
17291
 | 
    12  | 
constdefs
  | 
| 
 | 
    13  | 
  step  :: "('a -> tr)->('a -> 'a)->'a->'a"
 | 
| 
 | 
    14  | 
  "step == (LAM b g x. If b$x then g$x else x fi)"
  | 
| 
 | 
    15  | 
  while :: "('a -> tr)->('a -> 'a)->'a->'a"
 | 
| 
 | 
    16  | 
  "while == (LAM b g. fix$(LAM f x.
  | 
| 
 | 
    17  | 
    If b$x then f$(g$x) else x fi))"
  | 
| 
244
 | 
    18  | 
  | 
| 
17291
 | 
    19  | 
ML {* use_legacy_bindings (the_context ()) *}
 | 
| 
244
 | 
    20  | 
  | 
| 
 | 
    21  | 
end
  | 
| 
17291
 | 
    22  | 
  |