Weekly

News about Lean, the theorem prover and programming language.

The latest, page 7

AI and formalization

The Mathlib Initiative launches Formal Frontier for open-source AI autoformalization

Formal Frontier is a new project focused on responsible, scalable, and open-source AI-driven autoformalization of mathematics, with XTX Markets supporting it. Its initial phase covers a community autoformalization specification, open-source tooling, and autoformalized texts chosen to fill gaps in Mathlib's existing coverage.

Mathlib Initiative
Image: mathlib-initiative.org

Checked against: mathlib-initiative.org

Lean core

Lean's hex aggregator bundles verified computational algebra libraries for Lean 4

The leanprover/hex repository installs the released hex libraries at a single pinned set, including HexLLL for LLL lattice reduction and HexBerlekampZassenhaus for integer polynomial factorization. Each computational library is Mathlib-free, with Mathlib correspondence proofs in a separate theory library.

Checked against: kim-em/hex

Lean core

Kim Morrison splits Lean's implicit transparency level into implicit and instances

A merged pull request by Kim Morrison separates the levels so that @[implicit_reducible] annotations no longer have the side effects @[instance_reducible] has, such as allowing type class search to see through marked declarations. The hierarchy is now none < reducible < instances < implicit < default < all, and a new with_implicit tactic is added.

Checked against: lean4#13637

Lean core

Leo de Moura adds a dsimp tactic for Lean's sym => mode

In a series of merged pull requests, Leo de Moura built infrastructure for a dsimp in SymM, functions for simplifying binders, reusable reduction DSimprocs (beta, zeta, zetaAll, dsimpProj, dsimpMatch), and syntax for declaring dsimp variants. The last pull request implements the dsimp tactic for interactive sym => mode.

Checked against: lean4#13857lean4#13823lean4#13824lean4#13825lean4#13854

Lean core

Joachim Breitner adds an impossible tactic combinator to Lean

The merged pull request adds impossible by t, which uses the tactic t to prove that the current goal is impossible, closing the original goal as if sorry were used. try? gains an impossible branch that runs impossible by decide, impossible by simp, and impossible by grind in parallel.

Checked against: lean4#13771

Verification

Cajal introduces Talos, a Lean 4 framework for verifying WebAssembly modules

Talos provides a Wasm interpreter optimized for reasoning plus a WP calculus layer for proving program properties, with a proof that the num-integer crate's gcd using Stein's algorithm is correct. The early-stage project aims for full Wasm coverage by passing the official testsuite, and verification of any Rust crate that compiles to Wasm.

Checked against: leanprover.zulipchat.com

Lean core

Kyle Miller replaces Lean's tactic configuration system with a faster one

A merged Lean pull request by Kyle Miller adds a tactic configuration system that supports custom configuration syntaxes, and on a simple benchmark configuration evaluation takes 6.2% of the time it used to. A separate pull request by Kyle Miller makes InfoView hovers include information about specific metavariables.

Checked against: lean4#13651lean4#13446

Lean core

Lean publishes Lean Workbench, an experimental online environment for Lean

The leanprover/lean-workbench repository aims to provide familiar (VS Code with the Lean 4 extension) and novel interfaces to Lean online, giving each user an isolated Code Server instance inside a bubblewrap sandbox. The README warns the project is in progress and experimental, with a security audit forthcoming.

Checked against: leanprover/lean-workbench

Lean core

Lake adds a requiresModuleSystem option to flag non-module imports

Sebastian Ullrich's merged Lean pull request adds the Lake package option requiresModuleSystem: Lake then warns whenever a non-module-system file (one without a module header) imports a module of the package. A separate fix repairs code generation that broke with structures using private fields and types inaccessible in the current scope.

Checked against: lean4#13646lean4#13679

Lean core

Demo previews Rust source references resolved through rust-analyzer

A demo chapter on x80.org previews foreign Rust references backed by a live language-server lookup: resolved references render a compact Rust source link and a grouped Rust code panel fetched from the location returned by rust-analyzer. A reference the language server cannot find is reported as unresolved, without a code panel.

Checked against: x80.org

Lean core

Kim Morrison releases sos, a sum-of-squares tactic for Lean

The sos tactic is a sum-of-squares decision procedure for nonlinear real arithmetic, closely following John Harrison's HOL Light implementation. It calls the CSDP semidefinite programming library and rebuilds a fully certified result in Lean. Kim Morrison calls it a prototype and notes that frontier models have become very good at Lean metaprogramming.

Checked against: kim-em.github.ioLinkedIn post

Lean core

Leo de Moura merges grind improvements for local theorems in Lean

In merged Lean pull requests by Leo de Moura, grind diagnostics now show local hypotheses used as E-matching theorems with their user-facing names and instantiation counters. A new grind option, genLocal, controls the maximum term generation for local theorems (for example, hypotheses) and defaults to 8, the same value as gen.

Checked against: lean4#13699lean4#13698

Lean core

Mac Malone merges three Lake fixes, including workspace-level compiled configurations

Compiled Lake configurations such as lakefile.olean now live in the workspace's .lake/config, removing a source of contention between workspaces sharing a dependency. Lake also now includes IR for a meta import's transitive imports, fixing "missing data file" errors with the artifact cache, and all Lake tests are re-enabled by default.

Checked against: lean4#13683lean4#13600lean4#13692

Lean core

Sebastian Graf merges experimental mvcgen' tactic into the Lean toolchain

The pull request adds mvcgen', reimplemented from the ground up on the new SymM-based framework for efficient symbolic evaluation. It will soon replace mvcgen and can outperform it by a factor of more than 100 on some synthetic benchmarks. Join point sharing and introduction of local specs are not yet supported.

Checked against: lean4#13644

Lean core

Sebastian Graf brings Sym-based mvcgen' to parity with mvcgen

A merged Lean pull request by Sebastian Graf gives the Sym-based mvcgen' feature parity with mvcgen, except +jp (join-point handling), at a cost of about 10% vcgen slowdown for cleaner user-visible VCs. A separate change adds whileM, which makes repeat/while loops verifiable with mvcgen.

Checked against: lean4#13578lean4#13209lean4#13672lean4#13582

Verification

Jonathan Protzenko uses Aeneas to verify bounds safety in jxl-rs

Jonathan Protzenko's case study uses Aeneas, a toolchain for verifying Rust programs through a functional translation to Lean, on jxl-rs, a Rust rewrite of the jpeg-xl codec. The proof shows an unchecked array access always stays within bounds and showcases recent Aeneas features, including official grind support and loop combinators.

Checked against: jonathan.protzenko.fr

Lean core

Leo de Moura fixes a panic and an assertion failure in Sym.simp

One merged Lean 4 pull request fixes a Sym.simp panic triggered when match reduction exposed kernel projection terms, for example in a do block with a for loop over tuple state. Another removes an incorrect assertion that failed on have-expressions whose binder type depends on an earlier binder.

Checked against: lean4#13635lean4#13611lean4#13612

Lean core

Wojciech Nawrocki adds a VSCode extension to lean-workbench

A pull request by Wojciech Nawrocki, merged on 2026-05-05, adds a VSCode extension to integrate it with the workbench in the leanprover/lean-workbench repository. The change also adds a launch target and server endpoint to debug the extension.

Checked against: lean-workbench#9

Papers and events

Nathanson publishes recording of talk about Aristotle's solutions

Nathanson has published the recording of a talk about Aristotle's solutions to problems, including the remark "I tried to figure out what it did that I didn't do to solve the problems." Pietro Monticone shared the video on X.

Image: x.com/pietromonticone

Checked against: @pietromonticone on X

More news