BanditRLlib
Lean gate passed before this site build; local proof declarations are shown as compiled.

Lean module · Finite-horizon RL

BanditRLProof.RL.FiniteHorizonAdaptiveCumulativeUCBVIAdaptiveBellmanMartingale

Predictable episode-level Bellman innovations on the recurrent source.

Module map

Declarations
31
Placeholders
0

Imports

BanditRLProof.RL.FiniteHorizonAdaptiveCumulativeUCBVIBellmanInnovation

Imported by

BanditRLProof.RL.FiniteHorizonAdaptiveCumulativeUCBVIRegretDecomposition

Declarations

Open an item to read its exact compact statement and source link. Detailed teaching notes are linked when registered.

theorem BanditRLProof.measurable_prod_of_countable_left Compiled

A function with a countable discrete left coordinate is measurable when every right section is measurable.

theorem measurable_prod_of_countable_left {Alpha Beta Gamma : Type*} [MeasurableSpace Alpha] [MeasurableSpace Beta] [MeasurableSpace Gamma] [Countable Alpha] [MeasurableSingletonClass Alpha] (f : Alpha × Beta -> Gamma) (hf : forall a, Measurable (fun b => f (a, b))) : Measurable f
lemma MeasureTheory.Measure.compProd_map_dependent Compiled

Mapping a composition-product by a function which may also read the conditioning coordinate is the composition-product with the correspondingly mapped copy-and-kernel law.

lemma compProd_map_dependent {Alpha : Type u} {Beta : Type v} {Gamma : Type w} [MeasurableSpace Alpha] [MeasurableSpace Beta] [MeasurableSpace Gamma] (mu : Measure Alpha) [SFinite mu] (kappa : ProbabilityTheory.Kernel Alpha Beta) [ProbabilityTheory.IsSFiniteKernel kappa] (f : Alpha × Beta -> Gamma) (hf : Measurable f) : (mu ⊗ₘ kappa).map (fun p => (p.1, f p)) = mu ⊗ₘ ((ProbabilityTheory.Kernel.id ×ₖ kappa).map f)
theorem BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.trajectoryMeasure_condDistrib_historyBatchStatistic Compiled

Conditional law of a statistic which may depend measurably on both the observed prefix and the newly generated batch.

theorem trajectoryMeasure_condDistrib_historyBatchStatistic {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] {episodes : Nat} [StandardBorelSpace (EpisodeBatch mdp episodes)] (source : AdaptiveEpisodeBatchSource mdp initialState episodes) (n : Nat) (statistic : EpisodeBatchPrefix mdp episodes n × EpisodeBatch mdp episodes -> Real) (hstatistic : Measurable statistic) : ProbabilityTheory.condDistrib (fun trajectory : EpisodeBatchTrajectory mdp episodes => statistic (Preorder.frestrictLe n trajectory, trajectory (n + 1))) (Preorder.frestrictLe n) source.trajectoryMeasure =ᵐ[ source.trajectoryMeasure.map (Preorder.frestrictLe n)] ((ProbabilityTheory.Kernel.id ×ₖ source.batchKernel n).map statistic)
theorem BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.condExpKernel_map_historyBatchStatistic_eq_batchKernel Compiled

Trimmed conditional-expectation-kernel version of the preceding dependent statistic law.

theorem condExpKernel_map_historyBatchStatistic_eq_batchKernel {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] {episodes : Nat} [StandardBorelSpace (EpisodeBatch mdp episodes)] [StandardBorelSpace (EpisodeBatchTrajectory mdp episodes)] (source : AdaptiveEpisodeBatchSource mdp initialState episodes) (n : Nat) (statistic : EpisodeBatchPrefix mdp episodes n × EpisodeBatch mdp episodes -> Real) (hstatistic : Measurable statistic) : Filter.Eventually (fun trajectory : EpisodeBatchTrajectory mdp episodes => Measure.map (fun path : EpisodeBatchTrajectory mdp episodes => statistic (Preorder.frestrictLe n path, path (n + 1))) (ProbabilityTheory.condExpKernel source.trajectoryMeasure ((inferInstance : MeasurableSpace (EpisodeBatchPrefix mdp episodes n)).comap (Preorder.frestrictLe n)) trajectory) = ((ProbabilityTheory.Kernel.id ×ₖ source.batchKernel n).map statistic) (Preorder.frestrictLe n trajectory)) (ae (source.trajectoryMeasure.trim (Preorder.measurable_frestrictLe n).comap_le))
def BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.bellmanInflation Compiled

Inflation factor generated by the `z/(32H)` self-bounding term.

noncomputable def bellmanInflation (mdp : MDP State Action) : Real
def BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.bellmanWeightCap Compiled

Uniform cap for every finite-horizon power of `bellmanInflation`.

noncomputable def bellmanWeightCap : Real
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.bellmanInflation_one_le Compiled

No declaration docstring is present; use the chapter context and exact statement below.

theorem bellmanInflation_one_le (mdp : MDP State Action) : 1 <= bellmanInflation mdp
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.bellmanInflation_pow_le_cap Compiled

