# Domain Theory:
2006-2007

## Overview

Domain theory is a mathematical theory of information and computation. It is based on the idea of states of
(in general) partial information, ordered by how much information they contain. On this basis, a beautiful
mathematical theory has been developed, with deep applications to many topics in Computer Science, in particular
to the semantics of programming languages. In this course, we shall develop both the mathematical theory, and
the applications. Particular themes will: the ideas of continuity and approximation
supported by domain theory, which has important connections with topology, and gives a basis for computation
with infinite objects; the development of a rich theory of fixpoints, as a foundation for recursive definitions;
developing a rich set of data type constructions, and recursive definitions of domains themselves; and
powerdomains, to support ideas of non-deterministic and probabilistic computation.

## Prerequisites

Discrete mathematics: sets, functions, relations, order relations.
Domain theory would make a good combination with the course on Lambda
calculus, but neither requires the other. Similar remarks apply to the course on
Categories, Proofs and
Programs.

## Synopsis

- Basic concepts of partial orders. Mathematical models of syntax.
- Fixpoints and recursive definitions, illustrated by a range of examples.
- Data types: functions, sums and products.
- Recursive types. Applications: streams, trees, untyped lambda calculus.
- Algebraicity and continuity. Approximating infinite objects.
- Powerdomains for non-determinism and probability. Applications to transition systems and processes.

## Reading list

- Abramsky and Jung, Domain Theory, in Handbook of Logic in Computer Science
- Davey and Priestley, Introduction to Lattices and Order
- Plotkin, Notes on Domains, available from web.