Theory mini-courses
This is an archive of courses from 2005-2006. Please click here for courses after 2006.

Courses for 2004-2005 are found here; for courses 2000-2004 look here.
If you would like to volunteer a course, please contact Sam Staton.

Term: Michaelmas 2005

Nominal syntax and semanticsAndrew PittsOctober 10th, 12th and 14th, 10 am – 12 noonFW26
An introduction to IsabelleLarry PaulsonNovember 21st, 23rd, 25th, 28th, 29th and December 2nd, 12 noon – 1pmFW26 (21st, 25th, 28th, 29th), FW11 (23rd, 2nd)
The nominal datatype package in IsabelleChristian UrbanDecember 5th, 7th, 8th, 10 am – 11amFW11 (5th, 8th), FW26 (7th)

Term: Lent 2006

Formal Verification Techniques Hasan AmjadMonday February 20th, Wed 22nd, Fri 24th, Mon 27th; Wednesday March 1st, Fri 3rd; 10 am – 11amFW11
Introduction to Separation Logic Matthew ParkinsonTuesday 28th Feb, Thursday 2nd March; 10 am – 12 noonFW26

Term: Easter 2006

Protecting Alice from Malice: Protocols, Process Calculi, Proved Programs Andrew GordonTuesday 16 May and Thursday 18 May, 10 am – 12 noon
Distributed Programming Languages Peter SewellTimes TBA

Details

Michaelmas 2005

Nominal syntax and semantics  (top)

Andrew Pitts
October 10th, 12th and 14th, 10 am – 12 noon.
Room FW26 (map).

Formal languages involving names and constructs that bind names abound in computer science. Much effort has been expended to find mathematical theories of "syntax modulo renaming bound names" that have good logical and computational properties, but are also easy to use. These lectures introduce the theory and applications of "nominal sets", a new mathematical model of names and binding based on simple, but subtle ideas to do with permutations of names that first arose in mathematical logic in the 1930s. At the heart of the approach is the notion of "finitely supported" mathematical objects. The lectures will explain the idea in as concrete a way as possible and will discuss its consequences for programming language semantics and for the design of functional and logical metaprogramming languages.

This course will be based on lectures given at the APPSEM Summer School. Notes, slides and exercises can be found at http://www.cl.cam.ac.uk/users/amp12/talks/appsem2005/.

An introduction to Isabelle  (top)

Larry Paulson
November 21st, 23rd, 25th, 28th, 29th and December 2nd, 12 noon – 1pm.
Room FW26 (21st, 25th, 28th, 29th), FW11 (23rd, 2nd) (map).

Course materials are found at http://www.cl.cam.ac.uk/users/lcp/Course/.

This course is an introduction to theorem proving with the Isabelle/HOL system. It is largely based on the book Isabelle/HOL — A Proof Assistant for Higher-Order Logic and covers the most important definition mechanisms and proof methods.

The course is aimed at students who are seriously interested in becoming acquainted with computer-assisted theorem proving. It combines a practical how-to approach with the necessary logical background material. At the end of the course students are able to define and reason about functional programs, logical and set-theoretic formulae, and simple mathematical models of discrete systems (for example in a set-theoretic style). No prior background in theorem proving is required, but familiarity with and a basic understanding of logical and mathematical notation and some minimal exposure to functional programming is assumed.

The course is divided into 6 one-hour lectures.
  1. Basic notation. Recursion and induction on lists.
  2. Datatypes and primitive recursive functions.
  3. Simplification. Induction heuristics.
  4. Propositional logic.
  5. Predicate logic.
  6. Sets.


The nominal datatype package in Isabelle  (top)

Christian Urban
December 5th, 7th, 8th, 10 am – 11am.
Room FW11 (5th, 8th), FW26 (7th) (map).

Slides from lecture one are at http://www.cl.cam.ac.uk/users/ss368/minicourses/christian1.pdf.

This course will explain the theory and applications of the nominal datatype package. This datatype package provides an infrastructure for reasoning about languages involving binders. I will illustrate how informal proofs about the lambda-calculus can be formalised with ease in Isabelle/HOL using the nominal datatype package. I will further explain how strong induction principles can be derived that have Barendregt's variable convention already built in.

Lent 2006

Formal Verification Techniques  (top)

Hasan Amjad
Monday February 20th, Wed 22nd, Fri 24th, Mon 27th; Wednesday March 1st, Fri 3rd; 10 am – 11am.
Room FW11 (map).

Course materials are at http://www.cl.cam.ac.uk/users/ha227/node6.html.

Formal verification constructs mathematical proofs about the behaviour of computer hardware and software. As a heavy user of mathematical logic, it has strong connections with theoretical computer science.

This mini-course will present a survey of current formal verification methods. Enough detail will be given to establish clear connections with the underlying theory, and to give some idea of the problems facing the field.

Pre-requisities: The mini-course aims to be self contained. Some familiarity with logic will make the going easier.

The course is divided into 6 one-hour lectures.
  1. Introduction. Theorem proving. Propositional Logic. First-order logic.
  2. Arithmetic. Higher-order logic.
  3. Model Checking. Computation Tree Logic. OBDDs. Symbolic model checking.
  4. Linear Time Logic. Fairness. The propositional mu-calculus.
  5. SAT-solvers. SAT-modulo-theory solvers.
  6. Predicate abstraction. Automatic abstraction refinement.


Introduction to Separation Logic  (top)

Matthew Parkinson
Tuesday 28th Feb, Thursday 2nd March; 10 am – 12 noon.
Room FW26 (map).

Separation logic is an extension to Hoare logic that allows reasoning about datastructures involving pointers. The first part will cover:
  1. the historical background;
  2. the definition of the logic; and
  3. provide example verification of some sequential programs.
The second will present more advanced issues of the logic including
  1. concurrency;
  2. modularity; and
  3. decidability.


Easter 2006

Protecting Alice from Malice: Protocols, Process Calculi, Proved Programs  (top)

Andrew Gordon
Tuesday 16 May and Thursday 18 May, 10 am – 12 noon.
Room FW26 (map).


Slides, and bibliographic notes, are available here.

This is a preview of a course this summer at the International Summer School Marktoberdorf.

Distributed Programming Languages  (top)

Peter Sewell
Times TBA.


Details will follow.