Lean module · Finite-horizon RL
BanditRLProof.RL.FiniteHorizonStochasticRewardIIDAllCoordinateEmpiricalModelConfidence
# All-coordinate iid empirical-model confidence with stochastic rewards This module combines the compiled sampled-reward coordinate tail with the existing simultaneous count/transition event. It keeps the complete reward-bearing iid trajectory family as the probability space and constructs the empirical model from the actual sampled rewards.
Module map
Imports
BanditRLProof.RL.FiniteHorizonStochasticRewardIIDEmpiricalRewardConfidence
Imported by
BanditRLProof, BanditRLProof.RL.FiniteHorizonAdaptiveStochasticRewardSampledEmpiricalOptimisticSource, BanditRLProof.RL.FiniteHorizonStochasticRewardIIDExplicitCalibration
Declarations
Open an item to read its exact compact statement and source link. Detailed teaching notes are linked when registered.
theorem
BanditRLProof.FiniteHorizonRL.MDP.rewardStepTrace_stateAt_eq_trajectoryStateAt_eraseTrajectory
Compiled
Reward erasure preserves the state immediately preceding every coordinate.
theorem rewardStepTrace_stateAt_eq_trajectoryStateAt_eraseTrajectory (mdp : MDP State Action) (trajectory : State × RewardStepTrace Action State mdp.horizon) (stage : Fin mdp.horizon) : RewardStepTrace.stateAt trajectory.1 trajectory.2 stage = mdp.trajectoryStateAt (MeanCompatibleRewardKernel.eraseTrajectory (mdp
theorem
BanditRLProof.FiniteHorizonRL.MDP.sampledEpisodeStep_state_eq_knownRewardEpisodeStep
Compiled
Sampled and known-reward projections have identical stage states.
theorem sampledEpisodeStep_state_eq_knownRewardEpisodeStep (mdp : MDP State Action) (trajectory : State × RewardStepTrace Action State mdp.horizon) (stage : Fin mdp.horizon) : (mdp.sampledEpisodeStepOfStochasticTrajectory trajectory stage).state = (mdp.episodeStepOfTrajectory (MeanCompatibleRewardKernel.eraseTrajectory (mdp
theorem
BanditRLProof.FiniteHorizonRL.MDP.sampledEpisodeStep_action_eq_knownRewardEpisodeStep
Compiled
Sampled and known-reward projections have identical stage actions.
theorem sampledEpisodeStep_action_eq_knownRewardEpisodeStep (mdp : MDP State Action) (trajectory : State × RewardStepTrace Action State mdp.horizon) (stage : Fin mdp.horizon) : (mdp.sampledEpisodeStepOfStochasticTrajectory trajectory stage).action = (mdp.episodeStepOfTrajectory (MeanCompatibleRewardKernel.eraseTrajectory (mdp
theorem
BanditRLProof.FiniteHorizonRL.MDP.sampledEpisodeStep_nextState_eq_knownRewardEpisodeStep
Compiled
Sampled and known-reward projections have identical next states.
theorem sampledEpisodeStep_nextState_eq_knownRewardEpisodeStep (mdp : MDP State Action) (trajectory : State × RewardStepTrace Action State mdp.horizon) (stage : Fin mdp.horizon) : (mdp.sampledEpisodeStepOfStochasticTrajectory trajectory stage).nextState = (mdp.episodeStepOfTrajectory (MeanCompatibleRewardKernel.eraseTrajectory (mdp
theorem
BanditRLProof.FiniteHorizonRL.MDP.sampledEpisodeBatch_visitCount_eq_knownRewardEpisodeBatch
Compiled
Actual sampled-reward and known-reward projections have the same visit counts.
theorem sampledEpisodeBatch_visitCount_eq_knownRewardEpisodeBatch (mdp : MDP State Action) (episodes : Nat) (trajectories : Fin episodes -> State × RewardStepTrace Action State mdp.horizon) (stage : Fin mdp.horizon) (state : State) (action : Action) : (mdp.sampledEpisodeBatchOfStochasticTrajectories episodes trajectories).visitCount stage state action = (MeanCompatibleRewardKernel.knownRewardEpisodeBatchOfStochasticTrajectories (mdp
theorem
BanditRLProof.FiniteHorizonRL.MDP.sampledEpisodeBatch_transitionCount_eq_knownRewardEpisodeBatch
Compiled
Actual sampled-reward and known-reward projections have the same transition counts.
theorem sampledEpisodeBatch_transitionCount_eq_knownRewardEpisodeBatch (mdp : MDP State Action) (episodes : Nat) (trajectories : Fin episodes -> State × RewardStepTrace Action State mdp.horizon) (stage : Fin mdp.horizon) (state : State) (action : Action) (nextState : State) : (mdp.sampledEpisodeBatchOfStochasticTrajectories episodes trajectories).transitionCount stage state action nextState = (MeanCompatibleRewardKernel.knownRewardEpisodeBatchOfStochasticTrajectories (mdp
def
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.stochasticSampledBatchCountBadEvent
Compiled
Count event pulled back along the actual sampled-reward batch projection. Its set is source-independent, while the receiver aligns it with the source's iid stochastic trajectory measure and reward event used by the combined route.
noncomputable def stochasticSampledBatchCountBadEvent (source : MeanCompatibleRewardKernel mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (delta : Real) : Set (Fin episodes -> State × RewardStepTrace Action State mdp.horizon)
theorem
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.mem_stochasticSampledBatchCountBadEvent_iff_knownReward
Compiled
Membership in the sampled and known-reward pullbacks of the count event agrees.
theorem mem_stochasticSampledBatchCountBadEvent_iff_knownReward (source : MeanCompatibleRewardKernel mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (delta : Real) (trajectories : Fin episodes -> State × RewardStepTrace Action State mdp.horizon) : trajectories ∈ source.stochasticSampledBatchCountBadEvent policy initialState episodes delta ↔ MeanCompatibleRewardKernel.knownRewardEpisodeBatchOfStochasticTrajectories (mdp
theorem
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.measurableSet_stochasticSampledBatchCountBadEvent
Compiled
The pulled-back sampled-batch count event is measurable.
theorem measurableSet_stochasticSampledBatchCountBadEvent (source : MeanCompatibleRewardKernel mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (delta : Real) : MeasurableSet (source.stochasticSampledBatchCountBadEvent policy initialState episodes delta)
theorem
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.iidStochasticTrajectoryFamilyMeasure_stochasticSampledBatchCountBadEvent_le
Compiled
The actual sampled-batch count event inherits the compiled count failure share.
theorem iidStochasticTrajectoryFamilyMeasure_stochasticSampledBatchCountBadEvent_le (source : MeanCompatibleRewardKernel mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (hepisodes : 0 < episodes) (delta : Real) (hdelta : 0 < delta) (hdelta_le_one : delta <= 1) : (source.iidStochasticTrajectoryFamilyMeasure policy initialState episodes) (source.stochasticSampledBatchCountBadEvent policy initialState episodes delta) <= ENNReal.ofReal delta
def
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.simultaneousRewardDelta
Compiled
Equal reward confidence share for every stage/state/action coordinate.
noncomputable def simultaneousRewardDelta (mdp : MDP State Action) (delta : Real) : Real
def
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.simultaneousRewardSumConfidenceRadius
Compiled
Deterministic fixed-coordinate reward-sum confidence radius.
noncomputable def simultaneousRewardSumConfidenceRadius (mdp : MDP State Action) (episodes : Nat) (varianceProxy : NNReal) (delta : Real) : Real
def
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.rewardCoordinateBadEvent
Compiled
One visit coordinate's sampled-reward deviation event.
noncomputable def rewardCoordinateBadEvent (source : MeanCompatibleRewardKernel mdp) (episodes : Nat) (varianceProxy : NNReal) (delta : Real) (coordinate : VisitCoordinate mdp) : Set (Fin episodes -> State × RewardStepTrace Action State mdp.horizon)
def
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.simultaneousRewardBadEvent
Compiled
Union of every stage/state/action sampled-reward deviation event.
noncomputable def simultaneousRewardBadEvent (source : MeanCompatibleRewardKernel mdp) (episodes : Nat) (varianceProxy : NNReal) (delta : Real) : Set (Fin episodes -> State × RewardStepTrace Action State mdp.horizon)
theorem
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.measurableSet_rewardCoordinateBadEvent
Compiled
Every fixed reward-coordinate event is measurable.
theorem measurableSet_rewardCoordinateBadEvent (source : MeanCompatibleRewardKernel mdp) (episodes : Nat) (varianceProxy : NNReal) (delta : Real) (coordinate : VisitCoordinate mdp) : MeasurableSet (source.rewardCoordinateBadEvent episodes varianceProxy delta coordinate)
theorem
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.measurableSet_simultaneousRewardBadEvent
Compiled
The all-coordinate reward union is measurable.
theorem measurableSet_simultaneousRewardBadEvent (source : MeanCompatibleRewardKernel mdp) (episodes : Nat) (varianceProxy : NNReal) (delta : Real) : MeasurableSet (source.simultaneousRewardBadEvent episodes varianceProxy delta)
theorem
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.simultaneousRewardDelta_pos
Compiled
A nonempty reward-coordinate family receives a positive equal share.
theorem simultaneousRewardDelta_pos (mdp : MDP State Action) (hcoordinate : Nonempty (VisitCoordinate mdp)) {delta : Real} (hdelta : 0 < delta) : 0 < simultaneousRewardDelta mdp delta
theorem
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.simultaneousRewardDelta_le_one
Compiled
A global reward share at most one gives each coordinate a share at most one.
theorem simultaneousRewardDelta_le_one (mdp : MDP State Action) (hcoordinate : Nonempty (VisitCoordinate mdp)) {delta : Real} (hdelta : 0 < delta) (hdelta_le_one : delta <= 1) : simultaneousRewardDelta mdp delta <= 1
theorem
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.iidStochasticTrajectoryFamilyMeasure_simultaneousRewardBadEvent_le
Compiled
The finite all-coordinate sampled-reward union consumes only its reward share.
theorem iidStochasticTrajectoryFamilyMeasure_simultaneousRewardBadEvent_le [StandardBorelSpace State] [StandardBorelSpace Action] (source : MeanCompatibleRewardKernel mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (varianceProxy : NNReal) (law : source.UniformSubgaussianRewardLaw varianceProxy) (htotal : 0 < ((((episodes : NNReal) * varianceProxy : NNReal) : Real))) (delta : Real) (hdelta : 0 < delta) (hdelta_le_one : delta <= 1) : (source.iidStochasticTrajectoryFamilyMeasure policy initialState episodes) (source.simultaneousRewardBadEvent episodes varianceProxy delta) <= ENNReal.ofReal delta
theorem
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.maskedRewardDeviation_sum_abs_lt_of_not_mem_simultaneousRewardBadEvent
Compiled
Outside the reward union, every masked reward sum is strictly inside its radius.
theorem maskedRewardDeviation_sum_abs_lt_of_not_mem_simultaneousRewardBadEvent (source : MeanCompatibleRewardKernel mdp) {episodes : Nat} {varianceProxy : NNReal} {delta : Real} (trajectories : Fin episodes -> State × RewardStepTrace Action State mdp.horizon) (htrajectories : trajectories ∉ source.simultaneousRewardBadEvent episodes varianceProxy delta) (coordinate : VisitCoordinate mdp) : |∑ episode : Fin episodes, source.maskedRewardDeviationAtEpisode coordinate.stage coordinate.state coordinate.action episode trajectories| < simultaneousRewardSumConfidenceRadius mdp episodes varianceProxy delta
theorem
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.maskedRewardDeviation_sum_eq_sampledBatch_rewardSum_sub
Compiled
The masked iid reward sum is exactly reward sum minus visit count times mean.
theorem maskedRewardDeviation_sum_eq_sampledBatch_rewardSum_sub (source : MeanCompatibleRewardKernel mdp) {episodes : Nat} (trajectories : Fin episodes -> State × RewardStepTrace Action State mdp.horizon) (stage : Fin mdp.horizon) (state : State) (action : Action) : (∑ episode : Fin episodes, source.maskedRewardDeviationAtEpisode stage state action episode trajectories) = (mdp.sampledEpisodeBatchOfStochasticTrajectories episodes trajectories).rewardSum stage state action - ((mdp.sampledEpisodeBatchOfStochasticTrajectories episodes trajectories).visitCount stage state action : Real) * mdp.reward state action
def
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.expectedCountRewardCoordinateRadius
Compiled
Deterministic reward-mean radius based on the genuine lower count margin. Its formula is source-independent; the receiver keeps it adjacent to the source-indexed reward event and empirical-reward consumer.
noncomputable def expectedCountRewardCoordinateRadius (source : MeanCompatibleRewardKernel mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (varianceProxy : NNReal) (countDelta rewardDelta : Real) (coordinate : VisitCoordinate mdp) : Real
theorem
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.sampledBatch_empiricalReward_abs_sub_le_expectedCountRewardCoordinateRadius
Compiled
Outside both events, a sampled empirical reward obeys its deterministic radius.
theorem sampledBatch_empiricalReward_abs_sub_le_expectedCountRewardCoordinateRadius (source : MeanCompatibleRewardKernel mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] {episodes : Nat} {varianceProxy : NNReal} {countDelta rewardDelta : Real} (trajectories : Fin episodes -> State × RewardStepTrace Action State mdp.horizon) (hcount : trajectories ∉ source.stochasticSampledBatchCountBadEvent policy initialState episodes countDelta) (hreward : trajectories ∉ source.simultaneousRewardBadEvent episodes varianceProxy rewardDelta) (coordinate : VisitCoordinate mdp) (hmargin : simultaneousCountConfidenceRadius mdp episodes countDelta < coordinate.expectedCount policy initialState episodes) : let batch := mdp.sampledEpisodeBatchOfStochasticTrajectories episodes trajectories |batch.empiricalReward coordinate.stage coordinate.state coordinate.action - mdp.reward coordinate.state coordinate.action| <= source.expectedCountRewardCoordinateRadius policy initialState episodes varianceProxy countDelta rewardDelta coordinate
def
BanditRLProof.FiniteHorizonRL.stochasticEmpiricalFiniteBatchValueEnvelope
Compiled
Linear value envelope with one empirical-reward error and one reward bonus.
def stochasticEmpiricalFiniteBatchValueEnvelope (rewardBound rewardBudget transitionBudget : Real) (remaining : Nat) : Real
def
BanditRLProof.FiniteHorizonRL.MDP.stochasticAllCoordinateEmpiricalFiniteBatchModel
Compiled
Canonical empirical model retaining sampled rewards and fixed reward/transition budgets.
noncomputable def stochasticAllCoordinateEmpiricalFiniteBatchModel (mdp : MDP State Action) (episodes : Nat) (batch : EpisodeBatch mdp episodes) (defaultState : State) (rewardBudget transitionBudget : Real) : FiniteBatchModel mdp episodes where
theorem
BanditRLProof.FiniteHorizonRL.MDP.StochasticAllCoordinateConfidence.upperValueRemaining_abs_le
Compiled
Reward error and fixed budgets give a noncircular linear optimistic-value envelope.
theorem upperValueRemaining_abs_le (hrewardError : forall stage state action, |batch.empiricalReward stage state action - mdp.reward state action| <= rewardBudget) (hrewardBound : forall state action, |mdp.reward state action| <= rewardBound) (hrewardBudget_nonneg : 0 <= rewardBudget) (htransitionBudget_nonneg : 0 <= transitionBudget) : forall (remaining : Nat) (hremaining : remaining <= mdp.horizon) (state : State), |(mdp.stochasticAllCoordinateEmpiricalFiniteBatchModel episodes batch defaultState rewardBudget transitionBudget).plan.upperValueRemaining remaining hremaining state| <= stochasticEmpiricalFiniteBatchValueEnvelope rewardBound rewardBudget transitionBudget remaining
def
BanditRLProof.FiniteHorizonRL.MarkovPolicy.stochasticAllCoordinateEmpiricalFiniteBatchModelConfidence_of_not_mem
Compiled
Pathwise stochastic sampled-batch producer for the complete confidence object.
noncomputable def stochasticAllCoordinateEmpiricalFiniteBatchModelConfidence_of_not_mem {mdp : MDP State Action} (source : mdp.MeanCompatibleRewardKernel) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] {episodes : Nat} {varianceProxy : NNReal} {countDelta rewardDelta : Real} (trajectories : Fin episodes -> State × RewardStepTrace Action State mdp.horizon) (hcount : trajectories ∉ source.stochasticSampledBatchCountBadEvent policy initialState episodes countDelta) (hreward : trajectories ∉ source.simultaneousRewardBadEvent episodes varianceProxy rewardDelta) (defaultState : State) (rewardBound rewardBudget transitionBudget : Real) (hrewardBound : forall state action, |mdp.reward state action| <= rewardBound) (hrewardBudget_nonneg : 0 <= rewardBudget) (htransitionBudget_nonneg : 0 <= transitionBudget) (hmargin : forall coordinate : VisitCoordinate mdp, simultaneousCountConfidenceRadius mdp episodes countDelta < coordinate.expectedCount policy initialState episodes) (hrewardCover : forall coordinate : VisitCoordinate mdp, source.expectedCountRewardCoordinateRadius policy initialState episodes varianceProxy countDelta rewardDelta coordinate <= rewardBudget) (htransitionCover : forall (remaining : Nat) (hremaining : remaining + 1 <= mdp.horizon) (state : State) (action : Action), (∑ nextState, policy.expectedCountTransitionCoordinateRadius initialState episodes countDelta (mdp.decisionStageRemaining remaining hremaining) state action nextState * stochasticEmpiricalFiniteBatchValueEnvelope rewardBound rewardBudget transitionBudget remaining) <= transitionBudget) : (mdp.stochasticAllCoordinateEmpiricalFiniteBatchModel episodes (mdp.sampledEpisodeBatchOfStochasticTrajectories episodes trajectories) defaultState rewardBudget transitionBudget).Confidence
def
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.stochasticAllCoordinateEmpiricalModelBadEvent
Compiled
The one bad event used by the stochastic empirical-model route: the pulled-back count event or one of the sampled-reward coordinate events.
noncomputable def stochasticAllCoordinateEmpiricalModelBadEvent (source : MeanCompatibleRewardKernel mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (varianceProxy : NNReal) (countDelta rewardDelta : Real) : Set (Fin episodes -> State × RewardStepTrace Action State mdp.horizon)
theorem
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.measurableSet_stochasticAllCoordinateEmpiricalModelBadEvent
Compiled
The combined count-and-reward empirical-model event is measurable.
theorem measurableSet_stochasticAllCoordinateEmpiricalModelBadEvent (source : MeanCompatibleRewardKernel mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (varianceProxy : NNReal) (countDelta rewardDelta : Real) : MeasurableSet (source.stochasticAllCoordinateEmpiricalModelBadEvent policy initialState episodes varianceProxy countDelta rewardDelta)
theorem
BanditRLProof.FiniteHorizonRL.MDP.MeanCompatibleRewardKernel.iidStochasticTrajectoryFamilyMeasure_stochasticAllCoordinateEmpiricalModelBadEvent_le
Compiled
The two separately calibrated failure shares add under the combined event.
theorem iidStochasticTrajectoryFamilyMeasure_stochasticAllCoordinateEmpiricalModelBadEvent_le [StandardBorelSpace State] [StandardBorelSpace Action] (source : MeanCompatibleRewardKernel mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (hepisodes : 0 < episodes) (varianceProxy : NNReal) (law : source.UniformSubgaussianRewardLaw varianceProxy) (htotal : 0 < ((((episodes : NNReal) * varianceProxy : NNReal) : Real))) (countDelta : Real) (hcountDelta : 0 < countDelta) (hcountDelta_le_one : countDelta <= 1) (rewardDelta : Real) (hrewardDelta : 0 < rewardDelta) (hrewardDelta_le_one : rewardDelta <= 1) : (source.iidStochasticTrajectoryFamilyMeasure policy initialState episodes) (source.stochasticAllCoordinateEmpiricalModelBadEvent policy initialState episodes varianceProxy countDelta rewardDelta) <= ENNReal.ofReal countDelta + ENNReal.ofReal rewardDelta
theorem
BanditRLProof.FiniteHorizonRL.MarkovPolicy.iidStochasticTrajectoryFamilyMeasure_allCoordinate_finiteBatchModel_confidence
Compiled
The iid stochastic-reward trajectory law produces a measurable all-coordinate confidence event for the empirical model built from the actual sampled rewards.
theorem iidStochasticTrajectoryFamilyMeasure_allCoordinate_finiteBatchModel_confidence [StandardBorelSpace State] [StandardBorelSpace Action] {mdp : MDP State Action} (source : mdp.MeanCompatibleRewardKernel) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (hepisodes : 0 < episodes) (varianceProxy : NNReal) (law : source.UniformSubgaussianRewardLaw varianceProxy) (htotal : 0 < ((((episodes : NNReal) * varianceProxy : NNReal) : Real))) (countDelta : Real) (hcountDelta : 0 < countDelta) (hcountDelta_le_one : countDelta <= 1) (rewardDelta : Real) (hrewardDelta : 0 < rewardDelta) (hrewardDelta_le_one : rewardDelta <= 1) (defaultState : State) (rewardBound rewardBudget transitionBudget : Real) (hrewardBound : forall state action, |mdp.reward state action| <= rewardBound) (hrewardBudget_nonneg : 0 <= rewardBudget) (htransitionBudget_nonneg : 0 <= transitionBudget) (hmargin : forall coordinate : VisitCoordinate mdp, simultaneousCountConfidenceRadius mdp episodes countDelta < coordinate.expectedCount policy initialState episodes) (hrewardCover : forall coordinate : VisitCoordinate mdp, source.expectedCountRewardCoordinateRadius policy initialState episodes varianceProxy countDelta rewardDelta coordinate <= rewardBudget) (htransitionCover : forall (remaining : Nat) (hremaining : remaining + 1 <= mdp.horizon) (state : State) (action : Action), (∑ nextState, policy.expectedCountTransitionCoordinateRadius initialState episodes countDelta (mdp.decisionStageRemaining remaining hremaining) state action nextState * stochasticEmpiricalFiniteBatchValueEnvelope rewardBound rewardBudget transitionBudget remaining) <= transitionBudget) : let event := source.stochasticAllCoordinateEmpiricalModelBadEvent policy initialState episodes varianceProxy countDelta rewardDelta MeasurableSet event ∧ (source.iidStochasticTrajectoryFamilyMeasure policy initialState episodes) event <= ENNReal.ofReal countDelta + ENNReal.ofReal rewardDelta ∧ forall trajectories, trajectories ∉ event -> Nonempty (mdp.stochasticAllCoordinateEmpiricalFiniteBatchModel episodes (mdp.sampledEpisodeBatchOfStochasticTrajectories episodes trajectories) defaultState rewardBudget transitionBudget).Confidence
theorem
BanditRLProof.FiniteHorizonRL.MarkovPolicy.iidStochasticTrajectoryFamilyMeasure_allCoordinate_optimism_and_expectedRegret
Compiled
Outside the compiled stochastic empirical-model event, the sampled model is globally optimistic and its recommended policy satisfies the existing selected-radius expected-regret bound.
theorem iidStochasticTrajectoryFamilyMeasure_allCoordinate_optimism_and_expectedRegret [StandardBorelSpace State] [StandardBorelSpace Action] {mdp : MDP State Action} (source : mdp.MeanCompatibleRewardKernel) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (hepisodes : 0 < episodes) (varianceProxy : NNReal) (law : source.UniformSubgaussianRewardLaw varianceProxy) (htotal : 0 < ((((episodes : NNReal) * varianceProxy : NNReal) : Real))) (countDelta : Real) (hcountDelta : 0 < countDelta) (hcountDelta_le_one : countDelta <= 1) (rewardDelta : Real) (hrewardDelta : 0 < rewardDelta) (hrewardDelta_le_one : rewardDelta <= 1) (defaultState : State) (rewardBound rewardBudget transitionBudget : Real) (hrewardBound : forall state action, |mdp.reward state action| <= rewardBound) (hrewardBudget_nonneg : 0 <= rewardBudget) (htransitionBudget_nonneg : 0 <= transitionBudget) (hmargin : forall coordinate : VisitCoordinate mdp, simultaneousCountConfidenceRadius mdp episodes countDelta < coordinate.expectedCount policy initialState episodes) (hrewardCover : forall coordinate : VisitCoordinate mdp, source.expectedCountRewardCoordinateRadius policy initialState episodes varianceProxy countDelta rewardDelta coordinate <= rewardBudget) (htransitionCover : forall (remaining : Nat) (hremaining : remaining + 1 <= mdp.horizon) (state : State) (action : Action), (∑ nextState, policy.expectedCountTransitionCoordinateRadius initialState episodes countDelta (mdp.decisionStageRemaining remaining hremaining) state action nextState * stochasticEmpiricalFiniteBatchValueEnvelope rewardBound rewardBudget transitionBudget remaining) <= transitionBudget) : let event := source.stochasticAllCoordinateEmpiricalModelBadEvent policy initialState episodes varianceProxy countDelta rewardDelta MeasurableSet event ∧ (source.iidStochasticTrajectoryFamilyMeasure policy initialState episodes) event <= ENNReal.ofReal countDelta + ENNReal.ofReal rewardDelta ∧ forall trajectories, trajectories ∉ event -> let model := mdp.stochasticAllCoordinateEmpiricalFiniteBatchModel episodes (mdp.sampledEpisodeBatchOfStochasticTrajectories episodes trajectories) defaultState rewardBudget transitionBudget (forall state, mdp.optimalValueRemaining mdp.horizon le_rfl state <= model.plan.upperValueRemaining mdp.horizon le_rfl state) ∧ model.plan.optimisticPolicy.expectedRegret initialState <= model.plan.optimisticPolicy.occupancySumRemaining (fun remaining hremaining state => 2 * model.plan.selectedRadiusRemaining remaining hremaining state) mdp.horizon le_rfl initialState