Repository navigation
feat: the logarithmic sum bound [MDJKLV21, Lemma 9] with the constant 3 - #293
Conversation
Co-Authored-By: Claude Code <noreply@github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🟡 attribution — request_changes claude/claude-opus-5-5
The code credits [MDJKLV21, Lemma 9] and the Essakine2026Tight formalization, but leaves out [EV26, Lemma 28] and the erratum E19 behind the constant 3, both named in the description. The credit line for the adapted formalization is incomplete compared with the repo's own convention.
LMLExplore/Analysis/SpecialFunctions/Log/Basic.lean:446— The description says the source is [EV26, Lemma 28] and that the constant 3 follows erratum E19 in the project'snotes/paper-errata.md. Neither appears in the code, yet the sharpened constant is the main way this result differs from MDJKLV21. Fix: Cite [EV26, Lemma 28] and erratum E19 in the docstring ofsum_div_max_one_le_three_mul_log, and add an[EV26]entry to the module's References, using the same wording as inEpisodic/Basic.lean.LMLExplore/Analysis/SpecialFunctions/Log/Basic.lean:446— The credit for the adapted formalization says '(same author)', which is unverified and unclear, and it gives no licence, commit or full path. Fix: Follow the sibling files: give the full file pathEssakine2026Tight/ForLMLExplore/Analysis/SpecialFunctions/Log/Basic.lean, then 'by Rémy Degenne, Apache 2.0', and optionally the commit 9c77165d.
Reply in this thread to contest a finding; that re-runs only this rubric and posts an answer here. (To fix it, just push a commit — that re-reviews on its own. To contest again after an answer, post a NEW reply rather than editing an old one.)
claude/claude-opus-5-5 · 19s · 30.6k in (25k cache read, 5.6k cache write) / 1.7k out tokens · reviewing this diff · rubric
AI review — changes requestedEach rubric is judged independently by multiple review agents; the PR merges only once every rubric is green — any rubric that is not green (changes requested, blocked, errored, stale, or not yet run) blocks the merge. See the rubrics.
♻️ = approved on an earlier commit, re-run before merge. Reviewing this diff at head |
Co-Authored-By: Claude Code <noreply@github.com>
AI review — approvedEach rubric is judged independently by multiple review agents; the PR merges only once every rubric is green — any rubric that is not green (changes requested, blocked, errored, stale, or not yet run) blocks the merge. See the rubrics.
♻️ = approved on an earlier commit, re-run before merge. Reviewing this diff at head |
9d858bc
This PR adds the logarithmic sum bound of RF-Express [MDJKLV21, Lemma 9] to
LMLExplore/Analysis/SpecialFunctions/Log/Basic.lean. If0 ≤ u k ≤ max 1 (U k)for everyk < n, whereU k = ∑_{i < k} u i, then∑_{k < n} u k / max 1 (U k) ≤ 3 log (U n + 1)(Real.sum_div_max_one_le_three_mul_log).Real.sum_div_max_one_le_four_mul_logis the statement exactly as the roadmap and the source give it, foru k ∈ [0, 1]and with the constant4. The proof telescopes the one-step boundu / max 1 U ≤ 3 (log (U + u + 1) - log (U + 1)), which follows from1 - x⁻¹ ≤ log x(Mathlib'sReal.one_sub_inv_le_log_of_pos) together withU + u + 1 ≤ 3 max 1 U.Target: ReinforcementLearning, Layer 19.2 (RF-Express [MDJKLV21, Theorem 1]), tool bullet "$\sum_t u_{t+1}/\max(1,U_t)\le4\log(U_{T+1}+1)$ [MDJKLV21, Lemma 9]". On indexing: the source writes
U_t = ∑_{l=1}^t u_land sums overt = 0, …, T. Re-indexing from0(u k = u_{k+1},n = T + 1) gives exactly the Lean statement. I checked this against the text of Lemma 9 in arXiv:2007.13442. This is the version with the 0-based indices. The hypotheses are weakened fromu k ≤ 1tou k ≤ max 1 (U k), the same hypotheses as the neighbouring doubling boundReal.sum_div_sqrt_max_one_le(LMLExplore/Analysis/Real/Sqrt.lean), and the same proof gives the constant3. The one-step bound isprivate, as in that sibling. I add the new statements at the end of the file and at the end of its docstring list, so they don't overlap with the edits that the open PR #287 makes to the same file.After this PR, the last open tools of Layer 19.2 are in open PRs: counts versus pseudo-counts in #292, the KL-to-Bernstein transport and variance transfers in #291, and the implicit-inequality inversion in #287. What remains for the milestone is the RF-Express algorithm itself, on the Layer 7.7 and Layer 14 infrastructure (
statesEnv, episodic counts and stream models), and its PAC and sample-complexity theorems.Source: this is adapted from the paper project RemyDegenne/Essakine2026Tight at commit 9c77165d56f81c1db7a9835068356bb14886a3be (Apache 2.0), file
Essakine2026Tight/ForLMLExplore/Analysis/SpecialFunctions/Log/Basic.lean(Real.sum_div_max_one_le_three_mul_log,Real.sum_div_max_one_le_four_mul_log, stated there foru k ∈ [0, 1]). The paper is [EV26, Lemma 28], and the constant3follows that project'snotes/paper-errata.mdE19. The code credits the source and its reference [MDJKLV21]. No public declaration is removed or renamed.Roadmap: ReinforcementLearning
Paper: RemyDegenne/Essakine2026Tight
Item: R25
🤖 Prepared with Claude Code