Verse Lab Logo
Verified Systems Engineering @ NUS
Practical proofs for real systems.

We do research in the design and implementation of programming languages, program synthesis, and computer-assisted formal reasoning about complex systems, at the School of Computing of National University of Singapore, as a part of PLSE@NUS lab.

News

02 Apr 26

Veil has been featured as one of the verification use cases of Lean on the official Lean website!

18 Mar 26

New post on Proofs and Intuitions: Verifying Move Borrow Checker in Lean: an Experiment in AI-Assisted PL Metatheory. We describe an experiment in mechanising Move’s borrow checker in Lean with AI assistance, producing 39K lines of metatheory in about 27 working days.

24 Feb 26
09 Feb 26

New post on Proofs and Intuitions: Verifying Distributed Protocols in Veil. We take a tour of Veil, a Lean-based verification framework that combines TLA+-style model checking with formal proofs and enables AI-powered invariant inference.

21 Jan 26

We now have a research blog: Proofs and Intuitions. In our first post, we show how to specify and verify imperative programs in Lean using Velvet by combining automated symbolic reasoning with AI-assisted theorem proving.

01 Dec 25

Linard Arquint joins the team as a Research Fellow. Welcome, Linard!

12 Nov 25

Two talk proposals are accepted to the Dafny Workshop 2026: (1) on Velvet and (2) on our experience of building Veil in Lean.

04 Nov 25

Thibault Dardinier joins the team as a short-term Visiting Research Fellow. Welcome, Thibault!

11 Nov 25

We are thrilled to release Loom, a framework for embedding multi-modal program verifiers in Lean! The accompanying paper will appear at POPL’26.

09 Aug 25

Dipesh Kafle, Yueyang Feng, and Valentin Mikhalchuk join the lab as PhD students. Welcome, Dipesh, Yueyang, and Valentin!

Recent Blog Posts

18 Mar 26
We describe an experiment in mechanising Move's borrow checker in Lean with AI assistance, producing 39K lines of metatheory in about 27 working days — demonstrating that AI can dramatically accelerate PL formalization work.
by Ilya Sergey
09 Feb 26
We discuss how to formalise, test, and prove the correctness of a classical distributed protocol by combining model checking, automated deductive verification, and AI-powered invariant inference in Veil, a new auto-active Lean-based verifier for distributed protocols.
by Ilya Sergey
21 Jan 26
In this post, we will show how to specify and verify imperative programs in Lean 4 using Velvet—an embedded verifier, which relies on a combination of automated symbolic and AI-assisted theorem proving techniques.
by Ilya Sergey

Research Themes

Most of research done in the lab currently is powered by Lean proof assistant.

Our current investigations follow the themes outlined below. For more details on our research, check out our projects, and recent papers.

Theme 1: Multi-Modal Verification in Lean

Modern software systems are too complex for any single validation technique. We build multi-modal verifiers in Lean that combine fuzz-testing and model checking with deductive proofs—both automated and interactive—across domains including imperative programs, distributed protocols, security protocols, and general-purpose languages. Along the way, we advance methodologies for testing, specification and invariant inference, and both automated and interactive verification.

Our goal is to bridge the gap between system implementations and their abstract models, producing robust, easy-to-maintain proofs.

Theme 2: Program Synthesis with Correctness Guarantees

Program synthesis automatically derives programs from declarative specifications, slashing the effort needed to produce correct-by-construction code. By marrying deductive proofs in proof assistants (Rocq, Lean) with synthesis, we have built tools that generate correct-by-construction implementations for complex tasks in mainstream languages, and that automatically synthesise data structure specifications.

We aim to synthesise provably correct, high-performance, safety-critical programs with low-effort proof automation and evolution.

Theme 3: Verified Foundations of Distributed Systems

Distributed systems power modern computing—from cloud services to blockchains—yet asynchrony, partial failures, and concurrent state transitions make their correctness notoriously hard to establish. We develop mathematical foundations for specifying and verifying distributed protocols, including consensus protocols, Byzantine fault-tolerant systems, and distributed data structures, drawing on automated reasoning, separation logic, fuzz testing, and compositional verification.

Our long-term goal is a verified software stack for distributed computing, where protocol designs ship with machine-checked proofs that carry through to executable implementations.

People

Faculty and Postdocs

