chore: bump Lean stack to v4.31.0 - #644
Conversation
🤖 PR SummaryThis PR migrates the project from Lean 4.30 to Lean 4.31, updating the toolchain, all dependency tags (VCVio, CompPoly, doc-gen4), and the Lake manifest. The bulk of the changes are mechanical adaptations to upstream API changes, including renamed typeclass fields, replaced lemmas, and proof refinements for elaboration and definitional equality. No new Statistics
Lean Declarations ✏️ Removed: 14 declaration(s)
✏️ Affected: 7 declaration(s) (line number changed)
📋 **Additional Analysis**The diff consists primarily of version-bump compatibility fixes, mechanical renames, and proof adjustments required by the switch to Lean 4.31.0. No new definitions or substantial contributions that would be evaluated against the project's style and naming guidelines are introduced. Therefore, no findings are reported under the supplied review instructions. 📄 **Per-File Summaries**
Last updated: 2026-07-12 13:35 UTC. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 271b36abf7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Replace all 12 `set_option <linter> false` escapes added during the 4.31 migration with fixes of what the linters actually flagged: - JohnsonBound/Lemmas: drop `@[simp]` on `Fis_cover_B` (variable-head LHS; its only use is an explicit `rw`) and the `warning.simp.varHead` suppression. - Prelims: `omit [Nontrivial F]` on `rank_eq_if_det_ne_zero` (implied by its `[IsDomain F]`) instead of `linter.overlappingInstances`. - ProximityGap/Basic: give `δ_ε_multilinearCorrelatedAgreement` a nested section with a single `[CommRing F]` scalar structure. The previous signature carried both the section `[Ring F]` and a local `[CommRing F]` — a genuine instance diamond the new linter caught. - DG25/Basic: delete duplicate local `[Module F A]` / `[CommRing F]` binders already supplied by section variables. - DG25/MainResults: extend the `omit` lists with the genuinely unused `[DecidableEq ι]` / `[DecidableEq κ]` instead of three unused-variable linter suppressions per lemma. - CosetFftDomain/Log: make the two non-terminal `simp`s in `log_right_inverse'` terminal via `show ... by simp` step equations instead of `linter.flexible`. Validated with a full `lake build` (4094 jobs) and `./scripts/validate.sh`. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Summary
Migrates ArkLib and its dependency stack from Lean 4.30 to Lean 4.31, ahead of the interaction PR stack (#532, #570, #580).
Dependency updates
v4.30.0→v4.31.0v4.30.0→v4.31.0(cbd4144, the merged release of chore: complete Lean 4.31 migration VCVio#477)v4.30.0→v4.31.0v4.30.0→v4.31.0VCVio #477 has landed and was released as
v4.31.0, so ArkLib now uses the stable tag rather than the temporary PR-head pin used during development.ArkLib adaptations
No new
sorryoradmitdeclarations were introduced.Validation
lake buildsucceeds: all 4,094 jobs.git diff --checksucceeds.