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
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