src/HOLCF/Up1.thy
author slotosch
Wed, 26 Mar 1997 13:44:05 +0100
changeset 2840 7e03e61612b0
parent 2640 ee4dfce170a0
child 3323 194ae2e0c193
permissions -rw-r--r--
generalized theorems and class instances for Cprod. Now "*"::(cpo,cpo)cpo and "*"::(pcpo,pcpo)pcpo
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2278
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
     1
(*  Title:      HOLCF/Up1.thy
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
     2
    ID:         $Id$
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
     3
    Author:     Franz Regensburger
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
     4
    Copyright   1993  Technische Universitaet Muenchen
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
     5
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
     6
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
     7
Lifting
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
     8
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
     9
*)
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    10
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    11
Up1 = Cfun3 + Sum + 
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    12
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    13
(* new type for lifting *)
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    14
2640
ee4dfce170a0 Changes of HOLCF from Oscar Slotosch:
slotosch
parents: 2278
diff changeset
    15
typedef (Up) ('a) "u" = "{x::(unit + 'a).True}"
2278
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    16
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    17
consts
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    18
  Iup         :: "'a => ('a)u"
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    19
  Ifup        :: "('a->'b)=>('a)u => 'b"
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    20
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    21
defs
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    22
  Iup_def     "Iup x == Abs_Up(Inr(x))"
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    23
  Ifup_def    "Ifup(f)(x)== case Rep_Up(x) of Inl(y) => UU | Inr(z) => f`z"
2640
ee4dfce170a0 Changes of HOLCF from Oscar Slotosch:
slotosch
parents: 2278
diff changeset
    24
  less_up_def "less == (%x1 x2.case Rep_Up(x1) of                 
2278
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    25
               Inl(y1) => True          
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    26
             | Inr(y2) => (case Rep_Up(x2) of Inl(z1) => False       
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    27
                                            | Inr(z2) => y2<<z2))"
d63ffafce255 *** empty log message ***
oheimb
parents:
diff changeset
    28
end