What a Mathlib bump breaks in real projects

5 of 7 projects that broke on a Mathlib bump now pass lake build after repair; 2 of those 5 needed a statement changed. Every diff is published, and every number comes from the compiler.

5 of 7failing projects green after repair
0 of 145raw build errors an alias rewrite resolves
52 of 67deprecation warnings an alias rewrite clears
8public Lean 4 projects, each bumped to a newer v4.X.0

The renames are the cheap part. Across the 7 failing projects, none of the 145 raw errors named a deprecated alias with a replacement: they were a new Mathlib declaration clashing with a local one, a lemma that gained a hypothesis, a changed simp normal form, a coercion that no longer unfolds. Each row below shows what changed in Mathlib for that project and the labelled repair: rename, signature change or reproof.

ProjectMathlib bumpRaw errorsResult
PrimeCert
b-mehta/PrimeCert
v4.31.0 → v4.35.0
4 releases
8lake build passes after repair
2 rebuilds, about 12 min of agent time
changed what it proves
DirichletProblem
mcdoll/DirichletProblem
v4.29.0 → v4.33.0
4 releases
9lake build passes after repair
4 rebuilds, about 15 min of agent time
DynamicalSystems
mcdoll/DynamicalSystems
v4.31.0 → v4.35.0
4 releases
7lake build passes after repair
5 rebuilds, about 20 min of agent time
HighlyAbundant
b-mehta/HighlyAbundant
v4.31.0 → v4.35.0
4 releases
8lake build passes after repair
4 rebuilds, about 20 min of agent time
LML
LeanMachineLearning/LML
v4.32.0 → v4.35.0
3 releases
30lake build passes after repair
11 rebuilds, about 120 min of agent time
changed what it proves
BrauerGroup
Whysoserioushah/BrauerGroup
v4.32.0 → v4.35.0
3 releases
33Partial: 12 modules repaired, 2 still red when the time box ended
ClassFieldTheory
kbuzzard/ClassFieldTheory
v4.28.0 → v4.31.0
3 releases
50Not attempted
PersistentDecomp
Paul-Lez/PersistentDecomp
v4.31.0 → v4.35.0
4 releases
0Builds clean at the target

How to read this

Re-run it yourself

Each project page lists the exact commands. The whole benchmark, with a Lean toolchain installed through elan:

git clone https://github.com/leanprover-community/mathlib4  # a local mirror speeds up every case
source bench/env.sh
python3 bench/lbbench.py setup primecert
python3 bench/lbbench.py build primecert
python3 -I bench/results.py

The scripts and every recorded run are in the benchmark archive: README, results.json.

Is your project in here, and is a row wrong?

Every project here is a public repository. If a row is wrong, send the correction. If you would like your project taken off this page, say so and it is removed.

Correct a row Remove my project

Check your own project

Paste a GitHub address and get every deprecated or renamed Mathlib name in it, file and line, with the replacement. Scan a project