src/HOLCF/ex/Coind.thy
author oheimb
Sat, 15 Feb 1997 17:55:11 +0100
changeset 2638 6c6a44b5f757
parent 2570 24d7e8fb8261
permissions -rw-r--r--
reflecting my recent changes of the classical reasoner
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2570
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     1
(*  Title: 	FOCUS/ex/Coind.thy
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     2
    ID:         $ $
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     3
    Author: 	Franz Regensburger
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     4
    Copyright   1993 195 Technische Universitaet Muenchen
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     5
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     6
Example for co-induction on streams
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     7
*)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     8
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
     9
Coind = Stream + Dnat +
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    10
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    11
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    12
consts
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    13
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    14
	nats		:: "dnat stream"
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    15
	from		:: "dnat è dnat stream"
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    16
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    17
defs
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    18
	nats_def	"nats Ú fix`(¤h.dzero&&(smap`dsucc`h))"
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    19
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    20
	from_def	"from Ú fix`(¤h n.n&&(h`(dsucc`n)))"
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    21
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    22
end
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    23
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    24
(*
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    25
		smap`f`Ø = Ø
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    26
	xÛØ çè smap`f`(x&&xs) = (f`x)&&(smap`f`xs)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    27
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    28
		nats = dzero&&(smap`dsucc`nats)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    29
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    30
		from`n = n&&(from`(dsucc`n))
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    31
*)
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    32
24d7e8fb8261 added Classlib.* and Witness.*,
oheimb
parents:
diff changeset
    33