Ilya Sergey
Ilya Sergey
Associate Professor
Linard Arquint
Linard Arquint
Research Fellow

Graduate Students

Yunjeong Lee
Yunjeong Lee
PhD Student
George Pîrlea
George Pîrlea
PhD Student
Ziyi Yang
Ziyi Yang
PhD Student
Vladimir Gladshtein
Vladimir Gladshtein
PhD Student
Qiyuan Zhao
Qiyuan Zhao
PhD Student
Yuxi Ling
Yuxi Ling
PhD Student
Valentin Mikhalchuk
Valentin Mikhalchuk
PhD Student
Yueyang Feng
Yueyang Feng
PhD Student
Dipesh Kafle
Dipesh Kafle
PhD Student

Interns and Research Assistants

Gokul Rajiv
Gokul Rajiv
Research Assistant

Recent Collaborators

Willow Ahrens
Willow Ahrens
Georgia Institute of Technology
Saman Amarasinghe
Saman Amarasinghe
Massachusetts Institute of Technology
Zhendong Ang
Zhendong Ang
National University of Singapore
Andreea Costea
Andreea Costea
TU Delft
Jonáš Fiala
Jonáš Fiala
ETH Zurich
Matthew Flatt
Matthew Flatt
University of Utah
Seth Gilbert
Seth Gilbert
National University of Singapore
Umang Mathur
Umang Mathur
National University of Singapore
Peter Müller
Peter Müller
ETH Zurich
Nadia Polikarpova
Nadia Polikarpova
UC San Diego
Alex Potanin
Alex Potanin
Australian National University

Software

A Multi-Modal Verifier for Imperative Programs in Lean

GitHub stars

A framework for verifying distributed protocols in Lean

GitHub stars

A Framework for Automated Generation of Foundational Multi-Modal Verifiers

GitHub stars

A simple Separation Logic in Lean

GitHub stars

An SSReflect-Like Tactic Language for Lean

GitHub stars

A Multicore OCaml library for batch-parallel data structures

GitHub stars

A Coq framework for verifying Byzantine Fault Tolerant protocols

GitHub stars

A hyperlogic for verifying sparse tensor manipulations

GitHub stars

Mostly automated proof repair for verified OCaml functions

GitHub stars

Program Synthesises from specifications in Separation Logic

GitHub stars

Publications

Recent

Grammar Repair with Examples and Tree Automata

41st ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2026). Oakland, CA, USA, October 2026.

Foundational Multi-Modal Program Verifiers

53rd ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2026). Rennes, France, January 2026.

Velvet: A Multi-Modal Verifier for Effectful Programs

Dafny Workshop 2026 (co-located with POPL 2026). Rennes, France, January 2026.

Lessons from Building an Auto-Active Verifier in Lean

Dafny Workshop 2026 (co-located with POPL 2026). Rennes, France, January 2026.

Inductive Synthesis of Inductive Heap Predicates

40th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2025). Singapore, October 2025.

Inductive First-Order Formula Synthesis by ASP: A Case Study in Invariant Inference

41st International Conference on Logic Programming (ICLP 2025). Rende, Italy, September 2025.

Sound and Efficient Generation of Data-Oriented Exploits via Programming Language Synthesis

34th USENIX Security Symposium. Seattle, WA, USA, August 2025.

Veil: A Framework for Automated and Interactive Verification of Transition Systems

37th International Conference on Computer Aided Verification (CAV 2025). Zagreb, Croatia, July 2025.

Accelerating Automated Program Verifiers by Automatic Proof Localization

37th International Conference on Computer Aided Verification (CAV 2025). Zagreb, Croatia, July 2025.

Concurrent Data Structures Made Easy

39th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2024). Pasadena, CA, USA, October 2024.

Join Us

PhD Positions: We are actively looking for motivated PhD students (although the number of available positions in the team is limited to 1-2 per year)! Get in touch with Ilya Sergey if you want to chat about research opportunities, and apply here.

Research Internships: If you are interested in a research internship with us, please get in touch with your CV and a paragraph of text describing your specific interests in the research themes we pursue at the moment. Strong background in PL/logic/verification or systems-building is a must. Prospective internship candidates will have to complete a test verification task in Lean.

VERSE
Verified Systems Engineering
NUS School of Computing