# Domain Theory:  2006-2007

 Lecturer Class Tutor Nikos Tzevelekos

## 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

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