Proofs and Intuitions

A blog about mathematics, computing, formal verification, and the ideas behind them

  • On the Unreasonable Effectiveness of Property-Based Testing for Validating Formal Specifications

    by Yueyang Feng and Ilya Sergey · May 18, 2026 · 23 min read

    In this post, we show that property-based testing (PBT) is surprisingly effective for validating LLM-synthesised specifications of Lean programs: it is a cheap alternative to symbolic proofs, which helped to detect underspecification in 10% of the specs in state-of-the-art benchmarks for verified code generation.

  • Verifying Move Borrow Checker in Lean: an Experiment in AI-Assisted PL Metatheory

    by Ilya Sergey · March 18, 2026 · 32 min read

    I formalised and proved the correctness of Move’s new borrow checker in Lean: 39,000 lines of mechanised metatheory, produced in under a month with the help of an AI coding assistant. This post tells the story of how it went and what it means for the future of PL research.

  • Verifying Distributed Protocols in Veil

    by Ilya Sergey · February 9, 2026 · 32 min read

    In this post, we discuss how to formalise, test, and prove the correctness of a classic 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.

  • Multi-Modal Program Verification in Velvet

    by Ilya Sergey · January 21, 2026 · 20 min read

    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.

Authors

Ilya Sergey (4) Yueyang Feng (1)

Tags

ai (3) distributed systems (1) lean (4) model checking (1) move (1) programming (1) smt (2) specification (1) testing (1) types (1) veil (1) velvet (1) verification (3)

© 2026 VERSE Lab. Powered by Jekyll.

Advertisement
Advertisement