Repository navigation
refactor: Track-and-Stop sample complexity bounds without an auxiliary rate - #189
Merged
lmlexplore-automation[bot] merged 2 commits intoNov 6, 2026
Conversation
…y rate eventually_expectedStoppingTime_trackAndStop_le and eventually_expectedStoppingTime_cTrackAndStop_le took a rate κ < D with 1 < κ c, which is equivalent to D⁻¹ < c. They now take (task.altCost μ (w μ) i)⁻¹ < c and (⨅ v ∈ C, task.altCost μ v i)⁻¹ < c, and choose κ in the proof. The characteristic-time corollaries no longer rebuild κ, and the private exists_lt_answerValue_one_lt_mul becomes the generic exists_lt_one_lt_mul_of_inv_lt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RemyDegenne
commented
Nov 6, 2026
Contributor
Author
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 |
Move the private helper exists_lt_one_lt_mul_of_inv_lt of Track-and-Stop to LMLExplore/Basic/ENNReal/Inv.lean as ENNReal.exists_nnreal_lt_one_lt_mul_of_inv_lt. Co-Authored-By: Claude Code <noreply@github.com>
RemyDegenne
commented
Nov 6, 2026
Merged
via the queue into
LeanMachineLearning:main
with commit Nov 6, 2026
5cd9c73
27 of 31 checks passed
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.
The sample complexity bounds of Track-and-Stop now take their constant directly. They used to take a rate
κthat appears only in the hypotheses.Before:
eventually_expectedStoppingTime_trackAndStop_letook{κ c : ℝ≥0} (hκ : κ < task.altCost μ (w μ) i) (hκc : 1 < κ * c), andeventually_expectedStoppingTime_cTrackAndStop_letook(hκ : ∀ v ∈ C, κ < task.altCost μ v i) (hκc : 1 < κ * c). A κ withκ < Dand1 < κ cexists exactly whenD⁻¹ < c, so κ is a step of the proof, and every caller had to rebuild it.After:
eventually_expectedStoppingTime_trackAndStop_letakes{c : ℝ≥0} (hc : (task.altCost μ (w μ) i)⁻¹ < c).eventually_expectedStoppingTime_cTrackAndStop_letakes{c : ℝ≥0} (hc : (⨅ v ∈ C, task.altCost μ v i)⁻¹ < c).ENNReal.exists_nnreal_lt_one_lt_mul_of_inv_lt(D⁻¹ < c → ∃ κ : ℝ≥0, κ < D ∧ 1 < κ * c, forD : ℝ≥0∞andc : ℝ≥0), in the new fileLMLExplore/Basic/ENNReal/Inv.lean(mirroring Mathlib'sMathlib/Basic/ENNReal/Inv.lean). It replaces the privateexists_lt_answerValue_one_lt_mulofTrackAndStop.lean, which did the same throughT*(μ)._of_charTime_ltcorollaries no longer build κ. They rewriteT*(μ) < cinto the new hypothesis: at an optimal allocation,D(μ, w(μ), ¬i)⁻¹ = T*(μ), and on the optimal allocations the infimum is at leastD(μ, ¬i).c > D(μ, w(μ), ¬i)⁻¹. The D-tracking docstring also says that the constant does not depend onp, whereas [GK16, Theorem 14] has a factorα ∈ [1, e/2]forr(t) = O(t^α); the review of this theorem in Review: LMLExplore.Identification.IdentTask.eventually_expectedStoppingTime_trackAndStop_le LMLExplore-evidence#1 noted that the docstring left this out.The two theorems keep their names, and their only callers are in
TrackAndStop.lean. The generic reductions ofGLR.leankeep their rateκ, which there is a hypothesis: the growthκ Tof the statistic.The companion roadmap change, LeanMachineLearning/LMLRoadmaps#14, makes "no auxiliary rate" a convention of the Generalization roadmap, so that targets 1.10–1.11 keep this form.
Checked locally:
lake build --iofail;#lint in LMLExploreoverTrackAndStopandGaussianThresholdpasses.Roadmap: Identification
🤖 Generated with Claude Code