Repository navigation
feat: leave-one-out evaluation of the separated plug-in policy [LWCGC24, Lemma 5] - #392
Merged
lmlexplore-automation[bot] merged 5 commits intoNov 14, 2026
Conversation
…24, Lemma 5] Co-Authored-By: Claude Code <noreply@github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RemyDegenne
commented
Nov 14, 2026
RemyDegenne
commented
Nov 14, 2026
RemyDegenne
commented
Nov 14, 2026
RemyDegenne
commented
Nov 14, 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 |
…Absorbing tools - PolicyEvaluation: factor `abs_value_sub_value_le_of_abs_integral_stateKernel_sub_le`, the deterministic part of [LWCGC24, Lemma 1] in Bernstein form, and prove both Lemma 1 and the first claim of Lemma 5 from it. - Decoupling: add the redirect-level Bernstein lemma `measureReal_sqrt_variance_add_le_abs_integral_sub_integral_empirical_redirect_le`, derive the absorbing version from it, and move the saAbsorbing independence and Bernstein lemmas here. - Value: `policyReward_mem_Icc`. Log/Basic: `Real.natCeil_log_inv_one_sub_add_one_le`. - Fix the Decoupling Main statements wording for `indepFun_comp_redirect_empirical`. Co-Authored-By: Claude Code <noreply@github.com>
…as 1 and 5 Add `MDP.valueLevel` with its `@[simp]` equations and `valueLevel_mem_Icc`, and use it in the deterministic lemma and in both union-bound proofs instead of two ad hoc `Nat.rec` constructions. Add `value_zero` and `value_empirical_zero`, which replace the duplicated `γ = 0` rewrite chains. Co-Authored-By: Claude Code <noreply@github.com>
… kernel proofs Add `Real.mul_exp_neg_log_div_le` (`c exp (-log (x / δ)) ≤ δ / n` for `c n ≤ x`) and use it in Lemma 1, Lemma 5 and the decoupling lemma of [AKY20], replacing the two private `two_mul_exp_neg_log_le` helpers (in `Decoupling.lean` and `LeaveOneOut.lean`) and the inline calc of Lemma 1. Prove `stateKernel_deterministic_apply` through `stateKernel_apply` and `Measure.compProd_deterministic`, and `value_zero` with one `simp` call. Co-Authored-By: Claude Code <noreply@github.com>
…DP layer Move `Learning.MDP.valueLevel`, `valueLevel_zero`, `valueLevel_succ`, `valueLevel_mem_Icc` and `abs_value_sub_value_le_of_abs_integral_stateKernel_sub_le` from `ReinforcementLearning/Generative/PolicyEvaluation.lean` to `MarkovDecisionProcess/ReturnVariance.lean`: they are facts about MDPs, with no generative-model content. Names and statements are unchanged. Co-Authored-By: Claude Code <noreply@github.com>
Merged
via the queue into
LeanMachineLearning:main
with commit Nov 14, 2026
f65097d
22 of 25 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.
This PR proves [LWCGC24, Lemma 5], the leave-one-out evaluation of the plug-in policy when its optimal action values are separated. Let
M̂ = M.empirical N ωbe the empirical MDP of a generative model andπ̂its greedy optimal policy. AssumeM̂is separated byη > 0atπ̂, that isQ̂* (s, a) + η ≤ Q̂* (s, π̂ s)fora ≠ π̂ s(the eventB_ηof [LWCGC24, (41)]). Then, with probability at least1 - δ,|v̂^π̂ - v^π̂| ≤ 3 C √(2 L / (N (1 - γ) ^ 3))(first claim), andv* - v^π̂ ≤ 6 C √(2 L' / (N (1 - γ) ^ 3))(second claim). HereL = log (4 S A (K + 1) log (e / (1 - γ)) / δ),K + 1is the size of the reward grid of Lemma 4, andL'isLatδ / 2.Roadmap target: ReinforcementLearning, Layer 15.4 (c), "Theorem 1, perturbed plug-in" [LWCGC24, Theorem 1]. Lemmas 1–2 (#372), 3–4 (#382), 6 (#377) and 11 (#279) are already merged. #382 said that only Lemma 5 and the final assembly were left. This PR supplies Lemma 5: it combines Lemma 4 (
exists_greedy_optValue_saAbsorbing_eq), Bernstein at each pair for the fixed(s, a)-absorbing modifications, a union bound over pairs, grid points and levels, and Lemma 2 (Kernel.abs_integral_resolvent_sub_integral_resolvent_le_of_abs_sub_le). The second claim adds Lemma 1 for the greedy optimal policy ofM. After this PR, only the assembly of Theorem 1 remains for 15.4 (c): Lemma 6 forofDet P̂ (r + ζ), plus this lemma for each fixed perturbationζ, combined by Fubini overstreamMeasure M.Pand the law ofζ, plus theξ / (1 - γ)comparison of perturbed and unperturbed values.Roadmap: ReinforcementLearning
Contents:
ReinforcementLearning/Generative/LeaveOneOut.lean(new):le_streamMeasure_forall_abs_value_empirical_sub_value_le_of_separated: Lemma 5, first claim. It only keeps its own union bound, over pairs, grid points and levels, and then applies the shared deterministic lemma below.le_streamMeasure_forall_optValue_sub_value_le_of_separated: Lemma 5, second claim.Learning.MDP.ReinforcementLearning/Generative/PolicyEvaluation.lean:valueLevel M γ π lnames the levelsV 0 = R_γ(P_π) r_π,V (l + 1) = R_γ(P_π) √Var_{P_π}(V l)of [LWCGC24, Lemma 2], with the@[simp]equationsvalueLevel_zero,valueLevel_succand the boundvalueLevel_mem_Icc[LWCGC24, (73)];abs_value_sub_value_le_of_abs_integral_stateKernel_sub_leis the deterministic part of Lemma 1, stated for these levels. It covers two MDPs with the same rewards in[0, C], deviations in Bernstein form at levelLon the levelsl ≤ m, and18 L ≤ (1 - γ) N. Lemma 1 (le_streamMeasure_forall_abs_value_empirical_sub_value_le, same statement) and the first claim of Lemma 5 are now both proved from it.ReinforcementLearning/Generative/Decoupling.lean:indepFun_comp_redirect_empiricalcovers every function of a redirectionM̂.redirect hS s con a setSof pairs, which is independent of the samples of eachp ∈ S;measureReal_sqrt_variance_add_le_abs_integral_sub_integral_empirical_redirect_leis Bernstein's inequality at eachp ∈ Sfor these functions;indepFun_comp_absorbing_empiricalandmeasureReal_sqrt_variance_add_le_abs_integral_sub_integral_empirical_absorbing_lekeep their names and statements and are now one-line corollaries;indepFun_comp_saAbsorbing_empiricalandmeasureReal_sqrt_variance_add_le_abs_integral_sub_integral_empirical_saAbsorbing_le[LWCGC24, (92)] are corollaries of the same kind.MarkovDecisionProcess/MarkovPolicy.lean: the@[simp]lemmastateKernel_deterministic_apply,M.stateKernel (Kernel.deterministic d hd) s = M.P (s, d s).MarkovDecisionProcess/Value.lean:policyReward_mem_Icc, which says that with rewards in[0, C]the reward of a stationary policy is in[0, C], and the@[simp]lemmavalue_zero,M.value 0 π s = M.policyReward π s.ReinforcementLearning/Generative/Basic.lean:value_empirical_zero,(M.empirical N ω).value 0 π = M.value 0 π, used by theγ = 0cases of Lemmas 1 and 5.Analysis/SpecialFunctions/Log/Basic.lean:Real.natCeil_log_inv_one_sub_add_one_le,⌈log (1 - γ)⁻¹⌉₊ + 1 ≤ 2 log (e / (1 - γ)). This is the level count used by both union bounds.Statement shape and constants:
1 - δ ≤ P {ω | B_η(ω) → bound(ω)}. [LWCGC24] instead assumesP(B_η) ≥ 1 - δand concludes with probability1 - 3δ. The event form fits any tie-breaking argument, in particular the Fubini step of Theorem 1, where the separation is a probability overζfor each fixedω.K > 0with8 (1 + γ) C / (1 - γ) ≤ (1 - γ) η K. This is exactly the hypothesis of Lemma 4 as merged, withB = (1 + γ) C / (1 - γ)fromabs_optQValue_sub_mul_optValue_le.[0, C]rather than[0, 1]. The condition onNis18 L ≤ (1 - γ) N, which is implied by the paper'sN ≥ 16 e² β₁ / (1 - γ). The constants are3and6instead of the paper's6and12, because Lemma 11 was merged with constant1.No public declaration is removed or renamed.
Source: G. Li, Y. Wei, Y. Chi, Y. Gu and Y. Chen, Breaking the sample size barrier in model-based reinforcement learning with a generative model, Operations Research 2024 (arXiv:2005.12900), §6.3.2, Lemma 5 and its proof in Appendix B.4. The new file credits it in its module docstring and in each docstring. No Mathlib material was vendored.
Local checks, not CI:
tauceti-local-checks verify --policy ordinarypassed;scope: scoped: against 137597eb095e141e43856956fdfdb990b81ab838; the whole-librarylake build --iofailcompleted (8591 jobs);local-axioms: checked 7 changed module(s), 192 declaration(s); 0 violation(s); module-system, header-style and changed-module lint all passed.🤖 Prepared with Claude Code