
Recursive Domains, Indexed Category Theory and Polymorphism Paul Taylor 1983{7 ii A dissertation submitted for the degree of Doctor of Philosophy at the University of Cambridge also for the Summer 1986 Prize Fellowship Competition at Trinity College, Cambridge c copyright Paul Taylor, August 1986 I hereby declare that my thesis entitled Recursive Domains, Indexed Category Theory and Polymorphism is not substantially the same as any that I have submitted for a degree or diploma or other qualification at any other University. I further state that no part of thesis has already been (or is being) concurrently submitted for any such degree, diploma or other qualification. Further, I declare that the results presented herein are the product of my own original research where claimed as such. This qualification will be explained in the Introduction. During the course of my research I have been supported financially by the Science and Engineering Research Council, Trinity College and the Department of Pure Mathematics and Mathematical Statistics. This dissertation (in particular Chapter V) has been revised somewhat since submission. iii This work is dedicated with love to the guardians of my sanity James Annett Mark Dawson Ellie Mayger (n´ee Clarke) Mike Mayger Fiona Miller Shane Voss Ian White without whose support it would never have happened. iv Introduction Let me begin by confessing that this is a very eccentric document. It aims to do two things. First, of course, it sets out some original constructions, primarily of a \type of types" in certain categories whose objects have come to be known (rather unimaginatively) as domains, but also of various other things in such categories. Second, however, which is a departure from custom as far as Ph.D. or fellowship dissertations are concerned, it attempts to give an introduction to a substantial but largely undocumented body of knowledge among (certain) Mathematicians, namely Categorical Logic, which has very recently been found to be of considerable importance in Theoretical Computer Science. Category Theory, I like to say, is a tourist subject. It started in Group Theory, but was only taken seriously when Frank Adams needed it to discuss constructions in Topology; after that it visited Linear Algebra, Universal Algebra, Automata Theory and Algebraic Geometry. At the last of these it met Logic and turned into Topos Theory. The journey to that stage was undertaken (almost) entirely in the company of mathematicians, who could perhaps be expected to understand the significance of the souvenirs, and in particular the geometrical language. Now that it has arrived in Computer Science, however, I feel that some basic discussion of what it's all about is called for. This is what I have been trying to do. I have a strong conviction that when one has begun to understand something which is un- derstood by few other people then it is one's duty to formulate on paper that understanding (in whatever terms one has found useful) for the benefit of others trying to do likewise. Moreover I have an habitual urge to do so. This is my defence for the length and verbosity of this work. This policy also requires me to apologise to the originators of the results, and other practitioners of the subject far more expert than myself, for tiring them with the necessity of reading my misrepresentations. This I freely do. I have also included a lot of standard Domain Theory, starting with the Lambda Calculus. This is not a thesis about the Lambda Calculus! This is because I disagreed with some of the existing terminology and because I wished to push the results as far as I could. Also, in Chapter V I wanted to be able to assume that a category of domains was of the form Retr(Λ); this explains my preference for continuous rather than algebraic domains. Since much of the bulk of the work is therefore \standard" material, a notation is called for to indicate what is original. This is done by means of a \+" before the number of the section. The other sections I claim for the most part to be an original account of their subject, though occasionally I have marked sections \ " by way of confession of having forgotten the proof of the result in question. In some cases originality− means improvement (or in a few cases rediscovery) of an existing result; here credit has been given in apparent contradiction to the mark on the section. Certain results in this work have been designated as Facts. (Specifically in 1.1.13, 1.2.11, 2.2.11, 2.5.8.) This indicates an original result which I have not had time to writexx up. The most substantial of these is a technique for dealing with large filtered diagrams in a small category (where we just say \cardinality" in a poset), the proof of which would have taken ten pages. [Postscript: This result is a factorisation system which is similar to that of any functor into a final functor followed by a discrete fibration [Street & Walters, 1973?]. The difference is that the first part of my factorisation is also regular epi whilst the second is characterised by a condition I called cosignposted; the latter places a bound on the size of the intermediate category in terms of that of the codomain, whilst the former retains the property of final functors that v vi they yield equivalent filtered colimits. The final-fibration factorisation for functors which preserve connected limits is the same as that giving Diers' spectrum and Berry's trace.] I also have another result whose proof is of a similar length but which is not mentioned in the text. This is that an interpretation by means of partial maps can be given to s simple imperative language (including a while construct) in a category with certain finitary exactness conditions. Specifically, we use equalisers of a form in which one of the maps is a mono to interpret the while; the important stage is the proof (in an elementary topos, though the category itself does not need higher order logic) that a certain graph has the diamond property and hence that the map from the equaliser to the coequaliser of a pair of maps one of which is mono is mono. There is no mention of anything of an infinitary nature in this proof: it uses the adjoint functor theorem in the way in which 4.4 tries to indicate that it can be used to replace infinitary arguments. The history ofx Computer Science from Babbage onwards is one of generalisation and abstrac- tion. Foremost among the ideas are those of subroutines and high-level (i.e. machine-independent) languages, enabling the essence (algorithm) of some process to be expressed without reference to either its application or implementation. As programs become ever more complicated, it becomes necessary to provide formal rather than ad hoc techniques for understanding them and prov- ing them correct. This is the r^oleof Mathematics, specifically Category Theory, in theoretical Computer Science. The major languages which were available for programming until the end of the 1960s were imperative, which is to say they set out precisely how | and in particular in what order | the operations were to be performed. The exception to this was LISP. This was nominally based on the λ-calculus, a mathematical tool for the study of recursion with its origins in symbolic logic. LISP and modern theoretical languages are called functional because they express only the behaviour of the program as a function from inputs to outputs, abstracting away details of sequencing just as earlier high level languages had hidden space allocation. This change shifts the emphasis as regards the meaning of the program from the operational to the mathematical viewpoint. It also places functions on the same footing as data items. Also, whereas the imperative style provided recursion (inductive definition) by means of program loops or jumps, the functional style expresses the function as a solution of an equation. This is always of a specific form, a fixed point, so for instance the factorial function is the fixed point of 1 if n = 0 f n 7! 7! n f(n 1)otherwise × − which is a function N N. Since we have placed no restriction on the nature of this function (and cannot, because of the!Halting Problem), the domains on which it is defined cannot be ordinary sets. Another feature of some of the modern languages is polymorphism, which is the abstraction of the function away from the types of its arguments; for instance the same code may be used to calculate determinants of matrices with either real or complex entries. Stronger forms of polymorphism may also be contemplated, as far as asking for a type of all types. It is clear that concepts such as these cannot be expressed straightforwardly in terms of discrete sets. We can express them in the same way as is customary in existing imperative programming practice, namely operationally. However to do this rigorously we more or less have to invent or describe a particular machine, and this immediately loses the abstraction which we have tried to gain. In the absence of recursion there are mathematical interpretations of functional languages and even polymorphism naturally provided by category theory. The former is clearly described by a cartesian closed category, which has an exponential or function space operation. The determinant example above, which is uniform over the ring definition, is reminiscent of the naturality of the double dual in Linear Algebra which led Eilenberg and Mac Lane to category theory. In fact this example can be used to motivate the idea of a classifying topos.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages198 Page
-
File Size-