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

Lean module · Finite-horizon RL

BanditRLProof.RL.FiniteHorizonAdaptiveCumulativeUCBVITransitionValueConfidence

# Same-source bounded transition-functional probes for UCBVI-CH Singleton transition coordinates do not by themselves imply a sharp bound for `(P_hat - P) V*` without a `sqrt |State|` loss. This module therefore proves the bounded scalar projection as another coordinate of the same generated transition residual family. It never introduces an offline or independent sample law.

Module map

Declarations
29
Placeholders
0

Imports

BanditRLProof.RL.FiniteHorizonAdaptiveCumulativeUCBVIBernsteinConfidence, BanditRLProof.RL.FiniteHorizonStochasticRewardBellmanInnovationConcentration

Imported by

BanditRLProof.RL.FiniteHorizonAdaptiveCumulativeUCBVIConfidenceTuning

Declarations

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

def BanditRLProof.FiniteHorizonRL.MDP.optimalTailProbe Compiled

The normalized optimal continuation-value probe used by the sharp transition-value confidence coordinate. The symmetric shift avoids requiring nonnegativity merely to apply Hoeffding.

noncomputable def optimalTailProbe (mdp : MDP State Action) (stage : Fin mdp.horizon) (nextState : State) : Real
theorem BanditRLProof.FiniteHorizonRL.MDP.optimalTailProbe_mem_Icc Compiled

Under rewards in `[-1,1]`, the normalized optimal tail is in `[0,1]`.

theorem optimalTailProbe_mem_Icc (mdp : MDP State Action) (hreward : ∀ state action, |mdp.reward state action| <= 1) (stage : Fin mdp.horizon) (nextState : State) : mdp.optimalTailProbe stage nextState ∈ Set.Icc (0 : Real) 1
def BanditRLProof.FiniteHorizonRL.MDP.transitionFunctionalResidualHead Compiled

Linear transition residual for a fixed bounded probe. Writing it as the finite linear combination of singleton residuals makes its relation to the coordinate event explicit.

noncomputable def transitionFunctionalResidualHead (mdp : MDP State Action) (feature : State -> Real) (targetState : State) (targetAction : Action) (currentState : State) (head : Action × State) : Real
def BanditRLProof.FiniteHorizonRL.MDP.transitionFunctionalResidualFrom Compiled

The same linear probe on a remaining generated trace.

noncomputable def transitionFunctionalResidualFrom (mdp : MDP State Action) (feature : State -> Real) (targetState : State) (targetAction : Action) (remaining : Nat) (currentState : State) (trace : StepTrace Action State remaining) : Real
theorem BanditRLProof.FiniteHorizonRL.MDP.measurable_transitionFunctionalResidualFrom Compiled

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

theorem measurable_transitionFunctionalResidualFrom (mdp : MDP State Action) (feature : State -> Real) (targetState : State) (targetAction : Action) (remaining : Nat) : Measurable (fun p : State × StepTrace Action State remaining => mdp.transitionFunctionalResidualFrom feature targetState targetAction remaining p.1 p.2)
theorem BanditRLProof.FiniteHorizonRL.MDP.transitionValue_eq_sum_measureReal Compiled

A finite-state transition integral is its finite singleton-mass sum.

theorem transitionValue_eq_sum_measureReal (mdp : MDP State Action) (feature : State -> Real) (state : State) (action : Action) : mdp.transitionValue feature state action = ∑ nextState : State, feature nextState * (mdp.transition (state, action)).real {nextState}
theorem BanditRLProof.FiniteHorizonRL.MDP.transitionFunctionalResidualHead_eq Compiled

On a visited cell, the linear coordinate residual is exactly the centered bounded feature; away from the cell it is zero.