No declaration docstring is present; use the chapter context and exact statement below.

theorem bellmanInflation_pow_le_cap (mdp : MDP State Action) (hhorizon : 0 < mdp.horizon) (remaining : Nat) (hremaining : remaining <= mdp.horizon) : bellmanInflation mdp ^ remaining <= bellmanWeightCap
def BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.normalizedBellmanWeight Compiled

Normalized chronological recursion weight. Multiplication by the global cap `32/31` later recovers the exact factor `alpha^(stage+1)`.

noncomputable def normalizedBellmanWeight (mdp : MDP State Action) (stage : Fin mdp.horizon) : Real
def BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.normalizedBellmanChargeWeight Compiled

Weight of the local charge at a chronological stage.

noncomputable def normalizedBellmanChargeWeight (mdp : MDP State Action) (stage : Fin mdp.horizon) : Real
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.normalizedBellmanChargeWeight_mem_Icc Compiled

No declaration docstring is present; use the chapter context and exact statement below.

theorem normalizedBellmanChargeWeight_mem_Icc (mdp : MDP State Action) (hhorizon : 0 < mdp.horizon) (stage : Fin mdp.horizon) : normalizedBellmanChargeWeight mdp stage ∈ Set.Icc (0 : Real) 1
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.normalizedBellmanChargeWeight_mul_inflation Compiled

No declaration docstring is present; use the chapter context and exact statement below.

theorem normalizedBellmanChargeWeight_mul_inflation (mdp : MDP State Action) (stage : Fin mdp.horizon) : normalizedBellmanChargeWeight mdp stage * bellmanInflation mdp = normalizedBellmanWeight mdp stage
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.normalizedBellmanWeight_mem_Icc Compiled

No declaration docstring is present; use the chapter context and exact statement below.

theorem normalizedBellmanWeight_mem_Icc (mdp : MDP State Action) (hhorizon : 0 < mdp.horizon) (stage : Fin mdp.horizon) : normalizedBellmanWeight mdp stage ∈ Set.Icc (0 : Real) 1
def BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.clippedSuccessorGapFeatureOfSummaries Compiled

The clipped, normalized and chronologically weighted continuation gap used by the predictable martingale. Clipping is inactive on the joint confidence event; normalization keeps the global MGF range exactly `[0,H]`.

