src/HOLCF/Dnat.thy
changeset 625 119391dd1d59
parent 243 c22b85994e17
child 1150 66512c9e6bd6
equal deleted inserted replaced
624:33b9b5da3e6f 625:119391dd1d59
     1 (*  Title: 	HOLCF/dnat.thy
     1 (*  Title: 	HOLCF/dnat.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 the domain of natural numbers
     6 Theory for the domain of natural numbers  dnat = one ++ dnat
       
     7 
       
     8 The type is axiomatized as the least solution of the domain equation above.
       
     9 The functor term that specifies the domain equation is: 
       
    10 
       
    11   FT = <++,K_{one},I>
       
    12 
       
    13 For details see chapter 5 of:
       
    14 
       
    15 [Franz Regensburger] HOLCF: Eine konservative Erweiterung von HOL um LCF,
       
    16                      Dissertation, Technische Universit"at M"unchen, 1994
     7 
    17 
     8 *)
    18 *)
     9 
    19 
    10 Dnat = HOLCF +
    20 Dnat = HOLCF +
    11 
    21 
    42 
    52 
    43 (* ----------------------------------------------------------------------- *)
    53 (* ----------------------------------------------------------------------- *)
    44 (* axiomatization of recursive type dnat                                   *)
    54 (* axiomatization of recursive type dnat                                   *)
    45 (* ----------------------------------------------------------------------- *)
    55 (* ----------------------------------------------------------------------- *)
    46 (* (dnat,dnat_abs) is the initial F-algebra where                          *)
    56 (* (dnat,dnat_abs) is the initial F-algebra where                          *)
    47 (* F is the locally continuous functor determined by domain equation       *)
    57 (* F is the locally continuous functor determined by functor term FT.      *)
    48 (* X = one ++ X                                                            *)
    58 (* domain equation: dnat = one ++ dnat                                     *)
       
    59 (* functor term:    FT = <++,K_{one},I>                                    *) 
    49 (* ----------------------------------------------------------------------- *)
    60 (* ----------------------------------------------------------------------- *)
    50 (* dnat_abs is an isomorphism with inverse dnat_rep                        *)
    61 (* dnat_abs is an isomorphism with inverse dnat_rep                        *)
    51 (* identity is the least endomorphism on dnat                              *)
    62 (* identity is the least endomorphism on dnat                              *)
    52 
    63 
    53 dnat_abs_iso	"dnat_rep[dnat_abs[x]] = x"
    64 dnat_abs_iso	"dnat_rep[dnat_abs[x]] = x"