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

Lean module · Foundations

BanditRLProof.Algorithms.KLUCBGeneratedRegret

# Generated finite-arm KL-UCB This module defines one horizon-free KL-UCB policy on the canonical generated Rat action/reward trajectory. The confidence budget is calibrated from the accepted telescoping empirical-mean radius and an explicit common interior margin. The selected score is nevertheless the supremum of the genuine Bernoulli-KL confidence set; it is not the ordinary additive UCB score.

Module map

Declarations
47
Placeholders
0

Imports

BanditRLProof.Algorithms.KLUCBBernoulli, BanditRLProof.Algorithms.UCBFixedPolicyTelescopingAnytimeRegret

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.KLUCB.generatedBudgetAt Compiled

KL exploration budget on a realized generated prefix. The margin is a known regularity contract, while the empirical count and radius are computed from the actual action/reward trace.

def generatedBudgetAt {Omega : Type} {K : Nat} (action : Omega -> ActionTrace (Fin K)) (sigma2 : NNReal) (delta margin : Real) (omega : Omega) (t : Nat) (arm : Fin K) : Real
theorem BanditRLProof.KLUCB.generatedBudgetAt_nonneg Compiled

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

theorem generatedBudgetAt_nonneg {Omega : Type} {K : Nat} (action : Omega -> ActionTrace (Fin K)) (sigma2 : NNReal) (delta margin : Real) (hmargin0 : 0 < margin) (hmargin1 : margin < 1) (omega : Omega) (t : Nat) (arm : Fin K) : 0 <= generatedBudgetAt action sigma2 delta margin omega t arm
def BanditRLProof.KLUCB.generatedIndexAt Compiled

Genuine Bernoulli-KL index on one generated prefix.

def generatedIndexAt {Omega : Type} {K : Nat} (action : Omega -> ActionTrace (Fin K)) (reward : Omega -> RewardTrace Rat) (sigma2 : NNReal) (delta margin : Real) (omega : Omega) (t : Nat) (arm : Fin K) : Real
def BanditRLProof.KLUCB.historyIndex Compiled

KL score reconstructed from a finite generated pair history.

