src/HOLCF/Lift3.thy
author nipkow
Tue, 09 Jan 2001 15:32:27 +0100
changeset 10834 a7897aebbffc
parent 3034 9c44acc3c6fa
permissions -rw-r--r--
*** empty log message ***

(*  Title:      HOLCF/Lift3.thy
    ID:         $Id$
    Author:     Olaf Mueller
    Copyright   1996 Technische Universitaet Muenchen

Class Instance lift::(term)pcpo
*)

Lift3 = Lift2 + 

instance lift :: (term)pcpo (cpo_lift,least_lift)

consts 
 flift1      :: "('a => 'b::pcpo) => ('a lift -> 'b)"
 flift2      :: "('a => 'b)       => ('a lift -> 'b lift)"

 liftpair    ::"'a::term lift * 'b::term lift => ('a * 'b) lift"

translations
 "UU" <= "Undef"

defs
 flift1_def
  "flift1 f == (LAM x. (case x of 
                   Undef => UU
                 | Def y => (f y)))"
 flift2_def
  "flift2 f == (LAM x. (case x of 
                   Undef => UU
                 | Def y => Def (f y)))"
 liftpair_def
  "liftpair x  == (case (cfst$x) of 
                  Undef  => UU
                | Def x1 => (case (csnd$x) of 
                               Undef => UU
                             | Def x2 => Def (x1,x2)))"

end