BanditRLlib
Lean gate passed before this site build; local proof declarations are shown as compiled.Lean-verified build · exact declarations linked.

Lean module · ETC

BanditRLProof.Algorithms.ETCRatArmLawRealKernel

This module pushes the existing Rat arm laws forward along the cast to Real, identifies the resulting identity-integral kernel means and gaps, and then assembles the canonical exact per-arm ETC pull-count bounds into the LML-shaped finite sum for Real kernel regret.

Module map

Teaching chapter
3. Explore-Then-Commit
Declarations
8
Placeholders
0

Imports

BanditRLProof.Algorithms.ETCExactSubGaussianTail, BanditRLProof.RealKernelRegretPullCount

Imported by

BanditRLProof

Declarations

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

def BanditRLProof.ETC.ratArmLawRealKernel Compiled

Push each countable `Rat` arm law forward to a Real-valued arm kernel.

Used in these reading views: Bandit Book

3. Explore-Then-Commit

Canonical node identitydeclaration:BanditRLProof.ETC.ratArmLawRealKernel

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

noncomputable def ratArmLawRealKernel {K : Nat} (armLaw : Fin K -> Measure Rat) : ProbabilityTheory.Kernel (Fin K) Real
theorem BanditRLProof.ETC.ratArmLawRealKernel_apply Compiled

No declaration docstring is present; use the chapter context and exact statement below.

Used in these reading views: Bandit Book

3. Explore-Then-Commit

Canonical node identitydeclaration:BanditRLProof.ETC.ratArmLawRealKernel_apply

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem ratArmLawRealKernel_apply {K : Nat} (armLaw : Fin K -> Measure Rat) (arm : Fin K) : ratArmLawRealKernel armLaw arm = Measure.map (fun reward : Rat => ((reward : Rat) : Real)) (armLaw arm)
theorem BanditRLProof.ETC.isMarkovKernel_ratArmLawRealKernel Compiled

Probability arm laws give a Markov Real pushforward kernel.

Used in these reading views: Bandit Book

3. Explore-Then-Commit

Canonical node identitydeclaration:BanditRLProof.ETC.isMarkovKernel_ratArmLawRealKernel

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem isMarkovKernel_ratArmLawRealKernel {K : Nat} (armLaw : Fin K -> Measure Rat) (hprob : forall arm, IsProbabilityMeasure (armLaw arm)) : ProbabilityTheory.IsMarkovKernel (ratArmLawRealKernel armLaw)
theorem BanditRLProof.ETC.realKernelMean_ratArmLawRealKernel_eq_integral_cast Compiled

The pushforward kernel identity integral is the original casted mean.

Used in these reading views: Bandit Book

3. Explore-Then-Commit

Canonical node identitydeclaration:BanditRLProof.ETC.realKernelMean_ratArmLawRealKernel_eq_integral_cast

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem realKernelMean_ratArmLawRealKernel_eq_integral_cast {K : Nat} (armLaw : Fin K -> Measure Rat) (arm : Fin K) : realKernelMean (ratArmLawRealKernel armLaw) arm = integral (armLaw arm) (fun reward : Rat => ((reward : Rat) : Real))
theorem BanditRLProof.ETC.realKernelMean_ratArmLawRealKernel_eq_modelMean Compiled

Exact arm means identify the pushforward Real kernel mean with the model mean.

Used in these reading views: Bandit Book

3. Explore-Then-Commit

Canonical node identitydeclaration:BanditRLProof.ETC.realKernelMean_ratArmLawRealKernel_eq_modelMean

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem realKernelMean_ratArmLawRealKernel_eq_modelMean {K : Nat} (model : FiniteBanditModel K) (armLaw : Fin K -> Measure Rat) (hmean : forall arm, integral (armLaw arm) (fun reward : Rat => ((reward : Rat) : Real)) = ((model.mean arm : Rat) : Real)) (arm : Fin K) : realKernelMean (ratArmLawRealKernel armLaw) arm = ((model.mean arm : Rat) : Real)
theorem BanditRLProof.ETC.ciSup_modelMean_cast_eq_bestArm Compiled

The supremum of the cast model means is attained at the local best arm.

