| author | wenzelm |
| Fri, 16 Apr 2004 21:03:40 +0200 | |
| changeset 14609 | 663e0e435866 |
| parent 12030 | 46d57d0290a2 |
| child 14981 | e73f8140af78 |
| permissions | -rw-r--r-- |
| 2640 | 1 |
(* Title: HOLCF/Fix.thy |
|
243
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
2 |
ID: $Id$ |
| 1479 | 3 |
Author: Franz Regensburger |
| 12030 | 4 |
License: GPL (GNU GENERAL PUBLIC LICENSE) |
|
243
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
5 |
|
|
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
6 |
definitions for fixed point operator and admissibility |
|
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
7 |
*) |
|
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
8 |
|
|
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
9 |
Fix = Cfun3 + |
|
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
10 |
|
|
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
11 |
consts |
|
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
12 |
|
| 1990 | 13 |
iterate :: "nat=>('a->'a)=>'a=>'a"
|
14 |
Ifix :: "('a->'a)=>'a"
|
|
15 |
fix :: "('a->'a)->'a"
|
|
|
2841
c2508f4ab739
Added "discrete" CPOs and modified IMP to use those rather than "lift"
nipkow
parents:
2640
diff
changeset
|
16 |
adm :: "('a::cpo=>bool)=>bool"
|
| 1990 | 17 |
admw :: "('a=>bool)=>bool"
|
|
243
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
18 |
|
| 5192 | 19 |
primrec |
20 |
iterate_0 "iterate 0 F x = x" |
|
| 10834 | 21 |
iterate_Suc "iterate (Suc n) F x = F$(iterate n F x)" |
| 5192 | 22 |
|
|
1168
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents:
1150
diff
changeset
|
23 |
defs |
|
243
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
24 |
|
| 3842 | 25 |
Ifix_def "Ifix F == lub(range(%i. iterate i F UU))" |
|
1168
74be52691d62
The curried version of HOLCF is now just called HOLCF. The old
regensbu
parents:
1150
diff
changeset
|
26 |
fix_def "fix == (LAM f. Ifix f)" |
|
243
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
27 |
|
|
4721
c8a8482a8124
renamed is_chain to chain, is_tord to tord, replaced chain_finite by chfin
oheimb
parents:
3842
diff
changeset
|
28 |
adm_def "adm P == !Y. chain(Y) --> |
| 3842 | 29 |
(!i. P(Y i)) --> P(lub(range Y))" |
|
243
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
30 |
|
| 3842 | 31 |
admw_def "admw P == !F. (!n. P (iterate n F UU)) --> |
| 1479 | 32 |
P (lub(range (%i. iterate i F UU)))" |
|
243
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
33 |
|
|
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
34 |
end |
|
c22b85994e17
Franz Regensburger's Higher-Order Logic of Computable Functions embedding LCF
nipkow
parents:
diff
changeset
|
35 |