Mark landed contribution directions; replace v4.34.0 deprecations in the corpus - #224
Merged
Merged
Conversation
A (#197), B (#207), D (#195) and E (#210) have landed; H's path and interval infrastructure has (#208, #209, #211), the bridge itself has not; C is partly covered by D's trace and charpoly identities. Status lines name modules and entrypoints, not pull requests, as the document asks. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Eleven deprecation warnings in eight modules would become errors in a later Mathlib and fail that upgrade's audit: Mathlib.Data.Real.Basic and Mathlib.Data.Complex.Basic imports (now Mathlib.Basic.*), if_pos and if_neg (now ite_eq_left and ite_eq_right, same signatures), and Set.mem_setOf_eq (now Set.mem_ofPred_eq). Furstenberg's five haveILetI lints are fixed too; the module now builds without warnings. Proofs only. A frontier-audit of the whole corpus before and after reports the same 477 declarations with identical canonical types, kinds and axioms, and leanchecker passes on every edited module. Remaining warnings (11) are style lints. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…s-status-furstenberg
Added by #227 after the rest of this PR was written; same v4.34.0 deprecation class (now ite_true/ite_false). Re-verified on current main: 486 declarations with identical canonical types, kinds and axioms before and after the whole PR, 0 deprecation warnings, leanchecker passes on every edited module. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Owner
Author
|
Updated after #223, #225–#228 merged: brought up to date with |
qazW12345
pushed a commit
to qazW12345/LeanFrontier
that referenced
this pull request
Sep 22, 2026
A deprecation is a warning under the pinned Mathlib and an error after a later one, so each admitted use is a future break in the upgrade audit; carlok#224 had to fix thirteen by hand, two of them in a module merged an hour earlier. The receiver now rejects, as DEPRECATED_API, any deprecation warning Lean reports about the submission's own files after a successful build, quoting Lean's message, which names the replacement. Deprecations in other modules are not the submitter's to fix under the add-only rule and are ignored; style lints are not affected. CONTRACT.md documents the rule and the code. The Mathlib upgrade audit lists the corpus's deprecations under the new release in its report (corpus_deprecations, sorted so the byte-for-byte re-audit stays deterministic) without blocking the upgrade: that list is the follow-up maintenance work. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two maintenance commits. Since #216, editing existing modules is maintenance-only, and a
maintenance/PR doesn't go through the receiver. So the second commit's correctness evidence is spelled out below.1.
docs/CONTRIBUTION-DIRECTIONS.md: statusesStatus lines name modules and entrypoints rather than PRs, as the document asks.
@qazW12345: this also covers your #197, #207, #195, #208–#211. One rule change to know about since #186 closed: #216 makes ordinary submissions add-only. Extend an accepted module by importing it from a new one. It also rejects code that runs at build or import time (
initialize,run_cmd, simprocs,extern/implemented_by, …). None of your submissions did either.2. Corpus deprecations under Mathlib v4.34.0
There were 11 deprecation warnings in 8 modules. A later Mathlib will make them errors, and the next upgrade's audit would then fail.
import Mathlib.Data.Real.BasicMathlib.Basic.Real.Basicimport Mathlib.Data.Complex.BasicMathlib.Basic.Complex.Basicif_pos/if_negite_eq_left/ite_eq_right(identical signatures,Init/Core.lean:1179,:1188)Set.mem_setOf_eqSet.mem_ofPred_eqFurstenberg's five
haveILetIlints are fixed too (letI→letin proofs of propositions), so that module now builds with no warnings. Those warnings had flooded the receiver report that #193 fixed.Evidence that only proofs changed: checked locally on v4.34.0, not by CI.
lake build: success. Deprecation warnings go from 11 to 0, and all warnings from 27 to 11 (all style lints, left alone).lake exe frontier-audit -- LeanFrontierbefore and after: the same 477 declarations, with identical canonical types, kinds and axioms. No accepted statement changed.lake env leancheckerpasses on all 8 edited modules.🤖 Generated with Claude Code