Project Suggestions in Applied Semantics, 2008-2009
(these will be updated from time to time)
The projects below are outline suggestions - feel free to come and
discuss how they could be turned into full proposals, or to suggest others in
the same general area.
Possible supervisors for these include:
Good typechecking for HOL (Ridge, Owens, Sewell?)
Interactive tools for automated reasoning, such as the
systems (developed by Mike Gordon and Larry Paulson, with many
let one write mathematical definitions, type-check them, and support
various tactics for automated and manual proof.
The core of this project is the production of a high-quality
standalone typechecker for HOL4, that can take a collection of HOL4
source files and quickly do type inference it, with good reporting of
any type errors. The HOL4 type system is broadly similar to that of
ML, with top-level polymorphism.
Possible approaches are here:
SEMINAL: Searching for ML Type-Error Messages
Benjamin Lerner, Dan Grossman and Craig Chambers
The 2006 ACM SIGPLAN Workshop on ML (ML 2006)
Portland, Oregon, 16th September 2006
Christian Haack and J. B. Wells. Type error slicing in implicitly typed higher-order languages. Sci. Comput. Programming, 50:189-224, 2004.
Probably one should reuse the existing HOL4 lexing and parsing code.
If the project goes well, a possible extension would be to synthesise,
from the typechecked source, Isabelle/HOL or HOL light definitions.
This project would suit a good semantically minded programmer. It
would probably be written in OCaml or ML.
Tool support for animating semantics (Gray, Owens?) (Taken?)
Working with realistic programming language type systems or
operational semantics is challenging, partly because of the size of
the definitions. Better tool support would be very useful, for
typesetting, for informal proof, for animation, for use as an oracle
for automatic testing of implementations, and for machine-checked
proof. We've implemented various partial tools over last few years,
leading up to the Ott tool.
This project is to extend Ott with support for animating definitions:
taking a term and searching for possible derivations of transitions or
Ott is written in OCaml or ML.
Post-hoc Makefile or Bash semantics (Ridge?)
This project is to produce a post-hoc semantics for the language of
Makefiles, or for Bash, and to test it against the