Lean module · Finite-horizon RL
BanditRLProof.RL.FiniteHorizonAdaptiveCumulativeUCBVIRegretDecomposition
Pathwise recurrent UCBVI-CH episode-regret decomposition.
Module map
Imports
BanditRLProof.RL.FiniteHorizonAdaptiveCumulativeUCBVIAdaptiveBellmanMartingale
Imported by
BanditRLProof.RL.FiniteHorizonAdaptiveCumulativeUCBVICounting
Declarations
Open an item to read its exact compact statement and source link. Detailed teaching notes are linked when registered.
def
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorPreviousQ
Compiled
Previous Q table for successor episode `n+1`.
noncomputable def successorPreviousQ (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (trajectory : EpisodeBatchTrajectory mdp 1) (n : Nat) : QTable mdp
def
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorSummary
Compiled
Exact pooled summary available before successor episode `n+1`.
def successorSummary {mdp : MDP State Action} (trajectory : EpisodeBatchTrajectory mdp 1) (n : Nat) : TransitionCountSummary mdp
def
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorPolicyTable
Compiled
Greedy recurrent table actually used by successor episode `n+1`.
noncomputable def successorPolicyTable (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (trajectory : EpisodeBatchTrajectory mdp 1) (n : Nat) : DeterministicMarkovPolicyTable mdp
def
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorPolicyGapRemaining
Compiled
Same-policy continuation gap in the successor episode.
noncomputable def successorPolicyGapRemaining (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (trajectory : EpisodeBatchTrajectory mdp 1) (n remaining : Nat) (hremaining : remaining <= mdp.horizon) (state : State) : Real
def
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorLocalCharge
Compiled
Per-stage deterministic charge. A zero previous count is paid by `H`; positive counts pay the `9HL/sqrt N` bonus/projection term plus the explicit `66 S H^2 L/N` Bernstein correction.
noncomputable def successorLocalCharge (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (trajectory : EpisodeBatchTrajectory mdp 1) (n remaining : Nat) (hremaining : remaining + 1 <= mdp.horizon) (state : State) : Real
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorPolicyGapRemaining_mem_Icc
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
theorem successorPolicyGapRemaining_mem_Icc {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) {episodes : Nat} {delta : Real} {trajectory : EpisodeBatchTrajectory mdp 1} (hhorizon : 0 < mdp.horizon) (hepisodes : 0 < episodes) (hdelta : 0 < delta) (hdelta_le_one : delta <= 1) (hrewardNonneg : forall state action, 0 <= mdp.reward state action) (hrewardOne : forall state action, mdp.reward state action <= 1) (htrajectory : trajectory ∉ AdaptiveEpisodeBatchSource.simultaneousTransitionFailureEvent source episodes (logFactor (State
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorLocalCharge_nonneg
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
theorem successorLocalCharge_nonneg (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (trajectory : EpisodeBatchTrajectory mdp 1) (n remaining : Nat) (hremaining : remaining + 1 <= mdp.horizon) (state : State) : 0 <= successorLocalCharge mdp defaultState episodes delta trajectory n remaining hremaining state
def
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.normalizedBellmanRemainingWeight
Compiled
Normalized weight at the start of a subproblem with `remaining` decisions.
noncomputable def normalizedBellmanRemainingWeight (mdp : MDP State Action) (remaining : Nat) : Real
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.normalizedBellmanRemainingWeight_zero
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
theorem normalizedBellmanRemainingWeight_zero (mdp : MDP State Action) : normalizedBellmanRemainingWeight mdp mdp.horizon = 31 / 32
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.normalizedBellmanRemainingWeight_succ_eq_chargeWeight
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
theorem normalizedBellmanRemainingWeight_succ_eq_chargeWeight (mdp : MDP State Action) (remaining : Nat) (hremaining : remaining + 1 <= mdp.horizon) : normalizedBellmanRemainingWeight mdp (remaining + 1) = normalizedBellmanChargeWeight mdp (mdp.decisionStageRemaining remaining hremaining)
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.normalizedBellmanRemainingWeight_eq_stageWeight
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
theorem normalizedBellmanRemainingWeight_eq_stageWeight (mdp : MDP State Action) (remaining : Nat) (hremaining : remaining + 1 <= mdp.horizon) : normalizedBellmanRemainingWeight mdp remaining = normalizedBellmanWeight mdp (mdp.decisionStageRemaining remaining hremaining)
def
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorWeightedChargeFrom
Compiled
Weighted local charges along the state sequence reconstructed recursively from one successor batch.
noncomputable def successorWeightedChargeFrom (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (trajectory : EpisodeBatchTrajectory mdp 1) (n : Nat) : (remaining : Nat) -> remaining <= mdp.horizon -> State -> StepTrace Action State remaining -> Real | 0, _, _, _ => 0 | remaining + 1, hremaining, state, trace => let stage := mdp.decisionStageRemaining remaining hremaining normalizedBellmanChargeWeight mdp stage * successorLocalCharge mdp defaultState episodes delta trajectory n remaining hremaining state + successorWeightedChargeFrom mdp defaultState episodes delta trajectory n remaining (by omega) (trace 0).2 (Fin.tail trace) /-- Full successor-episode charge on the canonical state reconstruction. -/ noncomputable def successorCanonicalWeightedCharge (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (trajectory : EpisodeBatchTrajectory mdp 1) (n : Nat) : Real
def
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorCanonicalWeightedCharge
Compiled
Full successor-episode charge on the canonical state reconstruction.
noncomputable def successorCanonicalWeightedCharge (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (trajectory : EpisodeBatchTrajectory mdp 1) (n : Nat) : Real
def
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorWeightedChargeSum
Compiled
Chronological weighted charge of one successor episode.
noncomputable def successorWeightedChargeSum (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (trajectory : EpisodeBatchTrajectory mdp 1) (n : Nat) : Real
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorWeightedChargeSum_nonneg
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
theorem successorWeightedChargeSum_nonneg (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (trajectory : EpisodeBatchTrajectory mdp 1) (n : Nat) : 0 <= successorWeightedChargeSum mdp defaultState episodes delta trajectory n
def
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.successorWeightedVisitedGap
Compiled
Weighted state-gap transported along one generated successor batch.
noncomputable def successorWeightedVisitedGap (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (trajectory : EpisodeBatchTrajectory mdp 1) (n : Nat) (stage : Fin mdp.horizon) : Real
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.AdaptiveEpisodeBatchSource.successorPolicyGapRemaining_le_inflation_mul_transition_add_charge
Compiled
The good same-source transition event discharges the complete local inflated Bellman recursion at every successor episode and state.
theorem successorPolicyGapRemaining_le_inflation_mul_transition_add_charge {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) {episodes : Nat} {delta : Real} {trajectory : EpisodeBatchTrajectory mdp 1} (hhorizon : 0 < mdp.horizon) (hepisodes : 0 < episodes) (hdelta : 0 < delta) (hdelta_le_one : delta <= 1) (hrewardNonneg : forall state action, 0 <= mdp.reward state action) (hrewardOne : forall state action, mdp.reward state action <= 1) (htrajectory : trajectory ∉ simultaneousTransitionFailureEvent source episodes (logFactor (State
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.AdaptiveEpisodeBatchSource.clippedSuccessorGapFeatureOfSummaries_eq_weight_mul_gap
Compiled
On the joint confidence event, the globally clipped martingale feature is exactly the normalized recurrent policy gap.
theorem clippedSuccessorGapFeatureOfSummaries_eq_weight_mul_gap {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) {episodes : Nat} {delta : Real} {trajectory : EpisodeBatchTrajectory mdp 1} (hhorizon : 0 < mdp.horizon) (hepisodes : 0 < episodes) (hdelta : 0 < delta) (hdelta_le_one : delta <= 1) (hrewardNonneg : forall state action, 0 <= mdp.reward state action) (hrewardOne : forall state action, mdp.reward state action <= 1) (htrajectory : trajectory ∉ simultaneousTransitionFailureEvent source episodes (logFactor (State
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.AdaptiveEpisodeBatchSource.normalizedGap_le_weightedChargeFrom_add_deterministicInnovation
Compiled
Exact weighted Bellman telescope for one successor episode. The charge, policy table, recursively reconstructed state path, and martingale innovation are all the same objects used by the recurrent generated source.
theorem normalizedGap_le_weightedChargeFrom_add_deterministicInnovation {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) {episodes : Nat} {delta : Real} {trajectory : EpisodeBatchTrajectory mdp 1} (hhorizon : 0 < mdp.horizon) (hepisodes : 0 < episodes) (hdelta : 0 < delta) (hdelta_le_one : delta <= 1) (hrewardNonneg : forall state action, 0 <= mdp.reward state action) (hrewardOne : forall state action, mdp.reward state action <= 1) (htrajectory : trajectory ∉ simultaneousTransitionFailureEvent source episodes (logFactor (State
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.AdaptiveEpisodeBatchSource.successorPolicyGapRemaining_le_cap_mul_charge_add_innovation
Compiled
The full-horizon successor policy gap is bounded by the globally capped canonical charge plus the exact successor Bellman innovation.
theorem successorPolicyGapRemaining_le_cap_mul_charge_add_innovation {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] (source : AdaptiveEpisodeBatchSource mdp initialState 1) {episodes : Nat} {delta : Real} {trajectory : EpisodeBatchTrajectory mdp 1} (hhorizon : 0 < mdp.horizon) (hepisodes : 0 < episodes) (hdelta : 0 < delta) (hdelta_le_one : delta <= 1) (hrewardNonneg : forall state action, 0 <= mdp.reward state action) (hrewardOne : forall state action, mdp.reward state action <= 1) (htrajectory : trajectory ∉ simultaneousTransitionFailureEvent source episodes (logFactor (State
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.AdaptiveEpisodeBatchSource.recurrentSource_generatedEpisodePseudoRegret_le_successorPolicyGapRemaining
Compiled
Optimism converts the generated successor episode's policy-value pseudo-regret into the same recurrent policy gap used by the telescope.
theorem recurrentSource_generatedEpisodePseudoRegret_le_successorPolicyGapRemaining {mdp : MDP State Action} (initialState : Measure State) [IsProbabilityMeasure initialState] {episodes : Nat} {delta : Real} {trajectory : EpisodeBatchTrajectory mdp 1} (hhorizon : 0 < mdp.horizon) (hepisodes : 0 < episodes) (hdelta : 0 < delta) (hdelta_le_one : delta <= 1) (hrewardNonneg : forall state action, 0 <= mdp.reward state action) (hrewardOne : forall state action, mdp.reward state action <= 1) (defaultState : State) (htrajectory : trajectory ∉ simultaneousTransitionFailureEvent (recurrentSource mdp initialState defaultState episodes delta) episodes (logFactor (State
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.AdaptiveEpisodeBatchSource.recurrentBellmanInnovationProcess_succ_eq_canonical
Compiled
The named adaptive martingale process is definitionally the direct canonical innovation used in the successor telescope.
theorem recurrentBellmanInnovationProcess_succ_eq_canonical (mdp : MDP State Action) (defaultState : State) (episodes : Nat) (delta : Real) (trajectory : EpisodeBatchTrajectory mdp 1) (n : Nat) : recurrentBellmanInnovationProcess mdp defaultState episodes delta (n + 1) trajectory = mdp.sampledCumulativeDeterministicGapInnovationFrom (successorPolicyTable mdp defaultState episodes delta trajectory n) (clippedSuccessorGapFeatureOfSummaries mdp defaultState episodes delta n (fun i => (trajectory i).transitionCountSummary)) mdp.horizon le_rfl ((trajectory (n + 1)).reconstructedInitialState defaultState) ((trajectory (n + 1)).reconstructedStepTrace)
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeHoeffdingUCBVI.AdaptiveEpisodeBatchSource.recurrentSource_generatedSuccessorPseudoRegret_le_charge_add_innovation
Compiled
End-to-end good-event decomposition for one generated successor episode.
theorem recurrentSource_generatedSuccessorPseudoRegret_le_charge_add_innovation {mdp : MDP State Action} (initialState : Measure State) [IsProbabilityMeasure initialState] {episodes : Nat} {delta : Real} {trajectory : EpisodeBatchTrajectory mdp 1} (hhorizon : 0 < mdp.horizon) (hepisodes : 0 < episodes) (hdelta : 0 < delta) (hdelta_le_one : delta <= 1) (hrewardNonneg : forall state action, 0 <= mdp.reward state action) (hrewardOne : forall state action, mdp.reward state action <= 1) (defaultState : State) (htrajectory : trajectory ∉ simultaneousTransitionFailureEvent (recurrentSource mdp initialState defaultState episodes delta) episodes (logFactor (State