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

Lean module · Tsallis-FTRL

BanditRLProof.TsallisConjugatePotentialStability

# Half-Tsallis conjugate-potential stability This module formalizes the deterministic potential quantity used in the paper-faithful refined Tsallis-INF stability route. The local learning-rate normalization is half the paper normalization, so the translated Lemma 19 coefficients are `eta` for the quadratic term and `2 * eta^2` for the positive cubic remainder. The constrained potential is represented by the negative regularized objective value at a certified simplex minimizer, plus `1 / eta`. That final constant matches the paper normalization under `eta_paper = 2 * eta_local`; it cancels in every fixed-eta step here but must be present for future cross-eta telescoping. The explicit coordinate increment is the unconstrained half-Tsallis conjugate upper bound. Their connection is proved below from interior stationarity and simplex normalization; no measure, kernel, or trajectory premise is involved.

Module map

Declarations
17
Placeholders
0

Imports

BanditRLProof.TsallisRefinedImportanceWeightedMoment

Imported by

BanditRLProof, BanditRLProof.TsallisConjugatePotentialFiniteHorizon, BanditRLProof.TsallisTimeVaryingPenalty

Declarations

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

def BanditRLProof.Tsallis.halfTsallisPotentialValue Compiled

The paper-normalized negative regularized-objective value. When `probability` is a certified minimizer and `eta > 0`, this is the constrained half-Tsallis potential under the local-to-paper learning-rate translation.

noncomputable def halfTsallisPotentialValue {Action : Type u} (arms : Finset Action) (eta : Real) (score probability : Action -> Real) : Real
def BanditRLProof.Tsallis.halfTsallisPotentialStability Compiled

The one-step candidate-potential expression before taking a sampling average. The low-level feasible-next bridge treats `next` only as a candidate point; the algorithm-facing theorems require both current and next minimizer certificates.

noncomputable def halfTsallisPotentialStability {Action : Type u} (arms : Finset Action) (eta : Real) (score probability estimate next : Action -> Real) : Real
def BanditRLProof.Tsallis.halfTsallisConjugateCoordinateIncrement Compiled

The coordinate increment obtained from the explicit unconstrained conjugate. The shift is `estimate action - baseline`.

noncomputable def halfTsallisConjugateCoordinateIncrement (eta probability shift : Real) : Real
def BanditRLProof.Tsallis.halfTsallisConjugatePotentialUpper Compiled

Finite sum of explicit conjugate coordinate increments.

noncomputable def halfTsallisConjugatePotentialUpper {Action : Type u} (arms : Finset Action) (eta : Real) (probability estimate : Action -> Real) (baseline : Real) : Real
theorem BanditRLProof.Tsallis.one_add_eta_mul_shift_mul_sqrt_pos Compiled

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

theorem one_add_eta_mul_shift_mul_sqrt_pos {eta probability shift : Real} (_heta : 0 < eta) (hprobability : 0 < probability) (hdomain : -1 <= 2 * eta * shift * Real.sqrt probability) : 0 < 1 + eta * shift * Real.sqrt probability
theorem BanditRLProof.Tsallis.halfTsallisConjugateCoordinateIncrement_eq Compiled

Exact rational form of the explicit conjugate coordinate increment.

theorem halfTsallisConjugateCoordinateIncrement_eq {eta probability shift : Real} (heta : 0 < eta) (hprobability : 0 < probability) (hdomain : -1 <= 2 * eta * shift * Real.sqrt probability) : halfTsallisConjugateCoordinateIncrement eta probability shift = eta * Real.sqrt probability * probability * shift ^ 2 / (1 + eta * shift * Real.sqrt probability)
theorem BanditRLProof.Tsallis.halfTsallisConjugateCoordinateIncrement_le Compiled

Scalar translated Lemma 19 bound. The positive cubic term is active only when the shifted estimate is negative.

theorem halfTsallisConjugateCoordinateIncrement_le {eta probability shift : Real} (heta : 0 < eta) (hprobability : 0 < probability) (hdomain : -1 <= 2 * eta * shift * Real.sqrt probability) : halfTsallisConjugateCoordinateIncrement eta probability shift <= eta * Real.sqrt probability * probability * shift ^ 2 + 2 * eta ^ 2 * probability ^ 2 * (max (-shift) 0) ^ 3
theorem BanditRLProof.Tsallis.halfTsallis_fenchelCoordinate_le Compiled

Coordinatewise Fenchel upper bound for a nonnegative competitor weight.

