src/HOLCF/Ssum3.thy
author wenzelm
Thu Aug 27 20:46:36 1998 +0200 (1998-08-27)
changeset 5400 645f46a24c72
parent 3842 b55686a7b22c
child 5439 2e0c18eedfd0
permissions -rw-r--r--
made tutorial first;
clasohm@1479
     1
(*  Title:      HOLCF/ssum3.thy
nipkow@243
     2
    ID:         $Id$
clasohm@1479
     3
    Author:     Franz Regensburger
nipkow@243
     4
    Copyright   1993 Technische Universitaet Muenchen
nipkow@243
     5
nipkow@243
     6
Class instance of  ++ for class pcpo
nipkow@243
     7
*)
nipkow@243
     8
nipkow@243
     9
Ssum3 = Ssum2 +
nipkow@243
    10
slotosch@2640
    11
instance "++" :: (pcpo,pcpo)pcpo (least_ssum,cpo_ssum)
nipkow@243
    12
nipkow@243
    13
consts  
clasohm@1479
    14
        sinl    :: "'a -> ('a++'b)" 
clasohm@1479
    15
        sinr    :: "'b -> ('a++'b)" 
clasohm@1479
    16
        sswhen  :: "('a->'c)->('b->'c)->('a ++ 'b)-> 'c"
nipkow@243
    17
regensbu@1168
    18
defs
regensbu@1168
    19
wenzelm@3842
    20
sinl_def        "sinl   == (LAM x. Isinl(x))"
wenzelm@3842
    21
sinr_def        "sinr   == (LAM x. Isinr(x))"
wenzelm@3842
    22
sswhen_def      "sswhen   == (LAM f g s. Iwhen(f)(g)(s))"
nipkow@243
    23
regensbu@1274
    24
translations
wenzelm@3842
    25
"case s of sinl`x => t1 | sinr`y => t2" == "sswhen`(LAM x. t1)`(LAM y. t2)`s"
regensbu@1274
    26
nipkow@243
    27
end