Lean module · Finite-horizon RL
BanditRLProof.RL.FiniteHorizonIIDSimultaneousCountConfidence
# Simultaneous iid count confidence for finite-horizon RL This module puts every finite visit and joint-transition count coordinate into one index type and applies an equal-share finite union bound to the compiled fixed-coordinate tails. The route remains fixed-policy iid. It does not form visit-conditioned ratios or claim adaptive, anytime, or cumulative regret.
Module map
Imports
BanditRLProof.RL.FiniteHorizonIIDCountConcentration, BanditRLProof.ProbabilityUnionBound
Imported by
BanditRLProof, BanditRLProof.RL.FiniteHorizonIIDEligibleVisitCountPositivity
Declarations
Open an item to read its exact compact statement and source link. Detailed teaching notes are linked when registered.
inductive
BanditRLProof.FiniteHorizonRL.CountCoordinate
Compiled
Finite index of all visit and joint-transition count coordinates of an MDP.
inductive CountCoordinate (mdp : MDP State Action) where
def
BanditRLProof.FiniteHorizonRL.CountCoordinate.equivVisitSumTransition
Compiled
Explicit finite-sum presentation of the two coordinate families.
def equivVisitSumTransition (mdp : MDP State Action) : CountCoordinate mdp ≃ (Fin mdp.horizon × State × Action) ⊕ (Fin mdp.horizon × State × Action × State) where
def
BanditRLProof.FiniteHorizonRL.countCoordinateCard
Compiled
Number of visit and joint-transition coordinates in the simultaneous family.
def countCoordinateCard (mdp : MDP State Action) : Nat
theorem
BanditRLProof.FiniteHorizonRL.countCoordinateCard_eq
Compiled
The simultaneous family contains `H*S*A` visits and `H*S*A*S` transitions.
theorem countCoordinateCard_eq (mdp : MDP State Action) : countCoordinateCard mdp = mdp.horizon * Fintype.card State * Fintype.card Action + mdp.horizon * Fintype.card State * Fintype.card Action * Fintype.card State
def
BanditRLProof.FiniteHorizonRL.simultaneousCountDelta
Compiled
Equal confidence share assigned to each count coordinate.
noncomputable def simultaneousCountDelta (mdp : MDP State Action) (delta : Real) : Real
def
BanditRLProof.FiniteHorizonRL.simultaneousCountConfidenceRadius
Compiled
Common count radius after allocating the global confidence budget equally.
noncomputable def simultaneousCountConfidenceRadius (mdp : MDP State Action) (episodes : Nat) (delta : Real) : Real
def
BanditRLProof.FiniteHorizonRL.CountCoordinate.deviation
Compiled
Real count deviation selected by a visit or joint-transition coordinate.
noncomputable def deviation {mdp : MDP State Action} (coordinate : CountCoordinate mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] {episodes : Nat} (batch : EpisodeBatch mdp episodes) : Real
theorem
BanditRLProof.FiniteHorizonRL.CountCoordinate.measurable_deviation
Compiled
Every selected count deviation is measurable on the mapped batch space.
theorem measurable_deviation {mdp : MDP State Action} (coordinate : CountCoordinate mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] {episodes : Nat} : Measurable (coordinate.deviation policy initialState : EpisodeBatch mdp episodes → Real)
def
BanditRLProof.FiniteHorizonRL.CountCoordinate.badEvent
Compiled
Two-sided bad event for one selected coordinate at a supplied delta.
noncomputable def badEvent {mdp : MDP State Action} (coordinate : CountCoordinate mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (coordinateDelta : Real) : Set (EpisodeBatch mdp episodes)
theorem
BanditRLProof.FiniteHorizonRL.CountCoordinate.measurableSet_badEvent
Compiled
Every selected fixed-coordinate bad event is measurable.
theorem measurableSet_badEvent {mdp : MDP State Action} (coordinate : CountCoordinate mdp) (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (coordinateDelta : Real) : MeasurableSet (coordinate.badEvent policy initialState episodes coordinateDelta)
theorem
BanditRLProof.FiniteHorizonRL.MarkovPolicy.measure_countCoordinate_badEvent_le
Compiled
The compiled marginal tail dispatches over the finite coordinate type.
theorem measure_countCoordinate_badEvent_le {mdp : MDP State Action} (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (hepisodes : 0 < episodes) (coordinate : CountCoordinate mdp) (coordinateDelta : Real) (hdelta : 0 < coordinateDelta) (hdelta_le_one : coordinateDelta ≤ 1) : (policy.iidEpisodeBatchMeasure initialState episodes) (coordinate.badEvent policy initialState episodes coordinateDelta) ≤ ENNReal.ofReal coordinateDelta
def
BanditRLProof.FiniteHorizonRL.MarkovPolicy.simultaneousCountBadEvent
Compiled
Union of every visit and joint-transition count bad event.
noncomputable def simultaneousCountBadEvent {mdp : MDP State Action} (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (delta : Real) : Set (EpisodeBatch mdp episodes)
theorem
BanditRLProof.FiniteHorizonRL.MarkovPolicy.measurableSet_simultaneousCountBadEvent
Compiled
The simultaneous count bad event is measurable.
theorem measurableSet_simultaneousCountBadEvent {mdp : MDP State Action} (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (delta : Real) : MeasurableSet (policy.simultaneousCountBadEvent initialState episodes delta)
theorem
BanditRLProof.FiniteHorizonRL.MarkovPolicy.simultaneousCountDelta_pos
Compiled
A nonempty coordinate family receives a positive equal delta share.
theorem simultaneousCountDelta_pos {mdp : MDP State Action} (hcoordinate : Nonempty (CountCoordinate mdp)) {delta : Real} (hdelta : 0 < delta) : 0 < simultaneousCountDelta mdp delta
theorem
BanditRLProof.FiniteHorizonRL.MarkovPolicy.simultaneousCountDelta_le_one
Compiled
A global delta at most one gives every nonempty-family share at most one.
theorem simultaneousCountDelta_le_one {mdp : MDP State Action} (hcoordinate : Nonempty (CountCoordinate mdp)) {delta : Real} (hdelta : 0 < delta) (hdelta_le_one : delta ≤ 1) : simultaneousCountDelta mdp delta ≤ 1
theorem
BanditRLProof.FiniteHorizonRL.MarkovPolicy.iidEpisodeBatch_simultaneousCountBadEvent_le
Compiled
All finite visit and joint-transition count deviations share one global delta budget. When the coordinate family is empty (in particular at horizon zero), the bad union is empty and no positive-horizon premise is needed.
theorem iidEpisodeBatch_simultaneousCountBadEvent_le {mdp : MDP State Action} (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (hepisodes : 0 < episodes) (delta : Real) (hdelta : 0 < delta) (hdelta_le_one : delta ≤ 1) : (policy.iidEpisodeBatchMeasure initialState episodes) (policy.simultaneousCountBadEvent initialState episodes delta) ≤ ENNReal.ofReal delta
theorem
BanditRLProof.FiniteHorizonRL.MarkovPolicy.countCoordinate_abs_deviation_lt_of_not_mem_simultaneousCountBadEvent
Compiled
Outside the simultaneous union, every indexed deviation is below its radius.
theorem countCoordinate_abs_deviation_lt_of_not_mem_simultaneousCountBadEvent {mdp : MDP State Action} (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] {episodes : Nat} {delta : Real} (batch : EpisodeBatch mdp episodes) (hbatch : batch ∉ policy.simultaneousCountBadEvent initialState episodes delta) (coordinate : CountCoordinate mdp) : |coordinate.deviation policy initialState batch| < simultaneousCountConfidenceRadius mdp episodes delta
theorem
BanditRLProof.FiniteHorizonRL.MarkovPolicy.visitCount_abs_deviation_lt_of_not_mem_simultaneousCountBadEvent
Compiled
Visit-count specialization of the simultaneous good-side bound.
theorem visitCount_abs_deviation_lt_of_not_mem_simultaneousCountBadEvent {mdp : MDP State Action} (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] {episodes : Nat} {delta : Real} (batch : EpisodeBatch mdp episodes) (hbatch : batch ∉ policy.simultaneousCountBadEvent initialState episodes delta) (stage : Fin mdp.horizon) (state : State) (action : Action) : |(batch.visitCount stage state action : Real) - (episodes : Real) * policy.stageVisitProbability initialState stage state action| < simultaneousCountConfidenceRadius mdp episodes delta
theorem
BanditRLProof.FiniteHorizonRL.MarkovPolicy.transitionCount_abs_deviation_lt_of_not_mem_simultaneousCountBadEvent
Compiled
Joint-transition-count specialization of the simultaneous good-side bound.
theorem transitionCount_abs_deviation_lt_of_not_mem_simultaneousCountBadEvent {mdp : MDP State Action} (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] {episodes : Nat} {delta : Real} (batch : EpisodeBatch mdp episodes) (hbatch : batch ∉ policy.simultaneousCountBadEvent initialState episodes delta) (stage : Fin mdp.horizon) (state : State) (action : Action) (nextState : State) : |(batch.transitionCount stage state action nextState : Real) - (episodes : Real) * policy.stageTransitionJointProbability initialState stage state action nextState| < simultaneousCountConfidenceRadius mdp episodes delta
theorem
BanditRLProof.FiniteHorizonRL.MarkovPolicy.iidEpisodeBatch_simultaneous_count_confidence
Compiled
Route endpoint: one global-delta bad union and all coordinatewise good-side bounds under the same mapped fixed-policy iid episode-batch law.
theorem iidEpisodeBatch_simultaneous_count_confidence {mdp : MDP State Action} (policy : MarkovPolicy mdp) (initialState : Measure State) [IsProbabilityMeasure initialState] (episodes : Nat) (hepisodes : 0 < episodes) (delta : Real) (hdelta : 0 < delta) (hdelta_le_one : delta ≤ 1) : (policy.iidEpisodeBatchMeasure initialState episodes) (policy.simultaneousCountBadEvent initialState episodes delta) ≤ ENNReal.ofReal delta ∧ ∀ batch ∉ policy.simultaneousCountBadEvent initialState episodes delta, ∀ coordinate : CountCoordinate mdp, |coordinate.deviation policy initialState batch| < simultaneousCountConfidenceRadius mdp episodes delta