theorem transitionFunctionalResidualHead_eq (mdp : MDP State Action) (feature : State -> Real) (targetState : State) (targetAction : Action) (currentState : State) (head : Action × State) : mdp.transitionFunctionalResidualHead feature targetState targetAction currentState head = if currentState = targetState ∧ head.1 = targetAction then feature head.2 - mdp.transitionValue feature targetState targetAction else 0
theorem BanditRLProof.FiniteHorizonRL.MDP.transitionFunctionalResidualFrom_succ Compiled

The linear probe obeys the same chronological recursion as every singleton coordinate.

theorem transitionFunctionalResidualFrom_succ (mdp : MDP State Action) (feature : State -> Real) (targetState : State) (targetAction : Action) (remaining : Nat) (currentState : State) (trace : StepTrace Action State (remaining + 1)) : mdp.transitionFunctionalResidualFrom feature targetState targetAction (remaining + 1) currentState trace = mdp.transitionFunctionalResidualHead feature targetState targetAction currentState (trace 0) + mdp.transitionFunctionalResidualFrom feature targetState targetAction remaining (trace 0).2 (Fin.tail trace)
theorem BanditRLProof.FiniteHorizonRL.MDP.transitionFunctionalResidualHead_compensated_hasMGFUpperBoundAt Compiled

A `[0,1]` probe has the standard Hoeffding compensated MGF on one true transition draw.

theorem transitionFunctionalResidualHead_compensated_hasMGFUpperBoundAt (mdp : MDP State Action) (feature : State -> Real) (hfeature : ∀ nextState, feature nextState ∈ Set.Icc (0 : Real) 1) (targetState : State) (targetAction : Action) (currentState : State) (chosenAction : Action) (tilt : Real) : Concentration.HasMGFUpperBoundAt (fun nextState => tilt * mdp.transitionFunctionalResidualHead feature targetState targetAction currentState (chosenAction, nextState) - (tilt ^ 2 / 8) * mdp.transitionVisitHead targetState targetAction currentState (chosenAction, nextState)) 1 0 (mdp.transition (currentState, chosenAction))
theorem BanditRLProof.FiniteHorizonRL.MDP.actionStateKernel_transitionFunctionalResidualHead_compensated_hasMGFUpperBoundAt Compiled

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

theorem actionStateKernel_transitionFunctionalResidualHead_compensated_hasMGFUpperBoundAt (mdp : MDP State Action) (policy : MarkovPolicy mdp) (feature : State -> Real) (hfeature : ∀ nextState, feature nextState ∈ Set.Icc (0 : Real) 1) (targetState : State) (targetAction : Action) (currentState : State) (stage : Fin mdp.horizon) (tilt : Real) : Concentration.HasMGFUpperBoundAt (fun head : Action × State => tilt * mdp.transitionFunctionalResidualHead feature targetState targetAction currentState head - (tilt ^ 2 / 8) * mdp.transitionVisitHead targetState targetAction currentState head) 1 0 (policy.actionStateKernel stage currentState)
theorem BanditRLProof.FiniteHorizonRL.MDP.trajectoryKernelRemaining_transitionFunctionalResidual_compensated_hasMGFUpperBoundAt Compiled

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

theorem trajectoryKernelRemaining_transitionFunctionalResidual_compensated_hasMGFUpperBoundAt (mdp : MDP State Action) (policy : MarkovPolicy mdp) (feature : State -> Real) (hfeature : ∀ nextState, feature nextState ∈ Set.Icc (0 : Real) 1) (targetState : State) (targetAction : Action) (tilt : Real) (remaining : Nat) (hremaining : remaining <= mdp.horizon) (currentState : State) : Concentration.HasMGFUpperBoundAt (fun trace => tilt * mdp.transitionFunctionalResidualFrom feature targetState targetAction remaining currentState trace - (tilt ^ 2 / 8) * mdp.transitionVisitFrom targetState targetAction remaining currentState trace) 1 0 (policy.trajectoryKernelRemaining remaining hremaining currentState)
theorem BanditRLProof.FiniteHorizonRL.MDP.trajectoryMeasure_transitionFunctionalResidual_compensated_hasMGFUpperBoundAt Compiled

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

