Lean module · Finite-horizon RL
BanditRLProof.RL.FiniteHorizonAdaptiveCumulativeEmpiricalOptimisticRegret
# Adaptive cumulative empirical optimistic regret contract This module changes the adaptive empirical planner from a latest-batch summary to the sum of every transition count in the observed finite prefix. A nonnegative antitone count-radius object makes the plan's transition radius a function of the cumulative state-action visit count. The cumulative selector is measurable, so it also defines a concrete exploratory adaptive batch source. The route terminates at optimism and recommended-policy expected regret under one explicit global cumulative coordinate-confidence contract. Producing that contract from adaptive cumulative count martingales remains downstream; no such concentration theorem is assumed to have been proved here.
Module map
Imports
BanditRLProof.RL.FiniteHorizonAdaptiveEmpiricalOptimisticOccupancyEnvelope
Imported by
BanditRLProof, BanditRLProof.RL.FiniteHorizonAdaptiveCumulativeCountMartingaleConfidence
Declarations
Open an item to read its exact compact statement and source link. Detailed teaching notes are linked when registered.
structure
BanditRLProof.FiniteHorizonRL.TransitionCountRadius
Compiled
A nonnegative transition radius that can only decrease as visits accumulate.
structure TransitionCountRadius where
def
BanditRLProof.FiniteHorizonRL.TransitionCountRadius.linearDecay
Compiled
A finite linear-decay radius, useful as an executable shrinking-radius canary.
def linearDecay (budget : Nat) : TransitionCountRadius where
def
BanditRLProof.FiniteHorizonRL.EpisodeBatchPrefix.cumulativeTransitionCountSummary
Compiled
Sum all transition-count coordinates in a nonempty finite batch prefix.
def cumulativeTransitionCountSummary {mdp : MDP State Action} {episodes n : Nat} (history : EpisodeBatchPrefix mdp episodes n) : TransitionCountSummary mdp
theorem
BanditRLProof.FiniteHorizonRL.EpisodeBatchPrefix.measurable_cumulativeTransitionCountSummary
Compiled
The complete cumulative transition-count summary is history measurable.
theorem measurable_cumulativeTransitionCountSummary {mdp : MDP State Action} {episodes n : Nat} : Measurable (cumulativeTransitionCountSummary : EpisodeBatchPrefix mdp episodes n -> TransitionCountSummary mdp)
theorem
BanditRLProof.FiniteHorizonRL.EpisodeBatchPrefix.cumulativeTransitionCountSummary_visitCount
Compiled
Cumulative next-state counts still partition the cumulative visit count.
theorem cumulativeTransitionCountSummary_visitCount {mdp : MDP State Action} {episodes n : Nat} (history : EpisodeBatchPrefix mdp episodes n) (stage : Fin mdp.horizon) (state : State) (action : Action) : history.cumulativeTransitionCountSummary.visitCount stage state action = ∑ i : Fin (n + 1), (history ⟨i, Finset.mem_Iic.mpr (Nat.le_of_lt_succ i.isLt)⟩).visitCount stage state action
def
BanditRLProof.FiniteHorizonRL.cumulativeTransitionCountSummaryAt
Compiled
Cumulative count summary through trajectory coordinate `round`.
def cumulativeTransitionCountSummaryAt {mdp : MDP State Action} {episodes : Nat} (trajectory : EpisodeBatchTrajectory mdp episodes) (round : Nat) : TransitionCountSummary mdp
theorem
BanditRLProof.FiniteHorizonRL.cumulativeTransitionCountSummaryAt_succ
Compiled
Extending the trajectory prefix adds exactly the new batch coordinate.
theorem cumulativeTransitionCountSummaryAt_succ {mdp : MDP State Action} {episodes : Nat} (trajectory : EpisodeBatchTrajectory mdp episodes) (round : Nat) (stage : Fin mdp.horizon) (state : State) (action : Action) (nextState : State) : cumulativeTransitionCountSummaryAt trajectory (round + 1) stage state action nextState = cumulativeTransitionCountSummaryAt trajectory round stage state action nextState + (trajectory (round + 1)).transitionCount stage state action nextState
theorem
BanditRLProof.FiniteHorizonRL.cumulativeTransitionCountSummaryAt_visitCount_le_succ
Compiled
Every cumulative state-action visit count is monotone across rounds.
theorem cumulativeTransitionCountSummaryAt_visitCount_le_succ {mdp : MDP State Action} {episodes : Nat} (trajectory : EpisodeBatchTrajectory mdp episodes) (round : Nat) (stage : Fin mdp.horizon) (state : State) (action : Action) : (cumulativeTransitionCountSummaryAt trajectory round).visitCount stage state action <= (cumulativeTransitionCountSummaryAt trajectory (round + 1)).visitCount stage state action
theorem
BanditRLProof.FiniteHorizonRL.TransitionCountRadius.radius_cumulativeVisitCount_succ_le
Compiled
Count-antitone radii shrink along every accumulated state-action row.
theorem TransitionCountRadius.radius_cumulativeVisitCount_succ_le {mdp : MDP State Action} {episodes : Nat} (countRadius : TransitionCountRadius) (trajectory : EpisodeBatchTrajectory mdp episodes) (round : Nat) (stage : Fin mdp.horizon) (state : State) (action : Action) : countRadius.radius ((cumulativeTransitionCountSummaryAt trajectory (round + 1)).visitCount stage state action) <= countRadius.radius ((cumulativeTransitionCountSummaryAt trajectory round).visitCount stage state action)
def
BanditRLProof.FiniteHorizonRL.TransitionCountSummary.countRadiusOptimisticPlan
Compiled
Known-reward empirical plan with a radius selected from cumulative visits.
noncomputable def countRadiusOptimisticPlan (mdp : MDP State Action) (summary : TransitionCountSummary mdp) (defaultState : State) (countRadius : TransitionCountRadius) : mdp.EstimatedModelPlan where
theorem
BanditRLProof.FiniteHorizonRL.TransitionCountSummary.countRadiusOptimisticPlan_upperValueRemaining_abs_le
Compiled
Every count-radius optimistic value is controlled by the radius at zero visits.
theorem countRadiusOptimisticPlan_upperValueRemaining_abs_le (mdp : MDP State Action) (summary : TransitionCountSummary mdp) (defaultState : State) (countRadius : TransitionCountRadius) (rewardBound : Real) (hrewardBound : forall state action, |mdp.reward state action| <= rewardBound) : forall (remaining : Nat) (hremaining : remaining <= mdp.horizon) (state : State), |(summary.countRadiusOptimisticPlan mdp defaultState countRadius).upperValueRemaining remaining hremaining state| <= empiricalFiniteBatchValueEnvelope rewardBound (countRadius.radius 0) remaining
theorem
BanditRLProof.FiniteHorizonRL.TransitionCountSummary.countRadiusOptimisticPlan_selectedRadiusRemaining
Compiled
The cumulative count-radius plan selects exactly its chosen row radius.
theorem countRadiusOptimisticPlan_selectedRadiusRemaining (mdp : MDP State Action) (summary : TransitionCountSummary mdp) (defaultState : State) (countRadius : TransitionCountRadius) (remaining : Nat) (hremaining : remaining + 1 <= mdp.horizon) (state : State) : (summary.countRadiusOptimisticPlan mdp defaultState countRadius).selectedRadiusRemaining remaining hremaining state = countRadius.radius (summary.visitCount (mdp.decisionStageRemaining remaining hremaining) state ((summary.countRadiusOptimisticPlan mdp defaultState countRadius).optimisticAction (mdp.decisionStageRemaining remaining hremaining) ((summary.countRadiusOptimisticPlan mdp defaultState countRadius).upperValueRemaining remaining (by omega)) state))
def
BanditRLProof.FiniteHorizonRL.TransitionCountSummary.countRadiusOptimisticPolicyTable
Compiled
Deterministic optimistic table selected from a cumulative count summary.
noncomputable def countRadiusOptimisticPolicyTable (mdp : MDP State Action) (summary : TransitionCountSummary mdp) (defaultState : State) (countRadius : TransitionCountRadius) : DeterministicMarkovPolicyTable mdp
theorem
BanditRLProof.FiniteHorizonRL.TransitionCountSummary.countRadiusOptimisticPolicyTable_toMarkovPolicy
Compiled
The table interpretation is the cumulative count-radius plan's policy.
theorem countRadiusOptimisticPolicyTable_toMarkovPolicy (mdp : MDP State Action) (summary : TransitionCountSummary mdp) (defaultState : State) (countRadius : TransitionCountRadius) : (summary.countRadiusOptimisticPolicyTable mdp defaultState countRadius).toMarkovPolicy = (summary.countRadiusOptimisticPlan mdp defaultState countRadius).optimisticPolicy
def
BanditRLProof.FiniteHorizonRL.adaptiveCumulativeEmpiricalOptimisticPlanAt
Compiled
Cumulative known-reward optimistic plan recommended after one trajectory prefix.
noncomputable def adaptiveCumulativeEmpiricalOptimisticPlanAt {mdp : MDP State Action} {episodes : Nat} (trajectory : EpisodeBatchTrajectory mdp episodes) (defaultState : State) (countRadius : TransitionCountRadius) (round : Nat) : mdp.EstimatedModelPlan
def
BanditRLProof.FiniteHorizonRL.adaptiveCumulativeEmpiricalOptimisticRecommendedExpectedRegret
Compiled
Sum of expected regrets of all cumulative empirical recommendations.
noncomputable def adaptiveCumulativeEmpiricalOptimisticRecommendedExpectedRegret {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] {episodes : Nat} (trajectory : EpisodeBatchTrajectory mdp episodes) (defaultState : State) (countRadius : TransitionCountRadius) (rounds : Nat) : Real
def
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeEmpiricalOptimisticSource.successorTable
Compiled
Cumulative optimistic table selected from every observed batch in a prefix.
noncomputable def successorTable {mdp : MDP State Action} {episodes : Nat} (defaultState : State) (countRadius : TransitionCountRadius) (n : Nat) (history : EpisodeBatchPrefix mdp episodes n) : DeterministicMarkovPolicyTable mdp
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeEmpiricalOptimisticSource.measurable_successorTable
Compiled
The cumulative history-to-table selector is measurable.
theorem measurable_successorTable {mdp : MDP State Action} {episodes : Nat} (defaultState : State) (countRadius : TransitionCountRadius) (n : Nat) : Measurable (successorTable (mdp
def
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeEmpiricalOptimisticSource.exploratorySource
Compiled
Exploratory behavior source centered on cumulative empirical recommendations.
noncomputable def exploratorySource (mdp : MDP State Action) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (initialTable : DeterministicMarkovPolicyTable mdp) (defaultState : State) (countRadius : TransitionCountRadius) (explorationRate : NNReal) (hexplorationRate : explorationRate <= 1) : AdaptiveEpisodeBatchSource mdp initialState episodes where
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeEmpiricalOptimisticSource.exploratorySource_successorPolicy
Compiled
The source's successor behavior is centered on the cumulative optimistic table.
theorem exploratorySource_successorPolicy {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] {episodes : Nat} (initialTable : DeterministicMarkovPolicyTable mdp) (defaultState : State) (countRadius : TransitionCountRadius) (explorationRate : NNReal) (hexplorationRate : explorationRate <= 1) (n : Nat) (history : EpisodeBatchPrefix mdp episodes n) : (exploratorySource mdp initialState episodes initialTable defaultState countRadius explorationRate hexplorationRate).successorPolicy n history = (successorTable defaultState countRadius n history).exploratoryPolicy explorationRate hexplorationRate
structure
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeCoordinateConfidenceContract
Compiled
One global event contract for cumulative empirical plans. The missing statistical producer must supply coordinate confidence for every cumulative prefix plan outside `badEvent`.
structure AdaptiveCumulativeCoordinateConfidenceContract {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] {episodes : Nat} (source : AdaptiveEpisodeBatchSource mdp initialState episodes) (defaultState : State) (countRadius : TransitionCountRadius) (rounds : Nat) (delta : Real) where
theorem
BanditRLProof.FiniteHorizonRL.adaptiveCumulativeCoordinateConfidence_optimism_and_recommendedExpectedRegret
Compiled
Roundwise cumulative confidence and a selected-radius envelope imply global optimism and the explicit finite recommendation-regret sum.
theorem adaptiveCumulativeCoordinateConfidence_optimism_and_recommendedExpectedRegret {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] {episodes rounds : Nat} (trajectory : EpisodeBatchTrajectory mdp episodes) (defaultState : State) (countRadius : TransitionCountRadius) (radiusEnvelope : Fin rounds -> Real) (confidence : forall round : Fin rounds, (adaptiveCumulativeEmpiricalOptimisticPlanAt trajectory defaultState countRadius round).CoordinateConfidence) (hradius : forall (round : Fin rounds) (remaining : Nat) (hremaining : remaining + 1 <= mdp.horizon) (state : State), (adaptiveCumulativeEmpiricalOptimisticPlanAt trajectory defaultState countRadius round).selectedRadiusRemaining remaining hremaining state <= radiusEnvelope round) : (forall round : Fin rounds, forall state, mdp.optimalValueRemaining mdp.horizon le_rfl state <= (adaptiveCumulativeEmpiricalOptimisticPlanAt trajectory defaultState countRadius round).upperValueRemaining mdp.horizon le_rfl state) /\ adaptiveCumulativeEmpiricalOptimisticRecommendedExpectedRegret (initialState
theorem
BanditRLProof.FiniteHorizonRL.AdaptiveCumulativeCoordinateConfidenceContract.trajectoryMeasure_optimism_and_explicitRecommendedExpectedRegret
Compiled
Route endpoint: one measurable global cumulative-confidence event yields global optimism and an explicit shrinking-radius recommendation-regret bound.
theorem AdaptiveCumulativeCoordinateConfidenceContract.trajectoryMeasure_optimism_and_explicitRecommendedExpectedRegret {mdp : MDP State Action} {initialState : Measure State} [IsProbabilityMeasure initialState] {episodes rounds : Nat} (source : AdaptiveEpisodeBatchSource mdp initialState episodes) (defaultState : State) (countRadius : TransitionCountRadius) (delta : Real) (contract : AdaptiveCumulativeCoordinateConfidenceContract source defaultState countRadius rounds delta) (radiusEnvelope : Fin rounds -> Real) (hradius : forall trajectory, trajectory ∉ contract.badEvent -> forall (round : Fin rounds) (remaining : Nat) (hremaining : remaining + 1 <= mdp.horizon) (state : State), (adaptiveCumulativeEmpiricalOptimisticPlanAt trajectory defaultState countRadius round).selectedRadiusRemaining remaining hremaining state <= radiusEnvelope round) : MeasurableSet contract.badEvent /\ source.trajectoryMeasure contract.badEvent <= ENNReal.ofReal delta /\ forall trajectory, trajectory ∉ contract.badEvent -> (forall round : Fin rounds, forall state, mdp.optimalValueRemaining mdp.horizon le_rfl state <= (adaptiveCumulativeEmpiricalOptimisticPlanAt trajectory defaultState countRadius round).upperValueRemaining mdp.horizon le_rfl state) /\ adaptiveCumulativeEmpiricalOptimisticRecommendedExpectedRegret (initialState