Repository navigation
feat: the policy-mixture lemma for occupancy measures [AJKS, Lemma 14.1] - #154
Merged
lmlexplore-automation[bot] merged 4 commits intoNov 5, 2026
Merged
Conversation
Stationary policies within ε of each other in total variation at every state have occupancy measures within ε / (1 - γ), and state marginals within γ ε / (1 - γ). For a mixture (1 - α) π + α π'' this gives the policy-mixture lemma, with bounds 2 α γ / (1 - γ) and 2 α / (1 - γ). General tools: eventwise characterizations of tvDist for measures of the same mass, tvDist of sums and mixtures, and the data processing inequality for tvDist under Markov kernels and composition-products. Co-Authored-By: Claude Code <noreply@github.com>
RemyDegenne
commented
Nov 5, 2026
RemyDegenne
commented
Nov 5, 2026
RemyDegenne
commented
Nov 5, 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 |
…ounds - `tvDist_add_smul_add_smul` (equality, via finite partitions) and `tvDist_one_sub_smul_add_smul` replace the `_le` versions and need no equal-mass hypothesis; add `tvDist_one_sub_smul_add_smul_le` (≤ 2α for probability measures), replacing the private MDP helper. - `tvDist_comp_right_le` / `tvDist_compProd_left_le` hold for all finite measures, proved on a Hahn decomposition. - Make `Measure.measureReal_bind_eq_integral` and `Measure.measureReal_compProd_eq_integral` public, for finite kernels. - Add the flow equation `occupancy_fst` with `ℝ≥0` weights and use it. Co-Authored-By: Claude Code <noreply@github.com>
Use Mathlib's ofReal_tvDist instead of unfolding tvDist by rfl, and close the sum-and-mixture identity with simp instead of a long named rewrite chain. Co-Authored-By: Claude Code <noreply@github.com>
…t_le Co-Authored-By: Claude Code <noreply@github.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.
This PR proves the policy-mixture lemma [AJKS, Lemma 14.1], the last open item of Layer 12.2 (Corollaries) of the ReinforcementLearning roadmap: for
γ < 1,α ≤ 1and stationary policies withπ' s = (1 - α) • π s + α • π'' sat every state, the state marginals of the occupancy measures ofπ'andπfromμare within2 * α * γ / (1 - γ)in total variation (Learning.MDP.tvDist_fst_occupancy_le_of_mixture), and the state-action occupancy measures within2 * α / (1 - γ)(Learning.MDP.tvDist_occupancy_le_of_mixture). Both follow from a general continuity statement, proved on measurable spaces: stationary policies withtvDist (π' s) (π s) ≤ εat every state have occupancy measures withinε / (1 - γ), and state marginals withinγ * ε / (1 - γ)(Learning.MDP.tvDist_occupancy_le,Learning.MDP.tvDist_fst_occupancy_le). The proof runs through the flow equationoccupancy_map_fstand the disintegrationisCondKernel_occupancy_markov_constthat are already on main: the marginal distance is at mostγtimes the occupancy distance, which is at mostεplus the marginal distance.Roadmap: ReinforcementLearning
Milestone: Layer 12.2, "The policy-mixture lemma [AJKS, Lemma 14.1]". After this PR every listed item of Layer 12.2 is on main or in an open PR (the pessimistic decomposition is #152). The consumer is Layer 17.8 (conservative policy iteration): its improvement bound
V^{π_{t+1}}_μ - V^{π_t}_μ ≥ α/(1-γ) (𝔸_t - 2αγ/(1-γ)²)combines the performance difference lemma withtvDist_fst_occupancy_le_of_mixture. What remains for 17.8 is the CPI algorithm and its oracle; it can build the mixture kernel itself and pass it through thehπ'hypothesis.The general tools go where their subject lives:
LMLExplore/MeasureTheory/Measure/TotalVariation/Basic.lean: for measures of the same mass,|μ s - ν s| ≤ tvDist μ ν / 2(abs_measureReal_sub_measureReal_le_tvDist_div_two) and its converse (tvDist_le_two_mul_of_forall_measureReal_le_add);tvDist (ξ + t • μ) (ξ + t • ν) ≤ t * tvDist μ ν(tvDist_add_smul_le); and the mixture boundtvDist ((1 - α) • μ + α • ν) μ ≤ α * tvDist ν μ(tvDist_smul_add_smul_le).LMLExplore/Probability/Kernel/TotalVariation.lean: the data processing inequalitytvDist (κ ∘ₘ μ) (κ ∘ₘ ν) ≤ tvDist μ νfor a Markov kernel (tvDist_comp_right_le, named after Mathlib'sklDiv_comp_right_le), its composition-product formtvDist_compProd_left_le, andtvDist_compProd_right_le:tvDist (μ ⊗ₘ κ) (μ ⊗ₘ η) ≤ μ.real univ * εwhentvDist (κ x) (η x) ≤ εalmost everywhere.Reuse: the eventwise characterization is Tau Ceti's
MeasureTheory.etvDist_le_two_mul_iff(already compiled at the pinned version), moved to the realtvDist. The integral bound is LMLExplore'sabs_integral_sub_integral_le_mul_tvDist_of_mem_Icc. Neither Mathlib, Tau Ceti nor LML has total-variation bounds for kernel compositions at the pinned versions (searched fortvDist/etvDisttogether withcomp,bind,compProdandmap; Mathlib'sVectorMeasure.variation_map_lecovers only deterministic maps). The data-processing bounds assume equal masses because their proofs are eventwise; every use here is between probability measures. The Dobrushin contraction of Layer 1.6 will sharpentvDist_comp_right_leby the factorδ(κ).🤖 Prepared with Claude Code