theorem trajectoryMeasure_transitionFunctionalResidual_compensated_hasMGFUpperBoundAt (mdp : MDP State Action) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (feature : State -> Real) (hfeature : ∀ nextState, feature nextState ∈ Set.Icc (0 : Real) 1) (targetState : State) (targetAction : Action) (tilt : Real) : Concentration.HasMGFUpperBoundAt (fun trajectory => tilt * mdp.transitionFunctionalResidualFrom feature targetState targetAction mdp.horizon trajectory.1 trajectory.2 - (tilt ^ 2 / 8) * mdp.transitionVisitFrom targetState targetAction mdp.horizon trajectory.1 trajectory.2) 1 0 (policy.trajectoryMeasure initialState)
theorem BanditRLProof.FiniteHorizonRL.MDP.transitionFunctionalResidualFrom_eq_aggregateFunctionalResidual Compiled

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

theorem transitionFunctionalResidualFrom_eq_aggregateFunctionalResidual (mdp : MDP State Action) (feature : State -> Real) (targetState : State) (targetAction : Action) (trajectory : State × StepTrace Action State mdp.horizon) : mdp.transitionFunctionalResidualFrom feature targetState targetAction mdp.horizon trajectory.1 trajectory.2 = ∑ nextState : State, feature nextState * EpisodeBatch.aggregateTransitionResidual (mdp.episodeBatchOfTrajectories 1 (fun _ => trajectory)) targetState targetAction nextState
def BanditRLProof.FiniteHorizonRL.EpisodeBatch.aggregateTransitionFunctionalResidual Compiled

A bounded transition functional is another finite coordinate of the same aggregate singleton-residual table.

noncomputable def aggregateTransitionFunctionalResidual {mdp : MDP State Action} (batch : EpisodeBatch mdp 1) (feature : State -> Real) (state : State) (action : Action) : Real
theorem BanditRLProof.FiniteHorizonRL.EpisodeBatch.measurable_aggregateTransitionFunctionalResidual Compiled

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

theorem measurable_aggregateTransitionFunctionalResidual {mdp : MDP State Action} (feature : State -> Real) (state : State) (action : Action) : Measurable (fun batch : EpisodeBatch mdp 1 => batch.aggregateTransitionFunctionalResidual feature state action)
theorem BanditRLProof.FiniteHorizonRL.EpisodeBatch.abs_aggregateTransitionFunctionalResidual_le Compiled

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

theorem abs_aggregateTransitionFunctionalResidual_le {mdp : MDP State Action} (batch : EpisodeBatch mdp 1) (feature : State -> Real) (hfeature : ∀ nextState, feature nextState ∈ Set.Icc (0 : Real) 1) (state : State) (action : Action) : |batch.aggregateTransitionFunctionalResidual feature state action| <= 2 * Fintype.card State * (mdp.horizon : Real)
theorem BanditRLProof.FiniteHorizonRL.TransitionCountSummary.integral_aggregateEmpiricalTransitionKernel_eq_sum_div Compiled

At a positive pooled count, empirical transition integration is the exact normalized finite count sum.

theorem integral_aggregateEmpiricalTransitionKernel_eq_sum_div {mdp : MDP State Action} (summary : TransitionCountSummary mdp) (defaultState : State) (feature : State -> Real) (state : State) (action : Action) (hpos : 0 < summary.aggregateVisitCount state action) : (∫ nextState, feature nextState ∂summary.aggregateEmpiricalTransitionKernel defaultState (state, action)) = (∑ nextState : State, feature nextState * (summary.aggregateTransitionCount state action nextState : Real)) / (summary.aggregateVisitCount state action : Real)
theorem BanditRLProof.FiniteHorizonRL.MarkovPolicy.iidEpisodeBatchMeasure_one_aggregateTransitionFunctionalResidual_compensated_hasMGFUpperBoundAt Compiled

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