def historyIndex {K : Nat} (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (t : Nat) (history : History.FinitePairHistory (Fin K) Rat t) (arm : Fin K) : Real
theorem BanditRLProof.KLUCB.measurable_historyIndex Compiled

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

theorem measurable_historyIndex {K : Nat} (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (t : Nat) (arm : Fin K) : Measurable (fun history : History.FinitePairHistory (Fin K) Rat t => historyIndex sigma2 delta margin defaultAction t history arm)
def BanditRLProof.KLUCB.historyNextArm Compiled

Round-robin initialization followed by KL-index maximization.

def historyNextArm {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (t : Nat) (history : History.FinitePairHistory (Fin K) Rat t) : Fin K
theorem BanditRLProof.KLUCB.historyIndex_le_nextArm_of_K_le Compiled

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

theorem historyIndex_le_nextArm_of_K_le {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (t : Nat) (history : History.FinitePairHistory (Fin K) Rat t) (ht : K <= t) (arm : Fin K) : historyIndex sigma2 delta margin defaultAction t history arm <= historyIndex sigma2 delta margin defaultAction t history (historyNextArm hK sigma2 delta margin defaultAction t history)
def BanditRLProof.KLUCB.pairHistory Compiled

Pair-history reconstruction for the KL-UCB policy.

def pairHistory {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) : (n : Nat) -> History.FiniteRewardHistory Rat n -> History.FinitePairHistory (Fin K) Rat n | 0, rewardHistory => fun i => (defaultAction, rewardHistory i) | n + 1, rewardHistory => let previousRewardHistory : History.FiniteRewardHistory Rat n := fun i => rewardHistory ⟨i.1, Finset.mem_Iic.mpr ((Finset.mem_Iic.mp i.2).trans (Nat.le_succ n))⟩ let previousHistory := pairHistory hK sigma2 delta margin defaultAction n previousRewardHistory let nextAction := historyNextArm hK sigma2 delta margin defaultAction n previousHistory History.extendPairHistorySucc previousHistory (nextAction, rewardHistory ⟨n + 1, Finset.mem_Iic.mpr le_rfl⟩) def historyState {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (n : Nat) (rewardHistory : History.FiniteRewardHistory Rat n) : UCB.SelectedPolicySuccessorFiniteHistoryState K
def BanditRLProof.KLUCB.historyState Compiled

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

def historyState {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (n : Nat) (rewardHistory : History.FiniteRewardHistory Rat n) : UCB.SelectedPolicySuccessorFiniteHistoryState K
theorem BanditRLProof.KLUCB.measurable_historyState Compiled

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

theorem measurable_historyState {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (n : Nat) : Measurable (historyState hK sigma2 delta margin defaultAction n)
def BanditRLProof.KLUCB.historyPolicy Compiled

The measurable KL-UCB policy. Its declaration has no terminal horizon.

def historyPolicy {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (_t : Nat) : Policy.MeasurablePolicy (UCB.SelectedPolicySuccessorFiniteHistoryState K) (Fin K) where
def BanditRLProof.KLUCB.generatedAction Compiled

Canonical generated action trace of the KL-UCB policy.

def generatedAction {Omega : Type} {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) : Omega -> ActionTrace (Fin K)
theorem BanditRLProof.KLUCB.generatedAction_succ Compiled

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

theorem generatedAction_succ {Omega : Type} {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) (omega : Omega) (t : Nat) : generatedAction hK sigma2 delta margin defaultAction reward omega (t + 1) = historyNextArm hK sigma2 delta margin defaultAction t (pairHistory hK sigma2 delta margin defaultAction t (History.finiteRewardHistoryOfTrace (reward omega) t))
theorem BanditRLProof.KLUCB.pairHistory_eq_finitePairHistoryOfTrace Compiled

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

theorem pairHistory_eq_finitePairHistoryOfTrace {Omega : Type} {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) (omega : Omega) (n : Nat) : pairHistory hK sigma2 delta margin defaultAction n (History.finiteRewardHistoryOfTrace (reward omega) n) = History.finitePairHistoryOfTrace (generatedAction hK sigma2 delta margin defaultAction reward omega) (reward omega) n
theorem BanditRLProof.KLUCB.historyIndex_finitePairHistoryOfTrace Compiled

The finite-history score, count, mean, and budget are definitionally the ones on the same generated trajectory.

theorem historyIndex_finitePairHistoryOfTrace {Omega : Type} {K : Nat} (action : Omega -> ActionTrace (Fin K)) (reward : Omega -> RewardTrace Rat) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (omega : Omega) (t : Nat) (arm : Fin K) : historyIndex sigma2 delta margin defaultAction t (History.finitePairHistoryOfTrace (action omega) (reward omega) t) arm = generatedIndexAt action reward sigma2 delta margin omega t arm
theorem BanditRLProof.KLUCB.generatedIndexAt_le_selected_of_K_le Compiled

Selected KL index maximality on the actual generated action/reward trace.

theorem generatedIndexAt_le_selected_of_K_le {Omega : Type} {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) (omega : Omega) (t : Nat) (ht : K <= t) (arm : Fin K) : let action := generatedAction hK sigma2 delta margin defaultAction reward generatedIndexAt action reward sigma2 delta margin omega t arm <= generatedIndexAt action reward sigma2 delta margin omega t (action omega (t + 1))
theorem BanditRLProof.KLUCB.generatedAction_succ_eq_initializationArm_of_lt Compiled

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

theorem generatedAction_succ_eq_initializationArm_of_lt {Omega : Type} {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) (omega : Omega) (t : Nat) (ht : t < K) : generatedAction hK sigma2 delta margin defaultAction reward omega (t + 1) = UCB.initializationArm hK t
theorem BanditRLProof.KLUCB.successorArmPullCount_generatedAction_K_add_one_eq_one Compiled

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

theorem successorArmPullCount_generatedAction_K_add_one_eq_one {Omega : Type} {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) (omega : Omega) (arm : Fin K) : ConditionalExpectationReward.successorArmPullCount (generatedAction hK sigma2 delta margin defaultAction reward omega) arm (K + 1) = 1
theorem BanditRLProof.KLUCB.successorArmPullCount_generatedAction_pos_of_K_le Compiled

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

theorem successorArmPullCount_generatedAction_pos_of_K_le {Omega : Type} {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) (omega : Omega) (arm : Fin K) (t : Nat) (ht : K <= t) : 0 < ConditionalExpectationReward.successorArmPullCount (generatedAction hK sigma2 delta margin defaultAction reward omega) arm (t + 1)
theorem BanditRLProof.KLUCB.K_le_of_generatedAction_selected_and_count_pos Compiled

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

theorem K_le_of_generatedAction_selected_and_count_pos {Omega : Type} {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) (omega : Omega) (arm : Fin K) (t : Nat) (hselected : generatedAction hK sigma2 delta margin defaultAction reward omega (t + 1) = arm) (hcount : 0 < ConditionalExpectationReward.successorArmPullCount (generatedAction hK sigma2 delta margin defaultAction reward omega) arm (t + 1)) : K <= t
theorem BanditRLProof.KLUCB.armMean_mem_confidenceSet_of_abs_lt_radius Compiled

A bounded empirical-mean deviation on the actual prefix makes the true interior arm mean feasible for the KL confidence set used by the policy.

theorem armMean_mem_confidenceSet_of_abs_lt_radius {Omega : Type} {K : Nat} (action : Omega -> ActionTrace (Fin K)) (reward : Omega -> RewardTrace Rat) (sigma2 : NNReal) (delta margin : Real) (hmargin0 : 0 < margin) (hmarginHalf : margin <= 1 / 2) (armMean : Fin K -> Rat) (omega : Omega) (t : Nat) (arm : Fin K) (hemp : IsBernoulliParameter (UCB.selectedPolicySuccessorEmpiricalMeanAt action reward omega t arm)) (hmean : (armMean arm : Real) ∈ Set.Icc margin (1 - margin)) (hdev : |UCB.selectedPolicySuccessorEmpiricalMeanAt action reward omega t arm - (armMean arm : Real)| < UCB.selectedPolicySuccessorTelescopingRadiusAt action sigma2 delta omega t arm) : (armMean arm : Real) ∈ confidenceSet (UCB.selectedPolicySuccessorEmpiricalMeanAt action reward omega t arm) (ConditionalExpectationReward.successorArmPullCount (action omega) arm (t + 1)) (generatedBudgetAt action sigma2 delta margin omega t arm)
theorem BanditRLProof.KLUCB.armMean_le_generatedIndexAt_of_abs_lt_radius Compiled

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

theorem armMean_le_generatedIndexAt_of_abs_lt_radius {Omega : Type} {K : Nat} (action : Omega -> ActionTrace (Fin K)) (reward : Omega -> RewardTrace Rat) (sigma2 : NNReal) (delta margin : Real) (hmargin0 : 0 < margin) (hmarginHalf : margin <= 1 / 2) (armMean : Fin K -> Rat) (omega : Omega) (t : Nat) (arm : Fin K) (hemp : IsBernoulliParameter (UCB.selectedPolicySuccessorEmpiricalMeanAt action reward omega t arm)) (hmean : (armMean arm : Real) ∈ Set.Icc margin (1 - margin)) (hdev : |UCB.selectedPolicySuccessorEmpiricalMeanAt action reward omega t arm - (armMean arm : Real)| < UCB.selectedPolicySuccessorTelescopingRadiusAt action sigma2 delta omega t arm) : (armMean arm : Real) <= generatedIndexAt action reward sigma2 delta margin omega t arm
theorem BanditRLProof.KLUCB.margin_mul_gap_div_eight_le_radius_of_selected_of_not_badEvent Compiled

On the common generated all-time good event, selection of a positive-gap arm forces its realized KL calibration radius to remain large. This is the single-arm, single-round KL pull-threshold leaf.

theorem margin_mul_gap_div_eight_le_radius_of_selected_of_not_badEvent {Omega : Type} {K : Nat} (hK : 0 < K) (reward : Omega -> RewardTrace Rat) (armMean : Fin K -> Rat) (sigma2 : NNReal) (delta margin : Real) (hmargin0 : 0 < margin) (hmarginHalf : margin <= 1 / 2) (hmean : forall arm : Fin K, (armMean arm : Real) ∈ Set.Icc margin (1 - margin)) (defaultAction best : Fin K) (omega : Omega) (t : Nat) (ht : K <= t) (hemp : forall arm : Fin K, IsBernoulliParameter (UCB.selectedPolicySuccessorEmpiricalMeanAt (generatedAction hK sigma2 delta margin defaultAction reward) reward omega t arm)) (hbest : forall arm : Fin K, (armMean arm : Real) <= (armMean best : Real)) (hgap : 0 < UCB.meanGap (fun arm => (armMean arm : Real)) best (generatedAction hK sigma2 delta margin defaultAction reward omega (t + 1))) (hgood : omega ∉ ConditionalExpectationReward.successorArmEmpiricalMeanFintypeTelescopingAllTimeBadEvent (generatedAction hK sigma2 delta margin defaultAction reward) reward armMean sigma2 delta) : margin * UCB.meanGap (fun arm => (armMean arm : Real)) best (generatedAction hK sigma2 delta margin defaultAction reward omega (t + 1)) / 8 <= UCB.selectedPolicySuccessorTelescopingRadiusAt (generatedAction hK sigma2 delta margin defaultAction reward) sigma2 delta omega t (generatedAction hK sigma2 delta margin defaultAction reward omega (t + 1))
def BanditRLProof.KLUCB.pullThreshold Compiled

Explicit KL-UCB pull threshold, obtained by inverting the accepted telescoping radius at the effective gap `margin * gap / 4`.

def pullThreshold (K : Nat) (sigma2 : NNReal) (T : Nat) (delta margin gap : Real) : Nat
theorem BanditRLProof.KLUCB.pullCount_le_of_not_badEvent Compiled

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

theorem pullCount_le_of_not_badEvent {Omega : Type} {K : Nat} (hK : 0 < K) (reward : Omega -> RewardTrace Rat) (armMean : Fin K -> Rat) (sigma2 : NNReal) (delta margin : Real) (hdelta : 0 < delta) (hmargin0 : 0 < margin) (hmarginHalf : margin <= 1 / 2) (hmean : forall arm : Fin K, (armMean arm : Real) ∈ Set.Icc margin (1 - margin)) (defaultAction best chosen : Fin K) (omega : Omega) (T : Nat) (hbest : forall arm : Fin K, (armMean arm : Real) <= (armMean best : Real)) (hemp : forall t : Nat, forall arm : Fin K, IsBernoulliParameter (UCB.selectedPolicySuccessorEmpiricalMeanAt (generatedAction hK sigma2 delta margin defaultAction reward) reward omega t arm)) (hgap : 0 < UCB.meanGap (fun arm => (armMean arm : Real)) best chosen) (hgood : omega ∉ ConditionalExpectationReward.successorArmEmpiricalMeanFintypeTelescopingAllTimeBadEvent (generatedAction hK sigma2 delta margin defaultAction reward) reward armMean sigma2 delta) : ConditionalExpectationReward.successorArmPullCount (generatedAction hK sigma2 delta margin defaultAction reward omega) chosen (T + 1) <= pullThreshold K sigma2 T delta margin (UCB.meanGap (fun arm => (armMean arm : Real)) best chosen)
theorem BanditRLProof.KLUCB.actionRewardHistoryStepKernelFamily_allTimeConfidence Compiled

The accepted all-time telescoping confidence producer instantiated on the KL-UCB policy. The theorem explicitly transports the sampled pair action to the reward-reconstructed action used by `generatedIndexAt`.

theorem actionRewardHistoryStepKernelFamily_allTimeConfidence {Context : Type} {K : Nat} [MeasurableSpace Context] (hK : 0 < K) (mu0 : Measure (Prod (Fin K) Rat)) [IsProbabilityMeasure mu0] (rewardKernel : RewardKernel.MarkovRewardKernel (Prod Context (Fin K)) Rat) (context : (n : Nat) -> ((j : Finset.Iic n) -> Rat) -> Context) (mean : Context -> Fin K -> Rat) (varianceProxy : Context -> Fin K -> NNReal) (defaultAction : Fin K) (armMean : Fin K -> Rat) (sigma2 : NNReal) (delta margin : Real) (hcontext : forall n : Nat, Measurable (context n)) (hmean : Measurable (fun pair : Prod Context (Fin K) => mean pair.1 pair.2)) (law : RewardKernel.CenteredRewardKernelLaw rewardKernel mean varianceProxy) (hvariance : forall i : Nat, forall history : ((j : Finset.Iic i) -> Rat), varianceProxy (context i history) ((historyPolicy hK sigma2 delta margin defaultAction i).action (historyState hK sigma2 delta margin defaultAction i history)) <= sigma2) (harmMean : forall i : Nat, forall history : ((j : Finset.Iic i) -> Rat), forall arm : Fin K, mean (context i history) arm = armMean arm) (hsigma2 : 0 < (((sigma2 : NNReal) : Real))) (hdelta : 0 < delta) : let policy := historyPolicy hK sigma2 delta margin defaultAction let state := historyState hK sigma2 delta margin defaultAction let pairContext : (i : Nat) -> ((j : Finset.Iic i) -> Prod (Fin K) Rat) -> Context
def BanditRLProof.KLUCB.generatedKLAllTimeBadEvent Compiled

Arms-by-times KL-confidence failure event on the exact generated trace.

def generatedKLAllTimeBadEvent {Omega : Type} {K : Nat} (action : Omega -> ActionTrace (Fin K)) (reward : Omega -> RewardTrace Rat) (armMean : Fin K -> Rat) (sigma2 : NNReal) (delta margin : Real) : Set Omega
theorem BanditRLProof.KLUCB.generatedKLAllTimeBadEvent_subset_absBadEvent Compiled

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

theorem generatedKLAllTimeBadEvent_subset_absBadEvent {Omega : Type} {K : Nat} (action : Omega -> ActionTrace (Fin K)) (reward : Omega -> RewardTrace Rat) (armMean : Fin K -> Rat) (sigma2 : NNReal) (delta margin : Real) (hmargin0 : 0 < margin) (hmarginHalf : margin <= 1 / 2) (hmean : forall arm : Fin K, (armMean arm : Real) ∈ Set.Icc margin (1 - margin)) (hemp : forall omega t arm, IsBernoulliParameter (UCB.selectedPolicySuccessorEmpiricalMeanAt action reward omega t arm)) : generatedKLAllTimeBadEvent action reward armMean sigma2 delta margin ⊆ ConditionalExpectationReward.successorArmEmpiricalMeanFintypeTelescopingAllTimeBadEvent action reward armMean sigma2 delta
theorem BanditRLProof.KLUCB.measure_generatedKLAllTimeBadEvent_le Compiled

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

theorem measure_generatedKLAllTimeBadEvent_le {Omega : Type} [MeasurableSpace Omega] {K : Nat} (mu : Measure Omega) (action : Omega -> ActionTrace (Fin K)) (reward : Omega -> RewardTrace Rat) (armMean : Fin K -> Rat) (sigma2 : NNReal) (delta margin : Real) (hmargin0 : 0 < margin) (hmarginHalf : margin <= 1 / 2) (hmean : forall arm : Fin K, (armMean arm : Real) ∈ Set.Icc margin (1 - margin)) (hemp : ∀ᵐ omega ∂mu, forall t arm, IsBernoulliParameter (UCB.selectedPolicySuccessorEmpiricalMeanAt action reward omega t arm)) (hconfidence : mu (ConditionalExpectationReward.successorArmEmpiricalMeanFintypeTelescopingAllTimeBadEvent action reward armMean sigma2 delta) <= ENNReal.ofReal delta) : mu (generatedKLAllTimeBadEvent action reward armMean sigma2 delta margin) <= ENNReal.ofReal delta
theorem BanditRLProof.KLUCB.sumRewards_nonneg_of_mem_Icc_zero_one Compiled

Selected reward sums remain nonnegative under a pathwise `[0,1]` reward contract.

theorem sumRewards_nonneg_of_mem_Icc_zero_one {Action : Type} [DecidableEq Action] (action : ActionTrace Action) (reward : RewardTrace Real) (arm : Action) (n : Nat) (hraw : forall i, i < n -> reward i ∈ Set.Icc (0 : Real) 1) : 0 <= sumRewards action reward arm n
theorem BanditRLProof.KLUCB.sumRewards_le_pullCount_of_mem_Icc_zero_one Compiled

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

theorem sumRewards_le_pullCount_of_mem_Icc_zero_one {Action : Type} [DecidableEq Action] (action : ActionTrace Action) (reward : RewardTrace Real) (arm : Action) (n : Nat) (hraw : forall i, i < n -> reward i ∈ Set.Icc (0 : Real) 1) : sumRewards action reward arm n <= (pullCount action arm n : Real)
theorem BanditRLProof.KLUCB.successorArmEmpiricalMean_isBernoulliParameter_of_rewards_mem_Icc Compiled

Hence every positive-count empirical mean on the canonical successor trace is a Bernoulli parameter.

theorem successorArmEmpiricalMean_isBernoulliParameter_of_rewards_mem_Icc {Action : Type} [DecidableEq Action] (action : ActionTrace Action) (reward : RewardTrace Rat) (arm : Action) (n : Nat) (hcount : 0 < ConditionalExpectationReward.successorArmPullCount action arm n) (hraw : forall i : Nat, (((reward i : Rat) : Real)) ∈ Set.Icc (0 : Real) 1) : IsBernoulliParameter (ConditionalExpectationReward.successorArmEmpiricalMean action reward arm n)
theorem BanditRLProof.KLUCB.generatedEmpiricalMean_isBernoulliParameter_of_rewards_mem_Icc Compiled

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

theorem generatedEmpiricalMean_isBernoulliParameter_of_rewards_mem_Icc {Omega : Type} {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) (omega : Omega) (hraw : forall i : Nat, (((reward omega i : Rat) : Real)) ∈ Set.Icc (0 : Real) 1) (t : Nat) (ht : K <= t) (arm : Fin K) : IsBernoulliParameter (UCB.selectedPolicySuccessorEmpiricalMeanAt (generatedAction hK sigma2 delta margin defaultAction reward) reward omega t arm)
theorem BanditRLProof.KLUCB.successorArmEmpiricalMean_isBernoulliParameter_of_rewards_mem_Icc' Compiled

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

theorem successorArmEmpiricalMean_isBernoulliParameter_of_rewards_mem_Icc' {Action : Type} [DecidableEq Action] (action : ActionTrace Action) (reward : RewardTrace Rat) (arm : Action) (n : Nat) (hraw : forall i : Nat, (((reward i : Rat) : Real)) ∈ Set.Icc (0 : Real) 1) : IsBernoulliParameter (ConditionalExpectationReward.successorArmEmpiricalMean action reward arm n)
theorem BanditRLProof.KLUCB.generatedEmpiricalMean_isBernoulliParameter_of_rewards_mem_Icc' Compiled

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

theorem generatedEmpiricalMean_isBernoulliParameter_of_rewards_mem_Icc' {Omega : Type} {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) (omega : Omega) (hraw : forall i : Nat, (((reward omega i : Rat) : Real)) ∈ Set.Icc (0 : Real) 1) (t : Nat) (arm : Fin K) : IsBernoulliParameter (UCB.selectedPolicySuccessorEmpiricalMeanAt (generatedAction hK sigma2 delta margin defaultAction reward) reward omega t arm)
theorem BanditRLProof.KLUCB.measure_pullCount_gt_threshold_le_of_allTimeConfidence Compiled

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

theorem measure_pullCount_gt_threshold_le_of_allTimeConfidence {Omega : Type} [MeasurableSpace Omega] {K : Nat} (hK : 0 < K) (mu : Measure Omega) (reward : Omega -> RewardTrace Rat) (armMean : Fin K -> Rat) (sigma2 : NNReal) (delta margin : Real) (hdelta : 0 < delta) (hmargin0 : 0 < margin) (hmarginHalf : margin <= 1 / 2) (hmean : forall arm : Fin K, (armMean arm : Real) ∈ Set.Icc margin (1 - margin)) (hraw : ∀ᵐ omega ∂mu, forall i, (((reward omega i : Rat) : Real)) ∈ Set.Icc (0 : Real) 1) (defaultAction best chosen : Fin K) (T : Nat) (hbest : forall arm : Fin K, (armMean arm : Real) <= (armMean best : Real)) (hgap : 0 < UCB.meanGap (fun arm => (armMean arm : Real)) best chosen) (hconfidence : mu (ConditionalExpectationReward.successorArmEmpiricalMeanFintypeTelescopingAllTimeBadEvent (generatedAction hK sigma2 delta margin defaultAction reward) reward armMean sigma2 delta) <= ENNReal.ofReal delta) : mu {omega | pullThreshold K sigma2 T delta margin (UCB.meanGap (fun arm => (armMean arm : Real)) best chosen) < ConditionalExpectationReward.successorArmPullCount (generatedAction hK sigma2 delta margin defaultAction reward omega) chosen (T + 1)} <= ENNReal.ofReal delta
theorem BanditRLProof.KLUCB.lintegral_pullCount_le_of_allTimeConfidence Compiled

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

theorem lintegral_pullCount_le_of_allTimeConfidence {Omega : Type} [MeasurableSpace Omega] {K : Nat} (hK : 0 < K) (mu : Measure Omega) [IsProbabilityMeasure mu] (reward : Omega -> RewardTrace Rat) (hreward : forall t : Nat, Measurable (fun omega : Omega => reward omega t)) (armMean : Fin K -> Rat) (sigma2 : NNReal) (delta margin : Real) (hdelta : 0 < delta) (hmargin0 : 0 < margin) (hmarginHalf : margin <= 1 / 2) (hmean : forall arm : Fin K, (armMean arm : Real) ∈ Set.Icc margin (1 - margin)) (hraw : ∀ᵐ omega ∂mu, forall i, (((reward omega i : Rat) : Real)) ∈ Set.Icc (0 : Real) 1) (defaultAction best chosen : Fin K) (T : Nat) (hbest : forall arm : Fin K, (armMean arm : Real) <= (armMean best : Real)) (hgap : 0 < UCB.meanGap (fun arm => (armMean arm : Real)) best chosen) (hconfidence : mu (ConditionalExpectationReward.successorArmEmpiricalMeanFintypeTelescopingAllTimeBadEvent (generatedAction hK sigma2 delta margin defaultAction reward) reward armMean sigma2 delta) <= ENNReal.ofReal delta) : ∫⁻ omega, (ConditionalExpectationReward.successorArmPullCount (generatedAction hK sigma2 delta margin defaultAction reward omega) chosen (T + 1) : ENNReal) ∂mu <= (pullThreshold K sigma2 T delta margin (UCB.meanGap (fun arm => (armMean arm : Real)) best chosen) : ENNReal) + (T : ENNReal) * ENNReal.ofReal delta
def BanditRLProof.KLUCB.generatedRegretAction Compiled

Regret-time shift of the canonical generated KL-UCB action.

def generatedRegretAction {Omega : Type} {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) : Omega -> ActionTrace (Fin K)
theorem BanditRLProof.KLUCB.measurable_generatedRegretAction Compiled

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

theorem measurable_generatedRegretAction {Omega : Type} [MeasurableSpace Omega] {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) (hreward : forall t : Nat, Measurable (fun omega : Omega => reward omega t)) (t : Nat) : Measurable (fun omega => generatedRegretAction hK sigma2 delta margin defaultAction reward omega t)
theorem BanditRLProof.KLUCB.pullCount_generatedRegretAction_eq Compiled

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

theorem pullCount_generatedRegretAction_eq {Omega : Type} {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) (omega : Omega) (arm : Fin K) (T : Nat) : pullCount (generatedRegretAction hK sigma2 delta margin defaultAction reward omega) arm T = ConditionalExpectationReward.successorArmPullCount (generatedAction hK sigma2 delta margin defaultAction reward omega) arm (T + 1)
theorem BanditRLProof.KLUCB.lintegral_ofReal_pseudoRegret_generatedKLUCBBounded_le Compiled

Finite-time expected pseudo-regret of the actual generated KL-UCB policy. The `T * delta` failure-event term is explicit; this theorem makes no asymptotic-optimality or leading-constant claim.

theorem lintegral_ofReal_pseudoRegret_generatedKLUCBBounded_le {Omega : Type} [MeasurableSpace Omega] {K : Nat} (mu : Measure Omega) [IsProbabilityMeasure mu] (model : FiniteBanditModel K) (reward : Omega -> RewardTrace Rat) (hreward : forall t : Nat, Measurable (fun omega : Omega => reward omega t)) (sigma2 : NNReal) (delta margin : Real) (hdelta : 0 < delta) (hmargin0 : 0 < margin) (hmarginHalf : margin <= 1 / 2) (hmean : forall arm : Fin K, (model.mean arm : Real) ∈ Set.Icc margin (1 - margin)) (hraw : ∀ᵐ omega ∂mu, forall i, (((reward omega i : Rat) : Real)) ∈ Set.Icc (0 : Real) 1) (defaultAction : Fin K) (T : Nat) (hconfidence : mu (ConditionalExpectationReward.successorArmEmpiricalMeanFintypeTelescopingAllTimeBadEvent (generatedAction model.hK sigma2 delta margin defaultAction reward) reward model.mean sigma2 delta) <= ENNReal.ofReal delta) : ∫⁻ omega, ENNReal.ofReal (((pseudoRegret model (generatedRegretAction model.hK sigma2 delta margin defaultAction reward omega) T : Rat) : Real)) ∂mu <= (Finset.univ : Finset (Fin K)).sum (fun arm => ENNReal.ofReal (((model.gap arm : Rat) : Real)) * ((pullThreshold K sigma2 T delta margin (((model.gap arm : Rat) : Real)) : Nat) : ENNReal) + ENNReal.ofReal (((model.gap arm : Rat) : Real)) * ((T : ENNReal) * ENNReal.ofReal delta))
theorem BanditRLProof.KLUCB.allHorizonPullCount_of_not_badEvent Compiled

One good generated sample controls every finite horizon and positive-gap arm for the same KL-UCB policy.

theorem allHorizonPullCount_of_not_badEvent {Omega : Type} {K : Nat} (hK : 0 < K) (reward : Omega -> RewardTrace Rat) (armMean : Fin K -> Rat) (sigma2 : NNReal) (delta margin : Real) (hdelta : 0 < delta) (hmargin0 : 0 < margin) (hmarginHalf : margin <= 1 / 2) (hmean : forall arm : Fin K, (armMean arm : Real) ∈ Set.Icc margin (1 - margin)) (defaultAction best : Fin K) (omega : Omega) (hraw : forall i : Nat, (((reward omega i : Rat) : Real)) ∈ Set.Icc (0 : Real) 1) (hbest : forall arm : Fin K, (armMean arm : Real) <= (armMean best : Real)) (hgood : omega ∉ ConditionalExpectationReward.successorArmEmpiricalMeanFintypeTelescopingAllTimeBadEvent (generatedAction hK sigma2 delta margin defaultAction reward) reward armMean sigma2 delta) : forall T : Nat, forall chosen : Fin K, 0 < UCB.meanGap (fun arm => (armMean arm : Real)) best chosen -> ConditionalExpectationReward.successorArmPullCount (generatedAction hK sigma2 delta margin defaultAction reward omega) chosen (T + 1) <= pullThreshold K sigma2 T delta margin (UCB.meanGap (fun arm => (armMean arm : Real)) best chosen)
def BanditRLProof.KLUCB.actionRewardTrajMeasure Compiled

Canonical action/reward trajectory measure of the KL-UCB policy.

def actionRewardTrajMeasure {Context : Type} {K : Nat} [MeasurableSpace Context] (hK : 0 < K) (mu0 : Measure (Prod (Fin K) Rat)) (rewardKernel : RewardKernel.MarkovRewardKernel (Prod Context (Fin K)) Rat) (context : (n : Nat) -> ((j : Finset.Iic n) -> Rat) -> Context) (hcontext : forall n : Nat, Measurable (context n)) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) : Measure (Nat -> Prod (Fin K) Rat)
theorem BanditRLProof.KLUCB.measure_allTimeBadEvent_le_trajMeasure Compiled

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

theorem measure_allTimeBadEvent_le_trajMeasure {Context : Type} {K : Nat} [MeasurableSpace Context] (hK : 0 < K) (mu0 : Measure (Prod (Fin K) Rat)) [IsProbabilityMeasure mu0] (rewardKernel : RewardKernel.MarkovRewardKernel (Prod Context (Fin K)) Rat) (context : (n : Nat) -> ((j : Finset.Iic n) -> Rat) -> Context) (mean : Context -> Fin K -> Rat) (varianceProxy : Context -> Fin K -> NNReal) (defaultAction : Fin K) (armMean : Fin K -> Rat) (sigma2 : NNReal) (delta margin : Real) (hcontext : forall n : Nat, Measurable (context n)) (hmean : Measurable (fun pair : Prod Context (Fin K) => mean pair.1 pair.2)) (law : RewardKernel.CenteredRewardKernelLaw rewardKernel mean varianceProxy) (hvariance : forall i : Nat, forall history : ((j : Finset.Iic i) -> Rat), varianceProxy (context i history) ((historyPolicy hK sigma2 delta margin defaultAction i).action (historyState hK sigma2 delta margin defaultAction i history)) <= sigma2) (harmMean : forall i : Nat, forall history : ((j : Finset.Iic i) -> Rat), forall arm : Fin K, mean (context i history) arm = armMean arm) (hsigma2 : 0 < (((sigma2 : NNReal) : Real))) (hdelta : 0 < delta) : let mu := actionRewardTrajMeasure hK mu0 rewardKernel context hcontext sigma2 delta margin defaultAction let reward : (Nat -> Prod (Fin K) Rat) -> RewardTrace Rat := fun trajectory t => (trajectory t).2 let action := generatedAction hK sigma2 delta margin defaultAction reward mu (ConditionalExpectationReward.successorArmEmpiricalMeanFintypeTelescopingAllTimeBadEvent action reward armMean sigma2 delta) <= ENNReal.ofReal delta
theorem BanditRLProof.KLUCB.measure_generatedKLAllTimeBadEvent_le_trajMeasure Compiled

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

theorem measure_generatedKLAllTimeBadEvent_le_trajMeasure {Context : Type} {K : Nat} [MeasurableSpace Context] (hK : 0 < K) (mu0 : Measure (Prod (Fin K) Rat)) [IsProbabilityMeasure mu0] (rewardKernel : RewardKernel.MarkovRewardKernel (Prod Context (Fin K)) Rat) (context : (n : Nat) -> ((j : Finset.Iic n) -> Rat) -> Context) (mean : Context -> Fin K -> Rat) (varianceProxy : Context -> Fin K -> NNReal) (defaultAction : Fin K) (armMean : Fin K -> Rat) (sigma2 : NNReal) (delta margin : Real) (hmargin0 : 0 < margin) (hmarginHalf : margin <= 1 / 2) (harmMargin : forall arm : Fin K, (armMean arm : Real) ∈ Set.Icc margin (1 - margin)) (hcontext : forall n : Nat, Measurable (context n)) (hraw : ∀ᵐ trajectory ∂(actionRewardTrajMeasure hK mu0 rewardKernel context hcontext sigma2 delta margin defaultAction), forall i : Nat, ((((trajectory i).2 : Rat) : Real)) ∈ Set.Icc (0 : Real) 1) (hmean : Measurable (fun pair : Prod Context (Fin K) => mean pair.1 pair.2)) (law : RewardKernel.CenteredRewardKernelLaw rewardKernel mean varianceProxy) (hvariance : forall i : Nat, forall history : ((j : Finset.Iic i) -> Rat), varianceProxy (context i history) ((historyPolicy hK sigma2 delta margin defaultAction i).action (historyState hK sigma2 delta margin defaultAction i history)) <= sigma2) (harmMean : forall i : Nat, forall history : ((j : Finset.Iic i) -> Rat), forall arm : Fin K, mean (context i history) arm = armMean arm) (hsigma2 : 0 < (((sigma2 : NNReal) : Real))) (hdelta : 0 < delta) : let mu := actionRewardTrajMeasure hK mu0 rewardKernel context hcontext sigma2 delta margin defaultAction let reward : (Nat -> Prod (Fin K) Rat) -> RewardTrace Rat := fun trajectory t => (trajectory t).2 let action := generatedAction hK sigma2 delta margin defaultAction reward mu (generatedKLAllTimeBadEvent action reward armMean sigma2 delta margin) <= ENNReal.ofReal delta
theorem BanditRLProof.KLUCB.lintegral_ofReal_pseudoRegret_generatedKLUCBBounded_le_trajMeasure Compiled

Canonical generated-policy KL-UCB regret theorem on the very trajectory measure built from the same measurable KL policy and reward kernel.

theorem lintegral_ofReal_pseudoRegret_generatedKLUCBBounded_le_trajMeasure {Context : Type} {K : Nat} [MeasurableSpace Context] (model : FiniteBanditModel K) (mu0 : Measure (Prod (Fin K) Rat)) [IsProbabilityMeasure mu0] (rewardKernel : RewardKernel.MarkovRewardKernel (Prod Context (Fin K)) Rat) (context : (n : Nat) -> ((j : Finset.Iic n) -> Rat) -> Context) (mean : Context -> Fin K -> Rat) (varianceProxy : Context -> Fin K -> NNReal) (defaultAction : Fin K) (sigma2 : NNReal) (delta margin : Real) (T : Nat) (hdelta : 0 < delta) (hmargin0 : 0 < margin) (hmarginHalf : margin <= 1 / 2) (harmMargin : forall arm : Fin K, (model.mean arm : Real) ∈ Set.Icc margin (1 - margin)) (hcontext : forall n : Nat, Measurable (context n)) (hraw : ∀ᵐ trajectory ∂(actionRewardTrajMeasure model.hK mu0 rewardKernel context hcontext sigma2 delta margin defaultAction), forall i : Nat, ((((trajectory i).2 : Rat) : Real)) ∈ Set.Icc (0 : Real) 1) (hmean : Measurable (fun pair : Prod Context (Fin K) => mean pair.1 pair.2)) (law : RewardKernel.CenteredRewardKernelLaw rewardKernel mean varianceProxy) (hvariance : forall i : Nat, forall history : ((j : Finset.Iic i) -> Rat), varianceProxy (context i history) ((historyPolicy model.hK sigma2 delta margin defaultAction i).action (historyState model.hK sigma2 delta margin defaultAction i history)) <= sigma2) (harmMean : forall i : Nat, forall history : ((j : Finset.Iic i) -> Rat), forall arm : Fin K, mean (context i history) arm = model.mean arm) (hsigma2 : 0 < (((sigma2 : NNReal) : Real))) : let mu := actionRewardTrajMeasure model.hK mu0 rewardKernel context hcontext sigma2 delta margin defaultAction let reward : (Nat -> Prod (Fin K) Rat) -> RewardTrace Rat := fun trajectory t => (trajectory t).2 let action := generatedRegretAction model.hK sigma2 delta margin defaultAction reward ∫⁻ trajectory, ENNReal.ofReal (((pseudoRegret model (action trajectory) T : Rat) : Real)) ∂mu <= (Finset.univ : Finset (Fin K)).sum (fun arm => ENNReal.ofReal (((model.gap arm : Rat) : Real)) * ((pullThreshold K sigma2 T delta margin (((model.gap arm : Rat) : Real)) : Nat) : ENNReal) + ENNReal.ofReal (((model.gap arm : Rat) : Real)) * ((T : ENNReal) * ENNReal.ofReal delta))
theorem BanditRLProof.KLUCB.measurable_generatedAction Compiled

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

theorem measurable_generatedAction {Omega : Type} [MeasurableSpace Omega] {K : Nat} (hK : 0 < K) (sigma2 : NNReal) (delta margin : Real) (defaultAction : Fin K) (reward : Omega -> RewardTrace Rat) (hreward : forall t : Nat, Measurable (fun omega : Omega => reward omega t)) (t : Nat) : Measurable (fun omega => generatedAction hK sigma2 delta margin defaultAction reward omega t)