John Wickerson

I'm a postdoctoral research associate working with George Constantinides in the Circuits and Systems group, which is part of the Department of Electrical and Electronic Engineering at Imperial College London.

My latest research project involves improving the semantics of atomic operations in C11 and OpenCL. I have previously worked on a detailed study of AMD's remote-scope promotion technology, on diagrammatic proofs of program correctness using separation logic, and on modular verification using the rely-guarantee method.

John Wickerson

Contact

email
j.wickersonXimperial.ac.uk (replace X with @)
mail
Dr John Wickerson
Department of Electrical and Electronic Engineering
Imperial College London
South Kensington Campus
London
SW7 2AZ
desk
Room 905
9th Floor
Department of Electronic and Electrical Engineering
(getting to the campus, map of the campus)

News

I organise the weekly meetings of the Memory and Synthesis sub-group (iCalendar schedule).

Publications

Collaborators

Unpublished

  1. Partial and total correctness as greatest and least fixed points.
    John Wickerson.
    Under submission.
    (pdf, Isabelle proofs)

  2. Ribbon proofs and dynamically-scoped quantifiers.
    John Wickerson.
    Rough draft, April 2013.
    (pdf)

  3. Nominal Prolog.
    John Wickerson (supervised by Andrew Pitts).
    Third-year (Part II) dissertation, University of Cambridge, 2008.
    (pdf)

Software

  1. Herd - a generic memory model simulator.
    John Wickerson, contributor (Aug 2014 ‐ Jan 2015).
    (source code on GitHub)
  2. The ribbonproofs package.
    John Wickerson
    LaTeX package, July 2013.
    (package on CTAN, pdf manual on CTAN)

Talks

20-Nov-2015
Overhauling SC atomics in C11 and OpenCL.
Delivered at the South of England Regional Programming Language Seminar (S-REPLS), Middlesex University.
(pdf, 4.7MB; YouTube video)
30-Oct-2015
Remote scope promotion: clarified, rectified, and verified.
Delivered at OOPSLA 2015, Pittsburgh.
(pdf, 5.8MB; YouTube video)
15-Jul-2015
Overhauling SC atomics in C11 and OpenCL.
Delivered at the Imperial Concurrency Workshop.
(pdf, 4.9MB)
22-Apr-2015
Remote scope promotion: clarified, rectified, and verified.
Delivered at the REMS workshop, Cambridge.
(pdf, 4.1MB)
28-Apr-2014
Tools for exploring and understanding memory models.
Delivered at the York Concurrency Workshop.
(pdf, 1.5MB)
07-Jan-2014
A Very Rough Introduction to Linear Logic.
Delivered at the Multicore group seminar.
(pdf, 364kB)
05-Nov-2013
Nominal Unification.
Delivered at the Multicore group seminar.
(pdf, 349kB)
20-Mar-2013
Ribbon Proofs for Separation Logic.
Delivered at ESOP 2013.
(pdf, 11.2MB)
27-Jun-2012
Ribbon Proofs for Separation Logic.
Delivered at LICS 2012.
(pdf, 1.3MB)
15-Apr-2011
Ribbon Proofs for Separation Logic.
Delivered at the Dublin Concurrency Workshop.
(pdf, 2.7MB)
25-Oct-2010
Separation Logic and Graphical Models.
Delivered at the Semantics Lunch.
(1-up pdf, 1.2MB; 6-up pdf, 1.5MB)
06-Jul-2010
A dataflow model of concurrency, communication and weak memory.
Delivered at the Cambridge Concurrency Workshop.
(1-up pdf, 213kB; 6-up pdf, 225kB)
09-Mar-2010
Explicit Stabilisation for modular Rely-Guarantee Reasoning.
Delivered at ESOP 2010.
(pdf, 1.2MB)
25-Nov-2009
Verifying malloc.
Delivered at the Northern Concurrency Workshop.
(1-up pdf, 938kB; 6-up pdf, 893kB)
26-Oct-2009
Verifying malloc using RGSep and 'Explicit Stabilisation'.
Delivered at the Semantics Lunch.
(pdf, 5.3MB)
13-May-2009
Local Rely-Guarantee Reasoning.
Delivered to the Program Verification reading group.
(pdf, 616kB)
04-Feb-2009
Automatic verification of C programs using the BLAST software model checker.
Delivered to the Program Verification reading group.
(pdf, 892kB)

Professional service

Organiser:

Program committee member:

Artifact evaluation committee member:

Reviewer for the following journals:

External reviewer for submissions to the following conferences:

Teaching

In the 2015/16 academic year, I was a guest lecturer for the Computer Science course Models of Computation at Imperial. My slides on the Lambda Calculus are available here, and YouTube videos of my lectures are available here:

03-Dec-2015
The Lambda Calculus, part 1. (video 1)
09-Dec-2015
The Lambda Calculus, part 2. (video 2)
10-Dec-2015
The Lambda Calculus, part 3. (video 2)

In the 2014/15 academic year, I was a guest lecturer for the Computer Science course Separation Logic at Imperial. The slides presented in my lectures are available here:

18-Nov-2014
Ribbon Proofs for Separation Logic. (pdf, 7.3MB)

In the 2013/14 academic year, I was a guest lecturer for the Computer Science course Software Reliability at Imperial. The slides presented in my lectures are available here:

04-Mar-2014
Lecture 16. Verifying heap-manipulating programs using Separation Logic. (pdf, 2.1MB)
06-Mar-2014
Lecture 17. Verifying concurrent programs using Rely/Guarantee and Separation Logic. (pdf, 1.6MB)

In the 2013/14 academic year, I was a guest lecturer for the Part II Computer Science course Hoare Logic at Cambridge. The slides presented in my lecture are available here:

11-Feb-2014
Lecture 8. Automatic Verification of GPU kernels. (pdf, 594kB)

I gave a tutorial at the HiPEAC '14 conference about the GPUVerify tool developed here in the Multicore Group at Imperial.

21-Jan-2014
Formal Analysis Techniques for GPU kernels. (pdf, 627kB)

In the 2012/13 academic year, I was a guest lecturer for the graduate course Quality Assurance of Embedded Systems at TU Berlin. The slides presented in my lectures are available here:

15-Jan-2013
A graphical introduction to Separation Logic (Part I). (pdf - both lectures, 364kB)
22-Jan-2013
A graphical introduction to Separation Logic (Part II).

In the 2010/11 academic year, I was a lecturer for the MPhil course Programming Logics and Software Verification. The slides presented in my lectures are available here:

8-Feb-2011
Lecture 6. More Separation Logic. (pdf, 1.6MB)
8-Mar-2011
Lecture 14. Rely-Guarantee (pdf, 504kB)
10-Mar-2011
Lecture 15. RGSep (pdf, 1MB)

At Cambridge, I supervised several courses:

I also organised the Churchill Compsci Talks series.

And finally...

I have a personal blog at johnwickerson.wordpress.com.