Category theory provides a uniquely appropriate language and conceptual framework for exposing the mathematical deep structures of programming languages and their associated calculi. CLICS aimed to take recent developments in category theory and the categorical approach to logic and apply them in a number of important areas in computing science, namely:
-domain theory and the semantics of programming languages
-logics of computable functions
-logics and models for parallel computation
-unified theories of specification.
The CLICS Action also aimed to produce a supply of computing science research workers who have a thorough grounding in categorical methods.
The concepts and techniques of category theory and categorical logic in computer science (CLICS) were applied to a number of key areas in computing science, including the study of type structures for programming languages; the development of structuring principles and axiomatic frameworks for semantics as a basis for computational logics; and unified treatments of logics and models for parallel computation, and of specification formalizms.
The 4 major areas of activity are as follows:
synthetic domain theory (a new foundation for denotational semantics in which computational domains can be viewed as sets within a constructive universe and the semantic characterization of sequentiality in higher order languages);
semantics and logics of computation (structuring denotational semantics using computational monads with the possibility of developing large semantic specifications incrementally and sematics of subtyping in combination with recursive types and polymorphism);
concurrency and linear logic adjunctions between various categories of models, Girard's linear logic focussing on computational interpretations of the logic and connections with process calculi the development of a version of the Curry-Howard isomorphism for processes of comparable utility);
type theory and constructive mathematics extracting the computational content of classical proofs using the framework of point free topology and a geometric paradigm for symbolic computation, based on Penrose diagrams, which offer a more concise and intuitive framework for many complex symbolic calculations).
APPROACH AND METHODS
The technical approach was to:
-Pursue a deeper understanding of type structures for programming languages.
-Produce systematic accounts of denotational, operational and axiomatic semantics for programming languages, emphasising structuring principles and axiomatic frameworks for semantics, in order to provide a foundation for logics of computable functions.-Develop logics for computable functions which exploit constructivity and categorical logic to provide a better match between the logics and the computational concepts being modelled. Conceptual sophistication in the foundations is expected to lead to aradical simplification in the reasoning inside the problem domain (eg. by working inside the effective topos, naive (albeit constructive) set-theoretic reasoning about higher-order polymorphism can be used, whereas in classical set theory this is actuallyinconsistent).
-Develop a framework in which to unify the highly diverse and superficially disparate work in the fields of logics and models of parallel computation, and unified theories of specification. This is essential if different programming and specification par adigms are to be successfully integrated, and if truly fundamental and enduring concepts are to emerge.
PROGRESS AND RESULTS
There have been four major areas of activity within the Action:
-Synthetic Domain Theory: major progress has been made in this new foundation for denotational semantics, in which computational domains can be viewed as sets within a constructive universe. The viability of this theory as a basis for denotational semant ics and program logics has now been established. Major advances have also been made in the semantic characterisation of sequentiality in higher-order languages.
-Semantics and Logics of Computation, where a key role has been played by Moggi's work on structuring denotational semantics using computational monads. This opens the possibility of developing large semantic specifications incrementally. Recent developm ents in program logics aim to extend the elegance and generality of LCF-like logics to a wider class of computational paradigms. Considerable progress in the semantics of subtyping in combination with recursive types and polymorphism has been made.
-Concurrency and Linear Logic. The development of a unified approach to concurrency in a categorical framework by studying adjunctions between various categories of models, and work on Girard's Linear Logic, focussing on computational interpretations ofthe logic and connections with process calculi, have been two major areas of activity. A major goal is the development of a version of the Curry-Howard isomorphism for processes of comparable utility to that for functional calculi. A general framework forLinear Realisability has been developed.
-Type Theory and Constructive Mathematics. Much progress has been made on extracting the computational content of classical proofs, using the framework of point-free topology. There has also been work on a new, more geometric paradigm for symbolic comput ation, based on Penrose diagrams, which offer a more concise and intuitive framework for many complex symbolic calculations.
Some promising new formalisms are already emerging from the activities of the Action, and a number of experimental implementations and case studies have been undertaken or are being planned. The main potential for exploitation will lie in the fundamental insights and methods made available for more applied work.
53754 Sankt Augustin
CB3 0WB Cambridge