Weekly

News about Lean, the theorem prover and programming language.

Week of Jul 23, 2026

Edition 23: 9 items published for Jul 16 to Jul 23, 2026.

Lean core

Patrick Hulin reports a kernel check gap allowing a proof of False

In leanprover/lean4#14484, Patrick Hulin reports that the kernel does not reject free variables in opaque declaration bodies, letting an adversarial metaprogram prove False with no axiom dependencies. The report, largely generated with AI, suggests applying the closure check used for definitions and theorems, and the issue is now closed.

Checked against: lean4#14484

Lean core

Sebastian Ullrich proposes prefix trees in oleans to speed up Lean imports

An open pull request by Sebastian Ullrich replaces hash maps built at import time with per-module prefix trees precomputed when oleans are written, cutting import Lean wall clock by 28% and mathlib's import phase by 21%, for about 6% larger stdlib oleans. A separate pull request by Sebastian Ullrich upgrading Lean to mimalloc 3 was merged.

Checked against: lean4#14362lean4#7786

Lean core

Sebastian Graf adds frame inference and contract syntax to Lean's vcgen

Merged pull requests extend vcgen, described as a verification condition generator over the Std.Internal.Do metatheory, with automatic frame inference and with loop invariants and def contracts (require and ensures clauses) that vcgen discharges automatically. A showcase repository collects imperative Lean programs verified with one 'vcgen ... with finish'.

Checked against: lean4#14389lean4#14195sgraf812/vcgen-showcaseleanprover/lean4

Lean core

Leo de Moura adds grind hom attributes to replace ToInt typeclasses

Leo de Moura merged pull requests adding a [grind homo] attribute, since renamed [grind hom] and [grind hom_pred], and migrated the standard library to them. The new approach will replace the ToInt typeclasses used in grind. Andres Erbsen has already successfully tried and prototyped it.

Checked against: lean4#14446lean4#14468

Lean core

Leo de Moura merges grind discharger support for Sym.simp and three fixes

Leo de Moura merged pull requests letting grind discharge hypotheses in conditional Sym.simp theorems, preventing grind timeouts on definitional equality checks for match-expression conditions, fixing a canonicalizer bug that made grind miss valid contradictions, and fixing grind dropping E-matching theorems from custom grind attributes.

Checked against: lean4#14425lean4#14444lean4#14439lean4#14426

Lean core

lean4web enables deflate compression for large websocket messages

A merged pull request by Jason (@jcreedcmu) enables per-message deflate compression for messages larger than 16MB in the websocket server behind lean4web, aiming to improve responsiveness of live.lean-lang.org. Full completions with Mathlib imported produce 20-40MB jsonrpc responses, which compress by a factor of 8-9x.

Checked against: lean4web#133

Papers and events

Son Ho speaks at the 3rd Lean in Munich meetup

Son Ho's talk at the meetup, hosted by UTUM Venture Labs, previewed Formal Spec driven Development: AI implements a spec and generates its constraints using autoformalisation, while humans write the spec and check that the constraints cover it. Lean FRO's Munich-based team, including Head of Engineering Sebastian Ullrich, attended.

Image: linkedin.com

Checked against: LinkedIn post