theorem iidEpisodeBatchMeasure_one_aggregateTransitionFunctionalResidual_compensated_hasMGFUpperBoundAt {mdp : MDP State Action} (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (feature : State -> Real) (hfeature : ∀ nextState, feature nextState ∈ Set.Icc (0 : Real) 1) (state : State) (action : Action) (tilt : Real) : Concentration.HasMGFUpperBoundAt (fun batch : EpisodeBatch mdp 1 => tilt * batch.aggregateTransitionFunctionalResidual feature state action - (tilt ^ 2 / 8) * batch.aggregateVisitReal state action) 1 0 (policy.iidEpisodeBatchMeasure initialState 1)
def BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.aggregateTransitionFunctionalResidualPrefix Compiled

Fixed-round functional residual read from the actual generated batch.

noncomputable def aggregateTransitionFunctionalResidualPrefix {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) (feature : State -> Real) (state : State) (action : Action) (round : Nat) (history : EpisodeBatchPrefix mdp 1 round) : Real
def BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.aggregateTransitionFunctionalResidualIncrement Compiled

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

noncomputable def aggregateTransitionFunctionalResidualIncrement {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) (feature : State -> Real) (state : State) (action : Action) (round : Nat) (trajectory : EpisodeBatchTrajectory mdp 1) : Real
theorem BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.measurable_aggregateTransitionFunctionalResidualPrefix Compiled

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

theorem measurable_aggregateTransitionFunctionalResidualPrefix {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) (feature : State -> Real) (state : State) (action : Action) (round : Nat) : Measurable (source.aggregateTransitionFunctionalResidualPrefix feature state action round)
theorem BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.measurable_aggregateTransitionFunctionalResidualIncrement Compiled

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

theorem measurable_aggregateTransitionFunctionalResidualIncrement {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) (feature : State -> Real) (state : State) (action : Action) (round : Nat) : Measurable (source.aggregateTransitionFunctionalResidualIncrement feature state action round)
theorem BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.aggregateTransitionFunctionalResidual_compensated_stronglyAdapted_piLE Compiled

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

theorem aggregateTransitionFunctionalResidual_compensated_stronglyAdapted_piLE {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) (feature : State -> Real) (state : State) (action : Action) (tilt varianceCoeff : Real) : StronglyAdapted (batchPrefixFiltration (mdp
theorem BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.integrable_exp_mul_aggregateTransitionFunctionalResidual_compensatedIncrement Compiled

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

theorem integrable_exp_mul_aggregateTransitionFunctionalResidual_compensatedIncrement {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) (feature : State -> Real) (hfeature : ∀ nextState, feature nextState ∈ Set.Icc (0 : Real) 1) (state : State) (action : Action) (round : Nat) (tilt varianceCoeff s : Real) : Integrable (fun trajectory : EpisodeBatchTrajectory mdp 1 => Real.exp (s * (tilt * source.aggregateTransitionFunctionalResidualIncrement feature state action round trajectory - varianceCoeff * source.aggregateVisitIncrement state action round trajectory))) source.trajectoryMeasure
theorem BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.aggregateTransitionFunctionalResidual_succ_compensated_hasCondMGFUpperBoundAt Compiled

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

theorem aggregateTransitionFunctionalResidual_succ_compensated_hasCondMGFUpperBoundAt {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] [StandardBorelSpace (EpisodeBatch mdp 1)] [StandardBorelSpace (EpisodeBatchTrajectory mdp 1)] (source : AdaptiveEpisodeBatchSource mdp initialState 1) (feature : State -> Real) (hfeature : ∀ nextState, feature nextState ∈ Set.Icc (0 : Real) 1) (state : State) (action : Action) (n : Nat) (tilt : Real) : Concentration.HasCondMGFUpperBoundAt (mΩ
theorem BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.aggregateTransitionFunctionalResidual_zero_compensated_hasMGFUpperBoundAt Compiled

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

theorem aggregateTransitionFunctionalResidual_zero_compensated_hasMGFUpperBoundAt {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) (feature : State -> Real) (hfeature : ∀ nextState, feature nextState ∈ Set.Icc (0 : Real) 1) (state : State) (action : Action) (tilt : Real) : Concentration.HasMGFUpperBoundAt (fun trajectory : EpisodeBatchTrajectory mdp 1 => tilt * source.aggregateTransitionFunctionalResidualIncrement feature state action 0 trajectory - (tilt ^ 2 / 8) * source.aggregateVisitIncrement state action 0 trajectory) 1 0 source.trajectoryMeasure
theorem BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.sum_aggregateTransitionFunctionalResidualIncrement_eq_prefixResidual Compiled

Summing the generated functional-probe increments is exactly the finite linear combination of the cumulative singleton residuals.

theorem sum_aggregateTransitionFunctionalResidualIncrement_eq_prefixResidual {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) (trajectory : EpisodeBatchTrajectory mdp 1) (round : Nat) (feature : State -> Real) (state : State) (action : Action) : (∑ i ∈ Finset.range (round + 1), source.aggregateTransitionFunctionalResidualIncrement feature state action i trajectory) = ∑ nextState : State, feature nextState * ((adaptiveCumulativeAggregateTransitionCountAt trajectory round state action nextState : Real) - (adaptiveCumulativeAggregateVisitCountAt trajectory round state action : Real) * (mdp.transition (state, action)).real {nextState})
theorem BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.aggregateTransitionFunctionalResidual_eq_count_mul_transitionValue_sub Compiled

At positive actual count, the functional residual divided by that count is exactly `(P_hat-P) feature` for the empirical kernel consumed by the planner.

theorem aggregateTransitionFunctionalResidual_eq_count_mul_transitionValue_sub {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) (trajectory : EpisodeBatchTrajectory mdp 1) (round : Nat) (defaultState : State) (feature : State -> Real) (state : State) (action : Action) (hpos : 0 < adaptiveCumulativeAggregateVisitCountAt trajectory round state action) : (∑ i ∈ Finset.range (round + 1), source.aggregateTransitionFunctionalResidualIncrement feature state action i trajectory) = (adaptiveCumulativeAggregateVisitCountAt trajectory round state action : Real) * ((∫ nextState, feature nextState ∂TransitionCountSummary.aggregateEmpiricalTransitionKernel (adaptiveCumulativeEmpiricalModelStateAt trajectory round).1 defaultState (state, action)) - mdp.transitionValue feature state action)
theorem BanditRLProof.FiniteHorizonRL.AdaptiveEpisodeBatchSource.measure_abs_aggregateTransitionFunctionalResidualSum_ge_inter_visitSum_le Compiled

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

theorem measure_abs_aggregateTransitionFunctionalResidualSum_ge_inter_visitSum_le {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] [StandardBorelSpace (EpisodeBatch mdp 1)] [StandardBorelSpace (EpisodeBatchTrajectory mdp 1)] (source : AdaptiveEpisodeBatchSource mdp initialState 1) (feature : State -> Real) (hfeature : ∀ nextState, feature nextState ∈ Set.Icc (0 : Real) 1) (state : State) (action : Action) (rounds : Nat) (tilt threshold visitBudget : Real) (htilt : 0 < tilt) : source.trajectoryMeasure {trajectory | threshold <= |∑ i ∈ Finset.range rounds, source.aggregateTransitionFunctionalResidualIncrement feature state action i trajectory| ∧ (∑ i ∈ Finset.range rounds, source.aggregateVisitIncrement state action i trajectory) <= visitBudget} <= 2 * ENNReal.ofReal (Real.exp (-tilt * threshold + (tilt ^ 2 / 8) * visitBudget))