src/HOLCF/Cprod3.thy
author regensbu
Thu Jun 29 16:28:40 1995 +0200 (1995-06-29)
changeset 1168 74be52691d62
parent 752 b89462f9d5f1
child 1274 ea0668a1c0ba
permissions -rw-r--r--
The curried version of HOLCF is now just called HOLCF. The old
uncurried version is no longer supported
nipkow@243
     1
(*  Title: 	HOLCF/cprod3.thy
nipkow@243
     2
    ID:         $Id$
nipkow@243
     3
    Author: 	Franz Regensburger
nipkow@243
     4
    Copyright   1993 Technische Universitaet Muenchen
nipkow@243
     5
nipkow@243
     6
nipkow@243
     7
Class instance of  * for class pcpo
nipkow@243
     8
nipkow@243
     9
*)
nipkow@243
    10
nipkow@243
    11
Cprod3 = Cprod2 +
nipkow@243
    12
nipkow@243
    13
arities "*" :: (pcpo,pcpo)pcpo			(* Witness cprod2.ML *)
nipkow@243
    14
nipkow@243
    15
consts  
regensbu@752
    16
	cpair        :: "'a -> 'b -> ('a*'b)" (* continuous  pairing *)
nipkow@243
    17
	cfst         :: "('a*'b)->'a"
nipkow@243
    18
	csnd         :: "('a*'b)->'b"
nipkow@243
    19
	csplit       :: "('a->'b->'c)->('a*'b)->'c"
nipkow@243
    20
regensbu@1168
    21
syntax	
regensbu@1168
    22
	"@ctuple"    :: "['a, args] => 'a * 'b"		("(1<_,/ _>)")
regensbu@1168
    23
regensbu@752
    24
regensbu@1168
    25
translations 
regensbu@1168
    26
	"<x, y, z>"   == "<x, <y, z>>"
regensbu@1168
    27
	"<x, y>"      == "cpair`x`y"
nipkow@625
    28
nipkow@243
    29
rules 
nipkow@243
    30
regensbu@1168
    31
inst_cprod_pcpo	"(UU::'a*'b) = (UU,UU)"
nipkow@243
    32
regensbu@1168
    33
defs
regensbu@1168
    34
cpair_def	"cpair  == (LAM x y.(x,y))"
nipkow@243
    35
cfst_def	"cfst   == (LAM p.fst(p))"
nipkow@243
    36
csnd_def	"csnd   == (LAM p.snd(p))"	
regensbu@1168
    37
csplit_def	"csplit == (LAM f p.f`(cfst`p)`(csnd`p))"
nipkow@243
    38
nipkow@243
    39
end
nipkow@243
    40
nipkow@243
    41
nipkow@243
    42
nipkow@243
    43