src/HOLCF/ex/Loop.thy
author kleing
Fri, 27 May 2005 01:09:44 +0200
changeset 16095 f6af6b265d20
parent 14981 e73f8140af78
child 16232 8a12e11d222b
permissions -rw-r--r--
put global isatest settings in one file, sourced by the other scripts
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
2642
3c3a84cc85a9 Examples are adopted to the changes from HOLCF.
slotosch
parents: 1479
diff changeset
     8
Loop = Tr +
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