src/HOLCF/explicit_domains/Coind.thy
author paulson
Thu, 18 Jan 1996 10:38:29 +0100
changeset 1444 23ceb1dc9755
parent 1274 ea0668a1c0ba
child 1479 21eb5e156d91
permissions -rw-r--r--
trivial updates
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1274
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
     1
(*  Title: 	HOLCF/Coind.thy
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
     2
    ID:         $Id$
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
     3
    Author: 	Franz Regensburger
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
     4
    Copyright   1993 Technische Universitaet Muenchen
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
     5
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
     6
Example for co-induction on streams
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
     7
*)
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
     8
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
     9
Coind = Stream2 +
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    10
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    11
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    12
consts
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    13
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    14
	nats		:: "dnat stream"
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    15
	from		:: "dnat -> dnat stream"
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    16
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    17
defs
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    18
	nats_def	"nats == fix`(LAM h.scons`dzero`(smap`dsucc`h))"
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    19
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    20
	from_def	"from == fix`(LAM h n.scons`n`(h`(dsucc`n)))"
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    21
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    22
end
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    23
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    24
(*
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    25
		smap`f`UU = UU
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    26
      x~=UU --> smap`f`(scons`x`xs) = scons`(f`x)`(smap`f`xs)
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    27
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    28
		nats = scons`dzero`(smap`dsucc`nats)
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    29
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    30
		from`n = scons`n`(from`(dsucc`n))
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    31
*)
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    32
ea0668a1c0ba added 8bit pragmas
regensbu
parents:
diff changeset
    33