Help us build the next generation of verification tools by bringing cutting‑edge proof assistant technology to bear on real‑world Rust programs.
Software is at the core of modern society — from communication networks and financial systems to medical devices and transport infrastructure — and ensuring that it behaves correctly is both essential and notoriously difficult. Proof assistants such as Agda and RoCq make it possible to construct mathematically rigorous, machine‑checked guarantees about software behaviour, but applying them to programs written in mainstream languages remains a significant challenge. This is especially true for software that exhibits cyclic behaviour: programs with loops, recursive data, or continuous interaction with their environment, which require a careful interplay of inductive and coinductive reasoning to verify.
In this postdoc position, you will work at the intersection of proof assistants and modern systems programming. Your central task is to design and prototype a way to verify Rust programs — and in particular programs with cyclic structures — by translating them, together with logical annotations supplied by the developer, into a proof assistant where their correctness can be machine‑checked. The aim is not to build yet another verification tool from scratch, but to make state‑of‑the‑art research on inductive‑coinductive type theory genuinely usable for Rust developers. You will work closely with a parallel PhD project on first‑class coinduction in proof assistants, helping to refine the underlying type theory and putting it to the test on realistic Rust programs.
This position is part of the NWO‑XL consortium project Cyclic Structures in Programs and Proofs: New Harmonies in Software Correctness by Construction, a collaboration between five Dutch universities. You will be based at TU Delft in the Programming Languages group, supervised by Jesper Cockx, and will collaborate closely with the consortium’s PhD students, postdocs and senior researchers.
Responsibilities- Design and prototype verification of Rust programs with cyclic structures.
- Translate Rust code and developer‑supplied annotations into a proof assistant for machine checking.
- Collaborate with a parallel PhD project to refine coinductive type theory and evaluate it on realistic Rust programs.
- Publish findings at leading venues such as POPL, ICFP, OOPSLA, ITP and CPP.
- Contribute to open‑source tools developed within the consortium.
- Engage with the broader research community via the consortium’s network and workshops.
- A PhD in computer science, mathematics or a closely related discipline (obtained or expected before the starting date).
- Solid experience using a proof assistant such as Agda, Rocq or Lean, ideally for non‑trivial formalizations or research on the proof assistant itself.
- A strong background in type theory and/or programming language theory, including familiarity with topics such as dependent types, type systems for program verification or operational/denotational semantics.
- The ability to conduct independent research, demonstrated by peer‑reviewed publications at relevant international venues.
- Good written and spoken English, and the communication skills needed to collaborate effectively within a multi‑site consortium.
- Duration of contract is 2 years (temporary).
- 36‑40 hours per week.
- Salary and benefits are in accordance with the Collective Labour Agreement for Dutch Universities.
- Excellent pension scheme via the ABP.
- Possibility to compile an individual employment package each year.
- Discounts with health insurers on supplemental packages.
- Regulated leave: 232 leave hours per year (at 38 hours); additional leave can be bought or sold through an individual choice budget.
- Opportunities for education, training and courses.
- Partially paid parental leave.
- Attention to healthy and energetic working life through the vitality program.
Your application will receive fair consideration.
#J-18808-Ljbffr€40000 - €60000 monthly






