src/HOLCF/Lift3.thy
author oheimb
Thu, 30 Oct 1997 14:17:33 +0100
changeset 4041 4df7f385fe9f
parent 3034 9c44acc3c6fa
child 10834 a7897aebbffc
permissions -rw-r--r--
domain package: * theorems are stored in the theory * creates hierachical name space * minor changes to some names and values (for consistency), e.g. cases -> casedist, dists_eq -> dist_eqs, [take_lemma] -> take_lemmas * separator between mutual domain definitions changed from "," to "and" * minor debugging of Domain_Library.mk_var_names
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2357
dd2e5e655fd2 Headers added
sandnerr
parents: 2356
diff changeset
     1
(*  Title:      HOLCF/Lift3.thy
dd2e5e655fd2 Headers added
sandnerr
parents: 2356
diff changeset
     2
    ID:         $Id$
3034
9c44acc3c6fa added liftpair definition
mueller
parents: 2640
diff changeset
     3
    Author:     Olaf Mueller
2357
dd2e5e655fd2 Headers added
sandnerr
parents: 2356
diff changeset
     4
    Copyright   1996 Technische Universitaet Muenchen
dd2e5e655fd2 Headers added
sandnerr
parents: 2356
diff changeset
     5
dd2e5e655fd2 Headers added
sandnerr
parents: 2356
diff changeset
     6
Class Instance lift::(term)pcpo
dd2e5e655fd2 Headers added
sandnerr
parents: 2356
diff changeset
     7
*)
dd2e5e655fd2 Headers added
sandnerr
parents: 2356
diff changeset
     8
2356
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
     9
Lift3 = Lift2 + 
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    10
2640
ee4dfce170a0 Changes of HOLCF from Oscar Slotosch:
slotosch
parents: 2357
diff changeset
    11
instance lift :: (term)pcpo (cpo_lift,least_lift)
2356
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    12
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    13
consts 
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    14
 flift1      :: "('a => 'b::pcpo) => ('a lift -> 'b)"
3034
9c44acc3c6fa added liftpair definition
mueller
parents: 2640
diff changeset
    15
 flift2      :: "('a => 'b)       => ('a lift -> 'b lift)"
9c44acc3c6fa added liftpair definition
mueller
parents: 2640
diff changeset
    16
9c44acc3c6fa added liftpair definition
mueller
parents: 2640
diff changeset
    17
 liftpair    ::"'a::term lift * 'b::term lift => ('a * 'b) lift"
2356
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    18
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    19
translations
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    20
 "UU" <= "Undef"
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    21
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    22
defs
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    23
 flift1_def
3034
9c44acc3c6fa added liftpair definition
mueller
parents: 2640
diff changeset
    24
  "flift1 f == (LAM x. (case x of 
2356
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    25
                   Undef => UU
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    26
                 | Def y => (f y)))"
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    27
 flift2_def
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    28
  "flift2 f == (LAM x. (case x of 
3034
9c44acc3c6fa added liftpair definition
mueller
parents: 2640
diff changeset
    29
                   Undef => UU
9c44acc3c6fa added liftpair definition
mueller
parents: 2640
diff changeset
    30
                 | Def y => Def (f y)))"
9c44acc3c6fa added liftpair definition
mueller
parents: 2640
diff changeset
    31
 liftpair_def
9c44acc3c6fa added liftpair definition
mueller
parents: 2640
diff changeset
    32
  "liftpair x  == (case (cfst`x) of 
9c44acc3c6fa added liftpair definition
mueller
parents: 2640
diff changeset
    33
                  Undef  => UU
9c44acc3c6fa added liftpair definition
mueller
parents: 2640
diff changeset
    34
                | Def x1 => (case (csnd`x) of 
9c44acc3c6fa added liftpair definition
mueller
parents: 2640
diff changeset
    35
                               Undef => UU
9c44acc3c6fa added liftpair definition
mueller
parents: 2640
diff changeset
    36
                             | Def x2 => Def (x1,x2)))"
2356
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    37
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    38
end
125260ef480c Theories Lift1, Lift2 and Lift3 inserted below HOLCF.thy
sandnerr
parents:
diff changeset
    39