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

Lean module · UCB

BanditRLProof.Algorithms.UCBFixedCountPeeling

# Fixed-count peeling for native Real UCB rewards This module isolates the law transport used by the pinned LML UCB proof. A `FixedArmPrefixSource` records the pathwise fact that rewards selected from one arm are the prefix of an arm-indexed reward stream. The main theorems peel the random pull count into finitely many fixed counts and transport every fixed prefix event through an `IdentDistrib` stream law.

Module map

Declarations
8
Placeholders
0

Imports

BanditRLProof.Algorithms.UCBRealHistoryIndex, BanditRLProof.ProbabilityUnionBound

Imported by

BanditRLProof, BanditRLProof.Algorithms.UCBArmStreamSource

Declarations

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

abbrev BanditRLProof.UCB.ArmRewardStream Compiled

A table containing one infinite reward stream for every finite arm.

abbrev ArmRewardStream (K : Nat)
def BanditRLProof.UCB.armPrefixSum Compiled

Sum of the first `k` rewards in one arm's stream.

def armPrefixSum {K : Nat} (arm : Fin K) (k : Nat) (stream : ArmRewardStream K) : Real
theorem BanditRLProof.UCB.measurable_armPrefixSum Compiled

A fixed-arm prefix sum is measurable on the full stream space.

theorem measurable_armPrefixSum {K : Nat} (arm : Fin K) (k : Nat) : Measurable (armPrefixSum arm k)
structure BanditRLProof.UCB.FixedArmPrefixSource Compiled

Pathwise source contract behind fixed-count peeling. For each sample point, arm, and horizon, the selected reward sum must be the prefix sum of that arm's latent stream at the realized pull count.

structure FixedArmPrefixSource {Omega : Type u} {K : Nat} [MeasurableSpace Omega] (action : Omega -> ActionTrace (Fin K)) (reward : Omega -> RewardTrace Real) where
theorem BanditRLProof.UCB.FixedArmPrefixSource.measurable_armStream Compiled

The complete latent arm stream supplied by a source is measurable.

theorem FixedArmPrefixSource.measurable_armStream {Omega : Type u} {K : Nat} [MeasurableSpace Omega] {action : Omega -> ActionTrace (Fin K)} {reward : Omega -> RewardTrace Real} (source : FixedArmPrefixSource action reward) : Measurable source.armStream
theorem BanditRLProof.UCB.FixedArmPrefixSource.measurable_armPrefixSum Compiled

Every fixed prefix sum read from a source is measurable.

theorem FixedArmPrefixSource.measurable_armPrefixSum {Omega : Type u} {K : Nat} [MeasurableSpace Omega] {action : Omega -> ActionTrace (Fin K)} {reward : Omega -> RewardTrace Real} (source : FixedArmPrefixSource action reward) (arm : Fin K) (k : Nat) : Measurable (fun omega => UCB.armPrefixSum arm k (source.armStream omega))
theorem BanditRLProof.UCB.measure_pullCount_prod_sumRewards_mem_le_of_fixedArmPrefixSource Compiled

Pathwise fixed-count peeling. The adaptive `(pullCount, sumRewards)` event is covered by the finite union of fixed-prefix events for counts at most `n`. This is an outer-measure bound, so the event set itself need not be measurable.

theorem measure_pullCount_prod_sumRewards_mem_le_of_fixedArmPrefixSource {Omega : Type u} {K : Nat} [MeasurableSpace Omega] (mu : Measure Omega) (action : Omega -> ActionTrace (Fin K)) (reward : Omega -> RewardTrace Real) (source : FixedArmPrefixSource action reward) (arm : Fin K) (n : Nat) (s : Set (Nat × Real)) [DecidablePred (fun k : Nat => k ∈ Prod.fst '' s)] : mu {omega | (pullCount (action omega) arm n, sumRewards (action omega) (reward omega) arm n) ∈ s} ≤ ((Finset.range (n + 1)).filter (fun k => k ∈ Prod.fst '' s)).sum (fun k => mu {omega | UCB.armPrefixSum arm k (source.armStream omega) ∈ Prod.mk k ⁻¹' s})
theorem BanditRLProof.UCB.measure_pullCount_prod_sumRewards_mem_le_of_fixedArmPrefixSource_identDistrib Compiled

Fixed-count peeling with law transport to a canonical arm-reward stream. One `IdentDistrib` hypothesis for the complete latent stream supplies every fixed-prefix law by measurable composition. This is the local counterpart of the law-transport step in LML `prob_pullCount_prod_sumRewards_mem_le`.

theorem measure_pullCount_prod_sumRewards_mem_le_of_fixedArmPrefixSource_identDistrib {Omega : Type u} {Xi : Type v} {K : Nat} [MeasurableSpace Omega] [MeasurableSpace Xi] (mu : Measure Omega) (nu : Measure Xi) (action : Omega -> ActionTrace (Fin K)) (reward : Omega -> RewardTrace Real) (source : FixedArmPrefixSource action reward) (canonicalStream : Xi -> ArmRewardStream K) (hstreamLaw : IdentDistrib source.armStream canonicalStream mu nu) (arm : Fin K) (n : Nat) (s : Set (Nat × Real)) [DecidablePred (fun k : Nat => k ∈ Prod.fst '' s)] (hs : MeasurableSet s) : mu {omega | (pullCount (action omega) arm n, sumRewards (action omega) (reward omega) arm n) ∈ s} ≤ ((Finset.range (n + 1)).filter (fun k => k ∈ Prod.fst '' s)).sum (fun k => nu {xi | UCB.armPrefixSum arm k (canonicalStream xi) ∈ Prod.mk k ⁻¹' s})