src/HOLCF/ex/Loop.thy
author huffman
Sat, 04 Jun 2005 02:24:47 +0200
changeset 16232 8a12e11d222b
parent 14981 e73f8140af78
child 17291 94f6113fe9ed
permissions -rw-r--r--
added explicit dependency on Fix theory
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1479
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
     1
(*  Title:      HOLCF/ex/Loop.thy
244
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
     2
    ID:         $Id$
1479
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
     3
    Author:     Franz Regensburger
244
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
     4
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
     5
Theory for a loop primitive like while
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
     6
*)
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
     7
16232
8a12e11d222b added explicit dependency on Fix theory
huffman
parents: 14981
diff changeset
     8
Loop = Tr + Fix +
244
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
     9
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
    10
consts
1479
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
    11
        step  :: "('a -> tr)->('a -> 'a)->'a->'a"
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
    12
        while :: "('a -> tr)->('a -> 'a)->'a->'a"
244
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
    13
1168
74be52691d62 The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents: 1150
diff changeset
    14
defs
244
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
    15
10835
nipkow
parents: 2642
diff changeset
    16
  step_def      "step == (LAM b g x. If b$x then g$x else x fi)"
nipkow
parents: 2642
diff changeset
    17
  while_def     "while == (LAM b g. fix$(LAM f x.
nipkow
parents: 2642
diff changeset
    18
                   If b$x then f$(g$x) else x fi))"
244
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
    19
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
    20
end
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
    21