author | paulson |
Mon, 14 Aug 1995 13:42:27 +0200 | |
changeset 1228 | 7d6b0241afab |
parent 1168 | 74be52691d62 |
permissions | -rw-r--r-- |
244 | 1 |
(* Title: HOLCF/coind.thy |
2 |
ID: $Id$ |
|
3 |
Author: Franz Regensburger |
|
4 |
Copyright 1993 Technische Universitaet Muenchen |
|
5 |
||
6 |
Example for co-induction on streams |
|
7 |
*) |
|
8 |
||
9 |
Coind = Stream2 + |
|
10 |
||
11 |
||
12 |
consts |
|
13 |
||
1168
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents:
244
diff
changeset
|
14 |
nats :: "dnat stream" |
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents:
244
diff
changeset
|
15 |
from :: "dnat -> dnat stream" |
244 | 16 |
|
1168
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents:
244
diff
changeset
|
17 |
defs |
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents:
244
diff
changeset
|
18 |
nats_def "nats == fix`(LAM h.scons`dzero`(smap`dsucc`h))" |
244 | 19 |
|
1168
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents:
244
diff
changeset
|
20 |
from_def "from == fix`(LAM h n.scons`n`(h`(dsucc`n)))" |
244 | 21 |
|
22 |
end |
|
23 |
||
24 |
(* |
|
1168
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents:
244
diff
changeset
|
25 |
smap`f`UU = UU |
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents:
244
diff
changeset
|
26 |
x~=UU --> smap`f`(scons`x`xs) = scons`(f`x)`(smap`f`xs) |
244 | 27 |
|
1168
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents:
244
diff
changeset
|
28 |
nats = scons`dzero`(smap`dsucc`nats) |
244 | 29 |
|
1168
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents:
244
diff
changeset
|
30 |
from`n = scons`n`(from`(dsucc`n)) |
244 | 31 |
*) |
32 |
||
33 |