equal
deleted
inserted
replaced
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" |