src/HOLCF/ex/Loop.thy
author slotosch
Mon, 17 Feb 1997 11:04:00 +0100
changeset 2642 3c3a84cc85a9
parent 1479 21eb5e156d91
child 10835 f4745d77e620
permissions -rw-r--r--
Examples are adopted to the changes from HOLCF. Classlib is reduced. Classlib still uses arities, Classlib will change completely to new classes of ADTs
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
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
     4
    Copyright   1993 Technische Universitaet Muenchen
244
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
     5
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
     6
Theory for a loop primitive like while
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
     7
*)
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
     8
2642
3c3a84cc85a9 Examples are adopted to the changes from HOLCF.
slotosch
parents: 1479
diff changeset
     9
Loop = Tr +
244
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
    10
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
    11
consts
1479
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
    12
        step  :: "('a -> tr)->('a -> 'a)->'a->'a"
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
    13
        while :: "('a -> tr)->('a -> 'a)->'a->'a"
244
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
    14
1168
74be52691d62 The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents: 1150
diff changeset
    15
defs
244
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
    16
1479
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
    17
  step_def      "step == (LAM b g x. If b`x then g`x else x fi)"
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
    18
  while_def     "while == (LAM b g. fix`(LAM f x.
1168
74be52691d62 The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents: 1150
diff changeset
    19
                   If b`x then f`(g`x) else x fi))"
244
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
    20
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
    21
end
929fc2c63bd0 HOLCF examples
nipkow
parents:
diff changeset
    22