src/HOLCF/Lift3.thy
changeset 2356 125260ef480c
child 2357 dd2e5e655fd2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOLCF/Lift3.thy	Mon Dec 09 19:16:20 1996 +0100
@@ -0,0 +1,39 @@
+Lift3 = Lift2 + 
+
+default term
+
+arities 
+ "lift" :: (term)pcpo
+
+consts 
+ flift1      :: "('a => 'b::pcpo) => ('a lift -> 'b)"
+ blift        :: "bool => tr"  
+ plift        :: "('a => bool) => 'a lift -> tr"   
+ flift2      :: "('a => 'b) => ('a lift -> 'b lift)"
+
+translations
+ "UU" <= "Undef"
+
+defs
+ blift_def
+  "blift b == (if b then TT else FF)"
+
+ 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 => Undef
+                            | Def y => Def (f y)))"
+
+ plift_def
+  "plift p == (LAM x. flift1 (%a. blift (p a))`x)"
+
+
+rules
+ inst_lift_pcpo "(UU::'a lift) = Undef"
+
+end
+