Used in these reading views: Bandit Book

3. Explore-Then-Commit

Canonical node identitydeclaration:BanditRLProof.ETC.ciSup_modelMean_cast_eq_bestArm

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem ciSup_modelMean_cast_eq_bestArm {K : Nat} (model : FiniteBanditModel K) : (⨆ arm : Fin K, ((model.mean arm : Rat) : Real)) = ((model.mean model.bestArm : Rat) : Real)
theorem BanditRLProof.ETC.realKernelGap_ratArmLawRealKernel_eq_modelGap Compiled

The pushforward Real kernel gap is exactly the cast local model gap.

Used in these reading views: Bandit Book

3. Explore-Then-Commit

Canonical node identitydeclaration:BanditRLProof.ETC.realKernelGap_ratArmLawRealKernel_eq_modelGap

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem realKernelGap_ratArmLawRealKernel_eq_modelGap {K : Nat} (model : FiniteBanditModel K) (armLaw : Fin K -> Measure Rat) (hmean : forall arm, integral (armLaw arm) (fun reward : Rat => ((reward : Rat) : Real)) = ((model.mean arm : Rat) : Real)) (arm : Fin K) : realKernelGap (ratArmLawRealKernel armLaw) arm = ((model.gap arm : Rat) : Real)
theorem BanditRLProof.ETC.integral_realKernelRegret_explorationArgmaxAction_le_exact_sum_of_armLaws Compiled

Canonical exact ETC expected regret against the Real pushforward arm kernel. This is the finite-arm assembly of the exact per-arm expected pull-count leaf: the best-arm summand vanishes, while each non-best summand uses the exact `exp (-m * gap^2 / (4 * sigma2))` count bound.

Used in these reading views: Bandit Book

3. Explore-Then-Commit

Canonical node identitydeclaration:BanditRLProof.ETC.integral_realKernelRegret_explorationArgmaxAction_le_exact_sum_of_armLaws

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem integral_realKernelRegret_explorationArgmaxAction_le_exact_sum_of_armLaws {K : Nat} {Context : Type} [MeasurableSpace Context] (spec : ETC.Spec K) (model : FiniteBanditModel K) (armLaw : Fin K -> Measure Rat) (hprob : forall arm, IsProbabilityMeasure (armLaw arm)) (sigma2 : NNReal) (hmean : forall arm, integral (armLaw arm) (fun reward : Rat => ((reward : Rat) : Real)) = ((model.mean arm : Rat) : Real)) (hsubG : forall arm, ProbabilityTheory.HasSubgaussianMGF (fun reward : Rat => ((reward : Rat) : Real) - ((model.mean arm : Rat) : Real)) sigma2 (armLaw arm)) (context : (n : Nat) -> ((j : Finset.Iic n) -> Rat) -> Context) (hcontext : forall n : Nat, Measurable (context n)) (hexplorationPulls_pos : 0 < spec.explorationPulls) (n : Nat) (hn : K * spec.explorationPulls <= n) : let defaultAction := ETC.exploreArm spec 0 let rewardKernel := RewardKernel.contextIndependentOfActionLaws (Context := Context) armLaw hprob let policy := fun t => ETC.explorationArgmaxHistoryPolicy spec model t let state := fun t history => ETC.explorationArgmaxHistoryState t history let stepKernel := RewardKernel.historyStepKernelFamily rewardKernel policy context state hcontext (fun t => ETC.measurable_explorationArgmaxHistoryState t) let trajMeasure := ProbabilityTheory.Kernel.trajMeasure (X := fun _ : Nat => Rat) (armLaw defaultAction) stepKernel integral trajMeasure (fun trajectory : RewardTrace Rat => realKernelRegret (ratArmLawRealKernel armLaw) (ETC.explorationArgmaxAction spec model trajectory) n) <= (Finset.univ : Finset (Fin K)).sum (fun arm => ((model.gap arm : Rat) : Real) * ((spec.explorationPulls : Real) + ((n - K * spec.explorationPulls : Nat) : Real) * Real.exp (-(spec.explorationPulls : Real) * ((model.gap arm : Rat) : Real) ^ 2 / (4 * (sigma2 : Real)))))