I am a research associate at the University of Cambridge Computer Laboratory, where I did my
undergraduate and postgraduate studies. Previously, I was a postdoc researcher at Microsoft
Research Cambridge.
Modern programming platforms, such as Microsoft's .NET, provide libraries
of efficient concurrent data structures, which are used in a wide range of
applications. In this talk, I will discuss some of the pitfalls in
implementing such concurrent data structures, what correctness of these
libraries means, how one can formally prove that a given library is correct,
and the extent to which these proofs can be carried out automatically.