noncomputable def clippedSuccessorGapFeatureOfSummaries (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (n : Nat) (summaries : Fin (n + 1) -> TransitionCountSummary mdp) (stage : Fin mdp.horizon) (state : State) : Real
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.clippedSuccessorGapFeatureOfSummaries_mem_Icc Compiled

The martingale feature is globally in `[0,H]`, independently of whether the statistical event holds.

theorem clippedSuccessorGapFeatureOfSummaries_mem_Icc (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (n : Nat) (summaries : Fin (n + 1) -> TransitionCountSummary mdp) (stage : Fin mdp.horizon) (state : State) : clippedSuccessorGapFeatureOfSummaries mdp defaultState episodes delta n summaries stage state ∈ Set.Icc (0 : Real) mdp.horizon
def BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorBellmanStatisticOfSummaries Compiled

Compensated batch statistic for one fixed discrete prefix-summary table.

noncomputable def successorBellmanStatisticOfSummaries (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (n : Nat) (tilt : Real) (input : (Fin (n + 1) -> TransitionCountSummary mdp) × EpisodeBatch mdp 1) : Real
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.measurable_successorBellmanStatisticOfSummaries Compiled

No declaration docstring is present; use the chapter context and exact statement below.

theorem measurable_successorBellmanStatisticOfSummaries (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (n : Nat) (tilt : Real) : Measurable (successorBellmanStatisticOfSummaries mdp defaultState episodes delta n tilt)
def BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorBellmanHistoryBatchStatistic Compiled

The same statistic with the prefix summarized exactly as the recurrent planner summarizes it.

noncomputable def successorBellmanHistoryBatchStatistic (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (n : Nat) (tilt : Real) (input : EpisodeBatchPrefix mdp 1 n × EpisodeBatch mdp 1) : Real
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.measurable_successorBellmanHistoryBatchStatistic Compiled

No declaration docstring is present; use the chapter context and exact statement below.

theorem measurable_successorBellmanHistoryBatchStatistic (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (n : Nat) (tilt : Real) : Measurable (successorBellmanHistoryBatchStatistic mdp defaultState episodes delta n tilt)
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.AdaptiveEpisodeBatchSource.recurrentSuccessorBellmanInnovation_compensated_hasCondMGFUpperBoundAt Compiled

A successor episode's compensated, prefix-predictable Bellman innovation has conditional MGF at most one under the literal recurrent batch kernel.

theorem recurrentSuccessorBellmanInnovation_compensated_hasCondMGFUpperBoundAt {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] [StandardBorelSpace (EpisodeBatch mdp 1)] [StandardBorelSpace (EpisodeBatchTrajectory mdp 1)] (defaultState : State) (episodes : Nat) (delta : Real) (hhorizon : 0 < mdp.horizon) (n : Nat) (tilt : Real) : Concentration.HasCondMGFUpperBoundAt (BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.batchPrefixFiltration (mdp
def BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorBellmanInnovationOfSummaries Compiled

The un-compensated Bellman innovation of one successor episode, with the policy and clipped gap feature read from one fixed prefix-summary table.

noncomputable def successorBellmanInnovationOfSummaries (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (n : Nat) (input : (Fin (n + 1) -> TransitionCountSummary mdp) × EpisodeBatch mdp 1) : Real
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.measurable_successorBellmanInnovationOfSummaries Compiled

No declaration docstring is present; use the chapter context and exact statement below.

theorem measurable_successorBellmanInnovationOfSummaries (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (n : Nat) : Measurable (successorBellmanInnovationOfSummaries mdp defaultState episodes delta n)
def BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorBellmanInnovationOfHistoryBatch Compiled

The successor Bellman innovation with the recurrent prefix summarized in exactly the same way as the generated source.

noncomputable def successorBellmanInnovationOfHistoryBatch (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (n : Nat) (input : EpisodeBatchPrefix mdp 1 n × EpisodeBatch mdp 1) : Real
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.measurable_successorBellmanInnovationOfHistoryBatch Compiled

No declaration docstring is present; use the chapter context and exact statement below.

theorem measurable_successorBellmanInnovationOfHistoryBatch (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (n : Nat) : Measurable (successorBellmanInnovationOfHistoryBatch mdp defaultState episodes delta n)
def BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.recurrentBellmanInnovationPrefix Compiled

Prefix-predictable Bellman innovation. Coordinate zero is deliberately zero: the canonical initial episode is charged separately by its deterministic `H` envelope, while every successor coordinate uses its strict prefix.

noncomputable def recurrentBellmanInnovationPrefix (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) : (round : Nat) -> EpisodeBatchPrefix mdp 1 round -> Real | 0, _history => 0 | n + 1, history => successorBellmanInnovationOfHistoryBatch mdp defaultState episodes delta n (Preorder.frestrictLe₂ (π
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.measurable_recurrentBellmanInnovationPrefix Compiled

No declaration docstring is present; use the chapter context and exact statement below.

theorem measurable_recurrentBellmanInnovationPrefix (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (round : Nat) : Measurable (recurrentBellmanInnovationPrefix mdp defaultState episodes delta round)
def BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.recurrentBellmanInnovationProcess Compiled

Actual successor-episode Bellman innovation process on the generated recurrent trajectory.

noncomputable def recurrentBellmanInnovationProcess (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (round : Nat) (trajectory : EpisodeBatchTrajectory mdp 1) : Real
def BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.recurrentBellmanInnovationVarianceProcess Compiled

Deterministic per-episode variance budget. Coordinate zero is zero because its regret is paid separately; every successor episode has budget `H^3`.

noncomputable def recurrentBellmanInnovationVarianceProcess (mdp : MDP State Action) (round : Nat) (_trajectory : EpisodeBatchTrajectory mdp 1) : Real
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.recurrentBellmanInnovation_compensated_stronglyAdapted Compiled

No declaration docstring is present; use the chapter context and exact statement below.

theorem recurrentBellmanInnovation_compensated_stronglyAdapted (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta tilt : Real) : StronglyAdapted (BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.batchPrefixFiltration (mdp
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.recurrentBellmanInnovation_zero_compensated_hasMGFUpperBoundAt Compiled

Coordinate zero has the trivial compensated MGF certificate.

theorem recurrentBellmanInnovation_zero_compensated_hasMGFUpperBoundAt {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (defaultState : State) (episodes : Nat) (delta tilt : Real) : Concentration.HasMGFUpperBoundAt (fun trajectory : EpisodeBatchTrajectory mdp 1 => tilt * recurrentBellmanInnovationProcess mdp defaultState episodes delta 0 trajectory - (tilt ^ 2 / 8) * recurrentBellmanInnovationVarianceProcess mdp 0 trajectory) 1 0 (recurrentSource mdp initialState defaultState episodes delta |>.trajectoryMeasure)
theorem BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.trajectoryMeasure_recurrentBellmanInnovation_sum_ge_le Compiled

Fixed-tilt upper tail for the sum of the generated successor-episode Bellman innovations. The source, prefix policy, and transition law are the same objects as in the recurrent planner.

theorem trajectoryMeasure_recurrentBellmanInnovation_sum_ge_le {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] [StandardBorelSpace (EpisodeBatch mdp 1)] [StandardBorelSpace (EpisodeBatchTrajectory mdp 1)] (defaultState : State) (episodes : Nat) (delta : Real) (hhorizon : 0 < mdp.horizon) (tilt threshold : Real) (htilt : 0 < tilt) : let source := recurrentSource mdp initialState defaultState episodes delta source.trajectoryMeasure {trajectory | threshold <= (Finset.range episodes).sum (fun round => recurrentBellmanInnovationProcess mdp defaultState episodes delta round trajectory)} <= ENNReal.ofReal (Real.exp (-tilt * threshold + (tilt ^ 2 / 8) * ((episodes : Real) * ((mdp.horizon : Real) * (mdp.horizon : Real) ^ 2))))