refactor: drop twelve dead pseudoMassG decoration lemmas - #4641
Conversation
Initiate PR to remove reference-0 declarations from IsingModel/PseudoMass/Profile.lean as authorized in issue #4640. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
These twelve declarations in IsingModel/PseudoMass/Profile.lean were reference-0 decorations off the critical path: eight leaves with no consumer anywhere in the repo, plus four whose only consumers were those leaves (a cascade that must be removed in the same commit, since dropping the leaves alone would just create four fresh dead declarations). Removed leaves: neg_pseudoMassG_strictMonoOn, pseudoMassG_lt_iff, pseudoMassG_eq_two_iff_zero, pseudoMassG_analyticOnNhd_univ_of_even, pseudoMassG_continuousOn_Ioi_zero, pseudoMassG_continuousAt_of_pos, pseudoMassG_differentiableOn_Ioi_zero, pseudoMassG_differentiableAt_of_pos Removed cascade: pseudoMassG_analyticAt_of_even, pseudoMassG_differentiableAt, pseudoMassG_lt_two_iff_pos, pseudoMassG_lt_two_of_pos Nothing in docs/index.md or tex/proof-guide.tex cites any of them; the ten neighbouring lemmas that are either live internally or cited by the GJ 17.5 progress table are untouched. Refs #4640. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
dev-issue-manager: pre-merge resolution verification (PASS)Verified independently against HEAD
codex even-α finding: the deleted Verdict: resolved. No unresolved/mis-stated items found. Merge-ready. |
Follow-up to 0a52f59 after independent review. Documentation only: Lean doc comments, `docs/index.md` rows, and `tex/proof-guide.tex`. No statement, proof term, or public name changes. 1. Off-by-one in the identical-statement group. The pilot canonicalizes three of *four* declarations that share the statement, not three of three. `freeEnergyComplexAlongExhaustion_closedBallBranchDeviationRelCompact_patch` (`ClosedBallPatches/RelCompact.lean`, PR #2745) carries the byte-identical statement as well, but was deliberately excluded from the pilot: it proves the statement by the independent `toDeviationData` route into `freeEnergyComplexAlongExhaustion_branchDeviationRelCompact_patch`, and it still has its own in-repo consumers (`BranchLocallyBoundedPatches/ RelCompact.lean`, its own `_of_isCompact`, and the Z^d wrapper). The owner doc comment, the excluded theorem's doc comment, the two `docs/index.md` rows, and the PR #2745/#2752/#2756/#2768 proof-guide theorem environments now say "owner for the three pilot-scoped declarations" and disclose the fourth instead of implying an exhaustive three-element group. 2. Stale construction path in the PR #2756 proof-guide environment. It stated that the direct-range endpoints build their relatively compact range data "through the PR #2757 direct-route data alias". Since 0a52f59 none of the three endpoints listed there calls `toRangeRelCompactData_direct`: the abstract one forwards to the owner, the `_of_isCompact` one calls the abstract one, and the positive-real one calls the `_of_isCompact` one; the owner calls `toRangeRelCompactData_closedBallLocal_direct`. The data alias itself remains in use by the other closed-ball conversions (`toRangeRelCompactData_viaDeviation_direct` and the eventual-overlap conversion), so it is not orphaned. The sentence now states the actual post-PR path. 3. Correction to the 0a52f59 commit message (left as pushed; not rewritten). It justified keeping `...ClosedBallBranchDeviationAscoliData.toRangeRelCompactData_viaLocal_direct` with the blanket claim "this repo does not run reference-0 deletion campaigns". That claim is false: deliberate zero-consumer deletions have happened repeatedly (272b310/#4641, 3fbc873/#4749, 051aa85/#4751, f891116/#4764), as have duplicate retirements (6147071/#4839, 2613222/#4851), and `lean-coding-conventions` points the other way (reference-0 declarations are decorative and should generally be removed). The real, narrower reason is that removing or re-pointing that declaration is outside the minimal scope of the #4854 pilot. The `docs/index.md` rows and the via-local proof-guide environment are reworded to that narrower claim and now say explicitly that this is a scope statement about this PR, not a general exemption for reference-0 declarations. Verification: `lake build` full, zero warnings and zero errors; `lake exe GKSTest` passes; `latexmk -g -pdf proof-guide.tex` clean with zero Overfull/Underfull boxes, zero LaTeX/package warnings and zero undefined references; no Japanese characters in the proof guide. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Summary
The user gave explicit item-specific authorization to delete reference-0 declarations.
IsingModel/PseudoMass/Profile.leanwas reported as having 22 of its declarations unreferenced across the repository, but an independent audit narrowed that to 12: seven of the original candidates are load-bearing inside the file (they feed declarations that live modules consume, e.g.pseudoMassG_analyticAt→analyticWithinAt_Ici_zero→Lemma_17_5_2/UniformTransferLargeK.lean), and three are cited bydocs/index.mdas GJ §17.5 results in their own right (one_div_mul_pow_mul_one_div_mul_pow_eqat :2050,one_div_one_add_pow_mul_one_div_one_add_pow_le_one_div_pow_mul_one_div_powat :2052,pseudoMassG_le_two_div_one_add_pow_of_preimage_leat :1943). Only the remaining 12 are deleted here.Context
This completes on the
pseudoMassGlayer the same dead-decoration sweep that PR #4536 (1793e549) already performed on thepseudoMassExtlayer, where the exact twins of several of these lemmas (neg_pseudoMassExt_strictMonoOn,pseudoMassExt_lt_iff,pseudoMassExt_differentiableOn,pseudoMassExt_continuousOn) were removed. Some of the candidates lost their last consumer in that very PR.Scope
Eight leaves plus four that become unreferenced once the leaves go — they must be deleted together, or the four become new dead declarations.
Note that none of the twelve is cited by
docs/index.mdortex/proof-guide.tex, so no documentation update is expected; this will be re-verified during implementation.Note on
pseudoMassG_analyticAt_of_even(raised by codex review)One of the twelve,
pseudoMassG_analyticAt_of_even, is not a redundant special case of thesurviving
pseudoMassG_analyticAt. It claimedAnalyticAt ℝ (pseudoMassG α r) tfor allt : ℝwhenαis even (using boundedness of(t·r)^α ≥ 0to keep the denominator positiveeverywhere), whereas
pseudoMassG_analyticAtonly coversr > 0,t ≥ 0. It is a genuinelybroader (all-of-ℝ) statement, just an unused, standalone one — no open GJ §17.5 target requires
analyticity for
t < 0. Deletion is still correct (zero references anywhere), but it is adeletion of an independent unused result, not a "duplicate discard."
Verification checklist
rgoverIsingModel/,docs/,tex/,test/,scripts/)lake buildwarning-freescripts/audit_gate.pyV1-V4lake exe GKSTest#print axiomsunchanged for the surviving declarations in the fileResolves #4640
🤖 Generated with Claude Code