[TYPES/announce] Postdoc positions available for ERC "RustBelt" project on foundations of Rust

Derek Dreyer dreyer at mpi-sws.org
Thu Jan 26 17:48:47 EST 2017

I am pleased to announce the availability of 2 postdoc positions for
the project "RustBelt: Logical Foundations for the Future of Safe
Systems Programming", funded by a 2015 ERC Consolidator Grant.


This 5-year project concerns the development of rigorous formal
foundations for the Rust programming language.  The project summary
appears below.

Although the main high-level goal of the project is to build logical
foundations for the Rust programming language, the project also serves
to fund technical work on two other major research efforts that feed
into the main goal:

1. The development of *Iris*, a simplifying and unifying framework for
higher-order concurrent separation logic in Coq (see the Iris web page
at http://iris-project.org/).

2. Our ongoing study of improved semantics and logics for relaxed
memory models (see e.g. our work on GPS [OOPSLA'14, PLDI'15] and the
"promising" semantics [POPL'17]).

I am seeking exceptional candidates who are interested (and who
preferably have a proven track record) in one or more of the following

- Rust
- substructural/ownership type systems
- verification of concurrent programs
- weak/relaxed memory models
- interactive theorem proving in Coq
- compiler verification

Successful applicants will join the Foundations of Programming group,
led by me, at the Max Planck Institute for Software Systems (MPI-SWS)
in Saarbruecken, Germany.  Previous postdocs in the group have
included Andreas Rossberg, Chung-Kil Hur, Neel Krishnaswami, Aaron
Turon, and Jacques-Henri Jourdan.

*Application deadline*: MARCH 1.  If you are interested in joining the
RustBelt team and want to learn more about the project, please contact
me directly at dreyer at mpi-sws.org.  To apply for a postdoc position,
please submit a CV, research statement, and list of references to

For further information, see the project web page at:

Best regards,
Derek Dreyer


Summary of the RustBelt project proposal:

A longstanding question in the design of programming languages is how
to balance safety and control.  C-like languages give programmers
low-level control over resource management at the expense of safety,
whereas Java-like languages give programmers safe high-level
abstractions at the expense of control.

Rust is a new language developed at Mozilla Research that marries
together the low-level flexibility of modern C++ with a strong
"ownership-based" type system guaranteeing type safety, memory safety,
and data race freedom.  As such, Rust has the potential to
revolutionize systems programming, making it possible to build
software systems that are safe by construction, without having to give
up low-level control over performance.

Unfortunately, none of Rust's safety claims have been formally
investigated, and it is not at all clear that they hold.  To rule out
data races and other common programming errors, Rust's core type
system prohibits the aliasing of mutable state, but this is too
restrictive for implementing some low-level data structures.
Consequently, Rust's standard libraries make widespread internal use
of "unsafe" blocks, which enable them to opt out of the type system
when necessary.  The hope is that such "unsafe" code is properly
encapsulated, so that Rust's language-level safety guarantees are
preserved.  But due to Rust's reliance on a weak memory model of
concurrency, along with its bleeding-edge type system, verifying that
Rust and its libraries are actually safe will require fundamental
advances to the state of the art.

In this project, we aim to equip Rust programmers with the first
formal tools for verifying safe encapsulation of "unsafe" code.  Any
realistic languages targeting this domain in the future will encounter
the same problem, so we expect our results to have lasting impact.  To
achieve this goal, we will build on recent breakthrough developments
by the PI and collaborators in concurrent program logics and semantic
models of type systems.

More information about the Types-announce mailing list