theorem halfTsallis_fenchelCoordinate_le {eta probability competitor shift : Real} (heta : 0 < eta) (hprobability : 0 < probability) (hcompetitor : 0 <= competitor) (hdomain : -1 <= 2 * eta * shift * Real.sqrt probability) : -competitor / (eta * Real.sqrt probability) - competitor * shift + 2 * Real.sqrt competitor / eta <= Real.sqrt probability / (eta * (1 + eta * shift * Real.sqrt probability))
theorem BanditRLProof.Tsallis.halfTsallisConjugatePotentialUpper_le_shiftedMoments Compiled

The explicit conjugate finite sum is bounded by shifted quadratic/cubic moments.

theorem halfTsallisConjugatePotentialUpper_le_shiftedMoments {Action : Type u} [DecidableEq Action] (arms : Finset Action) (eta : Real) (probability estimate : Action -> Real) (baseline : Real) (heta : 0 < eta) (hprobability : forall action, action ∈ arms -> 0 < probability action) (hdomain : forall action, action ∈ arms -> -1 <= 2 * eta * (estimate action - baseline) * Real.sqrt (probability action)) : halfTsallisConjugatePotentialUpper arms eta probability estimate baseline <= eta * arms.sum (fun action => Real.sqrt (probability action) * probability action * (estimate action - baseline) ^ 2) + 2 * eta ^ 2 * arms.sum (fun action => probability action ^ 2 * (max (baseline - estimate action) 0) ^ 3)
theorem BanditRLProof.Tsallis.importanceWeightedLoss_sub_selectedLoss_conjugate_domain Compiled

Ordinary importance-weighted estimates satisfy the translated conjugate domain.

theorem importanceWeightedLoss_sub_selectedLoss_conjugate_domain {Action : Type u} [DecidableEq Action] (arms : Finset Action) (eta : Real) (probability loss : Action -> Real) (heta : 0 < eta) (heta_le : eta <= 1 / 2) (hprobability : FTRL.finiteSimplex arms probability) (hprobabilityPos : forall action, action ∈ arms -> 0 < probability action) (hloss : forall action, action ∈ arms -> 0 <= loss action ∧ loss action <= 1) {chosen action : Action} (hchosen : chosen ∈ arms) (haction : action ∈ arms) : -1 <= 2 * eta * (Exp3.importanceWeightedLoss probability loss chosen action - loss chosen) * Real.sqrt (probability action)
theorem BanditRLProof.Tsallis.linearLoss_sub_linearLoss_eq_sum_sub_mul Compiled

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

theorem linearLoss_sub_linearLoss_eq_sum_sub_mul {Action : Type u} (arms : Finset Action) (p q score : Action -> Real) : FTRL.linearLoss arms p score - FTRL.linearLoss arms q score = arms.sum (fun action => (p action - q action) * score action)
theorem BanditRLProof.Tsallis.sum_sub_mul_sub_baseline_eq_sum_sub_mul Compiled

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

theorem sum_sub_mul_sub_baseline_eq_sum_sub_mul {Action : Type u} (arms : Finset Action) (p q value : Action -> Real) (baseline : Real) (hp : arms.sum p = 1) (hq : arms.sum q = 1) : arms.sum (fun action => (p action - q action) * (value action - baseline)) = arms.sum (fun action => (p action - q action) * value action)
theorem BanditRLProof.Tsallis.linearLoss_sub_linearLoss_score_eq_sum_div_sqrt_of_stationary Compiled

Stationarity removes the score and its common simplex multiplier.

theorem linearLoss_sub_linearLoss_score_eq_sum_div_sqrt_of_stationary {Action : Type u} [DecidableEq Action] (arms : Finset Action) (eta : Real) (score p q : Action -> Real) (multiplier : Real) (heta : 0 < eta) (hp : FTRL.finiteSimplex arms p) (hq : FTRL.finiteSimplex arms q) (hpPos : forall action, action ∈ arms -> 0 < p action) (hstationary : HalfTsallisInteriorStationary arms eta score p multiplier) : FTRL.linearLoss arms p score - FTRL.linearLoss arms q score = arms.sum (fun action => (p action - q action) / (eta * Real.sqrt (p action)))
theorem BanditRLProof.Tsallis.halfTsallisPotentialStability_le_conjugatePotentialUpper_of_feasible Compiled

The feasible-next candidate-potential expression is bounded by the explicit unconstrained conjugate sum. Only the current point needs stationarity. This is an algebraic bridge, not an actual constrained-potential theorem unless the caller separately certifies that `next` minimizes the updated objective.

