| author | nipkow |
| Fri, 27 Nov 1998 16:54:59 +0100 | |
| changeset 5982 | aeb97860d352 |
| parent 1478 | 2b8c2a7547ab |
| child 6117 | f9aad8ccd590 |
| permissions | -rw-r--r-- |
| 1478 | 1 |
(* Title: ZF/ex/Brouwer.thy |
| 515 | 2 |
ID: $ $ |
| 1478 | 3 |
Author: Lawrence C Paulson, Cambridge University Computer Laboratory |
| 515 | 4 |
Copyright 1994 University of Cambridge |
5 |
||
|
528
61dc99226f8f
ZF/ex/Brouwer.thy,.ML: new example of wellordering types
lcp
parents:
515
diff
changeset
|
6 |
Infinite branching datatype definitions |
|
61dc99226f8f
ZF/ex/Brouwer.thy,.ML: new example of wellordering types
lcp
parents:
515
diff
changeset
|
7 |
(1) the Brouwer ordinals |
|
61dc99226f8f
ZF/ex/Brouwer.thy,.ML: new example of wellordering types
lcp
parents:
515
diff
changeset
|
8 |
(2) the Martin-Löf wellordering type |
| 515 | 9 |
*) |
10 |
||
11 |
Brouwer = InfDatatype + |
|
12 |
consts |
|
| 1401 | 13 |
brouwer :: i |
14 |
Well :: [i,i=>i]=>i |
|
| 515 | 15 |
|
16 |
datatype <= "Vfrom(0, csucc(nat))" |
|
17 |
"brouwer" = Zero | Suc ("b: brouwer") | Lim ("h: nat -> brouwer")
|
|
| 1478 | 18 |
monos "[Pi_mono]" |
| 515 | 19 |
type_intrs "inf_datatype_intrs" |
20 |
||
|
528
61dc99226f8f
ZF/ex/Brouwer.thy,.ML: new example of wellordering types
lcp
parents:
515
diff
changeset
|
21 |
(*The union with nat ensures that the cardinal is infinite*) |
|
61dc99226f8f
ZF/ex/Brouwer.thy,.ML: new example of wellordering types
lcp
parents:
515
diff
changeset
|
22 |
datatype <= "Vfrom(A Un (UN x:A. B(x)), csucc(nat Un |UN x:A. B(x)|))" |
|
61dc99226f8f
ZF/ex/Brouwer.thy,.ML: new example of wellordering types
lcp
parents:
515
diff
changeset
|
23 |
"Well(A,B)" = Sup ("a:A", "f: B(a) -> Well(A,B)")
|
| 1478 | 24 |
monos "[Pi_mono]" |
| 1155 | 25 |
type_intrs "[[UN_upper_cardinal, le_nat_Un_cardinal] MRS le_trans] |
| 1478 | 26 |
@ inf_datatype_intrs" |
|
528
61dc99226f8f
ZF/ex/Brouwer.thy,.ML: new example of wellordering types
lcp
parents:
515
diff
changeset
|
27 |
|
|
61dc99226f8f
ZF/ex/Brouwer.thy,.ML: new example of wellordering types
lcp
parents:
515
diff
changeset
|
28 |
|
| 515 | 29 |
end |