[ The Types Forum (announcements only),
http://lists.seas.upenn.edu/mailman/listinfo/types-announce ]
Hello all,
[Sorry for multiple postings.]
I have openings for two post-doctoral research positions in my Verified
Software research group at Imperial on `Gillian: Program Correctness and
Incorrectness', funded by Facebook, and `Gillian: Coq-Certified Compositional
Symbolic Analysis', funded by a national fellowship. Details of these projects
are given below.
These positions are for three years. The start date is flexible in these
uncertain times, up to September 2021. It is possible to start the positions
remotely, although we are able to meet at Imperial when necessary so it might
make sense to be in London. In fact, accommodation rents are currently very
good (due to covid) so it is actually quite a good time to come to London.
If you are interested, please do not hesitate to contact me.
Philippa
----------------------------------------------------------------------------------------
Professor Philippa Gardner
Department of Computing
Imperial College
180 Queen’s Gate
London
SW7 2AZ
My working day may not be the same as yours. Please do not feel
obliged to reply to this email outside your normal working hours.
-------------
Gillian: Program Correctness and Incorrectness
Philippa Gardner
Imperial College London
We have introduced Gillian [1], a multi-language platform for compositional
symbolic analysis. It supports three flavours of analysis: whole-program
symbolic testing; full verification based on
separation logic; and automatic compositional testing based on bi-abduction. It
is underpinned by a core symbolic execution engine, parametric on the memory
model of the target language, with strong mathematical foundations that unifies
symbolic testing and verification. Gillian has been instantiated to the
real-world languages C and JavaScript, obtaining results on real-world code
that demonstrate the viability of our unified, parametric approach.
Meanwhile, O’Hearn [2] has observed that program correctness for describing the
absence of bugs and program incorrectness for describing the presence of bugs
are two sides of the same coin. He, Azalea Raad (Imperial) and others [3] have
recently introduced incorrectness separation logic for reasoning about program
incorrectness, in contrast with Hoare logic and separation logic for reasoning
about program correctness. The underlying theory of Gillian resonates with the
fundamental ideas of incorrectness logic, suggesting that Gillian has an
unexplored potential for reasoning about both program correctness and
incorrectness.
Our goal is to establish Gillian as a leading academic platform for integrated
analysis of program correctness and incorrectness, by advancing the development
of its existing analyses and incorporating the new ideas arising from
incorrectness logic. This research position is for three years. It would suit
someone with a strong background in formal methods (theory and/or practice),
especially someone with experience in program analysis, testing or
verification. It is funded by Facebook.
References
[1] Gillian, Part 1: A Multi-language Platform for Symbolic Execution, Jose
Fragoso Santos, Peter Maksimovic, Sacha-Elie Ayoun and Philippa Gardner,
PLDI'2020. Part 2 on verification and bi-abduction is being written now! We are
giving a talk on Gillian at the conference Rebase,
associated with ECOOP and OOPSLA, on 16th and 17th November, and at the
Facebook Testing and Verification Symposium in December, 2020.
[2] Incorrectness Logic, Peter O'Hearn, POPL'20.
[3] Local Reasoning about the Presence of Bugs: Incorrectness Separation Logic,
Azalea Raad, Josh Berdine, Hoang-Hai Dang, Derek Dreyer, Peter O'Hearn and
Jules Villard, CAV'20.
---------
Gillian: Coq-Certifiction of Compositional Symbolic Analysis
Philippa Gardner
Imperial College London
We have introduced Gillian [1], a multi-language platform for compositional
symbolic analysis. It supports three flavours of analysis: whole-program
symbolic testing; full verification based on
separation logic; and automatic compositional testing based on bi-abduction.
Gillian has been instantiated to the real-world languages C (using the
Coq-verified CompCert compiler) and JavaScript (using our own compiler),
obtaining results on real-world code that demonstrate
the viability of our unified, parametric approach.
The goal is to provide Coq-certification for the Gillian platform. Gillian is
underpinned by a core symbolic execution engine, parametrised by the memory
model of the target language, with strong mathematical foundations that unifies
symbolic testing and verification. This core is ripe for Coq mechanisation
since it has a general correctness result that depends on lemmas associated
with particular Gillian instantiations. The challenge is to understand how to
link this Coq mechanisation of the core engine to the Gillian platform: either
by replacing the Gillian implementation with extracted Coq code; or by using
Gillian to generate proof terms that can be
certified by Coq in order to retain the Gillian optimisations.
This position is for three years, funded by Gardner's UKRI national fellowship.
It would suit someone with strong experience with the Coq theorem prover, to
enhance the current Coq expertise in the group. In particular, my PhD student
Rao Xlaojia is part of the Imperial and
Cambridge team doing WasmCert, a Coq-specification of Wasm [2]. There is also
an opportunity to get involved with this WasmCert project if interested.
References
[1] Gillian, Part 1: A Multi-language Platform for Symbolic Execution, Jose
Fragoso Santos, Peter Maksimovic, Sacha-Elie Ayoun and Philippa Gardner,
PLDI'2020. Part 2 on verification and bi-abduction is being written now! We are
giving a talk on Gillian at the conference Rebase,
associated with ECOOP and OOPSLA, on 16th and 17th November, and at the
Facebook Testing and Verification Symposium in December, 2020.
[2] WasmCert-Coq, M. Bodin, P. Gardner, J. Pichon, C. Watt and R. Xiaojia,
https://github.com/WasmCert/WasmCert-Coq