src/HOLCF/explicit_domains/Coind.thy
author regensbu
Fri, 06 Oct 1995 17:25:24 +0100
changeset 1274 ea0668a1c0ba
child 1479 21eb5e156d91
permissions -rw-r--r--
added 8bit pragmas added directory ax_ops for sections axioms and ops added directory domain for sections domain and generated this is the type definition package of David Oheimb

(*  Title: 	HOLCF/Coind.thy
    ID:         $Id$
    Author: 	Franz Regensburger
    Copyright   1993 Technische Universitaet Muenchen

Example for co-induction on streams
*)

Coind = Stream2 +


consts

	nats		:: "dnat stream"
	from		:: "dnat -> dnat stream"

defs
	nats_def	"nats == fix`(LAM h.scons`dzero`(smap`dsucc`h))"

	from_def	"from == fix`(LAM h n.scons`n`(h`(dsucc`n)))"

end

(*
		smap`f`UU = UU
      x~=UU --> smap`f`(scons`x`xs) = scons`(f`x)`(smap`f`xs)

		nats = scons`dzero`(smap`dsucc`nats)

		from`n = scons`n`(from`(dsucc`n))
*)