DATA TYPES
AS
LATTICES
by
Dana Scott
Oxford University Computing Laboratory
Programming Research Group
\ 1~ j l I 1 ~
" "~._- -
30338&8&40
..""-_..
__
._.__.
Technical Monograph PRO5, September 1976
Oxford University Computing Laboratory
Programming Research Group
45 Bllnbury Road. Oxford OX2 6PE
Reprinted from the SIAM Journal on Computing. Volume 5, 1976, pages 522587. Copyright 1976 by Society for
Industrial and Applied Mathematics. Philadelphia. All rights reserved.
r
SIAM 1 COMPU1.
Vol .\ Nfl l, Seplclllt>er 1\,176
0,-1", ..,." , f..,.
"'.... r("o·.I..
. '11/ C....,
\
DATA TYPES AS LATTICES
To rhe Memor} of Chflstopher Strache", 19 I0 J975
,
.'
" Jll,r'I.'.I"'l"J
: ,,':
U~.l J
(j'
(~ .
/I
'- ,:,.j
I .lliU
DANA SCOTT!
Abstrad. The meaning of many k.inds of expressions In programming languages can be tak.en as
elements of cerra in spaces of ··partial" objects. In this report these spaces are modeled in one universal
domain Pw. the set of all subsets of the integers. This domain renders the connection of Ihis semantic
theory with the ordinary theory of number theoretic (especially general recursive) funClIons clear and
straightforward.
Key worm. programming language semantics, lattice, continuous lattice, algebraic Jatlice,
computabilily, retract. combinatory logk. lambda calculus, recursIon theorem, enume'rarion degrecs,
continuous function, fixedpoint theorem
Introduction. Investigations begun in 1969 with Christopher Strachey led to
the idea that the denotations of many kinds of expressions in programming
languages could be taken as elements of certain kinds of spaces of "parrial"
objects, As these spaces could be treated as function spaces, their structure at first
seemed excessively complicatedeven impossible. But then the author discovered that there were many mOre spaces than we had first imaginedeven
wanted. They could be presented as lattices (or as some prefer, semilattices). and
the main technique was to employ topological ideas, in particular the notion of a
continuous function. This approach and its applications have been presented in a
number of publications, but that part of the foundation concerned with computability (in the sense of recursion theory) was never before adequately exposed. The
purpose of the present paper is to provide such a foundation and to simplify the
whole presentation by a deemphasis of abstract idea•. An Appendix and tbe
references provide a partial guide to the literature and an indication of connections with other work,
The main innovation in this report is to model everything within one
"universai" domaii, Pw ~ {xix ~ wi. the domain of all subsets of the .el w of
nonnegative integers. The advantages are many: by the most elementary considerations Pw is recognized to be a lattice and a topological space. [n fact, Pw is a
continuous lattice, even an algebraic lattice, but in the beginning we do not even
need to define such an "advanced" concept; we can save these ideas for an
analysis of what has been done here tn a more direct way. Next by taking the set of
integers as the basis of the construction, the connection with the ordinary theory
of numbertheoretic (especially, general recursive) functions can be made clear
and straightforward.
The model Pw can be intuItively viewed as the domain of multIple-valued
integers; what is new in the presentation is that functions are not only multiplevalued but also "multipleargumented", This remark is given a precise sense in § 2
below, but the up.hot of the idea is that multiplevalued integers are regarded as
"Receivt:d by thc editor~
May 23,1975, and in revised form March 17. 1916.
of Malht:malll:.;' Depanmt:nt. Oxford Unl\'cr"ity. Oxford, Ellgland OX:: oPE
522
C'i,
_"J-c"Jry
nATA TYPES ,\S ',A'ITICLS
521
objects in themsdvespossibly inhmteand as something more than Just the
collection o[ single integers contained in Ihem. This combination o[ the finite wilh
the mfinite into a single domain, together with the idea that a continuous function
can be reduced to its graph (in the end, a set of integers). makes it possible to view
an x E Pw at one time as a value, at another as an argument, then as ;m integer,
then as a [unction, and still later as a [unctional (or combinator). The "paradox" o[
sd[application (as in ~»xi
is solved by allowing the same x to be used in two
differeht ways. This is done in ordinary recursion theory via Gode! numbers (as in
(eHe». but the advantage o[ the present theory is that not only is the function
concept the extensional one, but it includes arbiuary continuous functions and not
just the computable ones.
Section 1 introduces the elementary ideas on the topology o[ Pw and the
continuous [unctions including the fixedpoint theorem. Section 2 has to do with
computability and definability. The language LAMBDA IS introduced as an
extension of the pure Acalculus by four arithmetical combinators; in fact, it is
indicated in § 3 how the whole system could be based 00 Ohe combinator. What is
shown is that computability in Pw according to the natural defioition (which
assumes that we already know what a recursively enumerable set of integers is) ~i
equivalent to LAMBDAdefinability. The main tool is. not surprisingly, the first
recursion theorem [ormulated with the aid of the socalled paradoxical comblhalOr Y. The plan is hardly original, but the point is to work out what it all means
in the model.
Along the way we have to show how to give every Aterm a denotation in Pw;
the resulting principles o[ A calculus that are thereby verified are summarized in
Table I. O[ these the first threc, (n), ((3), and (~),
arc indeed valid in the model;
however, rule (11), which is a stronger version of extensionality, fails in the Pw
model. This should not be regarded as ;] disadvantage since the import of (11) is to
suppose every object is a function. A quick construction of these special models i!'
indicated at the end o[ § 5, Since Pw is partially ordered by c::, there are also laws
involving this relation. Law (';*) is an improvement of (E,; while IlL) is a form of
mt)fiotnnicity for application.
T >\BU
Some
l(1w~
(If A cafC/IIII.\
52.+
DANA SCOTr
Section 3 has to do with enumeration and degrees. Godel numbers for
LAMBDA are defined in a very easy way which takes advantage of the notation of
combinators. This leads to the second recursion theorem, and results on incompleteness and undecidability follow along standard lines. Relative recursiveness is
also very easy to define in the system, and we make the tie-in with enumeration
degrees which correspond to finitely generated combinatory subalgebras of Pw.
Finally a theorem of Myhill and Shepherdson is interpreted as a most satisfactory
completeness property for definability in the system.
Sections 4 and 5 show how a calculus of retracts leads to quite simple
definitions of a host of useful domains (as lattices). Section 6 investigates the
classification of other subsets (nonlattices) of Pw; while § 7 contrasts partial
(multiple-valued) functions with total functions, and interprets various theories of
functionality. Connections with category theory are mentioned.
What is demonstrated in this work is how the language LAMBDA, together
with its interpretation in Pw, is an extremely convenient vehicle for definitions of
computable functions on complex structures (all taken as subdomains of Pw). ft is
a "high-level" programming language for recursion theory. It is applied combinatory logic, which in usefulness goes far beyond anything envisioned in the
standard literature. What has been shown is how many interesting predicates can
be expressed as equations between continuous functions. What is needed next is a
development of the proof theory of the system along the lines of the work of
Milner, which incorporates the author's extension of McCarthy's rule of recursion
induction to this high-level language. Then we will have a flexible and practical
"mathematical" theory of computation.
1. Continuous lunctions. The domain Pw of all subsets of the set w of
nonnegative integers is a complete lattice under the partial ordering
~
of set
inclusion, as is well known. We use the usual symbols U, n, U, nfor the finite and
infinite lattice operations of union and intersection. Pw is of course also a Boolean
algebra; and for complements we write
-x ={nlnEx}
where it is understood that such variables as i, j, k, I. m, n range over integers in w,
while u, L', W, X, y, z range over subsets of w.
The domain Pw can also be made into a topological space-in many ways. A
common method is to match each x£; w with the corresponding characteristic
function in {D, 1 and to take the induced product topology. In this way Pw is a
totally disconnected compact Hausdorff space homeomorphic to the Cantor
"middle-third" set. This is not the topology we want; it is a positive-and-negative
topology which makes the function -x continuous. We want a weaker topology:
the topology of positive "information", which has the advantage that al1 continuou, fundion; possess fixed points. (The equation x = --x is impossible.) The
topology that we do want is exactly that appropriate to con;idering Pw to be a
continuous lattice. But all this terminology of abstract mathematics IS quite
un ec s~ary,
since the required definitions can he given in very elementary terms.
t,
DATA TYPES AS LA1TICES
{e"jn
525
To make the topology "visible ", we introduce a standard enumeration
E w} of all finite subsets of w. Specifically we set
provided that k o < k l <. , . < k",_1 and n = I."m 2". Thus n is the code number
for e", and the elements of e" are the exponents in the binary expansion of the
integer n. This is a one-to-one enumeration of finite SUbsets, where k E ell always
implies k < n, the function max (e,,) is (primitive) recursive in n, and the relations
kEen, en ~ e,m en = em U fie are all (primitive) recursive in k, m, n.
Topologically speaking the finite sets e" are dense in the space Pw, for each
x E Pw is the "limit" of its finite subsets in the sense that
To make this precise we need a rigorous definition of open subset of Pw.
DEFINITION. A basis for the neighborhoods of Pw consists of those sets of the
form:
for a given ell' An arbitr£lry open subser is then a union of basic neighhorhoods.
It is easy to prove that an open subset U ~ Pw is just a set of "finite
character"; that is, a set such that for all x E Pw we have x E U if and only if some
finite subset of x also belongs to U. An alternate approach would define directly
what we mean by a continuous function using the idea that such functions must
preserve limits.
DEFINITION. A functionf: Pw....:,. Pw is continuous iff for all x E Pw we have:
Again it is an e£lsy exercise to prove that a function is continuous in the sense
of this definition iff it is continuous in the usual topological sense (namely: inverse
images of open sets are open). For giving proofs it is even more convenient to have
the usual £-D formulation of continuity.
THEOREM II (The characterization theorem), A function f: Pw ~ Pw is
continuous iff for all x E Pw and all Em we have:
em )x(f~
iff
3e" ~
x.e m ~f(e").
Note that open sets and continuous functions have a monolonicity property:
whenever x 0;; y and x E U, then y E U; and
whenever x ~ y, then f(x) ~ f(y)·
This gives a precise expression to the "positive" character of our topology.
However, note too that openness and continuity mean rather more than just
monotonicity. In particular. a continuous function is completely determined by
the pairs of integer... such that m E f(e n). as can be seen from the definition. (Hence,
there are only a continuum number of continuous functions. but more than a
continuum number of monotonic functions.) This brings us to the definition 01' the
function.
graph of a contilOu~
526
DANA SCOTT
To formulate the definition, we introduce a standard enumeration (n, m) of
all pairs of integers. Specifically we set
In, m) =~(n
+m)(n ,. m
+ 1) +m.
This is the enumeration along the "little diagonals" going from left to right, and it
produces the ordering:
(0,0), (1, 0), (0, 1), (2, 0),
0, 1), (0, 2), (3, 0), (2,1),
' , ..
Note that n ~(n.
m) and m ~(n,
m) with equality possible only in the cases of
(0,0) and (1,0). This is a one-to-one enumeration, and the inverse functions are
(primitive) recursive-but we do not require at the present any notation for them.
DEFI"tTloN. The graph of a continuous function f: Pw .... Pw is defined by the
equation:
graph(f)={(n, m)lmEfle,,)}:
while the function determined by any set
II ,;
w is defined by the equation:
fun(u)(x) = {mI3e" ,; x.(n, m) E u}.
THEORE" 1.2 (The graph theorem). Every continuous function is uniquely
determined by its graph in the sense that:
(i)
lun (graph(f)) = f.
Conversely, every set of integers determines a conrinuous function and we have:
Iii)
u,; graph(lun(u»,
where equality hoLds just in case u satisfies:
(iii)
whenever(k. m)E uande" :::;e n , chen (n, m)E u.
Besides functions of one variable we need to consider also functions of
several variables. The qfficial definition for one variable given above can be
extended simply by saying !(x, y, ... ) is continuous iff it is continuous in each of
x, y, .... Those familiar with the product topology can prove that for our special
positive topology on Pw this is equivalent to being continuous on the produd
space (continuous in the variables jointly). Those interested only in elementary
proofs can calculate nut directly from the definition Iwith the aid of 1.1)
that continuity behaves under combinations by substitution [as 10:
f(g(x, y), h(y, x, y»)]
TIIEOREM 1.3 (The substitution theorem)'. Continuous functions of several
variables on Pw are closed under substitution.
The other general fact about continuous functions that we shall use constantly concerns fixed points. w'hose existence can be proved using a well-known
method.
TIIEOKFM 1A (The fixed-point theorem), Every crmtinllOus fftflcf;OI/ f; Pw"""
Pw has a Least fixed point given hy the formuLa:
fixil)
where
,~_)
= UU"(0)jn E w},
is the empiY set and!,' is the n-fold
cO/llpwilflOn
oj f wah itself.
527
DATA TYPES AS LATllCES
Actually fix is a functional with continuity properties of its own. We shall not
give the required definitions here because they can be more easily derived from
tbc construction of tbe model given in the next section.
For those familiar with the abstract theory of topological spaces we give in
conclusion two general facts about continuous functions with values in Pw which
indicate the scope and generality of our method
THEOREM 1.5 (The extension theorem). Let X and Y be arbitrary topological
spaces where X s; Yas a subspace. Then every continuous function f: X -. Pw can
be extended to a continuous function f: Y -> Pw defined by the equation:
fry)
= U{(i{f(x)!x E X n v}IY E
V},
where y E Y, and V ranges over lhe open sl,bsets of Y.
THEOREM 1.6 (The embedding theorem). Every To-space X with a countable
basis [V" In E w} for its topology can be embedded in Pw by the continuous function
E : X -> Pw defined by the equation:
Technically the To-hypothesis is what is needed to show that, is one-la-one.
The upshot of these two theorems is that in looking for (reasonable) topological
structures we can confine attention to the subspaces of Pw and to continuous
functions defined on all of Pw. Thus the emphasis on a single space is justified
structurally. What we shall see in the remainder of this work is that fhe use of a
single space is also justified practically because the required subspaces and
functions can be defined in very simple ways by a natural method of equations.
In order to make the plan of the work clearer, the proofs of the theorems have
been placed in an Appendix .....·hen they are more than simple exercises.
2. Computability and delinability. The purpose of the first section was to
introduce in a simple-minded way the basic notions about the topology of Pw and
its continuous functions. In this section we wish to present the details of a powerful
language for defining particular functions-especially computable functionsand initiate the study of the use of these functions. This study is then extended in
different ways in the following sections.
Before looking at the language, a short discussion of the "meaning" of the
elements x E Pw will be helpful from the point of view of motivation. Now in itself
x E Pw is a set, but this does not reveal its meaning. Actually x has no "fixed"
meaning, because it can be used in strikingly different ways; we look for meaning
here solely in terms of use, Nevertheless it is possible to give some coherent
guidelines.
In the first place it is convenient to let the singleton subsets {n} E Pw stand for
the corresponding integers. In fact, we shall enforce by convention the equation
n = in} as a wayof simplifying notation. In this way, w s; Pw as a subset. (Note that
our convention conflicts with such set-theoretical equations as 5 = {D, 1,2,3, 4}.
What we have done is to abandon the usual laci~eroht-s
conventions in favor of
a slight redefinition of set of inregers which produces a more helpful convention for
prescnt purposes.) So, if we choose, a singleton "means" a single integer. Tht: next
52X
DANA
scon
question is what a "large" set x E Pw could mean. Here is an answer: if we write:
x
= {a, 5, 17} = aU 5 U 17,
we are thinking of x as a multiple integer. This is especially useful in the case of
multiple-valued function where we can write:
[(a)=aU5U 17.
Then" mE [(a)" can be interpreted as "m is one value of [at a." Now a E Pw, too,
and so it is a multiple integer also. This brings us to an important point.
A multiple integer is (often) more than just the (random) collection of its
elements. From the definition of continuity, mE [(a) is equivalent to mE [(en)
with e" sa. We may not be able to reduce this to mE [({n}) with n E a without
additional assumptions on f. Indeed we shall take advantage of the feature of
continuous functions whereby the elements of an argument a can join in cooperation in determining [(a). Needless to say, continuity implies that the cooperation
cannot extend beyond fillite configurations, and so we can say that a is the union
(or limit) of its finite subsets. However, finitary cooperation will be found to be
quite a powerful notion.
Where does this interpretation leave the empty set 0? When we write
"[(a) = 0" we can read this as "[ has no value at a", or "[ is undefined at a". In
this case [(a) exists (as a set), but it is not "defined" as an integer. Single- (or
singleton) valued functions are "well-defined", but multiple-valued functions are
rather "over-defined".
How does this interpretation fit in with mono tonicity? In case as band
mE[(a), then we must have mE[(b). We can read "asb" as"b isan improvement of a" is beuer-defined than a". The point of monotonicity is that the better
we define an argument, the better we define a value. 'Better" does not imply
"well" (that is, singleton-valuedness), and overdefinedness may well creep in.
This is not the fault of the function; it is our fault for not choosing a different
function.
As a suhspace (I'.C;:: Pw is discrete. This implies that arbitrary functions
-I' ware continuous. Note that p: w ~
Pw as well, because w £; Pw. By
Theorem 1.5 we can ""tend p continuously to p: Pw -> Pw. The formula given
produce,", this function:
p :w
(2.1)
p(x)
~
{
n{p(n)ln
p(n)
E
w
w}
if x ~ 0;
if x = nEw;
otherwise.
This is a rather abrupt extension of p (the maximal extension); a more gradual,
continuous extension (the minimal extension) is determined by this equation:
(2.2)
p(x) = U{p(n)ln EX}.
The same formulae work for all multiple-valued functions p: w -> Pw. Functions
like [= p are exactly characterized as being those continuous functions [: Pw->
Pw which in addition are distributive in the sense of these equations:
[(xUy)=[(x)U[(y)
and
[(0)~ .
529
DATA TYPES AS LATTICES
The sets 0 and w play special roles. When we consider them as elemel1ts of
Pw we shall employ the notation:
1=0 and
T=w.
The element 1 is the most "undefined" integer, and T is the most "overdefined".
All others are in between.
One last general point on meaning: suppose x E Pw and k E x. Then k =
(11, m) for suitable (uniquely determined) integers 11 and m. That is to say, every
element of x can be regarded as an ordered pair; thus, x can be used as a reLation.
Such an operation as
(2.3)
x; y ~ {(n,
1)13m.(n, mJ E x, (m, I) Ey}
is then a continuous function of two variables that treats both x and y as relations.
On the other hand we could define a quite different continuous function such as
(2.4)
x + Y = In + min E x, mEl')
which treats both x and y arithmeticaLLy. The only reason we shall probably never
write (x + y); x again is that the values of this perfectly well-defined continuous
function are, for the most part, quite uninteresting. There is. however, no
theoretical reason why we cannot use the same set with several different "meaning~"
in the same formula. Of Course if we do so. it is to he expected that we will
show the point of doing this in the special case. We turn now to the definition of the
general language for defining all such functions.
The syntax and semantics of the language LAMBDA are set out in Table 2.
The syntax is indicated on the left, and the meanings of the combinations are
shown on the right as subsets of Pw. This is the basic language and could have been
given (less understandably) in terms of combinators (see Theorem 2.4). It is.
however. a very primitive language, and we shall require many definitions before
we can see why such functions as in (2.3) and (2.4) are themselves definable
TABLE 2
The language LAMBDA
O~{O)
I
x + I ={n+ l!nEx}
x-l={ldn+1EX}
z:Jx.y=:nE.l!OEz}U{mcyj3k.k+lf,.::)
u(x) '" Imf3e" ';: X.(II,
Ax.• - l(11. ~,m!l
m} f
II}
;[(',,/ x_I_I
~ __J_~
I
I
530
DANA
scan
The definition has been left somewhat informal in hopes that it will be more
understandable. In the above, T is any term of the language. LAMBDA is
type-free and allows any combination to be made by substitution into the given
functions. There is one primitive constant (0); therc are twO unary functions
(x + I, x -1); there is one binary function (u(x) and one ternary function
(z =>x, y); finally there is one variable binding operator (Ax.T). The first three
equations have obvious sense. In the fourth, z => x, y is McCarthy's conditional
expression (a test for zero). Next u(x) defines application (u is treated as a graph
and x as a set), and Ax.T is functional abstraction (compare the definition of fun). In
defining Ax.T, we use T[e,!x] as a shorthand for evaluating the term T when the
variable x is given the value en_
Note that the functions are all multiple-valued. Thus we have such a result as:
(2.5)
(6UlO)+1=7UII.
The partial character of subtraction has expression as:
0-1=.L.
(2.6)
We shall see how to define + and - in LAMBDA later. The conditional could also
have been defined by cases:
(2.7)
z=>x, y=!;
xUy
We say that a LAMBDA-term
T
ifz=1-;
if z =0;
if 0" z r' 1-;
if OEl r' O.
defines a function of iTS free variables (at least).
Other results depend on this fundamental proposition:
THEOREM 2.1 (The continuity theorem). All LAMBDA definable functions
are continuous.
Once that is proved. we can
tl<e Theorem 1.2 to establish:
THEOREM 2.2 (The conversion theorem). The three basic principles (aj, ({3),
(,.;) of A-conversion are ail valid in the model.
By "model" here we of course understand the interpretation of the language
where the semantics gives terms denotations in Pw according to the stated
definition. Through this interpretation, more properly speaking, Pw becomes a
model for the axioms (a), ({3), (";). Two well-known results of the calculus of
A-conversion allow the reduction of functions of several variables to those of one,
and the reduction of all the primitives to combinators (constants)-all this with the
aid of the binary operation of application.
THEOREM 2.3 (The reduction theorem). Any continuous function of k-
variables can be writren as
where u is a suitably chosen element of Pw.
THHlRFM::,4 (The comhinator Iheorem). The LAMBDA-definable func-
DATA TYPES AS LATrICES
531
tions can be generated (from variables) by iterated applicacion wlch the aid of these
six constants:
0=0
SDc=Ax.x+ 1
pred = Ax.x - 1
cond = AxAyAz.z
:0
x, y
K = AxAy.x
S = AUAvAx.u(x)(v(x))
But the result that makes all this model building and combinatory logic
mathematically interesting concerns the so-called paradoxicaL comhinator
defined by the equation:
(2.8)
Y = Au.( Ax. u(x (x )))(Ax. u(x (x»).
THEOREM 2.5 (The first recursion theorem). If u is the graph of a continuous
function f, then Y(u) = fix(f), the least fixed point of f.
There are two points to note here: the fixed point is LAMBDA-definahle if f
is; and Y defines a continuous operator. The word "recursion" is attached to the
It would
theorem because fixed points are employed to solve recursion equation~.
not be correct to call the fixed-point theorem (Theorem 1.4) the recursion
theorem since it only shows that fixed points exist and not how they are definabLe
in a language. The second recursion theorem (in Kleene's terminology) IS related,
but it involves Godel numbers as introduced in § 3.
From this point on we sc:e no need to distinguish continuous functions from
elements of Pw; a continuous function will be identified with irs graph. Note that u
is a graph iff u = Ax.u(x), which is equivalent to Theorem 1.2 (Iii). For thiS reason
(functions are graphs) we propose the name Graph Model for this model of the
A-calculus. (There is more to LAMBDA than just A, howeveL)
The identification of functions with graphs entails that the function space of
all continuous functions from Pw into Pw is to be identified (one-to-one) with the
subspace
FUN = {ulu = Ax.u(x));; Pw.
The identification is topological in that the subspace topology agree with the
product topology on the function space. This is the topology of pointwise
convergence and is closely connected with the lattice structure on lhe function
space which is also defined pointwise (that is, argumentwisel. In the notation of
A-ab~tracti()n
we can express this as the extension of the axiom of extensionality
in Table I of the Introduction. The laws in Tahle I are nol the only ones
called (~*)
valid in the model, however. We may also note such argumentwi:-.c distribution
532
DANA SCOTT
laws as:
(fU g)(x) = fIx) U g(x);
(2.9)
(Ax. T) U (Ax.lT)
(2.10)
= Ax.( T U IT) ;
(fn g){x) = f(x)n g(x);
(2.11 )
(2.12)
(Ax. T)
n (Ax.lT) = Ax.( Tn IT).
In the above f and g must be graphs. It is also true that if :Ji ~ Pw, then
(2.13)
UUlf E :Ji}(x) = UU(x)!f E n
but the same does not hold for (l.
We state now a sequence of minor results which show why some simple
functions and constants are LAMBDA-definable.
(2.14)
~
(Ax.x(x))(Ax.x(x));
xU y = (Az.O) => x, y;
(2.15)
(Hint: 0, 1 E AZ.O)
T = Y{Ax.OU (x + 1));
(2.16)
(2.17)
=
x n y = Y{AfAxAy.x => (y => 0,
f(x - l){y -1) + l)(x)(y).
,)~
The elements ~ and T are graphs, by the way, and we can characterize them as the
only fixed points of the combinator K:
a = Ax.a
(2.18)
Next we use the notation (xo,
defined by:
Xl>"
iff
"
X"_I)
a
or
~
T.
for the function
fJ where p: w -> Pw is
if i < n;
P(i)~{:
ifi?-;n.
() = ~
(2.19)
(2.20)
(XI
= Az.z
=> x, 1-
(x, y) = Az.z => x, (z - I => y,
(221)
(222)
a = 1-
(x",
XI, •.. ,
x") = Az.z => x",
)~
(XI> .•• ,
x"){z - 1).
Obviously we should formalize the subscript notation so that u. = u(x); then we
find:
(2.23)
(xo,Xj,"',Xrt
1);= {
X,
if i < 11;
.1
I
'f'
I 2':
n.
This gives us the method of LAMBDA-defining finite sequenc", (in a quite
natural way), and the next step is to consider infinite sequences. But these are just
p where p: w ~ Pw is arbitrary. What we need then is a condition
the functio~
expressible in the language equivalent to saying tl ~
for some (J. This is the same
as
r
u = AxU{u,li E
xl,
533
DATA TYPES AS LATTICES
but the U- and set-notation is not part of LAMBDA. We arc forced into a
recursive definition:
(2.24)
$ = Y(AsAuAz.z
::::>
uo, s(At.u,+ ,)(z -I).
This equation generalizes (2.22) and we have:
(2.25)
Thus the combinator $ "revalues" an element as a distributive function. This
suggests introducing the A-notation for such functions by the equation:
(2.26)
An E W.T =$(Az. T[zl n]).
With all these conventions LAMBDA-notation becomes very much like ordinary
mathematicaJ notation without too much strain.
Suppose that [ is any continuous function and a E Pw. We can define
p: w ~ Pw in the ordinary way by primitive recursion where:
p(O) =
pIn
a:
+ I) = [(n)(p(n».
The question is: can we give a LAMBDA-definition for
constants, say)? The answer is clear, for we can prove:
(2.27)
p (in terms of [
and a as
p = Y(AuAn E W.1l ::::>a, fIn -1)(u(Il-I»).
This already shows that a large part of the definitions of recursion theory can be
given in this special language. Of course, simultaneous (primitive) recursions C(in
be transcribed into LAMBDA with the aid of the ordered tuples of (2.22), (2.23)
above. But we can go further and connect with partial (and general) recursive
functions. We state first a definition.
DEFINtTION. A continuous function [ of k-variablcs is computable iff the
relationship
m E[(e")(e,,,) ... (e". ,)
is recursively enumerable (Le.) in the integer variables m, no, nl,· .. ,nk .. l.
If q is a partial recursive function in the usual sense, then we can regard it as a
mapping q: W -> W U 1-L}, where q(ll) = ~ means that q is undefined at Il. Saying
that q is partial recursive is just to say that mE q(n) is Le. as a relation in nand m.
It is easy to see that this is in turn equivalent to the recursive enumerability of the
relationship mE q(e,,); and so our definition is formally a generalization of the
usual one. But it is also intuitively reasonable. To "compute" y ~ [(x), in the
one-variable case, we proceed by enumeration. First we begin the enumeration of
all finite subsets en ~ x. For each of these f starts up an enumemtion of the set
[(e,,); so we sit back and observe which mE [(en) by enumeration. The totality of
all such m for all ell :; x forms in the end the set y.
THEolu',M 2.6 (The definability theorem). For a k-ary colllilluous [ullclion [,
Ihe [ollowillg are equivalelll:
(i) [is computable;
(ii) AxoAx, ... Ax,. ,.[(xo)(x,)· .. (x. ,) as a sel is r.e.;
(iii) AxoAx,' .. Ax•. ,.[(xo)(x, I ... (x.,) is LAMBDA-defillable.
534
DANA SCOTT
As a hint for the proof we may note that the method of (2.27) shows that all
primitive recursive functions p have the corresponding p LAMBDA-definable.
Next we remark that a nonempty r.e. set is the range of a primitive recursive
function; but the range of p is p(T). which is clearly LAMBDA-definable. That
any LAMBDA-definable set (graph) is r.e. is obvious from the definition of the
language itself. More details are given in the Appendix.
We may draw some interesting conclusions from the definability theorem. In
the first place, we see that the countable collection RE c!; Pw of r.e. sets is closed
under application and LAMBDA-definability. Indeed it forms a model for the
A-calculus (axioms (a), «(3), (e) at least) and it also contains the arithmetical
combinators. (Clearly there will be many intermediate submodels.) In the second
place, we can see now how very easy it is to interpret A-calculus in ordinary
arithmetical recursion theory by means of quite elementary operations on r.e.
sets. Thus the equivalence of A-definability with partial recursiveness seems not to
be all that good a piece of evidence for Church's Thesis. In his 1936 paper (a
footnote on p. 346) Church says about A-definability:
The fact. however, that two such widely different and (in the opinion of the author) equally
natural definitions or effective calculability turn out to be equivalent adds lo (he strength of the
reasons adduced below for believing thai they constitute as general a characterization of this
notion a!> is consiqent with the usual intuitive understanding of it.
The point never struck the present author as an especially telling one, and the
reduction of A-calculus to r.e. theory shows that the divergence between the
theories is not at all wide. Of course it is a pleasant surprise to see how many
complicated things can be defined in pure A-calculus (without arithmetical combinators), but this fact cuts the wrong way as evidence for the thesis (we want
stronger theories, not weaker ones). Post systems (or even first-order theories) are
much better to mention in this connection, since they are obviously more inclusive
in giving enumerations than Turing machines or Herbrand-Godel recursion
equations. But the equivalence proofs are all so easy! What one would like to see is
a "natural" definition where the equivalence with Le. is not just a mechanical
exerClse involving a few tricks of coding.
In the course of the development in this section we have stated many
equations which are not found in Table 1, and which involve new combinators. In
conclusion we would like to mention an equation about Y which holds in the
model, which can be stated in pure A-calculus, and which cannot be proved by
ordinary reduction (though we shall not try to jUSll(y this last statement here). In
order to shorten the calculatior!!., we note from definition (2.8) that Y{u) =
Y(Ay.u{y»); so by Theorem 2.5 this also equals u(Y(u».
(2.28)
Call the left side
YIA!Ax.g(x)(j(x))
r and the right f". Now
f" = Ax.g(x)(Y{g(x»)
r
= Ax. Y(g(x))
r
~Ax.g(x){f" x) ,
r
thus c= f", because is a least fixed point. On the other hand ~ Ax.g(x)(j'(xl).
so j'(x) = g(x)( j'(x)). Thus f"{x) c= j'(x), because f"{x) is a least fixed point. As this
holds for all x, we Sec that f" c= and so they are equal. There must be many other
such equations.
r;
DATA TYPES AS LAlTlCES
5.15
3. Enumeration and degrees. A great advantage of the combinators from the
formal point of view is that (bound) variables are eliminated in favor of
"algebraic" combinations. The disadvantage is that the algebra is not all that
pretty, as the combinations tend to get rather long and general laws are rather few.
Nevertheless as a technical device it is mildly remarkable that we can have a
notation for all Le. sets requiring so few primitives. In the model defined here the
reduction to one combinator rests on a lemma about conditionals:
cond(x)(y)(cond(x)(y)) = y.
(3.1)
Recall that cond (or ::» is a test for zero, so that:
cond(x)(y)(O) = x.
(3.2)
This suggests that we lump all combinators of Theorem 2.4 into this one:
(33)
G = cond«suc, pred, cond, K, S))(0).
We can then readily prove:
THEOREM 3.1 (The generator theorem). All LAMBDA-definable elements
can be obtained from G by iterated application.
A distributive function f is said to be lotal iff f(n) E w for all nEw. As they
come from obvious primitive recursive functions, we do not stop to write out
LAMBDA-definitions of these three total functions:
apply = An
(3.4)
E
w.Am
E w.(n, m)
(35)
op«n, m» = n
(3.6)
arg«n, m» = m.
+1
The point of these auxiliary combinators con!~ers
Our Godel numbering of the
Le. sets. The number 0 will correspond to the generator G: while (n, m)+ j will
correspond to the application of the nth set to the mth. This is formalized in the
combinator val which is defined as the least fixed point of the equation:
(3.7)
val = Ak
E w.k::>
G, val(op(k -l»(val(arg(k -1))).
This function accomplishes the enumeration as follows:
THEOREM 3.2 (The enumeration theorem). The combinator val enumerafes
the LAMBDA-definable elements in that RE = {val(nJln E w}. Further:
(i) val(O) = G,
(ii) val(apply(n )(m») = val(n )(val( m)).
As a principal application of the Enumeration Theorem we may mention the
following: suppose u is given as LAMBDA-definable. We look at its definition
and rewrite it in terms of combinators-eventually in terms of G alone. Then
using 0 and apply we write down the name of an integer corresponding to the
combination-say, n. By Theorem .1.2 we see that we have effectively found from
536
DANA SCOTT
the definition an integer such that val n = u. This remark can be strengthened by
some numerology.
(3.8)
apply(O)(O) = 1
and
val(l) = 0;
(3.9)
apply(O)(l) = 3
and
val(3) = (sue, ... );
(3.lOl
apply(3)( I) = 12
and
val(12) = sue.
Thus, define as the least fixed point:
(3.11)
num = An
E w.n::>
I, apply(l2)(num(n -I)),
and derive the equation for all nEw:
val(num(n)) = n.
(3.12)
We note that num is a primitive recursive (total) function. The combinator num
allows us now to effectively find a LAMBDA-definition, corresponding to a given
LAMBDA-definable element u, of an element v such that uniformly in the
integer variable n we have val(v(n») = u(n). Further, v is a primitive recursive
(total) function. This is the technique involved in the proof of K1eene's wellknown result:
THEOREM 3.3 (The second recursion theorem). Take a LAMBDA-definable
element t1 such that:
(i)
val(v(n» = Am E w. val(n)(apply(m)(num(m))),
and then define a combinator by:
(ii)
ree = An
E
w.apply(v(n»(num(v(n»).
Then we have a primitive recursive function with this fixed-point property:
(iii)
val(ree(n) = val(n)(ree(n».
Note that if u is LAMBDA-definable, then we find first an n such that
val(n) ~ u. Next we calculate k =ree(n). This effectively gives us an integer such
that val(k) = u(k). Gode! numbers represent expressions (combinations in G),
and val maps the numbers to the values denoted by the expressions in the model.
The k just found thus represents an expression whose value is defined in terms of
its own Godel number. In recursion theory there are many applications of this
result. Another familiar argument shows:
THEOREM 3.4 (The incompleteness theorem). The set of integers n such that
val(n) ~ 1- is not r.e.; hence, there can be no effectively given formal system for
enumerating all true equations between LAMBDA-terms,
(A critic may sense here an application of Church's thesis in stating the
meta theoretic consequence of the nonresult.) A few details of the proof can be
given to see how the notation works. First let v be a (total) primitive recursive
function such that:
val(v(n») ~ n n val(n).
and note that:
n val(n)~1-
iff
nEval(n).
DATA TYPES AS I.ATTICES
5.17
Call the set in question in Theorem.1.4 the sel b. If it were Le., then so would be:
{n
E
wlv(n) €b} = (An
E
w.vln) n b =0 n, n)(T).
That would mean having an integer k such that:
val(k) = {n
E
w[v(n) E b}.
But then:
kEval(k)
iff
V(k)Eb
iff val(v(k») = liff ki'val(k),
which gives us a contradiction. This is the usual diagonal argument.
The relationship val(n) = val(m) means that the expressions with Godel
numbers 11 and III have the same value in the model. (This is not only not Le. but is
a complete n~-predicate.)
A total mapping can be regarded as a syntactical
transformation on expressions defined via Godel numbers. Such a mapping p is
called extensional if it has the property:
val(p(n))=val(p(m))
whenever
val(n)= val(m).
The Myhill-Shepherdson theorem shows that extensional, syntactical mappings
really depend on the values of the expressions. Precisely we have:
THEOREM 3.5 (The completeness theorem for definability). If a (total)
extensional mapping p is ,elban~ed-ADBMAL
then there is a LAMBDAde/irwble II meh 'hat val(p(n») ~ q (vall 11)) for aLI nEW.
Of course q is uniquely determined (because the values of q are given at least
on the finite sets). Thus any attempt to define something new by means of some
strange mapping on GodeJ numbers is bound to fail as long as it ~.i effective and
extensional. The main part of the argument is concentrated on showing these
mappings to bc continuous; that is why q exists.
The preceding results indicate that the expected results on Le. sets are
forthcoming in a smooth and unified manner in this setting. Some knowledge of
Le. theory was presupposed. but analysis shows that the knowledge required is
slight. The notion of primitive recursive functions should certainly be well
understood together with standard examples. Partial functions need not be
introduced separately since they are naturally incorporated into LAMBDA (the
theory of multiple-valued functions). As a working definition of r.e. one can take
either ··empty or the range of a primitive recursive function" or, more uniformly,
"a set of the form {mI3n.m + 1 ~ plll)j where p is primitive recursive". A few
obvious closure properties of Le. sets should then be proved, and then an
adequate foundation for the discussion of LAMBDA will have been provided.
The point of introducing LAMBDA is that further closure properties are more
eas.ily expressed in a theory where equations can be variously interpreted a!\
involving numbers, functionals, etc., without becoming too heavily involved in
intricate G6del numbering and encodings. Another useful feature of the present
theory concerns the ease with which we can introduce relative recursiveness.
538
DANA
scon
As we have seen, {val(nJln E w} is an enumeration of all Le. sets. Suppose we
add a new set a as a new constant. What are the sets enumerable in a" Answer:
{val(n)(a)ln E w}, since in combinatory logic a parametet can always be factored
out as an extra argument. Another way to put the point is this: for b to be
enumeration reducible to a it is necessary and sufficient that b = u(a) where
u E RE. This is word for word the definition given by Rogers (1967, pp. 146-147).
What we have done is to put the theory of enumeration operators (FriedbergRogers and Myhill-Shepherdson) into a general setting in which the language
LAMBDA not only provides definitions but also the basis of a calculus for
demonstrating properties of the operarors defined. The algebraic style of this
language throws a little light on the notion of enumeration degree. In the first
place we can identify the degree of an element with the set of all objects reducible
to it (rather than just those equivalent to it) and write
Deg(a)
= {u(aJlu ERE}.
The set-theoretical inclusion is then the same as the partial ordering of degrees.
What kind of a partially ordered set do we have?
THEOREM 3.6 (The subalgebra theorem). The enumeration degrees are
exacrly the finitely generated combinatory subalgebras of Pw.
By "subalgebras" here we of COurse mean subsets containing G and closed
under application (hence, they contain all of RE, the least subalgebra). Part of the
assertion is that every finitely generated subalgebra has a single generator (under
application). This fact is an easy extension of Theorem 3.1. Not very much seems
to be known about enumeration degrees. Joins can obviously be formed using the
pairing function (x. y) on sets. Each degree is a countable set; hence, it is trivial to
obtain the existence of a sequence of degrees Whose infinite join is not a degree
(not finitely generated). The intersection of subalgebras is a subalgebra-but it
may not be a degree even starting with degrees. There are no minimal degrees
above RE. but there are minimal pairs of degrees. Also for a given degree there
are only countably many degrees minimal over it: but the question of whether the
partial ordering of enumeration degrees is dense seems still to be open.
Theorem 3.6 shows that the semilattice of enumeration degrees is naturally
extendable to a complete lattice (the lattice of all subalgebras of Pw), but whether
there is anything interesting to say about this complete lattice from the point of
view of structure is not at all c1eaL Rogers has shown (1967, pp. 151-153) that
Turing degrees can be defined in terms of enumeration degrees by restricting to
special elements. In our style of notation we would define the space:
TOT ~ {ulu
= $(u) and 'tin E w.u(n lEW},
the space of all graphs of total functions. Then the system {Deg(u)lu ETOT} is
isomorphic to the system of Turing degrees. Now there are many other interesting
subsets of Pw. Whether the degree structurc of these various subsets is worth
investigation is a question whose answer awaits some new ideas.
Among the subsets of Pw with natural mathematical structure, we of course
have FUN, which is a semigroup under o ~ AuAvAx.u(v(x)). It is. however, a rather
DATA TYPES AS LAITICES
539
complicated semigroup. We introduce for its study three new combinators:
(3.13)
R = Ax.(O, x);
(3.14)
L
(3.15)
u=
= Ax.X,(X2);
Ax.xu:O (l, u, x,), u(x, lex,).
THEOREM 3.7 (The semigroup theorem). The countable semigroup
REnFUN of computable enumeration operators is finitely generated by
R, Land G.
The proof rests on the verification of two equations which pcrmit an
application of Theorem 3.1:
u
(3.16)
Lo
0.17)
UoVoR=u(v).
0
R
=
Ax.u(x)
Certainly the word problem for RE nFUN is unsolvable, indeed, not even
recursively enumerable. Can the semigroup be generated by two generators by
the way?
4. Retracts and dais types. Data can be structured in many ways: ordered
tuples, lists, arrays, trees, streams, and even operahons and functions. The last
point becomes clear if one thinks of parameters. We would normally hardly
consider the pairing function AxAy.(x, y) as being in itself a piece of data. But if we
treat the first variable as a parameter, then it can be specialized to a fixed value, say
the element a, producing the function Ay.(a, y). This function is mare likely to be
the output of some process and in itself can be considered as a datum. It is rather
like one whDle row of a matrix. If we were to regard a two-argument function f as
being a matrix, then its ath row would be exactly AY.f(a)ty). If s were a selection
function, then, for example, Ay.f(s(y»(y) would represent the selection of one
element out of each column of the matrix. This selection could be taken as a
specialization of parameters in the operator AuAvAy.u(v(y »)(y). We have not been
very definite here about the exact nature of the fixed a, f, or s, or the range of thc
variable y or the range of values of the function f. The point is only to recall a few
elements of structure and to suggest an abstract view of data going beyond the
usual iterated arrays and trees.
What then is a dara rypeo Answer: a type of data. That is to say, a collection of
data that have been grouped together for reasons of similarity of structure or
perhaps mere convenience. Thus the collection may very well be a mixed bag, but
mare often than not canons of taste or demands of simplicity dictate an adherence
to regularity. The grouping may be formed to eliminate irrelevant objects and
focus the attention in other ways. It is frequently a matter of good organization
that aids the understanding of complex definitions. In programming languages,
one of the major reasons for making an explicit declaration of a data type (that is,
the restriction of certain variables to certain "modes") is that the computed
objects of that type can enjoy a special represemation in the machine that allows
the manipulation of thesc objects via the chosen representation to be reasonably
efficient. This is a very critical matter for good language design and good compiler
writing. In this report, however, we cannot discuss the problems of representation,
540
DANA SCOTT
important as they may be. Our objective here is conceptual organization, and we
wish to show how such ideas, in the language for computable functions used here,
can find the proper expression.
Which are the data types that can be defined in LAMBDA') No final answer
can be given since the number is infinite and inexhaustible. From one point of
view, however, there is only one: Pw itself. It is the universal type and all other
lypes are subtypes of it; so Pw plays a primary role in this exposition. But in a way
it is too big, or at least too complex, since each of its elements can be used in so
many different ways. When we specify a subtype the intention is to restrict
attention to a special use. But even the various subtypes overlap, and so the same
elements still get different uses. Style in writing definitions will usually make the
differentiation clear though. The main innovation to be described in this section is
the use of LAMBDA expressions to define types as well as elements. Certain
expressions define retracts (or better: retraction mappings), and it is the ranges (or
as we shall see: sels of finite poinls) of such retracts that form the groupings into
types. Thus LAMBDA provides a calculus of type definitions including recursive
type definitions. Examples will be explained both here and in the following
sections. Note that types as retracts turn out to be types as lattices, that is, types of
partial and many-valued objects. The problem of cutting these lattice types down
to the perfect or complete objects is discu.\sed in § 6. Another view of types and
functionality of mappings is presented in § 7.
The notion of a retract comes from (analytic) topology, but it seems almost an
accident that the idea can be applied in the present context. The word is employed
not because there is some deep tie-up with topology but because it is short and
rather descriptive. Three easy examples will motivate the general plan:
(4.1 )
fun = AuAx.u(x);
(4.2)
pair = Au.(uo, u ,);
(4.3)
bool = Au.u 5 0, l.
Here 5 is ,he doubly strict conditional defined by
(404)
z 5 x, Y = z => (z => x, T), (z => T, y),
which has the property that if z is both zero and positive, then it takes the value ~
instead of the value x U y.
DEFlNlTlON. An element a E Pw is called a retract iff it satisfies the equation
a = a 0 a.
Of course the o-notation is used for functional composition in the standard
way:
(4.5)
u' v
= Ax.u(v(x)).
And it is quite simple to prove that each of the three combinators in (4.1 \-(4.3) is a
retract according to the definition. But what is the point?
Consider fun. No matter what u E Pw we take, fun\u) is (the graph of) a
function. And if u already is (the graph of) a function, then u =fun(uj. That is to
say, the range of fun is the same as the set of fixed points of fun is the same as the
set of all (graphs of) functions. Any mapping a whose range and fixed-point set
541
DATA TYPES AS LATTICJ::S
coincide satisfies a = a a, and conversely. A retract IS a mappmg which
"retracts" the whole space onto its range and which is the identity mapping on its
range. That is the import of the equation a = a a. Strictly speaking, the range is
the retract and the mapping is the retraction, but for us the mapping is more
important. (Note, however, that distinct retracts can have the same range.) We let
the mapping stand in for the range.
Thus the combinator fun represents in itself the concept of a function
(continuous function on Pw into Pw). Similarlypair,represents the idea of a pair
and bool the idea of being a boolean value as an element of {1-, 0, I, Tj, since we
must think in the multiple-valued mode. What is curious (and, as we shall see,
useful) is that all these retracts which are defining subspaces are at the same time
elements of Pw,
DEFINITION, If a is a retract, we write u: a for u = a(u) and Au: a.T for
Au.T[a(u)/u).
Since retracts are sets in Pw, we cannot use the ordinary membership symbol
to signify that u belongs to the range of a; so we write u : a. The other notation with
the A-operator restricts a function to the range of a. For f to be so restricted simply
means f ~ f a. For the range of f to be contained in that of the retract a means
f = a f. These algebraic equations will be found to be quite handy. We are going
to have a calculus of retracts and mappings between them involving many
operators on retracb yet to be discovered. Before we turn to this calculus, we
recall the well-known connection between lattices and fixeLi points.
THEOREM 4.1 (The lattice theorem). The fixed points of any continuous
function form a complete lal/ice (under <;;); while those of a retract form a
continuous lattice.
We note further that by the embedding theorem (Theorem 1.6), it follows
that any separable (by which we mean countably-based) continuous lattice i" a
retract of Pw; hence, our universal space is indeed rich in retracts. A very odd
point is that a = a a is a fixed-point equation itself (Au.u u is obviously
continuous). Thus the retraction mappings form a complete lattice. Is this a
continuous lattice') (Ershov has proved it is not; see the Appendix for a sketch.) A
related question is solved positively in the next section. Actually the ordering of
retracts under £ doe:;; not seem to be all that interesting; a more algebraic ordering
is given by:
DEFINITION. For retracts a and b we write a ():; b for a = a b = boa.
The idea here should be clear: a <k b means that a is a retract of b, It is easy to
prove the:
THEOREM 4.2 (The partial ordering theorem). The retracts are partially
ordered by <k.
There do not seem to be any lattice properties of <k of a general nature. Note,
however, that if retracts commute, a b = boa, then a b is the greatest lower
bound under <k of a and b. Also if we have a sequence where both a" ;~ a"+) anLi
a" <;; U,,+ I for all nEw, then U{a" In E w j is the upper bound for the a" under "", as
can easily be argued from the definition by continuity of o.
Certainly there is no "least" retract under <k. One has 1- = 1- a (recall:
1- = Ax.1-), but not a 1- = 1-. This last equation means more simply that U (1-) ~ 1-;
that is, a is strict. For retracts strictnt:ss is thus equivalent to -.L ~( a, so we can ~ay
that there is a least strict retract. The combinator I = Au.lt clearly represents the
0
0
0
0
0
0
0
0
0
0
0
542
DANA SCOTI
largest retract (the whole space), and it is strict also. In a certain sense strictness
can be assumed without loss of generality. For if a is not strict, let
b = Ax.{nja(x) '" aCl)}.
This function takes values in {1-, T} and is continuous because {x E Pwla(x) '"
a(L)} is open. Next define:
a*
= Au.a(u) n b(u).
This is a strict retract whose range is homeomorphic (and lattice isomorphic) to
that of a. Note, however, that the mapping from a to a * is not continuous (or even
monotonic).
To have a more uniform notation {or retracts we shall often write nil. id, and
seq for the combinators 1-, I, $. Two further retracts of interest are
(4.6)
open = Au.{mI3e" <;:: em.n
(4.7)
E
u};
int = Au.u 5 0, int(u - i) 5 u, u.
The range of open is lattice isomorphic to the lattice of open subsets of Pw;
definition (4.6) is not a LAMBDA-definition of the retract, but such can be given.
In (4.7) we intend int to be the least fixed point of the equation. By induction
on the least element of u (if any) one proves that:
r1-
int(u) =
if u =1-;
if u E w;
lU
otherwise.
T
This retract wipes out the distinctions between multiple values, moving all above
the singletons up to T; its range thus has a very simple structure. The retract int
clearly generalizes boo!. The range of fun is homeomorphic to the space of all
continuous functions from Pw into Pw; the range of pair. to the space of all
ordered pairs; the range of seq, to the space of all infinite sequences. A combination like Au.int () seq(u) is a retract whose range is homeomorphic to the space of
infinite sequences of elements from the range of int
We now wish to introduce some operators that provide systematic ways of
forming new combinations of retracts. There are three principal ones:
(4.8)
a
(4.9)
a ® b = Au.(a(u,,), b(u,));
(4.10)
a EB b ~
o-lo
b = Au.b
0
u 0 a;
Au.uo 5(0. a(lI,)), (1. b(u, ».
These equation, clearly generalize (4.1)-(4.3). Before we explain our operators,
note these three equations which hold for arbitrary a, b, a b ' E Pw:
I,
(411)
(a o->b)o (a'
0->
b')=(a'o a) o->(h
(4.12)
(a ®b)
0
(a'® b')
(4.13)
(a
EB b)
0
(a'
~
EB b') =
0
b'):
(a
0
a')® (b
(u
0
a') (f; ( bob').
0
b');
The reversal of nrder (a' 0 a) on the right-hand side of 14. I I) 'hould he remarked.
DATA TYPES AS LAITICES
543
These equations will be used not only for properties of types (ranges of retracts)
but also for the mappings between the types.
THEOREM 4.3 (The function space theorem). Suppose a, b, a', b', care
retracts. Then we have:
(i) a >-> b is a retract, and it is strict if b is;
(ii) v: a >-> b iff u = Ax : a. u (x) and II x : a. u(x) : b ;
(iii) if a e>;; a' and be>;; b', then a >-> b e>;; a' >-> b';
(iv) iff:a >->bandj':a'>->b', thenf>->j':(b >-> a') >->(a >->b');
(v) iff: a >-> b andj': b >-> c, thenj' 0 f: a >-> c.
Parts (i), (iii), (iv), and (v) can be proved using (4.8) and (4.11) in an algebraic
(formal) fashion. It is (ii) that tells us what it all means: the range of a >-> b consists
exactly of those functions which are restricted to (the range of) a and which have
values in b. So we can read u : a 0-+ b in the normal w'ay; u is a (continuous)
mapping from a into b. In technical jargon, we can say that the (strict) retracts and
continuous functions form a category. In fact, it is equivalent to the category of
separable continuous lattices and continuous maps. In this context, (iv) shows that
>-> operates not only on spaces (retracts) but also on maps: it is a functor
contravariant in the first argument and covariant in the second. Further categori-
cal properties will emerge.
THEOREM 4.4 (The product theorem). Suppose a, b, a', b' are retracts. Then
we have:
(i) a ® b is a retract, and it is strict if a and bare;
(ii) u:a®biffu=(uo,uJ)anduo:aanduJ:b;
(iii) if a e>;; a' and b e>;; b', then a ® b e>;; a' ® b';
(iv) iff: a >-> band f: a' >-> b', thenf®j': a ® a' >-> b ® b'.
Again the operator proves to be a functor, but what is stated in Theorem 4.4
is not quite enough for the standard identification of ® as the categorical product.
For this we need some additional combinators:
1st = Au.uo;
(4.14)
~dos
(4.15)
Au.uJ:
diag = Au.(u, u).
(4.16)
Then we have these properties:
(4.17)
(4.18)
(4.19)
(4.20)
(4.21)
1st (a ® b):(a ® b) >-> a;
0
sod 0 (a ® b): (a ® b)
>->
b;
diagoa:a.;,-..,a@a;
1st 0 (f® f') = foist;
sod o (f® f)
= f o sod.
Here a and b arc retracts and f and j' are functions. Now suppose a, b, and care
retracts and f: c- a and g: c .... b. Let
h=(f®g)odiagoc.
544
DANA SCOTT
We can readily prove that:
h:c>-->(a0b),
and
1st h = f
and
0
snd h = g.
0
Furthermore, h is the unique such function. It is this uniqueness and existence
property of functions into a 0 b that identifies the construct as a product.
There are important connections between >--> and 0. ·To state these we
require some additional combinators:
(4.22)
eva/ = Au.uo(u,);
curry = AuAxAy.u«x, yl).
(4.23)
If a, b, and c are retracts, the mapping properties are:
(4.24)
(4.25)
evaJ o «b>-->c)0b):«b""'cl0b)>-->c
curry ° «a 0 b) >--> c): «a 0 b)"'" cl >--> (a >--> (b >--> c».
Suppose next that f: (a 0 b) >--> c and g: a >--> (b >--> c). We find that
eval (curry(f) 0 b) = f
0
and
curry(eva/
0
(g 0
b» = g.
This shows that our category of retracts is a Carlesian closed calegory, which
means roughly that product spaces and function spaces within the category
interact harmoniously.
THEOREM 4.5 (The sum theorem). Suppose a, b, a', b' are relracls. Then we
have
(i) a Eb> b is a retracI, and il is always slricl;
Oi) u: a Eb> b iff u = 1- or u = Tor
u = (0, u,) and u,: a or
u=(1, u,landu,:b;
(iii) if a Of; a' and b Of; b', Ihen a Eb> b Of; a' Eb> b';
iivl iff: a >--> band f: a' >--> b', thenftB f: aEb> a' >--> b Eb>b'.
There are several combinators associated with EB:
14.26)
inlell = Ax.(O, xl;
(4.27)
inright = Ax.(1, xl;
(4.28)
Budell = Au.uo '3 "I, 1-;
14.29)
nutrighf =Au.Uo '31-, u,;
14.30)
14.31 )
which = Au. 110 ;
nul
= Au.u,.
DATA TYPl::S AS LATTICES
545
(The last two arc the samc as 1st and snd. but they will be used differently.) Wc
find:
(4.321
(a (Bbl o inlelt 0 a: a
(4.33)
la (Bb) 0 inright o b: b
(4.34)
a 0 outlelt 0 (a(Bb): (a(Bb)
~
a;
(4.35)
b 0 outright 0 (a(Bb) :(a(Bb)
~
b;
(4.311)
which 0 (a(Bb): (a (Bb)
~
bool:
(4.37)
a 0 out 0 (a(Ba):(a(Ba)
~
a;
~
~
(a(Bbj;
(a(Bb);
where a and b are retracts. Most of these facts as they stand arc trivial until one
sets down the relations between all these maps; but there arc too many to put them
down here. Note, however, if a, b, and c are retracts and f: a ~ c and g: b ~ c,
then if we let
we havc:
h:(a Bb)~c,
and
h 0 inlelt = f
and
h 0 inright = g.
BUI, though h exists, it is nol unique. So a (Bb is not the categorical sum
(coproduct). The author does not know a neat categorical characterization of this
uperator.
There would be no difficulty in extending ® and EB to more factor~
by
expanding the range of indices from n, I to n, I, .... n -1. The explicit formulae
need not be given; but if we write au (2) al ® ... (2) an _ J, we intend this expanded
meaning rather than the iterated binary product.
To understand sums and other fact~
about retracls, consider the least fixed
point of this equation:
(4.3HJ
tree ~ nil(B(tree <8 tree).
To be certain that tree is a retract, we need a general theorem:
THEOREM 4.6 (The limit theorem). Suppose F is a conlinuous func/lOtI that
maps retracls 10 relracts atld leI c ~ YIP). Thetl c is also a relract. If ItI additiotl F
maps strict retracts to strict retracts and is monotone in the sense that a 0:; b implies
F(a) ex F(b) for all (slricl) relrac/s a atld b. Ihetllhe ratlge of c is homeomorphic 10
Ihe itlverse limil of the ranges of Ihe slricl relracls F~I1-J
for tI E w.
This can be applied lD the case of (4.38) where F ~
AZ.nil(B(z @ z). Thus we
can analyze tree as an inverse limit. This approach has the great advantage over
the earlier method of the author where limit> were required in showing that tree
exists. Here we use Y to give existence at once, and then apply Theorems 4.3-4.5
to figure out the nature of the retract.
In Theorem 4.6. the fact that c is a retract can be reasoned as follows: 1- is a
546
DA!'\A SCOTT
retract. Thus each F"(~)
is a retract. We compute'
eo e ~ u{r(~)il1"
~ )~(r{u
~ 1li)~ r{u
w} U{F"(~)il1
E
0
0
FOI~)in
E
E w} ~
w}
(Note: same
w}
11.)
C.
In case F IS monotone and preserves strictness, then we can argue that each
oc c. The retracts FO(~)
are the proJeetioMs of e onto the terms of the limit.
Of course rll) oc )~(mF
if 11;'" m. The u: e can he put into a one-to-one
correspondence (homeomorphism, lattice isomorphism) with the infinite sequences (1'0, v,,' .. ,V o , ' • -), where 1'0: )~("F
and v" ~ ')I+"V()~ r
Indeed
~
lu()~ "F
and u ~ U{v"jl1 E w}. This is exactly the inverse limit construction.
Retreating from generalities back to the example of tree. we can grant that it
exists and is provably a retract. Two things in its range are ~ and T by Theorem
4.5(ii), but they are not so interesting. Now ~: nil, so by Theorem 4.5(ii) we have
(0) ~ (0, ~):
tree. Let uS think of this as the atom. What else can we have'.' If
x, y : tree, then (x, y): tree 0 tree and so (1, (x, y): tree. Thus (the range of) tree
contains an atom and is closed under a binary operation . .Note that the atomic and
nonatomic trees are distinguished by which and that suitable constructor and
destructor functions are definable on tree. But the space also comains infinite
trees since we can solve for the least fixed point of:
FO(~)
"0
t~
(I, «0), t»
and t: tree. (Why?) And there are many other examples of infinite elements in
tree.
A point to stress in this conqruction is that tree being LA,r-vtBDA-definable is
computable, and thf're are many computable functions definable on or to (rhe
range of) tree. All the "strucrura!" functions, for example, are computahle. These
are functions which in other languages would be called isatom or construct or
node, and they are all easily LAMBDA-definable. Just as with 'E. 0, ~ ,
they are
!lot explicit in the notarion, but they 3J': jennabk ncvcrthtless. In the case o~
node, we could use finite sequences of Boolean values to pick out or name nodes.
Thus solve for name = nil@bool c.S name, and then give a recursive definition of:
node: name ,,....,. l tree
,..>---)
tree J.
Any' combination of retract preserving functors can be used in this game. For
example:
14.39)
lamb ~ inlt.±J(lambr, lamb).
This loob innocent. but the range of lamb would give a quite different and not
unattractive model for the A-calculus Iplus arithmetic). What wc do to investigate
this model is to modify LAMBDA slightly by ~nicalper
the ternary conditional
=~ x, y by a quarternary onc w ~ x, y, z; otherwi"e the syntax of thl' language
remains the same. The semantics, however, is (-l little more comr1ex.
Let us use T, (T, p, e as syntactical variables for expre:ssiuns in the modified
Jangu'lge. The ~emantic.,
is provided ."») a function y{ that maps the expressions of
the language to their values in Ithe range ,]f) lamb. To be completely rigorous \I.e
547
DATA nPES AS LATfiCES
abo have to confront the question of free and bound variables. For simplicity let us
indcx the variables of the language by integers, and let us take the variables to be
Vo, l' I, V:" •..• V rl , • • • • \-Ve cannot simply evaluate out an expression T to its value
:if/TI until we know the values of thc free variables in T. The values of these
variables will be given by an "environment" r which can be construed as a
sequence of values in lamb. We can restrict these environments to the retract:
env = At.lamb 0 seq( r).
(4.40)
When t: env, then 10 : lamb is the value that the environment gives to the variable
Vn . We also need to employ a transformation on environments as follows:
(4.41)
l[xlnJ= Am E w.eq(n)(m) ::>x, 1m .
Here eq is the primitive recursive function that is 0, if n, m are equal, and is I,
otherwise, for n, mEw. The eflect of I[xl n] is to replace the nth term of the
sequence I by the value of x, otherwise to leave the rest of the sequence
unchanged.' To correspond with our use of very simple variables we have selected
a simple notion of environment: in the semantics of more general languages it is
customary to regard an environment as a function from the set of variables into the
domain of denotahle values.
The correct way to evaluate a term T given an environment t is to find
Je[ TI( I). We use the brackets [and I here simply as an aid to the eye in keeping the
syntactical part separated from the rest. The environment erHers as a functionargument in the usual way; thus we shall have:
(4.42)
7f[ TI: env ~
14431
X[v.,n(r) = I"
lamb.
X[OI(1) ~ inlelt(O)
,i'1'[ T+ Iii t)
= which(7f[ TI( r)) 5 inlelt(out(.i'1'[ d( t))
+ I),
X[ T- Iii I) = which(7f[ Tnu)) 5 inlelt(outi}('1Ir1(I)) - I),
~
~
X[O::> T, cr, pl(1) = lamb(which(X[Ollitil::>
(out(7f[ 01(1)) ::> X[TI( I), ,i'1'[ o-I(r)), X[p Ii I))
Je[ T(fr ,nu) = which(X[ TI(r)) 5.L, out(:it[TI(1) )(<K[crl(/))
:it[Avo . Till) = inright(Ax : lamb.X[TII(t[xl n]).
A good question is: why does :Ie ?t~ixe
The answer is: hecause of the fixed-point
theorem.
If we rewrite the semantic equations 7f[TI(r) = ( ... ) in (43) by the equation
X[ TI = AI: env( ... ), then :if is seen to be a function from expressions to vaJues in
lamb. As the range of lamb is contained in Pw, we can say more broadly that
}{E PwEJ:P, where Exp is the syntactical set of expressions and the exponential
notation designates the set of all functions from Exp into Pw. This function set i~ a
complete lattice because Pw is. Therefore if we read (4.43) as a definition by cases
on Exp, then we can find J{as a suitable fixed point in the complete lattice Pw bP .
Inde~
it is the fixed point of a continuous operator.
54H
DANA SCOTI
Actually we can regard Exp as being a sub.1ft of Pw to avoid dragging in other
lattices. What we need is another recursi·ve dennition of a data type:
exp
(4.44)
~
iol(±)oil(±)exp(±)expc±J iexp@exp @ exp@ exp)
(±) iexp @ exp I(±) (iol@ exp)
•
:"otc that there arc as many,ummands in (4.441 as there are clauses in (4.43). We
can think of exp as giving the "abstract" syntax of the language. We use the
integers to index the variables and the nil element to stand for the individual
constant. Read (..1.,44) as saying that every expression is either a variable or a
constant or the successor of an expression or the predecessor of an expression or
the conditional formed from a tuple of expressions or the abstraction formed from
a pair of a variable and an expression. We do not need in (4.44J to introduce
special "symbols" for the successor, application, etc., because the separation by
cases given by the (±) operation is sufficient to makc the distinctions. (That i, why
the syntax is "abstract",) The point is that for recursive definitions it does not
matter how we make the distinctions as long as they can be made. From thi' ne"
point of view, we could rewrite (4.43) so as to show:
(4.45)
:f{: exp ~
(en,·
~
lamb),
which is clearly more satisfactory-especially a, it is now clear that :f{is complltahie. And this is a method that can be generalizcd to many other languages. The
method also shows why it is useful to allow function spaces as particular data types.
Another example of this method can be illustrated, if the reader will recall the
Godel numbering of § 3. It will be seen that there are similarities with the tree
construction: instead of 0 and apply(nl(m), tree uses (0) and (I, (x,
Note,
however, that Godel numbers are finite whik tree has infinite objects. But the
infinite ohjects are always limits of finite objects, so there are connections. l\\e
discuss this again in § 6.) In particular. recursive definitions on Godel numbers.
like that of val, have analogues on tree. Here is the companion of (3.7).
y».
(.l ..1hl
vaal- Ax. treewhichlx' :;> G, vao'iisl(oull x l))(vaal(snd(oul(x))) I.
We have va. I : tre·~
id, where of course 14.46) is taken as denning vaal a' the
least fixed point. This is an example of a computable function betv;:,:en effectlvel)
given retracts The LAMBDA-dennable elements of Pw are the computable
elements in the range of vaal.
Vv'e have discussed the category of retracb and continuou"J maps, but if they"
are all LAMBDA-dennable, then they fall within the countable model RE. Thus
there is another category of effectively given retracts and effectively gl\'ell
cnntinuous maps. (Example~:
tree, id, vaal. and all those retracts and map"
generated by 81, @, and 0-,.) ThIs category \)cems to deserve the status of a
generalized recursion theory: though this i", not ru :-.ay that as yet very /7lUch IS
known annut it- In fact, the proper formulation may require an enriched categ.ory
rather than a restricted one, Thus instead of confining attention to the computable
retracts and computable maps, it might be beller to use the full category with all
maps and to 'ingle out the computable ones lalso maybe the nnite onesJ by special
predicates. In ellect we have avoided any methodolngical decisions by wt)rking in
DATA TYPFS AS LATI ICES
54~
the unive"al space Pw and by defilllllg a notion when required-if po"ihle with
the aid of LAMBDA. This makes it possihle to give all the necessary definitions
and to prove the theorems without at first having to worry ahout axiomatic
problems.
5. Closure operations and algebraic lattices. Given any family of (finitary)
operations on a set (say, w) there is a closure operation defined on the subsets of
that set obtained by forming the least subset including the given elements and
closed under Ihe operations. Examples are very familiar from algebra: the
subgroup generated by a set of elements. the subspace spanned by a set of vectors,
the convex hull of a set of geometric points. We simplify matters here by
restricting attention to closures operating on sels in Pw, but the idea is quite
general. The main point about these "algebraic" closure operations-as distinguished from topological closure operations-is that they are cOlltinuous. Thus, in
the case of subgroups, if an element belongs to the subgroup generated by some
clements, then it also belongs to the subgroup generated hy finitely many of them.
In the context of Pw we can state the characteristic condition very simply.
DEFINITION. An element Q E Pw is ealled a closure operation iff it satisfies:
[ ~
Q = Q
0
Q.
We see by definition that a closure operation IS not only continuous, but it is
also a retract. This is reasonable since the closure of the closure of a subset must be
equal to the closure. To say of a function that J <; a. means that x <; a(x) for all
x E Pw. In other words, every set is contained in its closure. (Note that closures are
opposite 10 the "projections", those retracts where a <; J.) Among examples of
closure operations we find J and T; tbe first has the most closed sets (fixed points).
Ihe second has the least. (Note that T = w always is a fixed point of a closure
operation; T = Ax.T is thus the most trivial closure operation.) The examples iun,
open, int of § 4 are all closure operations (cf. (.J.1), (4.6), 14.7)). We remarked that
iun is a retract, but the reader should prove in addition:
u
(51)
<;
Ax.u(x).
for all u E Pw (d. Theorcm 1.2). We note that thl' fact can be rewritten in the
language of retracts as:
(5.2)
the significance of which will emerge after we develop a bit of the theory of closure
operations.
Unfortunately the natural definition of the retract bool does not yield a
closure operation. In this section we adopt this modification:
(5.3)
boool
= Au.u 2
0, T + 1.
The closed sets of 00001 are 1, 0, T+ 1, and T. Note that with any closure
operation a, the function value aCt) is the least closed set (fixed point of a I
including as a subset the given set x. Thus given any family '(j <; Pw of "closed" sets
which is closed under the intersection of sllhfamilies, if we define
(5.41
550
DANA SCOTT
then this will be a closure operation provided it is continuous. This r.emark makes
it easy to check that certain functions are closure operations if we can spot easily
the family 'e of fixed points.
Alas, the "natural" definition of ordered pairs (ef. (2.21)) leads to projections
rather than closures. Here we must choose another:
(5.5)
[x. y] = {2nln
with these inverse functions:
E
x}U (2m + 11m E y}.
(5.6)
[u]0={nI2n
(5.7)
[u]]={mI2m+IEu}.
E
u},
We shall find that the main advantage of these equations lies in the obvious
equation:
(5.8)
which is not true for the other pairing functions. Of course we have:
(5.9)
[[x, Y]]o = x,
(5.10)
(lx, y]]1
= y.
We shall not extend the idea of these new functions to triples and sequenees,
though it is clear what to do.
Abstraetly, an algebraic lattice is a complete lattice ;n which the isolated
points are dense. An isolated (sometimes called: compact) point in a lattice is one
that is not the limit (sup or l.u.b.) of any directed family of its proper subelements.
This definition works in continuous lattices, but more generally it is better to say
that if the isolated point is contained in a sup, then it is also contained in a finite
subsup (a sup of a finite selection of elements out of the gi",en sup). In the case of
the lattice of subgroups of a group. the isolated ones are the finitely generated
subgroups. The isolated points of Pw are the finite sets eo. To say that isolated
points are dense means that every element in the lattice is the sup of the isolated
points it contains. The sequel to Theorem 4.1 for closure operations relates them
to algebraic lattices.
THEOREM 5.1 IThe algebraic lattice theorem). The fixed points of anv closure
operation form an algebraic laltice.
The proof is very easy if one notes that the isolated points of {xix = a(x)},
where a is a closure operation, are exactly the images ale") of the fimte sets in Pw.
What makes Theorem 5.1 more interesting is the converse.
THEOREM 5.2 (The representation theorem for algebraic lattices). Every
algebraic lattice with a countable number of isolated points is isomorphic to the range
of some closure operation.
By Theorem 1.6 we know that the algebraic lattice is a retract, but a more
dlfeet argument makes the closure property clear. Thus. let D be the algebraic
lattice with {d"in E w} as the set of all isolated points with the indieated enumeration. We shall use the square notation with symbols J;: and U for the lallice
ordering and sup. The desired closure operation is defined by:
a(x) = {mldm
J;:
U{d"!n EX}}.
:;:;1
DATA TYPES AS LATTICES
It is an easy exercise to show that from the definition of "isolated' It follows that a
is continuous; and from density, it follows that D is in a one-to-one order
preserving correspondence with the fixed points of a.
In the last section we introduced an algebra of retracts, much of which carries
over to closure operations given the proper definitions. Without any change we
can use Theorem 4.3 on function spaces, provided we check that the required
retracts are closures.
THEOREM 5.3 (The function space theorem for algebraic lattices). Suppose
that a and b are closure operations; then so is a 0-> b.
The proof comcs down to showing that:
u(x) c; b(u(a(x»),
(5.11 )
whenever a and b are closure operations. But this is easy by mono tonicity. Note
that (5.1) is needed.
For those interested in topology, one can give a construction of the isolated
points of the function space which is much more direct than just taking the
functions b 0 e" 0 a, which on the face of it do not tell us too much. But we shall not
need this explicit construction here.
The reason for changing the pairing functions is to be able to form products
and sums of closure operations. In the case of products, the analoguc of 09 is
straightforward:
(5.12)
a ~b
= Au.[a([u]o), b([u],)];
while for sums using a' = Ax.O U a(x -I) + 1 and similarly for b' we write:
(5) 3) a ~
b = Au.([uo]o => 0,0) U ([U], => 1, I) 5 [a'([u ]0), 1-].
k
b'l[ u] I Ij.
We can then establish WIth the aid of (5.8)-(5.10):
THEOREM 5,4 (The product and sum theorem for algebraic lattices). Suppose
that a and b are closure operations; then so are a [><: b and a (±: b. Analogues of the
results in Theorems 4,4 and 4.5 carryover.
Following the discussion in § 4, we can also show that the closure operations
form a Cartesian closed category, which in some ways is better than the category
of all retracts. What makes it better is the existence of a "universe".
Every continuous operation generates a closure operation by just closing up
the sets under the continuous function (as a set operation). We can institutionalize
this thought by means of this definition:
15.14)
v = AaAx. Y(Ay.x U aly».
Clearly V is LAMBDA-definable, continuous, etc. A more understandable
characterization would define V(a)(x) by this equation:
(5.151
V(aj(xj = nlylx c; y and aly) c; y).
These two definitions are easily seen to be equivalent. What i~
unexpected is the
discovery (due in a different form to Peter Hancock and Pcr Martin-LiiO that V
itself is a closure operation.
THEOREM 5.S (The universe theorem for algebraic lattices). The/unction V is
a closure operation WId its fixed points comprisl! the set 0/ all clo:-.ure operation.\.
DANA seOIi
Thus to say a IS a closure operation, write a : V. To have a mapping on closure
operations, write f: Vo->V, Remark that 5,5 allows us to write V: V, It all secms
rather circular. but it is Cj ui te consisten t. The category of separa te algebraic lattices
"contains itself"-if we are careful to work through retracts of Pw,
The proof of Theorem 5,5 requires a few steps, We note first that for all
x, a E Pw:
(5,16)
x£; V(a}lx),
Let v = V( a )(x), This is the least y with x U a (y) £; y, What is the least z with
y U a(z) £; z" The answer is of course y, which proves:
(517)
Via )lV(a)(x))
= Via )(x),
Thus Via) is always a closure operation, If a is already a closure operation, thcn
clearly V(aJ(x) = a(x), Therefore we have shown:
a=
(5,181
V(a)
jff
a is a closure operation.
But then by (5,16) and (5,17) we have by (5,181:
(5,19)
V(a) = V(Vla I)
From (5.16) by monotonicity we see:
(5201
a(xl£;a(Vla}lx))£; Vla)(xl.
Hence by (5.1) we can derive:
(5.21)
a £; AX.a(x) £; Ax. VI a)(x)
= V( ai.
From (5.191 and (5.21) it follows that V itsclf is a closure operation.
The operation V form~
the least closure operation contaimng a given
element. and it shows that the lattice of closure operations i~ not only a retract of
Pw but also an algebraic lattice. Since we can now use V a~ a retract, the earlier
results hecome formulas:
(5.22)
(Aa : V.Ab : V.a[><]b): Vo->(Vo->V):
(5.23)
(Aa : V.Ab : V.al±Jb): Vo->(Vo->V):
we can also state such functorial properties as:
(5.24)
(Aa : V.Ab : V.ao->b): Vo->(Vo->V).
Using this style of notation we have:
THEOREM 5.6 (The limit theorem for algebraic lattices).
(,If: Vo->V.YU)): (Vo->V)o->V.
In words: if f is a mapping on closure operations, then its least fixed point is
also a closure operation. The proof of course holds with any retract in place of V.
but we are more interested in applications to V. For example, note that V( 1.) = I.
Now let f = Aa : V.a 0-> a. The least fixed point of this fis the limit of the sequence:
1..
I,
10->1,
(10->1)0->(10->11,
(10->110->(10->1))0->((10->110->(10->1)),"
55,
DATA TYI>L:S AS 1.ATIICFS
and we ,ee that all these retract' are strict. This means Y(j) is nontrivial 111 that It
has at least two fixed points (viz., 1- and T). But d = YI II must be the lea,t closure
operation satisfying
(5.25)
and we have thus proved that there are "o"trivial algebraic lattices isomorphic to
their own function spaces. This construction (which rests on ha,dly more thi:tn
15.2), since we could take d = YiAa.1 U (a 0-; a))) is much quicker than the inverse
limit construction originally found by the author to give A -calculus models
satisfymg I ~ t. There are many other fixed points of 15.25) besides this least closure
operation, but their connection with inverse limits is not fully investigated.
We note in conclusion that most constructions by fixed points give algebraic
lattices (like lamb in 9 4). and so we could just as well do them in V if we remember
to use [2J and GJ The one-point space is T ("0' nil), and so the connection with
inverse limits via Theorem 4.6 is not as clear when nonstrict functions are u~ed.
For m£'lny ,~e opru
this may not make any difference.
6. Subsels and Ibeir classification. Retract' produce vcry special subsets of
Pw: a retract al\Nay~
has a nonempty range which forms a lattice under c;. For
example, the range of inl is 11-, T} U w. We often wish to eliminate .c and T: and
with £'I retr£'lC! like tree the situation is more complex. since com hi nations likt.'
(I, (( I, (1.. (0»)), T) might require elimination. In these two cases the method Is
simple.
Consider these two functions:
mid = Ax :inl. xS 0,
(6.1 )
°
16.21
perf·- Au : tree.which(u) 5 0, :>lperflfslloullu))))(perflsndloullu)111
where
j,
is a special combinator:
:> = AxAdx => I y => 0, TI, T) U (y
16.3)
We flnd that
:>:
(0
=-
h: inCjmid(x 1-=
°
:> 11.
T
1-
.L
.L
T
0
1-
(J
T
T
T
T
T
The queslioll l~:
what suh~ct
i~ {u: treejperf( u.!
pert i... dcflnt:'d recur')ivcly. Vv'c can ~LC
perfI ,I
~
L
perM!. (,.
whell
t, \,.
tree.
The aLolnic
[rCL'I~
I~.\'LTY
Ix => 0, TI. TI
O} In the C3"e of (rec.... nok first thi ... behavior o(
------r-
NilW
co
perffTI
\'))1
c
~
1.
-=-=
OJ?
that
perfl(O)1
~
O.
:>Iperll., )I(perlfyll
trce. a"'ldc ff(l11l Tor !-. IS either ah)l1lic or cl pall' Ilt tree ....
"pcrkct" (that i.... perfl(O))-OJ.;\ Jifllll' lrL'L' \\lllch dnl·"Il11t
554
DANA SCOTI'
contain ~ O[ T is perfect-as ~'e can see inductively using the table above for ~.
An infinite tree is never perfect: either some hraneh ends in T and perf maps it tD
T, or T is never reached and perf maps it to L Thus the subset in question is Ihen
seen to be the set of finite trees generated from the alom by pairing. This is clearly
a desirable subset, and it is sorted out by a function with a simple recursive
definition. The general question is: what subsets can be characterized by
equations" The answer can be given by reference 10 the topology of Pw.
DEFINITIOI". Let Cl:\ be the class of open subsets of Pw, and (\: be the class of
closed subsets. Further let 'B be the class of all (finite) Boolean combinations of
open sets.
We recall from § 1 that V E elj just in case for all x E Pw, we have x E V if and
only if some finite subset of x is in U The elass of open sets contains 0 and Pw and
is closed under finite intersection and arbitrary union; in fact. it can be generated
by these two closure conditions from subsets of the special form {x E Pwln E x) for
the various nEw. An open set is always monotonic (whenever x E U and x <;; y,
then y E V), so that every nonempty V E tij has T E U
Another characterization of openness can be gjven by continuous functions.
Suppose V E Cl:\. Define I: Pw -> {~,
T} so that
V={xl/(x) = T};
then I is continuous. Conversely, if such an I is continuous, then V is open. But if
we do not assume the range of I is included in {l, T}, this is not true. For the case of
general functions we know that I is continuous if and only if {xl/(x) E V} is open
for all open V Tbis defines continuity in terms of openness, but we can turn it the
other way around:
THF.OREM 6.1 (The (~
theorem). The open subs:ets of Pw are exactly the
St'ls
of
the form:
(xl/(x) ;20},
where f: Pw ---) Pw is continuous.
We could have written 0 E I{x) or the equation I(x) n IJ ~ 0 instead of l(x);2 O.
Note tbat in case I: Pw -> {~,
T}, then I(X);2 0 IS equivalent to I(x I ~ T. Also any
otber integer could have been lIsed in place of O.
We can say that {xiO EX} is the rypical open set, and that every other open set
can be obtained as an inverse image of the typical set by a continuou"i function. We
shall extend Ihis pattern to other classes, especially looking for equations. In the
case of openness an inequality could also be used, giving as the typical set
{xix '" .}~
BlIl since closed sets are just the complements of open sets, this remark
gives us:
TflEOR I'M 6.2 (The if theorem). nte closed subsets 01 Pw are exactly rhe sers 01
rhe lorm:
{xl/lx)=H
where f: Pw -J> Pw is continuous.
Aside from ~xi
= ~},
we eould have used Ixlx C ll} as the typical closed set
where a E Pw is any element whatsoever aside from T. Thi"i T has. hy the way. a
DATA TYPES AS LATfICES
Thus IT} is a countable intersection of open sets, otherwise called a l~o-set.
There
are of course many other GJ,-sets, but {T} is the typical one:
TlifORfM 6.3 (The 6l, theorem). The countable intersections of open suhsets
of Pw are exactly the sets of the form:
{xlf(x) = T},
where f: Pw -+ Pw is continuous.
It may not be obvious that every (IJ.-set has this form. Certainly, as we have
remarked, every CIl-set has this form. Thus if W is a OJ,. we have:
and further,
Un = {xIMx) = T),
where the
frl
are suitably chosen continuous functions. Define the function g hy
the equation:
g(x)={(n, m)!mEfn(x)).
Clearly g is continuous. and we have:
W={xlg(x)=T},
as desired.
We tet ii' (lj denote the class of all sets of the form C u. where CEil and
U \0 (lj, Similarly fur iI (II,. Now {xix <; O} is closed and {xix ;2 O} is open. Thus
{OJ E iI (I ,~C This set is typical.
THEOREM 6.4 (The iI (Il theorem). The sets that are intersections of closed
sets with open sets are exactly the sets of the form:
n
n
n
n
{xlfix) = or,
where f: Pw -+ Pw is continuous.
Again it may not be obvious that every;\-
n()i sd has this form. Vv'c can write:
C= {xlflx) ~ ~},
and
u={xlglx)=O}.
where lE /\' and U ;e:_ }~(
and the continuous
hlx) = {2n +
and
h~
and g arc :-.uitably chosen_ DdlnL'
lin E flxl} U {2nln \0 gi.r II,
that It i" (,:ontinuou..,. We hllloC:
rcmar~
dC"in:d.
It
f
I"
ca:-.y to
"'Cl'
that Id t
;\"
n(~
if ('
j<;
linite, but
;11
gennal {a}, /\. (1
('I)/i.
In
DANA SCOTT
case a is infinite but not equal to T (say, a = (Il III > 0) = T + 1 ). then fa} is typical in
its class,
THEORHI 6.5 (The II'
(II, theorem). The sets thai are illterseniolll of closed
n
sels wilh countable inlersections of open secs are exaclly Ihe sels of che jorm:
{x!f(x)=a),
where f: Pw -> Pw is conlinuous and a is a fixed infinice seC flOC equal 10 T.
n
n
Note that (II' (IJ), is the same class as t5 (IJ" so we see by Theorem 6,4 that
a good choice of a is An E w.O.
There is no single subset ot Pw typical for ~\, which can be viewed as the finite
unionI of sets from the class lI·n ill.
THEOREM 6.6 (The Q:1 theorem) The sels thaC are Boolean combinaCions of
open seCs are exactly the seCs of the form:
(xlf(x)
En
where f: Pw -4- Pw is continuous and /.;' is a finite set of.finite elements of Pw.
To see that every ~ set has this form, suppose that
\/=
II' nill.
W"U W1U .. ·U w"
where each W,
E
wheref,: Pw
{lo 0, T} is continuous. Then define:
->
I,
We can write:
g(xl=(21+jljEjilx)n(0, l}. i<lll.
and note that g
i~
continuous. Let
t:
=
{y ~ {m:m
< 2n)13i < n.li E y. 1; + I t. y}:
we have:
V={x!glxIE f'}
as desired.
THEOREM fl.? (The '..l\'i theorem). The sets that are countable intersections of
Boolean combi,ratiom of open sets are exactly the sets of the form:
(xIIIXI
=
g(xl),
r
where g; Pw ~ Pw are continuous.
charucteriz<-ltion theorems,
Thl:' is clearly the most interesting of thc~ :
because equations like f(x) = g( x) turn up all the till1l' anu the collection is a very
rich totJlitv of suhsets of Pw. It includes all the retract'l, ... inee the\' arc of the form
{xix '-=- (dx)}. And mUl'h more. That every ~uch
~ct ill Thcnrem ().? is "\~ follows
from lhese logical Ir_ansformations:
{x': I (x) "-
g I r \) ~
1.r IV' Ii ,,= IJJ[ n .,::
~ 1~r
II--(l
I {x I" "
(i x ) .(,-'J. n F gl.\" JJI
rr <I. "
" gil
II U { r," " II r I. "t gil III
557
DATA TYPES AS LATTICES
On the other hand, we can see that (,f U(~)u
is exactly lB" Because, in VIew o{
Theorem 6,6. ~'"
the class of counlable unions of lB-sets, is exactly (I\' (11)" The
remark we want to make then {allows by taking complements.
Now leIS be an arbilrary lB.-set. We ean write:
n
r
5=
n ({xlf,,(x)=OjU{xlgJrl=O)J,
,,=(j
where f., g" : Pw -> {1-. O. T} are continuous. Now let u, v be continuous {unctions
which on {1-, 0, T} realize these two tables:
u
1-
a
T
v
1-
a
T
1-
1-
a
1-
a a
0
T.
0
0
0
0'
0
0'
0'
0'
0'
T
where 0' = au 1. This
x, y E {1-, 0, T):
IS
a
T
0
0
0'
0'
an exerCise in many-valued logic, and we find {or
= v(x)(y) iff x = 0 or y ~
Thus define continuous (unctions f' and g' such
f' = AxAn E w.u(f"lx»)(g,,(x».
g' = AxAn E w.v(f,,(x»)(g,,(x),
u(x)(y)
O.
and we find:
5
~
(xlJ'(x)
=
g'(x)}
as desired.
This is as far as we can go with equations. More complicated sets can be
or analytic sets can be fmr in thl.;
defined using quantifiers, for example the
(arm:
'1;
(x!3yI(x)(y) = g(x)(y)},
and their complements, the
Il: sets, in the form
(xj\ty 3z.h(x)(y)(z) = O},
with continuous f. g, h. For the three classes we then have as "typical" sets those
shown in Table 3.
It should be remarked that IB, contains all the closed sets in the Can lor space
topology on Pw (that is, the topology obtained when it is regarded as the infinite
product of discrete two-point spaces). Therefore the
sets {or the two topologies
on Pw are the same. Hence, since we know for Cantor space that ~ = L: nn; is
the class of Borel sels, we can conclude that the two topologies on Pw have the
same Borel sets. (That is. in both cases
is the Boolean a-algebra gcnerated
(rom the open scts.)
L:
u:
55H
DANA
s('un"
TABLE J
Classes and typical selS
----------Typical
~(
{xIOE
""r'iru
III
IT!
(~,
n~;
~JO
'l..\,o;
r:
II:
~te;
,I
{Of
IT+t}
{uluo"'=' utI
(uI3y.uo(Y) ~ u,(yl}
lulVy 3z.u(y)lzl ~ OJ
Returning now to the example involving trees mentioned at the beginning of
this section, we see that the set of perfect (finite) trees can be written in the form:
{xix ~ tree(x), penix) ~ OJ ~ {xl(x, penix) = (tree(x), 0»);
thus it is a !B,-ser. (Note that!B, are ohviously closed under finite intersection by
the ordered pair method just illustrated; thal they are closed under finite union is a
little messier to make explicit, but the essential idea is containeu in the proof of
Theorem 6.7.1
As another example, we might wish to allow infinite trees hut not the strange
tree T. Consider the following function;
16.4)
top = All ; tree.whichl u) c;~,
top(fst(out( I< I)) U toplsnd(out( u))).
We can show that top: Pw -> ,~{
TJ. For a tree u the equation top( u) = ~ means
that it does flol contain T, or as we might say: it is topless. The topless trees form a
closed subset of the subspace of trees. (An interesting retract is the function
AI<.tree( u) U top(") whose range consists exactly of the 'topless trees plus one
exceptional tree T.) Such a closed suhset of (the range of) a retract is a kind of
semi/alliee. (We shall not introduce a precise definition 'here.) Every directed
subset has a limit (le"t upper bound) and every pair with an upper bound has a
least upper hound. But generally least upper bounds do not have to exist within
the semi lattice. The type of domains that interest us heeome continuous lattices
with the addition of a rep element T large;- than all the other el ment~.
The
elimination of T i~ done with a function like top of our example. This is convincing
evidence to the author that an independent theory of semilattices is quite
unnecessary: they can all be derived from lattices. The prohlem is simply to define
the top-culling operation, then restriction to the "topless" clements is indic()ted
In this way all the eOrIstructions are kept within
hy an equatiorI Ilike topl 1<) = ~).
the control of a smooth-running theory ha!'cd on LAMBDA. Thi~
point seems to
be important if one wants to keep track of which functions are computahle.
An aspect ()f the problem of clas~if cation
treated in ~iht
-;ection which ha~
not
heen given c!()se enough attention i~ the explicitly constructive way of veritying
thl' clo~ure
properties of the c1a~ cs.
Consider the das~
\. !.\'i' for examplL'. Let B he
the typical set as ~hown
in Tahle 3. Then whatever r'~ Pw we choose, the ~d
I'i/lx) ~ B}
DATA TYPES AS LATTICES
559
is a llJ,-set and every such set has this form. Thus the {s index the elements of the
class. Suppose f, g E Pw. What we should look for are two LAMBDA-definable
combinators such that union(f)( g) and interi f)(g) give the functions that index the
union and intersection of the sets determined by f and g. That is, we want:
{xlunionif)(g)(x) E B} = {xlfix) E B} U {xlg(x) E B}.
II should be possible to extract the precise definition from the outline of the proofs
given above, but in general this matter needs more investigation. There may very
well be certain classes where such operations are not constructive, even though
the classes are simply defined.
7. Total functions and functionality. There is an inevitable conflict between
the concepts of total and partial functions: we desire the former, but it is the latter
we usually get. Total functions are better because they are "well-defined" at all
their arguments, but the rub is that there is no general way of deciding when a
definition is going to be well-defined in all its uses. In analysis we have
singularities, and in recursion theory we have endless, nonfinishingcomputations.
In the present theory we have in effect evaded the question in two ways. First we
have embraced the partial function as the nOrm. But secondly, and possibly
confusingly, the multiple-valued functions are normal, total functions from Pw
into Pw. The point, of course, is that we are making a modelof the partial functions
in terms of ordinary mathematical functions. But note that the success of the
model lies in not using arbitrary functions: it is only the continuous functions that
correspond to the kind of partial functions we wanted to study. It would be a
mistake to think of the variables in A-calculus as ranging over arbitrary
functions-and this mistake was made by both Church and Curry. The fixed-point
operator Y shows that we must restrict attention to functions which do have fixed
points. It is certainly the case that Pwis not the only model for the A-calculus, but it
is a very satisfactory model and is rich enough to illustrate what can and what
cannot be done with partial functions.
Whatever the pleasures of partial [unctions (and the multiple-valued ones,
too), the desire for total functions remains. Take the integers. We are more
interested in w than w U{.l, T}. Since the multiple values.l and T are but two in
number, it is easy to avoid them. The problem becomes tiresome in considering
functions, however. The lattice represented by the retract int ~ int is much too
large, in that there are as many nOn total functions in this domain as totai ones. The
aim of the present section is to introduce an interpretation of a theory of
functionality in the model Pw that provides a convenient way of restricting
attention to the functions (or other objects) that are total in the desired sense. The
theory of functionality is rather like proposals of Curry, but not quite the same for
importlint reasons as we will see.
In the theory of retracts of §§ 5 and 6, the plan of "restricting attention" was
thl: very simple one of restricting to a Jubset. It was made notationally simple as the
subsets in question could be parameterized by continuous functions. The retraction mappings stand in for their ranges. Even better, certain continuous functions
act on these retractions as space-forming functors (such as EB and ?--:I'), which gives
greater notational simplicity because one language is able to ~erv
for several
,60
DANA
scurr
tasks. When we pass to the theory of total functions, this same kind of simplicity is
no longer possible owing to an increase in quantifier complexity in the necessary
deti'nitions. (This remark is made definite below.) Another point where there is
some loss of simplicity concerns the representation of entities in Pw: subsets will
no longer be enough, sincc we will need quotients of subsets. This is not a very
startling point. Many constructions are affected in a natural way via equivalence
classes. An equivalence relation makes you blind to certain distinctions. It may be
easier also to remain a bit blind than to search for the most beautiful representative of an equivalence class: there may be nothing to choose between several
candidates, and it can cost too much effort to attempt a choice. Thus our first
agreement is that for many purposes a kind of object can be taken as a set of
equivalence classes for an equivalence relation on a subset of Pw.
Because Pw is closed under the pairing function AxAy.(x, y), we shalt construe
relations on subsets of Pw as subsets of Pw all of whose elements are ordered
pairs. That is, a relation A satisfies this inclusion:
A,; {(x, y)lx, y E Pw).
17. I)
DEFINITION. A (restricted) equivalence ,elation on Pw is a symmetric and
transitive relation on Pw.
Such relations are restricted because they are only reflexive on their
domains-which are the same as their ranges-and these are the subsets with
which the relations are concerned. We shall write x A y for (x, y) E A and x : A for
. x A x. What we assume about these relations is the following:
xA Y
(7.2)
x Ay
(7.31
In case
and
implies
yAz
yA x.
imply
x A z.
a is a retract, we introduce an equivalence relation to correspond:
E a ~ {(x, x)lx: a).
(7.4)
This is the identity relation restricted to the range of a. Such relalions (for obvious
reasons) and many others satisfy an additional intersection property:
(7.5 )
xAy
and
xAz
imply
xA (ynz).
We shall not generally assume 0.5) in this short discussion, but it is often
convenient.
Each equivalence relation represents a space: the space of all its equivalence
classes. Such spaces form a category more extensive than the category of retracts
studied above. The familiar functors can be extended to this larger category by
these definitions:
17.hl
17.7)
17.X)
A ~ B = {(Ax. ul x), Ax. vlx»1 ulx)Bvly) whenever x A y},
-A x B = {((x, x'), (y, y'»lx A y and x' B y'j,
A
+B
~ {((J, x), (0, y)!x A y}U {« 1, .'). (I, Y'lilx' B
vl
DATA TYPES AS LATTICES
561
THEOREM 7.1 (The closure theorem). If A and B are restricted equivalence
relations, then so are A -> B, A x B and A + B. We find:
(i) f:A->B iff f=Ax.fix) and whenever xAy, then f(x) Bfiy), in
particular:
(ii) iff: A -> B and x : A, then f(x) : B; furthermore,
(iii) u: A x B iff u = ("'" u\) and Uo: A and u\ : B;
(iv) u: A +B iff either u = (0, u\) and u,:A or u = (I, u\) and u\: B.
It follows easily from 7.1 that the restricted equivalence relations form a
Cartesian closed category which-in distinction to the category of retracts-has
disjoint sums (or coprod"cts as they are usually called in category theory). This
result is probably a special case of a more general theorem. The point is that Pw
itself is a space in a Cartcsian closed category (that of continuous lattices and
continuous maps) and it contains as subs paces the Boolean space and especially its
own function space and Cartesian square. In this circumstance any such rich space
must be such that its restricted equivalence relations again form a good category.
Our construction is not strictly categorical in nature, as we have used the elements
of Pw and have relied on being able to form arbitrary subsets (arbitrary relations).
But a more abstract formulation must be possible, The connection with the
category of retracts is indicated in the next theorem.
THEOREM 7.2 (The isomorphism theorem). If a and b are retracts, we have the
following isomorphisms and identities relating the spaces:
(i) Ea,=(x,y)la(x)=a(y)};
(ii) E a_ b '= E a -> E,;
(iii) E a0 , = E a x E,;
(iv) Ea®b = E a + E b U {(L .1), (T, T)}.
Part (iv) is not categorical in nature as it stands, but (ii) amd (iii) indicate that
E is a functor from the category of retracts into the category of equivalence
relations that shows that the former is a full sub-Cartesian-c1osed category of the
latter. We cannot pursue the categorical questions here, but note that there are
many subcategories that might be of interest; for example, the equivalence
relations with the intersection property are closed under ->, x, and +.
Returning to the question of total functions we introduce this notation:
(7.9)
N = {{n, n)ln
E
w}.
This is the type of the integers without and 1. and T, i.e., the total integers. We note
that:
(7.10)
Thus N is a
(7.11)
~,-set.
N
= {ul u = (uo,
uo), u" = inl(uo), mid(uo) = OJ.
What is N
N? We see:
f: N-> N
if!
->
f:lunandf(nlE w whenever nEw.
This N -> N is indeed the type of all total functions from w into w. It can be shown
that N -> N is also a QI,-set: good. But what is (N -> N) -> N? This is no longcr a
lB,-set, the best we can say is
By Theorem 7.1 it corresponds to the type of all
11;.
562
DANA SCOTT
(extensional) continuous total functions from N -> N into N. (The condition on A
and B on rhe right side of (7.6) makes the concept of function embodied in A -> B
extn~ioal,
since the functions are meant to preserve the equi\'alence relations.)
A more precise discussion identifies N -> N as a topological space, usually
called the Baire space. If we introduce the finite discrete spaces by:
(7.12)
Nk
= {tn, n)ln
< k},
then N -> N, can also be identified with a topological space, usually called rhe
CantDr space. In this identification we find at the next type, say either (N -> N) -> N
or (N -> N,) -> N" that elements correspond to the usual notion of continuous
function defined in topological terms. However, these higher type spaces are not
at all conveniently taken as topological spaces. Certain of them can be identified as
limit spaces according to the work of Hyland, and for these ->, x, and + have the
natural interpretation. We cannot enter into these details here, but we can remark
that the higher type spaces become ever more complicated. Thus ((N -> N) -> N)->
N is a n;-sct and each -> will add another quantifier to the cjefinition. This is
reasonable, because to say that a function is total is to say that all its values arc
well-behaved. But if its domam is a complex space, this statement of totality is
even more complex. Despite this complexity, however, it is possible to sort out
what kind of mapping properties many funclions have. We shall mention a few of
the combinators.
THEOREM 7.3 (The functionality theorem). The combinators J, K, and S
enjoy the following functionality properties which hold for all equivalence relations
A, B, C:
(i) J: A -> A;
(ii) K:A->(B->A);
(iii) S: (A -> (B -> C» -> ((A -> B) -> (A -> C»).
Furthermore, these combinators are wliquely determined by: these properties.
Let us check that 5 satisfies (iii). Suppose that:
f(A
->
(B -> C»)f·
We must show that:
S(n((A
->
B)-> (A -> C»S(f').
To this end suppose that:
g(A
->
B)g'.
S([)(g) (A
->
C) S([')(g').
We must show that:
To this end suppose that:
xA x'.
We must show that:
S([I(K )(x )CS([')(g')(x').
DATA TYPES AS LATTICES
563
Now by definition of the combinator S we have:
Si!J(g)(x) = f(x)(g(x)),
S(f)(g')(x') = ((x')ig'(x')).
By assumptions on g, g' and on x, x', we know:
g(x) B g'ix'l.
By assumptions on f, f' and on x, x', we know:
f(x)(B ... O{ix').
The desired conclusion now follows when we note such combinations as S(!J and
S(f)(g) are indeed functions. (We are using Theorem 7.1(i) several times in this
case.)
In the ease of the converse. let us suppose by way of example that k E Pw is
such that
k:A ... (B ... A)
holds for all equivalence relations A and B. By specializing to, say, the identity
relation we see that whatever a E Pw we take, both k and k(a) are functions. To
establish that k = K we need to show that the equation:
k(a)(b)
=a
holds for all a, bE Pw. This is easy to prove, for we have only to set:
A
= {(a,
and
a)}
B={(b, b)},
and the equation follows at once. Not all proofs are quite so easy, however.
In the case of lhe combinator S it is not strictly true to say that Theorem
7.3(iii) determines it outright. The exact formulation
s(f)
~
s(AxAy.f(x)(y))
and
s(!J(g)
IS
this: if,. E Pw is such that:
= s(f)(Ax.g(x))
for all f, & , Pw; and if
s: (A ... (8 ... O)"'(IA ... B) ... (A ... ell
for all A, B, C, then s ~ S. In other words, we need to know that s converts its first
two arguments into functions with the right number of places before we can say
that its explicit functionality identities as being the combinator S.
In Hindley, Lercher and Seldin (1972) they show that the functionality
property:
(7.13)
AfAg·fo g: (S ... 0'" IIA ... BI'" (A ... Cl).
follows from Theorem 7. Uit) and Theorem 7.311i) and (iii) in view of the identlty:
(7.14 )
(see Appendix AI.
AfAg.f 0 g
~
S(K(S))(KI
DANA SCOTT
A more Interesting result concerns the Iteralor.\ JetlncJ as lollowOj:
(7.15)
Zo= Ajh.x,
(7.16)
Z"+I = AjAxIIZ"lfJ(xl).
In other words, Z"If)(x) ~ Fix), These natural comblnators can be typed very
easily, but Gordon Plotkin has sbown that tbe obvious ,typing actually characterize~
them.
THEOREM ~,7
(Tbe iterator theorem), The combinators Z" enjoy the following
functionality propert, which holds for all equivalence relations A:
Z" : (A
(i)
->
A) -> (A
->
A I.
Further, If any eletrlenl IE Pw satisfies (i) for all A, then it must be one of the
iterators, provided that l(f) = z(AxI(,)) holds jor all f E Pw.
That eacb of the Z" satisfies Theorem 7.4li) is obvious. Suppose z were
another such clement. Then clearly:
I
Suppose
f anJ x are tlxeJ for
= AfAr,zlflix)
the moment. Let:
A ={(f"(x), f"(x»ln
where we call ~upose
->
w},
in £tdditiol1 that:
f
Then f: A
E
~
Ax.f(x),
A is clear, and so zl f): A
->
A also, But x: A, therefore z( [)(x) =
Fix), I'm some n ~ w, because zr/)(x): A. Tbe trouble with this easy part of the
<irglllllcllt j, th<it the integer n depends on
I
and x. ,",,'hat WI; must :-,how ~i
independent of f and x, then z ~ Z" will follow.
Plotkin's method for this case is to introduce
functions:
17,1
jJ
if,
~
Ax,{ij, k
+ I)I( j,
~()me
independent successor
k) ex).
Note that:
i7,I~)
m((., O)=((/,m)
J,
I
(T J
~
if/o-I';
.f .,
'1""/.
It then follows that:
i7 19)
Having these it.lentitlcs, we return 10 the argument.
From what we saw before, given j e. w, there is an n/ such that:
Take any two J, j' '= w. We also kno\\' there i" an fl'~
thai it i:-.
OJ
whl'rc:
5fiS
Dr\1,\ TYPES AS LA rnCES
in vie"! of (7. J <)). But since
(f,
IT,
Il j
)
£
(T)
U fJi" and
U (/, ni') c:: (j,
(T/ r; u) U ur, we have:
II) U (}', Ill.
It follows that
and so they are all equal. This determines the fixed nEw we want.
Suppose that both! and x are finite sets in Pw. Choose f> max (!U x). Let A
this rime bL: the least equivaicilce relation such that:
rlx) Ar(x)Ulf, m)
holds for JII
III E
w. We then check that:
Ax.[(xi(A ~
A JiAx.[(x) U OJ.
Therefore, we have:
ZIAx.[1 x»)(A
~
A)z((Ax.[(x» U "j l.
Jnd since x A x U (j, 01, we get:
z(Ax.[(x»)(x) A z((Ax.[(x) U (T,J(x U If, 0)).
Now there is an integer
Tn E UJ
such that:
0»
z((Ax.[(x» U (Ti)!x U I f, 0) ~ r(x I U (T';j~
,)m j(U)x(r~
where we have been able to separate
right-hand sidc must contJin
ZI(T,)(j, ) ~lf,
f
and u because j is
II).
Thus
III
o~
large. But the
and our fixed n are the
same, The other element
zIAx.!lxl)(x) ~ rlXI
for some q E UJ. Thus we have:
r(x) Aj"IxlUlf, 111.
Again since j is so large, (f, Il)"rlx). Thus by Our choice of A we must havc
r(x) = ["Ix). This means then, since n is Iixed, that for all finite f, x:
z(Ax/lx))(xl ~ ["(x).
But then by continuity this equation holds for all f, x. It follows now that z = Zn, by
the proviso of the theorem.
These result~
bring up many questions which we leave unanswered here. For
example, which combinat r~
(i.e., pure A-terms) ha\'c functionality as in the
cxampl ~
above, and can we decide when a term is one ~L1ch?
In particular, can the
P
diagonal comhinator Ax.XlX) be typed" (The argument of Hindley, et al. (I ~72,
HI) is purclv formal Jnd does not apPJrent)v apply to thc model.) What ahout
lerm~
in LAMBDA beyond the pure ;\ -calculus','
566
DANA SCOTT
Appendix A. Proofs and technical remarks.
For Section 1. If we give the two-point space {~,
T} the weak T.rtopology
with just three open sets: 0, {T}, ,~{
T}, we have what is called the Sierpinski
space and its infinite product {~,
T}W with the product topology is the same as Pw.
The finite sets e" E Pw correspond exactly to the usual basic open sets for the
product. For those familiar with such notions, this well-known observation makes
many of the facts mentioned in this section fairly obvious. From any point of view,
Theorem 1.1 and the remarks in the following paragraph are simple exercises.
Proof of Theorem 1.2. Equation (i) as a functional e·quation comes down to
which is just another way of writing the definition of continuity. Thus it is indeed
true for all x. Next, inclusion (ii) means that if (n, m) E u, then 3e, s; e".(k, m) E u.
Clearly all we need to do is take k = n. If we also want the converse inclusion to
hold, then what we need is condition (iii).
Proof of Theorem 1.3. Substitution is generalized composition of functions of
many variables with all possible identifications and permutations of the variables;
however, as we are able to define continuity by separating the variables, the
argument reduces to a few special cases. The first trick is to take advantage of
monotonicity. Thus, suppose fix, y) is continuous in each of its variables. What
can we say of fix, x), a very special case of substitution? We calculate
fix, x)
= U{f(e m x)le" <;: x}
=U{f(em
em)le"
S;
x, em <;: x}.
Then if we think of ek = en U em and realize that f(e", em) ~ I(ek- ed, we
fix, x)
= U{f(e"
e, )Ie,
S;
~e
that
x}.
This means that f(x, x) is continuous in x. This same argument works if other
variables are present, as in the passage from f(x, y, z, w) to f(x, x, z, w). When an
identification of more than two variables is required, as from fix, y, z, w) to
fiX, x, x, x), the principle is just applied several times.
Finally to show that f(g(x, y), h(y, x, y)) is continuous, it is sufficient to show
that f(g(x, y), h(z, u, v) is continuous in each of its variables separately. By simply
overlooking the remaining variables, this comes down to showing that f(g(x)) is
continuous if f and g are. But the proof for ordinary composition is very easy with
the aid of the characterization theorem (Theorem 1.1).
Proof of Theorem IA. This well-known fact holds for continuous functions on
many kinds of chain-complete partial orderings; but Pw il'lustrates the idea well
enough. Suppose f had a fixed point x = fix). Then since 0 s; x and f is
monotonic, we see that f(0) <;: f(x) = x. But then again.[(f(0) <;:f(x) = x; and so
by induction, ["(0) <;: x. This proves that m(f) S; x; and thus if m(f) is a fixed
point, it must be the least one. To prove that it is a fixed point, we need a fact that
will often be useful:
.
LEMMA. [f x" S; X"+I for all n, and iff is continuous, then
f(U{x"ln E w}) = U{f(x")ln E wi·
DATA TYPES AS LATTICeS
567
Proof. By monolOnicity, the inclusion holds in one direction. Suppose eM s;
f(U{x.ln E wi)· 1ben by Theorem 1.1 we have eM S;f(ed for some e. ~
U{x.ln E wi. Because e. is finite and the sequence is increasing, we can argue that
e. S; x. for 80me n. But then f(e.) s;f(x.). This shows that eM s; U{f(x.)ln E w)
and proves the inclusion in the other direction. (Exercise: Does this property
characterize continuous functions?)
Proof of Theorem 1.4 concluded. Noting that ["(0)s; ["+1(0) holds for all n,
we can calculate:
[(fix,(m = U{f(f"(0))!n E w) = U{r'(0)/n EwI.
But this is just fix(n), since the only term left out is /,(0) = 0.
Proof of Theorem 1.5. The function [is clearly well-defined even when y E Y
has a neighborhood V where xn u= 0: in that case [(y) = w by convention on
in Pw. In case XEX, it is obvious that [(xls;f(x). For the
the meaning of
opposite inclusion. suppose that m E f(x). Because f is continuousand {zlm E z} is
open in Pw, there is an open subset Vof X such that x' E V always implies that
m Ef(x'). But X is a subspace of Y, so V= xn V for some open subset Uof Y.
Thus we can see why mE [(x). It remains to show that [is itself continuous.
We must show that the inverse image under [ of every open subset of Pw is
open in Y. But the open subsets of Pw are unions of finite intersections of sets of
the form {z ImE z}. Thus it is enough to show that {yj m E[(y)} is always open in Y.
But this set equals U{UjmEn{f(x)lxEXn U)), which being a union of open
sets is open. Note that what we have proved is that [is continuous no matter what
function f is given; however, if f is not continuous, then [ cannot be an extension
of f.
For readers not as familiar with general topology we note that the idea of
Theorem 1.5 can be turned into a definition. Suppose X s; Pw is a subset of P w. It
n
becomes a subspace with the relative topology. What are the continuous functions
f: X -> Pw? From Theorem 1.5 we see that a necessary and sufficient condition is
that the T: Pw -> Pw be an extension of f. Thus for x E X we can write the equation
f(x) = [(xl as a biconditional:
mEf(x)
if!
3e.s;xVx'EX[e.s;x'impliesmEf(x')],
which is to hold for all mEw. This form of the definition of continuity on a
subspace is more complicated than the original definition. because in general
e.~
X and we cannot write f(e.).
Proof of Theorem 1.6. What To means is that every point of X is uniquely
determined by its neighborhoods. Now e(x) just tells you the set of indices of the
(basic) neighborhoods of x. Thus it is clear that, is one-to-one. To prove that it is
continuous, we need only note:
(xln
E
e(x)) = V.,
which is always open. To show that, is an embedding, we must finally check that
the images of the open sets U. are open in e(X). This comes down to showing:
,(V.) = ,(X) n {zln
which is clear.
E
Z},
5hX
DANA
~COTr
For Section 2. Equation (2.1) defines a continuous lunction because it is a
special case of Theorem 1.5. where we have been able to simplify the definition
into cases because
(I)
is a very elementary subset of Pw. Equation (2.2) gives a
continuous function since the definition makes
pdistributive, as remarked
in the
text for finite unions, byt it is just as easy to show that p distributes over arbitrary
unions. The ditterence between a continuous f and a distributive p is this: to find
mE f(x) we need a finite subset e" c; x with m E fie"); howpver, to find m E p(x) we
need only one element n E x with mE p((n}) = p(n) = p( n). Continuous functions
are generalizations of distributive functions. The generality is necessary. For
example, in (2.3) we see another function x; y distributive in each of its variables;
but take care: the function x; x is not distributive in x-there is no closure under
substitution. This is just one reason why continuous functions are better. Another
good example comes from (2.4) if you compare the functions x, x+x, x+x+x,
etc.
Equations (2.5H2. 7) are very elementary. Note that z => x, y is distributive in
each of its variables. We could write: z => x, Y = P(z), where piO) = x and
PIn + \ 1= y, to show that it is distributive in z.
Proof of Theorem 2.1. If we did not usc the A-notation, then all LAMBDAdefinable runctions would be obtained by substitution from the first five (ef Table
2). Since they are all seen to be continuous, the result would then follow by tbe
substitution theorem (Theorem 1.3). Bringing in A-abstraction means tbat we
have to combine Theorem 1.3 with this fact:
LEMMA. If fix. y, z, ... ) is a continuous function of all its variables, then
Ax.[(x, y, z, ... ) is a continuous function of the remaining variables.
Proof It is enough to consider one extra variable. We compute from the
definition of A in Table 2 as follows:
Ax.[lx, y)
= (In, m)lm Efle",
~
y)}
((n, m)13e, c; y.m Ef(e", e,))
= U{{(n, mllm Ef(e", e,J}Ie, c; y}
= U{Ax.[lx,
e,!Ie, c; y}.
Thus Ax.[lx, y) is continuous in y.
Proof of Theorem 2.2. The reason behind this result is the restriction to
continuous functions. Theorem 2.1 shows that we cannot violate the restriction by
giving definitions in LAMBDA, and the graph theorem (Theorem 1.2) shows that
continuous functions correspond perfectly with their graphs.
The verific"tion of (a) of Table 1 is obvious as the 'x' in ·AX.T' is a bound
variable. (Care should be taken in making the proviso that' y' is not otherwise free
in T.) The same would of course hold for any other pair of variables. We do not
bother very much about alphabetic questions.
The verification of (f3) is just a restatement of Theorem 1.21i I. Let T define a
Also funl u)( x)
function f (of x). Then by definition f( x) = T and Ax. T ~ graphl
n.
in the notation of Theorem 1.2 is the same as the binary operation Id.n in the
notation of LAMBDA. Thus in Theorem 1.2(i) if we apply both sides to v we get
nothing else than (f3I.
569
DATA TYPES AS LAITICES
Half of property «() is already implied by (/3): tbe implication from left to
rigbt. (Just apply botb sides to x.) In tbe olher direction, 'rt x. T ~ IT means thaI T and
IT define the same function of x; thus, the two graphs must be equal.
Remarks on other laws. The failure of (TI) simply means that not every set in
Pw is the graph of a function. Condition (iii) of Theorem 1.2 is equivalent to saying
that U ~ Ax.u(x), in other words, U is the graph of some function if and only if it is
the graph of the function determined by u.
Law (iL) is the monotone property of application (in both variables); therefore, (iLl and W together imply «(*J from left to right. Suppose that 'rt x. T <;; IT; then
clearly:
{{n, m)1 mE T[ eo / x]} <;; {In, m)[m E
e x]},
IT[ o /
which gives «(*) from right to left.
There are, by the way, other laws valid in the model, as explained in the later
resullS.
Proof of Theorem 2.3. This is a standard result combinatory logic. We have
only to put:
That is, we use the iteration of the process of forming the graph of a continuous
function. As each step (from the inside out) keeps everything continuous, we are
sure that the equation of Theorem 2.3 will hold for iterated applicalion.
Proof of Theorem 2.4. This can be found in almost any reference on
combinatory logic or A -conversion. The main idea is to eliminate the A in favor of
the combinators. The fact thaI we have a few other kinds of terms causes no
problem if wc introduce the corresponding combinators. The method of proof is
to show, for any LAMBDA-term T with free variables among x o. Xl. . . , , X.. _ h
that there is a combination y of combinators such that:
T=
1'(x,,)(xt!··· (X'_l)'
Thi . . can bc done by induction On the complexity ut
T.
Proof of Theorem 2.5. The well-known calculation shows that we have from
(2.H):
Y( u)
~
(Ax.u(x(x)))(Ax.u(x(x))) ~
u( YI u)).
Thus Yi u) is a fixed point of thefunction u(x). What is needed is the proof to show
that it is the least one.
Let d ~ Ax.u(x(xJ) and let a be any other fixed point of u(x). To show, as we
must, that dId) ~ a. it is enough to show that e, ~ d always implies f,(e,) <;; a;
because by continuity we have:
~Ld(
U{eJf,)lf, <;; d)
By way of i"duct(on. supp"," that Ihis implication hold, for all n < l. Assume that
d and that mE e,(ed. We will want to use the induction hypothesis to show
that mEa. By the definition of application. there exists an integer n such that
tn. m) r:: 1:>/ and en S; e{. But n ;? (n, m) < I. and en s;: d. By the hypothesis, we have
eol f,,) s: a. Note Ihat (n, m I € d also, and that d is defined hy A -abstraction; thus,
<'I <;;
570
DANA
scurr
mE d(e,) by definition. By monotonicity u(e,(e,») c: u(a) = a; therefore mEa.
This shows that e,(e,) c: a, and the inductive proof is complete.
Remark. Note that we did not actually use the fixed-point theorem in the
proof, but we did use rather special properties of the pairing (n, m) and the finite
sets elEquation (2.9) is proved easily from the definition of application; indeed u(x)
is distributive in u. Equation (2.10) is proved even more easily from the definition
of A-abstraction. For (2.11), we see that the inclusion from left to right would hold
in general by monotonicity. In the other direction, suppose m E/(x) n g(x). Then
for suitablc k and I we have (k, m) E I and e, c: x, also (I, m) E g and e, c: x. Lct
e, = e, U e, c: x. Because I and g are graphs, we can say (n, m) E In g; and thus
mE
g)(x). This is the only point where we require the assumption on graphs.
Equation (2.12) follows directly from the definition of abstraction. For (2.13),
which generalizes (2.9), we can also argue directly from the definition of application. In the case of intersection it is easy to find U" such that 0 E u,(T) for all n, but
n{u,lnEw}=L
Equation (2.14) is obvious because the least fixed point of the identity
function must be L A less mysterious definition would be ~ = 0-1, but the
chosen one is more "logical".
For (2.15) we note that by definition:
un
Az.O = {(n, m)lm E O) = {(n, O)ln E w).
Because 0 = (0, 0) and I = (I, 0), we get the hinl. Equation (2.16) makes use of U
for iteration. If x ~ 0 U (x + I), then x must contain all integers; hence x = T. The
iteration for n in (2.17) is more complex. The fundamental equation we need is:
x
ny~
x => (y => O. lJ, «x - 1) n (y - 1) + I.
This says to compute the intersection of two scts x and y, we first test whether
o EX. If so, then test whether 0 E y. If so, then we know 0 EX n y. In the meantime
we begin testing x for posilive elements. If we could compute (by the ,ame
program) the intersection (x - I) n (y - I), then we would gct the positive eleby adding one. This is a very slow program, but we
ments of the intersection x
can argue by induction that it gives us all the desired elements. Of course, n is the
least function satisfying this equation.
In the case of (2.18) it is clear that we have:
ny
Ax.~
= {(n, m)lm E~)
=~;
Ax.T={(n, m)lmET}=T;
because in the last every integer is a (number of a) pair. Suppose now that a ~ Ax. a
and a '" T. Let k be the least integer where k E a. Now k ~ (n, m) for some nand
m. If mEa, then (n, m) E a = Ax.a; hence mE a. But m ~ k and k is minimal;
therefore, m = k. But this is only possible if k = m = n = O. Suppose further a " land that I is the least integer where lEa. Now I = (i, j) with j E a and j ~ I. So j = I
and 1= j = i = O. This contradiction proves that a = ~ or a = T.
Equations (2.19)-(2.22) are definitions, and (2.23) is proved easily by
induction on i. Equation (2.24) is also a definition. To prove (2.25) we note thaI
571
'ES AS LADICES
{u,li E x} is continuous (even: distributive) in u and x. Thus, there is a continuous
function seq(u)(x) giving this value. What is required is to prove that it is
LAMBDA-definable. We see:
seq(u)(x) = {n E uolO EX}U{m E U{ui+di + 1 E x}13k.k + 1 EX}
=
X :0 Uo,
seq(AI.u,+t!(x -1):
that is, seq satisfies the fixed-point equation for S. Thus S ~seq.
other inclusion we argue by induction on i for:
To establish the
'rIx, uri EX=? u, l)x( u S~
This is easy by cases using what we are given about $ in (2.24); it implies that
seq ~ $. Note that:
AnEw.T=AnEW.u
iff 'Vn EW.T=: U.
For primitive recursive functions, even of several variables, there is no
trouble in transcribing into LAMBDA-notation any standard defin tion~
especially as we can use the abstraction operator An E w. If we recall that every Le.
set a has the form:
a = {mI3n.p(n) = m +1},
where p is primitive recursive, we then see that a = piT) -1. This means that
every Le. set is LAMBDA-definable.
Proof of Theorem 2.6. In case of a function of several variables, we remark:
hoAx, ... AXk_'.f(xo)(x,)· .. (Xk_l)
~{(no, ·
,(n, "m)" ')))!mE!(e",)(e",)'" (e",_,)}.
This makes the implication from (i) to Iii) obvious. Conversely, if a graph u is r.e.,
then from the definition of application we have:
mE u(e",)(e",)' .. te,,)
iff
Ino, In" (... , (n,_" m)"
')))E u,
which is Le. in m, no, nl,"': nk-!' Therefore (Sand (ii) are equivalent.
We have already proved that (ii) implies (iii). For the converse we have only
to show that all LAMBDA-definable sets are Le. For this argument we could take
advantage of the combinator theorem, (Theorem 2.4). Each of the six COmbinators are Le., and there is no problem of showing that if u and x are Le., then so
is u(x); because it is defined in such an elementary way with existential and
bounded universal number quantifiers and with membership in u and in x
occurring positively. Explicitly we have:
mE u(x)
~
iff
3e"
iff
3n 'rim < n[[m E e" implies m E xl and (n, m) E u].
x.(n, m) E u
For Section 3. For the proof of (3.1) we distinguish cases. In case x = y = 1-,
we note that condl 1-)( 1- I = 1- and 1- (1-) = 1-, so the equation checks in this case.
Recall:
cond(x) y ~Az.
:ox, y={ln, m)!mEle" :ox, y)}.
572
DANA ,')COTT
We can show 0 e' eond(x)(y), Note first 0 = (n, m) iff n = 0 = m; furthermore,
eo ~ ~ and 1 =0 x, Y = 1; but 0" 1. Also we have:
eond(x)(y)(O)=x
and
eond(r)(y)(J)= y;
so if either xi' 1 or y i' 1, then eond(x)(y) 'i' 1. In this case, eond(x)(y) must
contain positive elements. The result now follows.
Theorem 3.1 is obvious from the construction of G, because G(G) = 0 and
G(O)(O) = sue, and so the G(O)(i) give us all the other eombinators.
The primitive recursive funetions needed for (3.4)-(3.6) are standard. Equation (3.7) is a definto~
we rewrote it using the Y-()perato ~and
the proof of
Theorem 3.2 is easy by induction. There is also no difficulty with (3.8)-(3.12), The
idea of the proof of Theorem 3.3 is eontained in the statement of the theorem
itself. The proof of Theorem 3.4 is already outlined in the text.
Proof of Theorem 3.5. The argument is essentially the original one of
Myhill-Shepherdson, Suppose p is computable, total and extensional. Define:
q = {(j, mJlm E val(p(fin(j)))),
where fin is primitive recursivc l and for all JEW:
val(fin(})) = er
Certainly q ERE, and we will establish the theorem if we can prove "continuity":
val( p(n)) = U{val( p(fin(j) ))Ie, <; val( n)).
We proceed by contradiction. Suppose first we have a kE val(p(n)), where
ke'val(p(fin(j)) whenever e, <;val(n). Pick r to be a primitive recursive function
whose range is not recursive. Define s. primitive recursive, so that for all mEw:
val( s( m)) ~ (j E val(n Jim" Irt ill i '" ill.
The set val(n) must be infinite, because p is extensional, and if val(n) ~ e, ~
val(fin(j)), then ke' val( p(fin(j))) = val( p(n»). Note that val(s(m)), as a suhset of
the infinite set, is finite if m ;s in the;: range ()f r: otherwise it is equal to val(n).
Again by the extensionality of p we see that k E val!pls(m)) if and only if m IS not
in the range of r. But this puts an Le. condition on m equivalent to a non-r.e.
condition. which shows there is no such k.
For the second case suppose we have a ke'val(p(n), where for a suitahle
ej <; val(n) it is the case that k E val(p(fin(j))). Define:
t = Am
E
w.e, U Ival(mJ =0 val(n), val(n»).
We have:
t(mJ= {
e,
if val(m')
val(n)
if not.
= 1;
We choose u primnivL: fL:cursive, where:
val(u(m)) = tim).
By the chOice llf k, and by the extensionality of p, and by the fact that valin) i' e"
DATA TYPES AS LATTICES
573
we have:
k EVal(p(u(m)))
iff
tim) = e}
iff val(m)=.L
But this is impossible, since one side is Le. in m and the other is not by Theorem
3.4. As both cases lead to contradiction, continuity is established and the proof is
complete.
Proof of Theorem 3.6. Consider.a degree Deg(a). This set is closed under
application, because:
u(a)( v(a))
= S(u)(v )(a),
and S(u)(v) is Le. if both u and v are. Note that it also contains the element G;
hence, as a subalgebra, it is generated by a and G.
Let A be any finitely generated subalgebra with generators ab, ~a • ... , a~-l'
Consider the element a = cond«ab, a~,·
.. , a~-l»(G).
As in the proof of
Theorem 3.1, a generates A under application. It is then easy to see why
A = Deg(a).
Proof of Theorem 3.7. We first establish (3.16) and (3.17):
Lou
0
R
= Ax.L(u«O, x»))
= Ax.L«I, u, x»
= Ax.u(x).
u
0
v
0
R
= Ax.u(v«O, x)))
= Ax.u((J,
v, x»)
= Ax.u(v)(x)
= u(v).
Now starting with any u ERE, we write u = T, where T is formed from G by
application alone. By (3.17), we can write u in terms of G and R using only o. That
is, u belongs to a special subsemigroup. [n view of (3.16), we find that Ax.u(x)
belongs to that generated by R, Land G. But
RE n FUN ~ {Ax.u(x)!u ERE},
and so the theorem is proved.
For Section 4. The notion of a continuous latrice is due to Scott (1970/71)
and we shall not review all the facts here. One special feature of these lattices is
that the lattice operations of meet and join (n and U) are continuous (that is.
commute with directed sups). As topological spaces, they can be cbaracterized as
those To-spaces satisfying the extension theorem (which we proved for Pw in
Theorem 1.5).
Proof of Theorem 4.1. Consider a continuous function a. and let A =
{xix = a(x)}. By the fixed-point theorem (Theorem 1.4) we know that A is
nonempty and that it has a Ie "51 element under <;;. Certainly A is partially ordered
by £; further, A is closed under directed unions but not under arbitrary unions.
DANA
5H
scorr
That is, A is not a complete sublattice of Pw with regard to the lattice operations
of Pw, but it could be a complete lattice on its own-if we can show sups extst.
Thus, let S s:: A be an arbitrary subset of A By the fixed-point theorem, find the
least solution to the equation:
y=
U{X\XE S}U aryl.
Clearly x s y for all XES; and so x = a(x) s:: aryl, for all XES. This means that
y = a(y), and thus yEA. By construction, then, y is an upper bound to the
elements of S. Suppose Z E A is another upper bound for S. It will also satisfy the
above equation; thus y S z, and so y is the least upper bound. A partially ordered
set with sups also has infs, as is well known, and is a complete lattice.
Suppose that a is a retract. We can easily show that the fixed-point set A
(with the relative topology from Pw) satisfies the extension theorem. For assume
f: X -> A is continuous, and X S Y as a subspace. Now we can also regard
f: X -> Pw as continuous because A is a subspace of Pw. By Theorem 1.5 there is
an extension to a continuous {: Y -+ Pw. But then a 0 f: Y -+ A is the continuous
function we want for A, and the proof is complete.
The space of retracts. Let us define:
RET={a\ ~ oa),
the set of all retracts, which is a complete lattice in view of Theorem 4.1. It will be
proved to be not a retract itself by showing it is not a continuous lattice; in fact, the
meet operation on RET is not continuous on RET.
The proof was kindly communicated by Y. L. Ershov and rests on distinguishingsome extreme cases of retracts. Call a retract a nonexrensive if for all nonempty
finite sets x we have x~
a(x). Call a retract b finite if all its values are finite (i.e.,
beT) is finite). If a is nonextcnsive and b is finite. then Ershov notes that they are
"orthogonal" in RET in the sense that c = a n b = ~. The reason is that, since
c c;; b, it is finite; but c ~ a, too, so c(x) s; a(x) for all x. Because c is a retract. we
have c(x) = c(c(x» s a(c(x). As c(x) is finite and a is nonextensive, it follows
for all x.
that c(x) ~.L
This orthogonality :s unfortunate, because consider the finite retracts bn =
Ax. e•. We have here a directed set of retracts where U{b. In E w} = Ax. T = T. If n
were continuous, it would follow that for nonextensive a:
a =a
n
T~
a
nUlb.ln Ew}=U{a n
b.]nEw}= 1,
showing that there are no nontrivial such a. But this is not so.
Let « be a strict linear ordering of w in the order type of the rational
numbers. Define:
a(x) = {ml3n
E
X.m« n}.
We see at once that a is continuous; and, because« is transitive and dense, a is a
retract. Since « is irreflexive, it is the case for finite nonempty sets x that
max~
(x)'" a(x); hence, a is nonextensive. As afT) = T, we find a "'.L The proof
is complete.
Note that there are many transitive, dense, irreftexive relations on w, so there
are many nonextensive retracts. These retracts, like a above, are distributive. A
7
DATA TYPES AS LATTICES
575
nondistributive example is:
a':; {mI3n, n' E x.n« m« n'l.
Many other examples are possible.
Proof of Theorem 4.2. The relation (lE; is by tbe definition of retract reflexive
on RET; it is also obviously antisymmetric. To prove transitivity, suppose
a (lE; b (lE; c, then
a :; a 0 b == a 0 b 0 c = a 0 c.
Similarly, a = c 0 a. Note. by the way, that a ()<; b implies that the range of a is
included in that of b; but that the relationship a,; b does not imply this faCL The
relationship a ()<; b, however, is stronger than inclusion of ranges.
Proofs of Theorems 4.3-4.5. We will not give full details as all the parts of
these theorems are direct calculations. Consider by way of example Theorem
4.3(i). We find:
(a .... b) 0 (a .... b) = Au.b 0 (b
= Au.b
0
0
u 0 a) 0 a
u0 a
=QG--Job,
provided that a and b are retracts. A very similar computation would verify part
(iv), if one writes out the composition:
(a .... b') 0 (f .... f) 0 (b .... a')
and uses the equations:
f =b f a
0
0
and
r = b' r
0
0
a'.
The main point of the proof of Theorem 4.6 has already been given in the
texL
For Sections 5-7. Sufficient hints for proofs have been given in the texL
Appendix B. Acknowledgments and references. My greatest overall debt is
to the late Christopher Strachey, who provided not only the initial stimulus and
continuing encouragement, but also what may be termed the necessary irritation.
Not being a trained mathematician, he often assumed that various operations
made sense without looking too closely or rigorously at the details. This was
particularly the case with the A-calculus, which he used as freely as everyday
algebra. Having repeatedly and outspokenly condemned the A-calculus as a
formal system without clear mathematical foundations, it was up to me to provide
some alternative. The first suggestion was a typed system put forward in Scott
(1969) (unpUblished, but later developed as LCF by Robin Milner and his
collaborators). Experience with the type structure of function spaces, which had
come to my attention from work in recursion theory by Nerode, Platek and others.
soon convinced me that there were many more similar structures than might at
first be imagined. In particular. a vague idea about a space with a "dense" basis led
quickly to the more direct construction, by inverse limits, of function spaces of
"infinite" type that were very reasonable models of the classical "type-free"
576
DANA SCOTT
A-calculus (as well as many other calculi for other "reflexive domains). The details
Can be found in Scott (1971) and Scott (1973b). Algebra was justified, but the
work in doing so was tiring and the exact connections with computability were not
all that easy to describe.
In the meantime Plotkin (1972) contained suggestions for a "set-theoretical"
construction of models, but not much notice was taken of the plan at the time it
was cirCUlated-perhaps owing to a fairly sketchy presentation of the precise
semantics of the A-calculus. The present paper evolved particularly from the
project of making the connections with ordinary recursion theory easier to
comprehend, since a satisfactory theory of computability and programming
language semantics had to face this problem. The idea of using sets of integers for a
model was first put forward by the author at a meeting at Oberwolfach at Easter in
1973 and in a more definitive form at the Third Scandinavian Logic Symposium
shortly thereafter (see Scott (1975a) which is a preliminary and shorter version of
this paper). The author gave a report on the model at the Bristol Logic Colloquium in July 1973, but did not submit a paper for the proceedings. A series of
several lectures was presented at the Kiel Logic Colloquium in July 1974.
covering most of the present paper which was distributed as a pre print at the
meeting. The text (but unfortunately neither acknowledgments nor references)
was printed in the proceedings (Springer Lecture Notes in Mathematics, vol. 499).
In 1973 after experimentation with definitions somehow forced him into the
definition of the model, the author realized that it was essentially the same as
Plotkin's idea and, even more surprising, it was already implicit in a very precise
form in much earlier work by Myhill-ShepherdSllO (1955) and Friedberg-Rogers
(1959) (see also Rogers (1967)) on enumeration operators. What had happened
was that Plotkin had not made enough tie-up with recursion theory, and the
recursive people had nol seen 'he tie-up with A-calculus, even though they knew
that one could do a lot with such operators. Actually, if the author had taken his
own advice in 1971 (see Continuous lattices, Scott (1972a, end of § 2)), he would
have seen that many spaces have their own continuous-function spaces as
computable retracts, a fact which is just exactly the basis for the present construc-
tion; but instead he said: "it [the representation as a retract] does not seem to be of
too much help in proving theorems."
Over the years in work on Acalculus and programming language semantics.
personal contact and correspondence with a large number of people has been very
stimulating and helpful. I must mention particularly de Bakker. Barendregt,
Bekic, Blikle, Bohm, Curry, Egli, Engeler, Ershov, Goodman, Hyland, Kreisel,
Landin, Milne, Milner, Mosses, Nivat, Park, Plotkin, Reynolds, de Roever,
Smyth, Stay, Tang, Tennent, Wadsworth. (I apologize to those 1 have inadvertently left out of this lis!.) In the reference list a very imperfect attempt has been
made to collect references directly relevant to the topics of this paper as well as
pointers to related areas that may be of inspiration for future work. The list of
papers is undoubtedly incomplete, and inaccurate as well. but the author hopes it
may be of some use for those seeking orientation. It is a very vexing problem to
keep such references up to date. Some remarks toward references and acknow-
ledgments on the specific results in the various sections follow. Felipe Bracho
deserves special thanks for help in the preparation of the final manuscript and with
the reference lis!.
DATA TYPES AS LAITJCES
577
Section 1. The relevance of the "positive" or "weak" topology first came to
the author's attention through the work of Nerode (1959). Continuous functionals
were studied by Kleene and Platek and many other researchers in recursion
theory. Monotonicity was particularly stressed by Platek (1964). The graphs and
the definition of application are used in the same way by Plotkin (1972) and
Rogers (1967, see p. 147). The fixed-point theorem is very well-known. See, e.g.,
Tarski (1955). The extension theorem was formulated by the author, but it is very
similar to many results in point-set topology; it was used in a prominent way in
Scott (1972a) to characterize continuous lattices. The embedding theorem is
well-known; see, e.g., tech (1966).
Section 2. The language LAMBDA is due to the author. Note in particular
that Plotkin and Rogers do not define A-abstraction, even though they know of
the existence of many combinators and could have defined abstraction if anyone
had ever asked them. In particular, they understood about conversion in many
instances. The reduction and combinator theorems are well known from combinatory logic and can be found in any reference. The first recursion theorem is
basic to all of elementary recursion theory; what is new here is the adaptation of
David Park's proof (Park (l970c), unpublished) to the present model to show that
Curry's "paradoxical" combinator actually does the recursion. The definition of
computability and the definability theorem tie up the present theory with the older
theory of enumeration operators.
Section 3. The idea of reduction to a few combinators is an old one in
combinatory logic; the author only needed to find a small trick (formula (3.1»
which would take care of the arithmetical combinators. The ideas for the Godel
numbering and the proof of the second recursion theorem are standard, as is rhe
proof of the incompleteness theorem. It only looks a little different since we
combine arithmetic with the "type-free" combinators. The proof of the completeness theorem for definability (Theorem 3.5) is taken directly from MyhillShepherdson (1955). The author is indebted to Hyland for pointing this out. The
subalgebra theorem is an easy reformulation of talk about enumeration degrees:
for more information on such degrees consult Rogers (1967), Sasso (1975), and
also Gutteridge (1971). The area is underdeveloped as compared to Turing
degrees. Semigroups of combinators have been discussed by Church and Bohm.
Section 4. The notion of a ferracr is common in topology, butthe idea of using
them to define data types and of having a calculus of computable retracts is
original with the author. Of course the connection between lattices and fixed
points was known; more about lattices is to be found in Scott (1972a). The various
operations on retracts and the idea of using fixed-point equations to define
retracts recursively are due to the author. Applications to semantics were given in
Scott (1971) for flow diagrams, and this has been followed up by many people. in
particular Goguen, et al. (1975) and Reynolds (1974b).
Section 5. Algebraic lattices have been known for a long time (see Gratzer
(\968) and also closure operations (sec, e.g., Tarski (1930)). It was Per MartinLOf and Peter Hancock who suggested that they might form a "universe"; in
particular the construction of V is essentially due to them. The limit theorem is
due to the author.
Section 6. More information on the classification by notions in descriptive set
theory of various subsets can be found in the work of Tang who also makes
578
DANA SCOTT
connections with the work of Wadge. The various normal forms for the classes of
sets (e.g., Table 3) are due to the author.
Section 7. Functionality has been studied for some time in combinatory logic
(see, e.g., Hindley, et al. (1972) for an introduction). The author had the idea to
see what it all means in the models; there are, of course, connections going back to
Curry and Kleene, with functional interpretations of intuition istic logic (cf.
Theorem 7.3, which is well-known). The proof of Theorem 7.4 is due to Plotkin.
Appendix A. After the main body of the paper was written, Y. L. Ershov
solved the author's problem about the space of retracts. Ershov's proof is
presented after the discussion of the proof of Theorem 4.1 in this Appendix. Quite
independently Hosono and Sato (1975) found almost exactly the same proof.
Before corresponding with Ershov, the author was totally unaware of the connections with and the importance of Ershov's extensive work in "numeration" theory
(see citations in the reference list).
Appendix B. All defects are due to the author.
REFERENCES
L. AIELLO, M. AIELLO
AND R. W. WEYHRAUCH (1974),
The semantics of PASCAL in Let;
Artificial Intelligence Lab. Memo. AIM221, Stanford Uni\l., Stanford, Calif.
S. ALAGIC(1974), Caregorical theory of cree processing, CatcgoryTheory Applied wComputarion and
Control, E. Manes. ed., Unl'''. of Mass., pp. S{}9\).
M. A. ARBIB AND E. G. MANES (l974li). Fuzzy morpllisms in au/ornata theory, Category Theory
Applied to Computation and Control, E. Manes, ed., Uni ..... of Mass" pp. Y8105.
(1974b), Categorists' view ofau/ornata and systems, Catqwry Theory Applied 10 Computation
and Control, E. Manes, ed., Uni ..... of Mass., pp. 6279.
(lQ74c), Basic concepls (Jf category Eheory applicable f() compulation and con"ol. Category
Theory Applied to Computation and Control. E. Mane,>, ed., Uni\l. of Mass., pp. 241.
J. W. DE BAKKER (l971a), Recursive procedures, Mathematical Centre Tracts, \lnl. 24, Amsterdam.
{ 197 lb), Recursion, induction and symbol manipulal1on, hoc. MC25 Informatica Sympo~ium,
Mathematical Centre Tracb, '..o!. 38, AmstenJam.
J. W. DE BAKKER AND W. P. DE ROEVER (1972), A Calculus for Recursive Program Scl/emes, Proc.
IRIA Colloq. on Automata, NorlhHolJand, Amsterdam.
J. W. DE BAKKER AND D. SeOTI (1969), A theory of programs, Unpublished notes, IBM Seminar,
Vienna, 1969.
J. W. DE BAKKER (1969), Seman/in of Programmi,tg Languages. Advances in Information Systems
Science, \101. 2, Plenum Press, New York.
J. W. DE BAKKER ANn L. G. 1.. MEERTENS (1973), On rhe completeness of the inducrive assertIOn
method, Mathematical Centre Rep. IW 12/72, Amsterdam.
(1974), Fixed points in programming /heory, Foundations of COIpputer Science, J. W. de
Bakker, ed., Mathematical Centre Tract, vat. 63, Amsterdam.
H. P. BARENDREGT (1971). Some extensional/erm models for combinatory logicsa,u} " -calculi. Ph.D.
thesis, Uni ..... ot Utrecht.
H. BEKIC (l97IJ, Towards a malhematicallheory of proce,ueJ, Tech. Rep. TR 25.125. IBM Lab.,
Vienna.
(1969), Definable operatlOn~
in general a{Kebra, and the theory of auromata and flowcharts,
Rep., IBM Lah., Vienna.
H. BEKIC' £1' AL. (1974), A formal de/inlflon of a PLj J subset, Parts / and /l, Tech. Rep. TR 25.]39,
IBM Lah., Vienna.
R. S. BIRD (1974), Unsolvability of Ihe mciUSlOn problem for DBS scllemas, Rep. RCS22, Dept. of
Computer Sci., Uni\l. of Reading.
G. BIRKHOFF (1967). Lattice Theory. 3rd cd., Colloquium Puhlicarlons, . . 01. 25, Amencan
Mathemalic<ll Society, Pro.. . idence, R.l.
.~
.
DATA PfrE'.. S AS LATTICES
579
A-BLlKLE (1971), Algorithmically definabJ' funcllons: A contribu.tion towards the semantics of
programming languages, s~oitaresiD
Math. Rozprawy MaL, 85.
- - (1972), Equational languages, Information Control, pp. 134-147.
- - t 197 Jj, An algebraic approach 10 prOgfQrnJ and their computation.5, Proc. Symp. and Summer
School on the Mathematical Found(\tl(::ms of Computer Sci., High ,s~j[taT
Czechoslovakia.
A. BUKLE AND A. MAZURKIEWICZ (19~),
An algebraic approach 10 the theory of programs,
algorithms, languages and recursiveness, Proe. Internal. Sympos. and Summer School on the
Mathematical Foundations of Computer Sci., Warsaw-Jablonna,
A. BUKLE (1974;, Proving programs by sets of computarions, Proe. Jrd Symp. on the Malhematicaf
Foundation of Computer Sci., Jadwisin, Poland; Lecture Notes in Computer Sclence,
Springer-Verlag, Berlin, 1974.
C. BOHM (1968), AJcune proprieta delle forme {3-Tj-normal Nel A-K-calcolo. Consiglio Nazionale del e
Richerche: Publicazione 696 dell' Instituto per Ie Applicazioni del Calcolo. Roma.
- - - (1966), The CUCH as a formal and descriptive language. Formal language Description
Languages for Computer Programming, T. B. Steel, ed., North-Holland, Amsterdam, pp.
179-197.
- - - (1975), A-Calculus and computer SClence theory, Proc. Rome Symp., March 1975, Lecture
Notes in Computer Science, vol. 37, Springer-Verlag, Berlin.
R. M, BURSTALL (1972a), Some techniques for proving the correcmess of programs which alter data
structures, Machine Intelligence vol. 7, B. Meltzer and D. Michie, eds., Edinburgh, pp. 23-50.
- - (1969), Proving properties of programs by structural indW:tion, Comput. J., 12, pp. 41-48.
- - (1972b), An algebraic description of programs with asserrions. I-'t?rification and simulation. Proc.
ACM Con!. on Proving Assertions about Programs, Las Cruces, New Mexico, pp. 7-14.
R. BURSTALL AND 1. W. THATCHER (1974), The algebraic theory of recursive program schemes,
Category Theory Applied to Computation and Conlrol, E. Manes, ed., Univ. of Mass.. pp.
154-160.
J. M. CAOIOU (1973), Recursive definitions of partial functions and their computations, Ph,D. thesis,
Computer Sci. Dept., Stanford Univ., Stanford, Calif.
J. M. CADlOU AND J. J. LEVY (1973). Mechanizable proofs about parallel processes, Presented at the
14th Ann. Symp. on SWitching and Automata Theory.
J.. W. CASE (1971), Enumeralion reducibility and the partial degrees, Ann. Math. Logic, 2, pp.
419-440.
E. tECH (1966), Topological Spaces, Prague.
A. K. CHANDRA (1974), Degrees of translatability and canonlCaf frmns in program schemas part J,
IBM Res. Rep. RC4733, Yorktown Heights, N.Y.
- - (l974a), The Power of Parallelism and Nondeterminism in Programming. IBM Res. Rep.
RC4776, Yorktown Heights, N Y.
_
- - (1974b), Generalized program schemas, IBM Res. Rep. RC4827. Yorktown Heights, N.Y.
A. K. CHANDRA AND Z, MANNA (1973), On the power of programmi;;g features, ArtIfiCial
Intelligence Memo. AIM-185, Stanford Univ" Stanford, Calif.
A. CHURCH (1951), The calculi of lambda-conversion, Annals of Mathematical Studies, vol. 6,
Princeton University Press, Prineeton, N.J.
M. J. CLINT (1972), Program proving: Co-roulines, Acta Informatica, 2, pp. 5()....63.
R. C. CONSTABLE AND D. GRIES (1972), On dasses of program schemata, this Journal. I, pp.
66-118.
D. C. COOPER (1966), The equ.ivalence of certain COmpUlal/ons, Com put. L 9, pp. 45-52.
B. COURCELLE, G. KAHN AND 1. VUtLLEMIN (1974), Afgorithmesd'equivalince pour des equatlOlls
recursil-'e simples, Proc. 2nd Colloq. on Automata Lal1gua e.~
and Programming, Saarhrucken; Lecture Notes m Computer SCience, SpringerVerlag, Berlin, pp. 213220.
B. COURCELLE AND J. VUILLEMIN (1974). Completude d'un systeme formel pour des equatlOn.5
~evis'uce
.Hmples, CompteRendu du Colloque de Paris.
(1 Y74), Sem.antlcs and aXlOmalics of a ,Hmple recuwve language. Rapport laboria. vol. 60,
IRIA: Also: 6lh Ann. ACM Symp. on the Theory of Computmg, SealIle, Washington,
H. B. CURRY AND R. FfOYS (19581. Combinatory Logic. vol. I, NnrlhHolland. Amsterdam.
H. n. CURRY, J. R HINOI.EY AND J. SELDIN (1971 J, Combinatory Logl£", vol. 2, NorthHolland.
Amsterdam
M. ~IVA)[
(1958), Computahllity and Unso{vahdlry. McfirawHill. New York.
-'so
DA,'iA SCOTr
E. W. DUK<)TRA 111./741, A simple axwmatlc basIS lor programmmg language COI1SlrllC/S. Indag. Mnth ,
J(l,
pp. I-I),
- - - i Jl)7'iI, A VISCll,lIlI(' oj Programming. PrentIce-Hail, Englewood Cliffs, N.J., to appear.
, - - - (1 }7~1.
NO{f.1 all .l"Irucl1tred programmtnK. Structural Pro!!.rammmg, C. A R. H()i1TC, L W.
DiJkstra and O. J Dahl. Academic Pr~ s,
~e\.V
York.
J. DONAHUI·. (]474), Scoffer)' Child 'I' Guide No.1, Dept. of Comput. Sci .. Univ. of Toronto.
B. N. G~)(UD
(I (74), A high leFel. variable fret' calcillus lor recursive prowamltllng. Compllt. Sci.
Oept. Rep. CS 74 03, Unlv. of Waterloo.
I
S. EILENBEIH, AND C C. ELGOT (1970), RecursIVeness, AeademlC Press, New York.
- - - t1974J, Automata, Languages Qrld Machines, vol. A, Academic Press, New York (vol B in
Ls~.crp
C. C. ELGOT ( 1 Y7 [ l, AlgebraiC theoflcs and program schemes, Symposium on Semantics of Algorith-
E. Engeler. ed., Lecture Notes in Mathematics. vol. l8H, SpringerVerl<'lg,
mic Langu e~,
New York.
(lY67), AbstraCl al1!,omhm.\ and dwgram closure, IBM Res. R;,;p. RC 17.'10, Yorklown Heights,
N.Y.
J. D. RUTLEDGE (IY661, Mulllple COn/rol computer models. IBM
Yorktown Heights, N.Y.
M. H. \ ;\t'< f:::'fDl·."' A~D
R. A. KO\VALSKI IIY7lJ. The semantics 0/ predicate fOKIC as (l
fJfoWamminR fanRlww. Memo. no. 83 IM1PR" I 0.1), Dept of Machine Intelligence, lIni\. <If
Edinburgh
E ENGFLEK ( 1Y68), Formal {01t1!,lfflgl'.I: Automata and .l'lfIICfUft'5_I.cctures In Advanced Mathematics, Markham.
_. (1~74),
AlgorithmIc Logu', FOImdalionso/Compurer Science. J. W. de Bakker, l'd., Mathemallcal Centn: Tract MeT 63, .madret~mA
- (1 Y6 7), AIXfJruhm/{ properlie.l" 0/ S/fIIC/lIres. Ma!hematic.. .d Sy..,tell1s Theory, 1, pp. 1H.1-j Y5.
J. El'.GELFREJT (1974), .S'imple program schemes and formal ngua e~,
Springer Lecture NOle~
In
CHnpUler Science, vol. 20.
J. E!'<GEI FREIT AND E. M. SCHMIDT (IY7.'i), 10 and 01, DAJMI PB47, Matemillisk fn~(ltUL
Aarhu~
Univer"ltet, Datalogisk Afdeltng, Dennl<lrk.
J7'.I t .. ERSHOv ( 1 47 I J, Complaahle l111mcratIOIlS{)[ morpllHms, Algebra and Logic. 10, pp. 2... 7 JO,~.
f Iln .:;1), ,~.lIJ("f·!h/Pl(
of /illite '."pcs, ltwJ . I J, pp ,67D7
(l n~h
I, f:v/:'f)'ldler" dt'lined (loral) COflliwIV14S /uncrlOna!s. Algebra and Logic, II, pp.
C. C.
EL.GOT, A. ROBINSON AND
Res. Rep. RC
16~2,
h5fi-6(15.
Illllu'es and A -spares, Dodd. Acad Nauk USSR, 207, pp. 5n-)~6.
(I Y72e), Theory of A-.woce.\, Algebra and Logic, I~.
pp . .16Y-916.
(1971), {!leone d.'r .\'t/!llef/l·f/urgen. \leo [)culschcr Verll:lg ocr Wisscnschaften. Her/lIl.
- !
1Y72dJ. S~tWlIifJ(
A. E. FISCHER A:.'D M. J. FISCHER (11)7.1), Mode modt~/es
as representations o/domalns, Pr(IC. ACM
Symp on Prinelples of Prograrnmmg Languages. Bostnn, pp. 134143.
Cflnf. Proving Assertions about
M. J FISl"tHR r ]lOlL, l-ambda UlfclllllS sehemma, Proc. AC~'1
Prograrll\. La~
Cruces, N.M., pp. [04IOY.
R. W. (-L()Yf) (IYh7J, AI'slgnlflg mearl/llgs to proWllfnS, Pmc. Symp. in App!. Math .. ml 1Y,
Mathematical Aspec(s of Computer Snence, J. T. Schwartz, ed., pp. 3341.
1\1. ,\1. FOKKI..... (i'i 11(74). Inductive A.1"Sl'ftlOfl Pal/ems for RecurSlIJl' Procedures. CompteRenUll de
Colloquc de Paris.
Z.
R ,\1. FKIEDBER(j AND H. R. ROGER.S (19541, RedlKlhduy and completeness for sets ,sre~.tnJfo
Math. Lngik Grunlagen Math., 5, pp, [17125.
H FHU:lJr>.lA:,,< 11971), /\{R0rllhmw proadure.\, generalized TtUUlg Ilgofrhm~·.
(Jnd elemen/m} r('curpp_ .1fJ 1- 38Y.
sum (heory. LogIC ColIoquium 1Y69, NorthHolland, Am~terdam,
S. .J. D"I\,.l~IAG
/\:"<D D, C {(ICKIIAM (I Y7~),
TranslattnR r':CUfSlOlI ~em hc~
ltlfO program schemes,
A~serl ()n"
"hnul Pr')[·:r;lm~.
L;l~
Cruc('~,
N.M ,pp, ,113 .<)()
Prlll' ,\C\1 ('nnf on Pr(\l' n~
If t1~I:j(
·"'L f /y(,fJ), l.alflC£' Theon', Harrap .
.1. A. (JO(ll!FN (l')07). L-jtazv \'I:'T.\ • .1. Math. Anal. App!., IX. pp [45174
----- (J4WI, Categof/l'.\ oj I--Iels, Bull. :\mcr Malh Soc.. 7':1. pp. 514-,6n
----- ( I Y72 J. Oil homomorphtlms. wnllilltioll'·. (nrr('( 1IJeH. 'IlIhrollliflt:\' and lerrmntlllOlJ [or proKfIlms
ami pmgrllln wJl<'/Ilt'l. Prl'l' 1_11h If·El· ('on1 nl1 '.fl1 " lW~
,lnd AUlomara 1l~\fY,
pp
52-(,1,
DATA TYPES AS LATrinES
SRI
- - (1974), Seman/lcs 0/ computatIOn, Category Theory Applied to Computation and Control, E.
Manes, ed., Univ. of Nlass., pp. 234-249.
J. A. GOGllEN ET At .. (1975), Initial algebra semantics, IBM Res. Rep. RC 524.1, )'"ork(own Heights,
N.Y.
M. J. C. GORDON ([l}73al. Mode's. of pure USP, Experimental Programming Rep. 31, School of
EtaluatlOn and £lellO/arion of
ArtIficial I nleiligence, Univ. o( Edinburgh. {Also Ph.D, the~ls,
pure LISP programs: A work.ed example in semantlO.l
---(]97Jb}, An extendt!d absrract of "Models of pure uJP"' Memo. SAI-RM-7, School of
Artificial Intelligence, Umv. of Edinhurgh.
- - - (\975a), Operational Reasoning and denotational semanflCS, Artlnclal Intelligence Memo
204, Stanford Univ., Stanford, Calif.
- - - (1975b), Toward.\· a seman/lc theory uf dynamic bindingl Artificial Intelligence Memo. 265,
Stanford Univ., Stanford, Calif.
G. GRATZER (19681. Ulliversal Algebra, Van Nostrand, New York.
1. GUESSARIAN (1974). Sur une re£lucrion des schemas de programmes polyadiques a de.~
schemas
monadiques eI ses applications, Compte- Rendu de Colloque de Pans.
L. GU"n"ERIDGE (1971J, Some Results on Enumeration RedUcibility, Ph.D, dl~sertaion,
Simon Fraser
Univ., Burnahy, B.c., Canada.
J, R. .Y ELD~IH
B. LFRCHER AND J. P. SELDIN (1972), IntroduOlOn 10 comblnalOry luglc. London
Mathematical Society Lecture Note Series, vol. 7, Camhndge Univer<;ily Press. Camhridge,
England.
J. R HINDLEY AND G. MITSCHKE (1975), Some remarksabolll Ihe connectlOn.1 betl't'eell (Ombinarory
logic and axiomatiC recursion theory, Preprint 203. Fachbereich Mathematik, Techmsche
Hochschule Darmstadt.
P. HITCHCOCK (1974), An approach to formal reasoning about programs, Ph.D. thesis, Umv. of
Warwick, England.
P. HITCHCOCK AND D. M. R. PARK (1972), Induction rules and proofs of terminatIOn. Proc.
Colloques tRIA, Theorie des Automates des Languages eC de la Programmation.
C A. K HOARE (1969), An axiomatic baJis of computer programming, Comm. ACM. J2, pp.
576-580,583.
- - (197Ia). Prouf of a program: f1ND, [bid., 14, pp. 39-45.
---((97tb), P,oCl'd fl'~
and paramelers: A'I aXIOmatic approach, Sympo~lu
on SemantIcs of
Programmmg Languages, E. Engeler, ed., Lecture Notes In MathematiCS. \-01. 18H. SprmgcrVerlag, Ncw York, pp. 102116.
(1972), Noles Of! daw srructuring, Structured Programmingj C A. R. Hoare, E. W. Dljkstra and
O. J_ Dahl, Academic Prcss, New York.
e. A. R. HOARL AND P. LAL'L:R (1974), Consistent and complemell(ar} !"'mal theorlcs or the
3, pp. 135 I ,')3.
semantics of programming languagn, Atta lnform~tica.
C. A. R. HOARE AND N. WIRTH (1972J, An axiuf!1atic definftlOn of the ~lmargup
language
PASCAL Bericht der Fachgruppe ComputerWissensdlaften 6. Eldenossischc Technj~ e
Hiichsehule, Zurich.
C. HOSONO AND M. SATO (1975), A solution 10 Scott's problem: "Do (h,' retracts m Pw (orm a
continuous latticeT. Research Inst. for Mathematical Sci., Kyoto (prepnnt).
G. HOTZ( 196h), Emdeurigketl und Mehrdeutigkeitformaler Spraehen, Electron. Inlormationsl't'rarbeit,
Kybernetik (Berlin), 2, pp, 235·246.
J. M. E. HYLAND (In5a), Recursion theor.)' on the epun/able !undwna/s, D. Phil. ,~Ieh!
Oxford
Unl\,., OxrorJ, England.
( In5h), A sun-'ey of some useful partial order relations in lerms oI rhe lambda calmlwi. Proc.
Conf. on A Cukulus and Computer Science Theory, Rome, pp. ,\)39.".
- - - ([0 appear). A ,\ rlltactlc rharQderi.=alion of the equalit} In ,\Ome modell lor lht'lambda calculus.
J. London \.lalh. SO(.
Y. I. lAM)\" (1970i. 7111' (uglcal scheme of afgofllhms, Problem" III C~herl c l(\,
vol. I. Pergamon
Pres~,
New Yt)[!I.
S. IG:\R:\'ifll 119721, :\dmi,\·.\-ibilily o{ fixed pOInt IIldUdlOlI I!I Itrs( order (/~o{
o! (fred (h,/flt:~.
ArtltiClal Inleillgellce tvkmo. AIMloX, ('nmpukr Su. Dept. ~tanhl]'d
\·nll,. St.Jnl\Jrd.
( ·altf.
582
DANA SCOTT
K. INDERMARK (1974), G/ejdwngsdefinieroork.eil jtt Relaru:ma!slliK.lUrefl. Habilitationsschnft.
Mathematlsch Naturwissen-s.chaftlichen Fakultat der Rheinischen Freidrich-Wiihelms·
Universalal, Bonn, W. Germany_
C B. JONES (197-J), MathematICal semanlics of golD: Exit jormulalWfI and its 'dation to contmuattons,
preprrnl.
G. KAHN (1973), A preliminary rheory of p{ualJel programs. Rapport Laboria lRIA.
D. M. KAPI.AN (1969), Regular expressions and the equivalence of programs, ,. Com put. System Sci.,
3,pp.361-385.
'
R. M. KARP AND R. E. MILL.ER. (1969), Parallel program schemata, Ibid., 3, pp. 147-195.
D. J. KFOURY (1972), Companl1g algebraic structures up 10 algorithmic equivalence, Automata,
Languages and Programming, M. NivaL ed .. North-Holland, Ams!erdam, pp. 253-263.
~-
(J 974 J, Translatability of schemas over restricted interpretations, 1. Comput. System Sci., 8, pp.
387-408.
S. C. Kl.EENE (l950), lntroduchon to Metamathematics, Van Nostrand, New York.
B. KNASTER (1928), Un rheoreme sur les foncrions d'ensembles, Ann. Soc. Polon. de Math., 8, pp.
133-134.
P.1. LANDIN (1964), The mechanical evaluation of expressions, Comput. J. 6, pp. 308-320.
- - - (1965), A c~reslxmdnhtw
ALGOL 60and Church's lambda notation, Comm. ACM, 8,
pp.
.10 -~8
--(I966a), A A-Calculus approach, Advances in Programming and Non-numerical Computation, L. Fox, ed., Pergamon Press, New York, pp. 971·41.
(19Mb), The next 700 programmlllg languages. Comm. ACM, 9. pp. 157164.
(1966a). A formal description of ALGOL 60. Formal Language Description Languages for
Computer Programming, 1'. B. Steel, ed .. NorthHolland, Amsterdam, pp. 266294.
(1969J. A program/machine symmetric automata theory. Machine intelligence, vol. 5, B.
Meltzer and D. MIchie. eds., Edinburgh University Press, pp. 99-120.
P. J. LANDIN AND R. M. BURSTALL (1969), Programs and their proOfs: An algebraic approach,
Machine [ntelligence, vol. 4, American Elsevier, New York, pp. 1744.
1. LESZCZYKOWSKI (197 (), A theorem on resolVing equations in the space of languages, Bull. Acad.
Polon. Sci. ser. Sci. Math. Astronom. Phys., 19, pp. 967970.
C. H. LEWIS ANU B K ROSF.N (J 97374), Recursively defined dara lypes. Parts I and If. IBM Res.
Reps. RC 4429 (1973). RC 4713 (1974), Yorkmwn Heighls, N.Y.
B. LISKOV AND S. ZII..LES (1973), An approach to abstraction computation structures, Group \lemo
88, Project MAC, Mass. Inst. of Tech., Cambridge. Mass.
D. LUCK HAM, D. M. R. PARK AND M. PATERSON (1970), On formalized romputer programs. J.
Compul. System Sci., 4, pp. 220249.
S. MAt "'ANE 11(72), CalegorIes for the Workmg Marhemalit:lan, S~)1lger-Vja,
New York.
E. MANES (I974), Caregory Theory Applied 10 Computation and Contro~
Proc. 1st Internal. Symp.
Math. Dept. and the Dept. of Computer and Information Sd., Univ. Mass., Amherst. Also:
Lecture Notes in Computer Science, vol. 26, Sprmger Verlag, New York.
Z. MANNA (1969). The correctness of programs, J. Comput. System Sci., 3, pp. 119127.
(1974), Mathematical Theory of Computation, McGraw·Hill, New York.
Z. MANNA A,.... D J. M. CADIOU (1972), Recursive definitions of partial functions and their compulOtions, Proc. ACMConf. on Proving Assertions about Programs, Las Cruces, N.M., pp. 5865.
Z, MANNA AND J. MCCARTHY (1970), Properties of programs and partial function logic, Machine
Intelligence 5. B. Meltzer and D. Michie, eds., Edinburgh University Press, pp. 2738.
Z. MANNA, Z. NESS AND J. VUILLEMIN (1972), Inductive methods for proving properties of programs.
Proc. ACM Cont. on Proving Assertions about Programs, Las Cruces, N.M .. pp. 2750.
Z. MANNA AND A. PNUEU (1970), Formalization of properties of functional programs. J. .cos~A
Comput. Mach .. 17, rr. 555569.
~( I(72), AXIOmatiC approach fo total correclneJS o/programs, Artificial Intelligence Lab. Memo.
AIM210, Stanford Univ., Stanford, Calif
Z. MANNA AND J. VUIU"EMIN (1972). FixptJlflt approach to the theory of computation, Comm. ACM.
15, pp. 52R-536.
G. MARKOWSKY (1974), Categon s fcha/1f-com;X~t p Jset5,
RC 5 100, Comput. Sci. Dept. IBM T. J.
Watson Research Center, Yorktown Heights, N.Y.
DATA TYPES AS LATTICES
583
- - - (1974), Chain-complere posers and directed sets with applications, RC 5024, IBM T. J. Watson
Research Center, Yorktown Heights, N.Y
A. MAZURKIEWICZ (1973), Prot'ing properties of processes, PRACE CO PAN-CC PAS Reports, vol.
134, Warsaw,
- - - (1971), Provingalgorilhms by tail functions, Working Papcr far IFlP WG2.2, Feb. 1970. Smce
published in: Information and Control, 18 (1971), pp, 220-226.
J. MCCARTHY (1961a), A hasis for a mathematical theory of computafJOn. Computer Programming
and Formal Systems, D. Braffon and D. l-iirshberg, -eds., North·Halland, Amslerdam,
pp_ 37-70 __
- - (1962), The LISP 1,5 Programmers' Manual, MIT Press, Cambridge, Mass.
- - - (l963b), Towards a mathemtlticalscience of compuration, Information Processing 1962, Proc.
IFIP Congress 1962, C. M. Pap pie worth, ed" North-Holland, Amsterdam, pp, 21-28.
- - - (1966), A formal description of a subset of ALGOL, For'llaJ Language Description Langu e~
for Computer Programming, R. B. Steel, ed., NOrlh-Holland, Amsterdam, pp. 1-12
J. McCARTHY AND J. PAINTER (1967), Correctness of a computer for arithmetic expressions,
Mathematical Aspects of Computer Science. J, T. Schwartz, ed., Proc. of a Symposium in
Applied Mathematics, vol. 19, pp. 33-41.
R. E. MILNE (1974), The formal semantics of computer languages and the" implemenrarion.t. Ph.D.
thesis, Cambridge Univ., Cambridge, England. [Also: Techmcal Monograph PRG-13.
OXford Univ, Computing Lab., Programming Research Group].
R. MILNER (1972), ImpIemefltation and Application of Scott's Logic for Computable Functions, Proe.
ACM ConL. Las Cruces, N.M., pp. 1--6,
- - (l973), Models of LCF, Artificial Intelligence Memo. AIM-186, Camputer Sci. Dept.,
Stanford Umv., Stanford, Calif.
- - - ( 1969), Program schemes and recurswefunctwn theory, Machine Intelligence 5. B. Mellzer and
D. Michie, eds .. Edinburgh University Press, pp. 39-58.
- - - (1970a), Algebraic theory of computable polyadic functions, Computer Sci. Memo., vol. 12,
University College. Swansea.
- - - (l970b), Equit>alences on program schemes. J. Comput. System Sci., 4, pp. 205-219.
R. MILNER AND R. WEYHRAUCH (1972), ProLljng compiler correctness in a mechanized logic.
Machine [ntelligence, 7, pp. 51-72.
R. MILNER (l973a), An approach fa rhe semanncs of parallel programs. Proc. Com'gno dl
Informatica Teorica, lt1stllulO di Elaboraziot1e delle Inlormaziot1e, Pisa, Italy.
- - - (1973b), Processes: A mathematical model of computing agents, Proc. Colloq in Mathematical
Logic, Bristol, England.
F. LOCKWOOD MORRIS (1973), Advice on structuring compilers and proving [hem correct. Proc.
SIGACTjSIGPLAN Symp. on Principles of Programming Language.." Roslon, pp. j 44-152.
- - - (1970.\, The f1ext 700 programming language descrIptions,. CompUler Center. Univ. of Essex
(typescript).
- - - (1972), Correctneu of translatIOns of programming languagf'J. Computer Sci. Memo. CS
72·3m, Stanford Univ .. Stanford, Calif.
J. H. MORRIS (1968), A-calculus models of programming languages, Ph.D. the~I,
Sloan School of
Managemenl, MIT MAC Reprint TR-57, Mass. It1St.
Tech., Cambridge, Mass.
- - - (971), Another recurSiOtI induction principle. Comm. AcM, 14. pp. 351-354.
---(1973). Types are nol sets. Proc. ACM Symp. on Principle of Programmmg Languages,
Baston, pp. 120-124.
- - (1972). A correctness proof using rf'cursively defined functions. Formal Semantics or Programming Languages, R. Ruslin. ed., PrenticeHall, Englewood Clif.~,
N.J .. pp. ] 07224.
J. MORRIS AND R NAKAJIMA (1973), Mechanical characrerisarjOfI of the partw.f order in lat/Jce
models of A-calculus, Tech. Rep. 18, Umv. of Calif.. Berkeley.
P. D. Mnss!"s 1]974). The mathematical ~emantlcs
of ALGOL 60, Tech. \1onngrarh PRG12.
Oxford Um .... Computing Lab., Programmmg Re~ arch
Group.
. (1975a). The semantics of semantic equaIJons, MathematIcal FoundatIOns or Computer
SClcnce, Goos and Harlmni<;~
ed."" Lecture Notes in Computer Scienre. vol. 2x. SpnngcrVerlag. New York, rr. 4()9··422.
(147,'ibl. Mathematical semantics and complier generatidn, ThesIs, Oxford Un IV., OXford.
Enghlnd.
or
DANA "COT]
J. MYHILL AND J. C. SI-H.PHlRD:'>OI'. \ lY5S), E/TedlL'f' O!XT(illOnS 0/1 partial re,unit'e
film/WI/I,
L
:v1ath. Lllglk GrunJbgen Math .. 1, pp, 310--317.
R. NAKAJIMA ( I tJ7 5" In/illlli' norma!{orms!()f A-calculus, A -Calculus and Computer Science Theory,
C. Bllhm, L·J .. Sprloger-Valag, Herlin, pp. ">82
A. NERODE (1959), Samf' SWill' 'ipan's and reumion theory. Du,,;;: Math. L 26, pp 397-406.
M, ~IVi\l
11(72), Lan1jllagt'\ A/~i'bflque5
5/lr If' Magma Llhre f'/ Semallllque de~
Schemes ele
Programmes, Proc !RIA Symposium 00 AUfomata Formal Language" and Pro!!rammJ11g.
North-Holland, Amq;;:rdam,
D, C. OPPEN (I W7SJ, Onlogil and program verificalion, Tech. Rep. ~2,
Dl.'pt. Computer SCI .. Univ of
Toronto
D. M R. PARK ( I Y70<.J), rll:poinl 'Wlilc/ion and prooh' o!progr(i/n propenies. Machine Intclligenu:, 5.
B. MeHzel ClnJ D, .\lichie. eJ..... , Amencan E[sevlcr, New York, pp, 5Y-n.
- - - (19700). Nores on a formalism for reasf/ni/lj; aholll 5chemes, Univ. of Warwick, unpublJ.\hcd
notl.'s.
InOc). Tire ,. cOmhlflalOr SO)/(.\ lambela -caleuills !n,)dels, Untv. of Warn'lck, unpub!J5hcd
ndtes.
---(lY70J), Finilene.l"s IS Mu-inejfahle. Theory of ComputalhlO Repan, No.3, Dept d
Computef Sci., lImv, 01 W<tfwlck ([LJ74),
M. S. PATERSON ([963). Program SChemu.fa, Machine Inldligence, J, D, MIChIC, ell., Amcflcan
Elscvier, New Yor", pp. 1<.J-J2,
M. S, PATERSON A:-.r> C. S. HU'o"lTT (IlJ70), Comparaliue \'Chemarology. Rewrd of ProJecr .1I,,1AC
--- ( J
(·nnt".
R.
(j.
1m ('11Ik'(Ufl:l\(
Sy.\tcrn~
and P.:Jr,llkl Cnmputallon,
As oei~t ()n
for
Cl)J lputHl~
Mi1ehinery, New York, pp. 11911
PLATFK (l9fi4), New foulldation.1 /N re(wsio!J Iheory. TheSIS. Stanford Univ., Stanl'orJ, (alli.
unpublished.
D. PU.JT"-lN (]LJ72), A 5t:'f-lheorel/(al dejin/IIOIl f~l application, Memo. MIP-R-LJ5. Schn\Jl L)t
Artifieiallnlelligence, Unlvcrs.lty of Edinburgh.
- - - (1 1173<1), The A -calculus is llJ-lIlcomple1t', Res. Memo. SAI-RM-2, S<.:hool of ArtifiCIal Intdhgcnct:. Ulliv. uf EJlnburgh.
------ (197101. LalllhJIl-rJeliniihlbly and !lJj;ICll{ relullOns. Memo. SAl RM-..f. ,"ichool uf Aruhclal
InrcIligencc, Unl\,. nf Edmollrgh .
._ (1 In _l,l·l. ( al! hI" /lame, (·all-by-L,,.llIl' ,.1ll1 rl1<' ,~A
ali lIlIl." J. .~eR
Memo SAIR\tI", ~<'h lOI
of ArtIlici'tllntclligclll.:c. Univ. df LJinburgh.
(IY7il, A pOl'.welomal/l crlll.Wl/cllO/l. Dept. 01 r\rtifiCial Intelligence Re\ Rep. 3. UnlV nj
Edinourgh.
H. R ..\SIOWA (197;\1. On IV' ·ullued algomhnllc IOj;IC wid rdared pmhlems. Supplemt:'nl to Pm",.
Symp. ~lI d
SUffilllL; Sc!](Hl) 11I1 1 .~ilj nr'~h1 '
~l! ( liJnuo'l
of ('omrult:r Sci., HIg.h 'Idr<l~,
Cll'chosJ{)\ ai~l<
p IC\IIl.lTS (I 07Sa), The m'erlvped !o/llhd(/ calwlus. Internef 13"::nchl Nr,. 2, lnstitut fUr Informatlk,
Ulllvcrsitiir K<:Irl!'.fuhe
-- - I J Y7 'ibl. !lIWU}dN! 1I }del~'
01"111<-' Ol'I'r'vrJed hllllf}(ll.1-ca!culll.l, I nll'rller BCfl",hl !'r. :l. J mlllUl
fur Informatlk, Umvcrsitat Kalls.ruh.....
R. REDIF;.)OWSKI (I \)72), The Iheory of gOleral evenrs and I!J applicalion co parallel programmmg,
T.P 18.220 lOM Nordic Laboratory. Sweden
J. C. REYNOLDS ([<.J6Yl. Gedanken. A Simple T,vpdes5 Lallguage, Reprml 7fJ2L Argonne Natjonul
Laoor<.Jlory. Argonne, Ill.
U 972al, DefinituJrll.1( /nterprela5 for highl'r order programmmg languuge,\'. Proc. ACM 25th
R.
N:Jl ConL, 130'({)J1, \01. 2, pr 717-740.
_ ...) 1<.J720). Norn 011 ,I laf i( ~lhe !r lic
appror/ch l(j the 'heor\' of compll//l(IOIl, ~metsyS
anJ
Infonn<:ltlon Sci Derl Syr:Jcu"e Umv .. Svral'u~,
N.Y.
(to appe;ul. Towardl' (/ [!leorv of Iype \'lfueture. Cqlloq on P[()Fram ln~
Pan.. . , April ]1;74
Lc tl ~'
(197'+,11,
.'lutc" 111 (omputer SClenCL:, Srmllgl'rVerlag..lkdlll
Oil 'he
re!1.1110l1 /lrlk'('I'tl dirrd 11m) CIII1IIIWI111IJfl
Aultllluta, 1_<Jngua l'~
.:JnJ l'rngr:.Jmllllng. ~"<:Iro l ckel .
v\)1 14, Spl'lllgl'r Verbg. f.krIICl. pp. 1..f 1- I <;6.
!
IY74hl,
'l\.uKir ~S
Selllllnll(.\ oj Ihe !tllllll'
1I1l1V .. ,e~ucJ.<ry~
III
1101'> .l m~,l d
:'\. 'I ipr,:pfllltl
.leml1rlllCl, Pruc. 2nd Colloq 00
l.eclure :'\.()l'~
III r~(upmoC
SCIl' nee.
Sy.. . telll" anlllllJorrnallo!l SClCllCl'
.tp·~Jl
DATA TYPES AS LAn'ICES
585
J. C. REY:-;OlDS (to appear), Olllhe inrerpreran'ons of SCOfI'S domains" SymposIa \'1athematica.
W. P. DF. ROEVER (I97-ta), Recursion and parameter mechamsms: An axiomaflC approarh. Proc
2nd Colloq. on Automata Languages and Programming, Saarbrucken, Lecture Notes m
Computer Scicnct.', vol. l-t, Springer-Verlag, Berlin, pp. .56-t~
- - - (197-tb), Operarional, mathematical and axiomatized srmantics for recursive procedure.\· and
data slrut~es,
Mathematical Centre Report ID/ L Ajmsterdam.
H. R. ROGERS (1967). Thl:'orv of RecufSlve Functions and Effective Computability, McGraw- Hill, New
York.
B. K. ROSEN (1973), Tree-manipulating systems and Church-Rosser theorems, 1. Assoc. Cumpu!.
Mach., 20.
1. D. RUTLEDGE (llJ70al. Pro}!,ram schemata as automata, part J. IBM Res. RC ]09R. J. Compul
and System Sci .. 7 (1973), pp. 5-1-3-578.
- - - (1970b), Parallel processes' .. Schemata and transformatIOn, IBM Res. Rep. RC 1912,
Yorktown Heights, N.Y
A. SAL WICK I (1970a). Formalized algorithmiC languages, Bull. Acad. Polon. SCI. SeT. Math.
Astronom. Phys., 18, pp. 227-232.
-~(1970b), On the l:'quivafence of FS-expression5 and prog{;ams, Ibid., 18, pp. 275-27,1).
- - - (1970c), On the predicate calculi with iteran'on quantiften., Ibid .. 1fl, pp. 279-2H6
J. G. SANDERSON (1973), The lambda calculus, lattice theory and refleXive domains. MathematIcal
Institute Lecture Notes, Oxford, England.
of Calif..
L. P, SASSO (I97l), Degrees of unsolvability of partial functions, Ph.D. dissertation, Uni~.
Berkeley.
- - (1975), A suroey of partial degrees. J. Symbolic Logic, -1-0, pp. tJD--1-1-0.
- - - (1973), A minimal partial degree, Proc. Amer. Math. Soc., 38, pp. 388-392.
D. SCOTI (1969), A type-theoretical alternative to ISWIM, eUCH, OWHY, Unpublished notes,
Oxford, England.
-~
(1970), Outline of a mathematical theory of computation, Proc. 4th Ann. Princeton Conf. on
Information Sciences and Systems, pp. 169-176. [Also: Tech. Monograph PRG-2, Oxford
Univ. Computing Lab., Programming Research Group (1970).]
- - - (1971), The lattice of flow diagrams, Symposium on Semantics of Algorithmic Languages, E.
Engeler, ed., Lecture Notes in Mathematics, vol. 188, Springc!'-Verlag, New York, pp.
311-366. [Also' Tech. Monograph PRG-3, Oxford Univ. Computing Lab .. Programming
Research Group (1970)].
- - - (1972a), ContlllllOus lattices, Proc. 1971 DalhOUSie Conference, Lecture ;";otes in MathematiCS, vol. 274, SpringerVerlag, :Jew York, pp. 97tJ6. [Also: Tech. Monograph PRG7,
Oxford Univ. Computing Lab., Programming Research Group 1197] ).]
(197:!bl. '\1arh,'mrl/im/ concepts in programming language senwnl/ r \', /\FlPS Conf. Proc., vol.
40, pp. 225234
(1973a), Data Iypn as lattices, Unpublished lecture notes, Mathematical Centre. Amsterdam,
197].
(1 973bJ, Models for varlOw type-free calculi, Proe. IVth ~ntera.
Congo for LogIC, Methodology and the Philosophy of Science, Bucharest P. Sjuppe:. ct. aI., eds., North~Hland,
Amsterdam, pp. 157187.
11lJ75a), Lambda cal('ldusand recursion theory, Proe 3rd Scandinavian LogiC Symposium, Stig
Kanger. ed., SorthHolland, Amsterdam, pp. l51193.
(1975hl. Comb/llatorsand classes, A~Calcus
and computer science theory, Proc. Rome Symp ..
March 1975: Leeture Notes In Computer Science, vol. 37, Sprlnger Verlag. Berlin, pp. ]20.
(197 5cl. Some pflllo.wph/l ~el/sa
cOllcemillf{ rhl.'Ofles of comlllllalOrl. A C'alrulu.\ and (mnputl'r
SCle/lCC theory, Proc. Rome Symp., r,.·larch 1975: Lecture Noles In Computer SCIence. \01. j7,
Springcr Verlag, Berlin, pp. 316366.
D ScoTr A'il) (" STRACHf- Y (]lJ71), Toward a mathemofit'al \'pnlalltln for compliler !O!lgl/ogl'l.
{Ill ( ; o m p u t e r ~
and Automata, PolytechlllC In\l. I)] Brooklyn. \(11. 21. pp.
Prol'. lni~.(pmyS
IlJ1o.[Aho. lacnh~T
Monograph PRGfi, Oxtunl qni\". ('oJnputillg L.ah. PnJgrdllHnillg
hcra:.t~eR
Group ( ]lJ7l ).]
, (' SHf' Pf:R Dsnr--. I I lJ7"1, ('umpUlrll/{H! over ahsffllC( \lrucllir,'\ .'jl'fwl (llid parallel pro, ('durn <inti
/'rl/;dnwfl'l dfr'(li,'(' dl:'fillliumal schemes, LogIC CtlJlntjlllUlTl ]9 7 j, H E R')\t' dlll!.1 (
Shepenholl. ed\ , .... onhH,11Iand, Am'>tcrdam. pp ~. .. .'i -" 1J
586
DANA SCOTT
C. STRACHEY (1966), Towards a
formal_~entics,
Formal Language Description Languages for
Computer Programming, T, B. Steel, ed., North-Holland, Amsterdam, pp. 198-220.
- - (lY67), Fundamental concepts in programming languages, Unpublished lecture notes for the
NATO Summer School, Copenhagen.
- - - (1972), VarIeties 0/ programming language.s, Proe. Internal. Computing Symp., Cini Foundation, Venice, pp. 222233. [Also: Tech. Monograph PRGlO, Oxford Univ. Computing
Lah., Programming Research Group (1972).J
WADSWORTH (1974), Conli uation.~·
A mathematioal semantics for handlmg
full jumps, Tech. Monograph P R G ~
11, Oxford Univ. Computing Lab .. Programming
Research Group.
A. TANG (1974), Recursion theory and de.Kriptive set rheory in effecn'vely given To spaces, Ph.D. thesIs,
Princeton Univ., Princeton, N.J.
(197 5a), Borel sets in Pw, IRIALaboria, preprint.
(1975h), Nares on subsers on Pw with extra-finitary properlY, fRIA, preprinL
(lln5c), Sets of the form {xjR(x) = T} in Pw, IRIA, preprint.
(1975d), ~ Degrees in P, IRIA, preprint.
C. STRACHEY AND C.
-~
(1975c), A hierarchy of Bl; sets in Pw, IRIA, preprint.
A. TARSKI l (930), On some Fundamental Concepts of Mathel11iltlLs (t 930); translated by J, H.
Woodger in Logic, Semantics, Melamathemalics, Cambridge, 1956, pp. 3037.
(1955), A lattice-theoretical ftxpoinc theorem and its applications, Pacific J. Math .. 5. pp.
2R.\-J09.
R. D. TENNENT (1973), Mathematical semantics and deSIgn of programming languages, Ph.D. thesis,
Un! .... of Toronto. [Also: Tech. Rep. 59, Uni.... of Toronto (1973).]
(l974al. The mathematical .'iemantics of proKramming languages, Dept. of Computing and
Information Sci., Queen's Univ., Kingston, Ontario, Canada (preprint).
(l974b), A contribution 10 Ihe developmeni of PASCAL-like languages, Tech. Rep. 7.... 25,
Dept. of Computing and Information Sci., Queen's Uni... " Kingston, Ontario, Canada.
(1975), PASQUAL: A proposed generall'zation of PASCAL, Tech. Rep. 7532, Dept. of
Computing and Information SCl., Queen's Uni.... , Kingston, Ontario, Canada.
1. VUILLEMIN (1973a). Proof techniques fnr recursive programs, airobL~AIR
Rep.
--(19730), Corree{ a"d oplima/ i"'plt'me,,'ations of recursion in a simple programming
lan/?uage, IRIALaboria Rep. ~4.
C. P. WADSWORTH ([ (71), Semantics and prugmatices of the lambda -caluL~,
D. Phll. theSiS,
Oxford lJ m... _, Oldord, England.
(1975a), The relarlOn between lambda-expressIOns and thetr denotation, Dept. of Systems <lnJ
Information Sci.. Syracuse Un~
..... Syracuse. N.Y. (pre~m[).
(197Sb), Approximate reduction and lambda-calculus models, Dept. of Systems and lnformalion Sci., Syracuse Uni .... , Syracuse, N.Y.
- - - (I 97 5cl, Some unusun) A calculus numeral systems, in preparation.
(to appear), On lire topological ordering in (he D-modef afthe lambdl..l. -[a1culus, in preparation.
E. G. WAGNER 1l97Ia), Languages for defining sets In arbirrary algebras, Prot:. of the 11lh IEEE
Conf. on Switching anJ Aulomala Theory, pp. IlJ220 I.
(197 lbJ, An algebraIc tlreory of recursive definitions and recurSive languages, Proc. of the
3rd ACM Symp. on Theory of Computing.
(1974), Notes on caregones, algebras and programming languages, Unpublished lecture nOles,
London.
M. WAND (l973), MalhemalK'al foundations of formal language theMy. MACTRIOR, Project
MAC, Mas'>. Inst, of Tech., Cambridge, Mass.
(1974aJ, An algebraIC formulation of the Chomsky hierarch}', Category Theory Applieu 10
ComputaTion and Comrol, E. Manes, ed., lIniv. o( Mass .. rp. ~ lfi22 1
~-l
<.J74b). On the recursive specificatIOn of daw rypt's, Category Theory Applied to COmpUlal;On
<.LnU Control, E. Manes, ed., Uni .... of Mass" pp. 222225.
- - " (I lJ74e), Reafizing dl..l.(a J{ructures l..I.S laltices, Tech. Rep. 11, Computer Sci. Dept.. In(lL<lna
Uni ....
(llJ7 5 J, hxed-pvmt nm.i'trucrlOns IfI order-enriched w/egorles, Tech. Rep. ~3,
Computer Sd.
Dept. Indiana Uni ....
DATA TYPES AS LATrfCES
587
D. LEHMANN (1972), Algebraic and topological prereqUiSlIes 10 Scott's lheory of
computation, Tech. Rep. 72-2, Dept. of Computer Sci., Hebrew Univ. of Jerusalem.
.
R. W. WEYRAUOt AND R. MILNER (1972), Program correctness in a mechanized logic. Proc. of the
1st USA-JAPAN Cc)mpuler Conf., pp. 3g4-.J90
J. B. WRIGHT (1972), Characterization of recursively enumerable sets, J. Symbolic Logic, 37, pp.
P. WEGNER AND
507-511.