src/HOLCF/Ssum3.thy
author paulson
Mon Dec 07 18:26:25 1998 +0100 (1998-12-07)
changeset 6019 0e55c2fb2ebb
parent 5439 2e0c18eedfd0
child 10834 a7897aebbffc
permissions -rw-r--r--
tidying
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)" 
oheimb@5439
    16
        sscase  :: "('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))"
oheimb@5439
    22
sscase_def      "sscase   == (LAM f g s. Iwhen(f)(g)(s))"
nipkow@243
    23
regensbu@1274
    24
translations
oheimb@5439
    25
"case s of sinl`x => t1 | sinr`y => t2" == "sscase`(LAM x. t1)`(LAM y. t2)`s"
regensbu@1274
    26
nipkow@243
    27
end