src/HOLCF/Cfun3.thy
author paulson
Mon Dec 07 18:26:25 1998 +0100 (1998-12-07)
changeset 6019 0e55c2fb2ebb
parent 3842 b55686a7b22c
child 10834 a7897aebbffc
permissions -rw-r--r--
tidying
slotosch@2640
     1
(*  Title:      HOLCF/Cfun3.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
nipkow@243
    10
Cfun3 = Cfun2 +
nipkow@243
    11
slotosch@2838
    12
instance "->" :: (cpo,cpo)cpo              (cpo_cfun)
slotosch@2838
    13
instance "->" :: (cpo,pcpo)pcpo            (least_cfun)
slotosch@2838
    14
slotosch@2838
    15
default pcpo
nipkow@243
    16
nipkow@243
    17
consts  
clasohm@1479
    18
        Istrictify   :: "('a->'b)=>'a=>'b"
clasohm@1479
    19
        strictify    :: "('a->'b)->'a->'b"
regensbu@1168
    20
defs
nipkow@243
    21
clasohm@1479
    22
Istrictify_def  "Istrictify f x == if x=UU then UU else f`x"    
wenzelm@3842
    23
strictify_def   "strictify == (LAM f x. Istrictify f x)"
nipkow@243
    24
slotosch@3327
    25
consts
slotosch@3327
    26
        ID      :: "('a::cpo) -> 'a"
slotosch@3327
    27
        cfcomp  :: "('b->'c)->(('a::cpo)->('b::cpo))->'a->('c::cpo)"
slotosch@3327
    28
slotosch@3327
    29
syntax  "@oo"   :: "('b->'c)=>('a->'b)=>'a->'c" ("_ oo _" [101,100] 100)
slotosch@3327
    30
     
slotosch@3327
    31
translations    "f1 oo f2" == "cfcomp`f1`f2"
slotosch@3327
    32
slotosch@3327
    33
defs
slotosch@3327
    34
wenzelm@3842
    35
  ID_def        "ID ==(LAM x. x)"
wenzelm@3842
    36
  oo_def        "cfcomp == (LAM f g x. f`(g`x))" 
slotosch@3327
    37
nipkow@243
    38
end