theorem halfTsallisPotentialStability_le_conjugatePotentialUpper_of_feasible {Action : Type u} [DecidableEq Action] (arms : Finset Action) (eta : Real) (score probability estimate next : Action -> Real) (baseline multiplier : Real) (heta : 0 < eta) (hprobability : FTRL.finiteSimplex arms probability) (hnext : FTRL.finiteSimplex arms next) (hprobabilityPos : forall action, action ∈ arms -> 0 < probability action) (hstationary : HalfTsallisInteriorStationary arms eta score probability multiplier) (hdomain : forall action, action ∈ arms -> -1 <= 2 * eta * (estimate action - baseline) * Real.sqrt (probability action)) : halfTsallisPotentialStability arms eta score probability estimate next <= halfTsallisConjugatePotentialUpper arms eta probability estimate baseline
theorem BanditRLProof.Tsallis.halfTsallisPotentialStability_importanceWeightedLoss_le_shiftedMoments_of_minimizers Compiled

Paper-faithful one-step conjugate-potential stability for an ordinary importance-weighted sampled update.

theorem halfTsallisPotentialStability_importanceWeightedLoss_le_shiftedMoments_of_minimizers {Action : Type u} [DecidableEq Action] (arms : Finset Action) (eta : Real) (score probability loss next : Action -> Real) (chosen : Action) (hchosen : chosen ∈ arms) (heta : 0 < eta) (heta_le : eta <= 1 / 2) (hprobabilityMin : FTRL.IsRegularizedMinimizer (FTRL.finiteSimplex arms) arms eta (negEntropyRegularizer arms (1 / 2 : Real)) score probability) (hnextMin : FTRL.IsRegularizedMinimizer (FTRL.finiteSimplex arms) arms eta (negEntropyRegularizer arms (1 / 2 : Real)) (fun action => score action + Exp3.importanceWeightedLoss probability loss chosen action) next) (hloss : forall action, action ∈ arms -> 0 <= loss action ∧ loss action <= 1) : halfTsallisPotentialStability arms eta score probability (Exp3.importanceWeightedLoss probability loss chosen) next <= eta * shiftedHalfPowerImportanceWeightedMoment arms probability loss chosen + 2 * eta ^ 2 * shiftedPositiveCubicImportanceWeightedMoment arms probability loss chosen
theorem BanditRLProof.Tsallis.sum_prob_mul_halfTsallisPotentialStability_importanceWeightedLoss_le_refined_of_minimizers Compiled

Sampled-action averaged ordinary-IW conjugate-potential stability. This is the deterministic finite-action form of the refined coefficient used downstream by the self-bounding route.

theorem sum_prob_mul_halfTsallisPotentialStability_importanceWeightedLoss_le_refined_of_minimizers {Action : Type u} [DecidableEq Action] (arms : Finset Action) (eta : Real) (score probability loss : Action -> Real) (next : Action -> Action -> Real) (heta : 0 < eta) (heta_le : eta <= 1 / 2) (hprobabilityMin : FTRL.IsRegularizedMinimizer (FTRL.finiteSimplex arms) arms eta (negEntropyRegularizer arms (1 / 2 : Real)) score probability) (hnextMin : forall chosen, chosen ∈ arms -> FTRL.IsRegularizedMinimizer (FTRL.finiteSimplex arms) arms eta (negEntropyRegularizer arms (1 / 2 : Real)) (fun action => score action + Exp3.importanceWeightedLoss probability loss chosen action) (next chosen)) (hloss : forall action, action ∈ arms -> 0 <= loss action ∧ loss action <= 1) : arms.sum (fun chosen => probability chosen * halfTsallisPotentialStability arms eta score probability (Exp3.importanceWeightedLoss probability loss chosen) (next chosen)) <= eta * arms.sum (fun action => Real.sqrt (probability action) * (1 - probability action)) + 2 * eta ^ 2
theorem BanditRLProof.Tsallis.sum_halfTsallisMinimizer_mul_potentialStability_le_refined Compiled

Canonical-selector wrapper with all minimizer certificates discharged.

theorem sum_halfTsallisMinimizer_mul_potentialStability_le_refined {Action : Type u} [DecidableEq Action] (arms : Finset Action) (harms : arms.Nonempty) (eta : Real) (score loss : Action -> Real) (heta : 0 < eta) (heta_le : eta <= 1 / 2) (hloss : forall action, action ∈ arms -> 0 <= loss action ∧ loss action <= 1) : let probability := halfTsallisMinimizer arms harms eta score let next := fun chosen => halfTsallisUpdatedMinimizer arms harms eta score loss chosen arms.sum (fun chosen => probability chosen * halfTsallisPotentialStability arms eta score probability (Exp3.importanceWeightedLoss probability loss chosen) (next chosen)) <= eta * arms.sum (fun action => Real.sqrt (probability action) * (1 - probability action)) + 2 * eta ^ 2