src/HOLCF/Stream.thy
changeset 625 119391dd1d59
parent 243 c22b85994e17
child 1150 66512c9e6bd6
equal deleted inserted replaced
624:33b9b5da3e6f 625:119391dd1d59
     1 (*  Title: 	HOLCF/stream.thy
     1 (*  Title: 	HOLCF/stream.thy
     2     ID:         $Id$
     2     ID:         $Id$
     3     Author: 	Franz Regensburger
     3     Author: 	Franz Regensburger
     4     Copyright   1993 Technische Universitaet Muenchen
     4     Copyright   1993 Technische Universitaet Muenchen
     5 
     5 
     6 Theory for streams without defined empty stream
     6 Theory for streams without defined empty stream 
       
     7   'a stream = 'a ** ('a stream)u
       
     8 
       
     9 The type is axiomatized as the least solution of the domain equation above.
       
    10 The functor term that specifies the domain equation is: 
       
    11 
       
    12   FT = <**,K_{'a},U>
       
    13 
       
    14 For details see chapter 5 of:
       
    15 
       
    16 [Franz Regensburger] HOLCF: Eine konservative Erweiterung von HOL um LCF,
       
    17                      Dissertation, Technische Universit"at M"unchen, 1994
     7 *)
    18 *)
     8 
    19 
     9 Stream = Dnat2 +
    20 Stream = Dnat2 +
    10 
    21 
    11 types stream 1
    22 types stream 1
    42 
    53 
    43 (* ----------------------------------------------------------------------- *)
    54 (* ----------------------------------------------------------------------- *)
    44 (* axiomatization of recursive type 'a stream                              *)
    55 (* axiomatization of recursive type 'a stream                              *)
    45 (* ----------------------------------------------------------------------- *)
    56 (* ----------------------------------------------------------------------- *)
    46 (* ('a stream,stream_abs) is the initial F-algebra where                   *)
    57 (* ('a stream,stream_abs) is the initial F-algebra where                   *)
    47 (* F is the locally continuous functor determined by domain equation       *)
    58 (* F is the locally continuous functor determined by functor term FT.      *)
    48 (* X = 'a ** (X)u                                                          *)
    59 (* domain equation: 'a stream = 'a ** ('a stream)u                         *)
       
    60 (* functor term:    FT = <**,K_{'a},U>                                     *)
    49 (* ----------------------------------------------------------------------- *)
    61 (* ----------------------------------------------------------------------- *)
    50 (* stream_abs is an isomorphism with inverse stream_rep                    *)
    62 (* stream_abs is an isomorphism with inverse stream_rep                    *)
    51 (* identity is the least endomorphism on 'a stream                         *)
    63 (* identity is the least endomorphism on 'a stream                         *)
    52 
    64 
    53 stream_abs_iso	"stream_rep[stream_abs[x]] = x"
    65 stream_abs_iso	"stream_rep[stream_abs[x]] = x"