Lean module · Frontier
BanditRLProof.Algorithms.StochasticGradientBanditCorollaryOne
This module closes the bounded Corollary-1 companion from Baudry, Johnson, Vary, Pike-Burke, and Rebeschini, *Does Stochastic Gradient really succeed for Bandits?* (NeurIPS 2025). It remains on the generated Algorithm-1 trajectory and uses a separate fixed learning rate sqrt (log T / T) for each source horizon T.
Module map
Imports
BanditRLProof.Algorithms.StochasticGradientBanditTwoArmTheoremOne
Imported by
Declarations
Open an item to read its exact compact statement and source link. Detailed teaching notes are linked when registered.
theorem
BanditRLProof.StochasticGradientBandit.twoArmActionGap_le_gap
Compiled
Every realized two-arm gap is at most `Delta` when `Delta` is nonnegative.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.twoArmActionGap_le_gapReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem twoArmActionGap_le_gap (Delta : Real) (hDelta : 0 <= Delta) (action : Fin 2) : twoArmActionGap Delta action <= Delta
theorem
BanditRLProof.StochasticGradientBandit.twoArmSampledPseudoRegret_le_gap_mul_horizon
Compiled
Pathwise trivial regret bound for the actions actually sampled by the generated process.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.twoArmSampledPseudoRegret_le_gap_mul_horizonReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem twoArmSampledPseudoRegret_le_gap_mul_horizon {Env : Type v} (Delta : Real) (hDelta : 0 <= Delta) (horizon : Nat) (sample : Env × ((k : Nat) -> Fin 2 × Real)) : twoArmSampledPseudoRegret Delta horizon sample <= Delta * (horizon : Real)
theorem
BanditRLProof.StochasticGradientBandit.measurable_twoArmSampledPseudoRegret
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.measurable_twoArmSampledPseudoRegretReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem measurable_twoArmSampledPseudoRegret {Env : Type v} [MeasurableSpace Env] (Delta : Real) (horizon : Nat) : Measurable (twoArmSampledPseudoRegret (Env := Env) Delta horizon)
theorem
BanditRLProof.StochasticGradientBandit.integrable_twoArmSampledPseudoRegret
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.integrable_twoArmSampledPseudoRegretReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem integrable_twoArmSampledPseudoRegret {Env : Type v} [MeasurableSpace Env] (mu : Measure (Env × ((k : Nat) -> Fin 2 × Real))) [IsFiniteMeasure mu] (Delta : Real) (horizon : Nat) : Integrable (twoArmSampledPseudoRegret (Env := Env) Delta horizon) mu
theorem
BanditRLProof.StochasticGradientBandit.integral_twoArmSampledPseudoRegret_le_gap_mul_horizon
Compiled
Integral form of the pathwise `Delta * T` bound. The measure is the actual generated trajectory measure in the Corollary-1 consumer below.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.integral_twoArmSampledPseudoRegret_le_gap_mul_horizonReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem integral_twoArmSampledPseudoRegret_le_gap_mul_horizon {Env : Type v} [MeasurableSpace Env] (mu : Measure (Env × ((k : Nat) -> Fin 2 × Real))) [IsProbabilityMeasure mu] (Delta : Real) (hDelta : 0 <= Delta) (horizon : Nat) : integral mu (twoArmSampledPseudoRegret (Env := Env) Delta horizon) <= Delta * (horizon : Real)
def
BanditRLProof.StochasticGradientBandit.corollaryOneEta
Compiled
The horizon-indexed fixed learning rate used in Corollary 1.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOneEtaReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
noncomputable def corollaryOneEta (horizon : Nat) : Real
theorem
BanditRLProof.StochasticGradientBandit.sourceTheoremOne_margin_of_two_mul_eta_sourceC_le
Compiled
The source small-learning-rate branch implies the strict Theorem-1 margin.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.sourceTheoremOne_margin_of_two_mul_eta_sourceC_leReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem sourceTheoremOne_margin_of_two_mul_eta_sourceC_le (eta Delta : Real) (heta : 0 < eta) (hDelta : 0 < Delta) (hsmall : 2 * eta * sourceC eta <= Delta) : eta * sourceC eta < Delta
theorem
BanditRLProof.StochasticGradientBandit.sourceTheoremOne_constant_le_inv_eta
Compiled
Under the Corollary-1 small-learning-rate branch, the constant term in Theorem 1 is at most `1 / eta`.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.sourceTheoremOne_constant_le_inv_etaReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem sourceTheoremOne_constant_le_inv_eta (eta Delta : Real) (heta : 0 < eta) (hDelta : 0 < Delta) (hsmall : 2 * eta * sourceC eta <= Delta) : Delta / (2 * eta * (Delta - eta * sourceC eta)) <= 1 / eta
theorem
BanditRLProof.StochasticGradientBandit.corollaryOneEta_pos
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOneEta_posReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem corollaryOneEta_pos (horizon : Nat) (hhorizon : 2 <= horizon) : 0 < corollaryOneEta horizon
theorem
BanditRLProof.StochasticGradientBandit.corollaryOneEta_sq
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOneEta_sqReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem corollaryOneEta_sq (horizon : Nat) (hhorizon : 2 <= horizon) : corollaryOneEta horizon ^ 2 = Real.log (horizon : Real) / (horizon : Real)
theorem
BanditRLProof.StochasticGradientBandit.corollaryOneEta_le_one
Compiled
The Corollary-1 learning rate stays in the range where `C_eta <= exp 2` is available.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOneEta_le_oneReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem corollaryOneEta_le_one (horizon : Nat) (hhorizon : 2 <= horizon) : corollaryOneEta horizon <= 1
def
BanditRLProof.StochasticGradientBandit.corollaryOneRate
Compiled
The square-root rate appearing in the explicit Corollary-1 endpoint.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOneRateReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
noncomputable def corollaryOneRate (horizon : Nat) : Real
theorem
BanditRLProof.StochasticGradientBandit.corollaryOneRate_nonneg
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOneRate_nonnegReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem corollaryOneRate_nonneg (horizon : Nat) : 0 <= corollaryOneRate horizon
theorem
BanditRLProof.StochasticGradientBandit.corollaryOneEta_mul_horizon_eq_rate
Compiled
The horizon-indexed learning rate times the horizon is exactly the square-root rate.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOneEta_mul_horizon_eq_rateReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem corollaryOneEta_mul_horizon_eq_rate (horizon : Nat) (hhorizon : 2 <= horizon) : corollaryOneEta horizon * (horizon : Real) = corollaryOneRate horizon
theorem
BanditRLProof.StochasticGradientBandit.corollaryOneEta_mul_rate_eq_log
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOneEta_mul_rate_eq_logReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem corollaryOneEta_mul_rate_eq_log (horizon : Nat) (hhorizon : 2 <= horizon) : corollaryOneEta horizon * corollaryOneRate horizon = Real.log (horizon : Real)
theorem
BanditRLProof.StochasticGradientBandit.corollaryOne_inv_eta_le_inv_log_two_mul_rate
Compiled
The inverse learning-rate term is an absolute-constant multiple of the square-root rate. We keep the exact constant `1 / log 2`, avoiding a hidden asymptotic threshold.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOne_inv_eta_le_inv_log_two_mul_rateReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem corollaryOne_inv_eta_le_inv_log_two_mul_rate (horizon : Nat) (hhorizon : 2 <= horizon) : 1 / corollaryOneEta horizon <= (1 / Real.log 2) * corollaryOneRate horizon
theorem
BanditRLProof.StochasticGradientBandit.corollaryOne_log_argument_le_horizon_pow_four
Compiled
For `T >= 2`, `0 < Delta < 1`, and the Corollary-1 learning rate, the argument of the Theorem-1 logarithm is at most `T^4`.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOne_log_argument_le_horizon_pow_fourReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem corollaryOne_log_argument_le_horizon_pow_four (horizon : Nat) (hhorizon : 2 <= horizon) (Delta : Real) (hDelta : 0 < Delta) (hDelta_lt_one : Delta < 1) : 1 + 4 * corollaryOneEta horizon * Delta * (horizon : Real) <= (horizon : Real) ^ 4
theorem
BanditRLProof.StochasticGradientBandit.corollaryOne_log_term_le_two_mul_rate
Compiled
The logarithmic term in the Theorem-1 branch is at most twice the square-root rate.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOne_log_term_le_two_mul_rateReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem corollaryOne_log_term_le_two_mul_rate (horizon : Nat) (hhorizon : 2 <= horizon) (Delta : Real) (hDelta : 0 < Delta) (hDelta_lt_one : Delta < 1) : Real.log (1 + 4 * corollaryOneEta horizon * Delta * (horizon : Real)) / (2 * corollaryOneEta horizon) <= 2 * corollaryOneRate horizon
theorem
BanditRLProof.StochasticGradientBandit.corollaryOne_gap_mul_horizon_le_exp_constant_mul_rate
Compiled
On the complementary branch, the pathwise `Delta * T` bound is still a square-root rate because failure of `2 * eta * C_eta <= Delta` forces the gap below the learning-rate scale.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOne_gap_mul_horizon_le_exp_constant_mul_rateReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem corollaryOne_gap_mul_horizon_le_exp_constant_mul_rate (horizon : Nat) (hhorizon : 2 <= horizon) (Delta : Real) (hlarge : ¬ 2 * corollaryOneEta horizon * sourceC (corollaryOneEta horizon) <= Delta) : Delta * (horizon : Real) <= (2 * Real.exp 2) * corollaryOneRate horizon
def
BanditRLProof.StochasticGradientBandit.corollaryOneAbsoluteConstant
Compiled
An explicit horizon-independent constant for the finite Corollary-1 endpoint.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOneAbsoluteConstantReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
noncomputable def corollaryOneAbsoluteConstant : Real
theorem
BanditRLProof.StochasticGradientBandit.corollaryOne_piecewise_bound
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.corollaryOne_piecewise_boundReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem corollaryOne_piecewise_bound (horizon : Nat) (hhorizon : 2 <= horizon) (Delta : Real) (hDelta : 0 < Delta) (hDelta_lt_one : Delta < 1) : (if 2 * corollaryOneEta horizon * sourceC (corollaryOneEta horizon) <= Delta then Real.log (1 + 4 * corollaryOneEta horizon * Delta * (horizon : Real)) / (2 * corollaryOneEta horizon) + 1 / corollaryOneEta horizon else Delta * (horizon : Real)) <= corollaryOneAbsoluteConstant * corollaryOneRate horizon
theorem
BanditRLProof.StochasticGradientBandit.twoArmFixedIIDDirac_corollaryOne_piecewise
Compiled
Exact finite two-branch version of source Corollary 1. A separate fixed rate is used for each source horizon `T = tailHorizon + 1`.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.twoArmFixedIIDDirac_corollaryOne_piecewiseReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem twoArmFixedIIDDirac_corollaryOne_piecewise (armLaw : Fin 2 -> Measure Real) (hprob : forall arm, IsProbabilityMeasure (armLaw arm)) (mean : Fin 2 -> Real) (hbound : forall arm, ∀ᵐ reward ∂armLaw arm, |reward| <= 1) (hmean : forall arm, integral (armLaw arm) id = mean arm) (Delta : Real) (hDelta : 0 < Delta) (hDelta_lt_one : Delta < 1) (hgap : mean 0 - mean 1 = Delta) (tailHorizon : Nat) (horizon_ge_two : 1 <= tailHorizon) : let eta := corollaryOneEta (tailHorizon + 1) integral (twoArmTrajectoryMeasure (Measure.dirac ()) eta (twoArmFixedIIDEnvironment armLaw hprob)) (twoArmSampledPseudoRegret (Env := Unit) Delta (tailHorizon + 1)) <= if 2 * eta * sourceC eta <= Delta then Real.log (1 + 4 * eta * Delta * ((tailHorizon + 1 : Nat) : Real)) / (2 * eta) + 1 / eta else Delta * ((tailHorizon + 1 : Nat) : Real)
theorem
BanditRLProof.StochasticGradientBandit.twoArmFixedIIDDirac_corollaryOne
Compiled
Source Corollary 1 on the generated two-arm fixed-IID trajectory, with an explicit absolute constant and no asymptotic notation. The learning rate is fixed within each horizon and may vary across the horizon-indexed family.
Used in these reading views: Bandit Book
10. Automation, resources, and open routes
Canonical node identity
declaration:BanditRLProof.StochasticGradientBandit.twoArmFixedIIDDirac_corollaryOneReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem twoArmFixedIIDDirac_corollaryOne (armLaw : Fin 2 -> Measure Real) (hprob : forall arm, IsProbabilityMeasure (armLaw arm)) (mean : Fin 2 -> Real) (hbound : forall arm, ∀ᵐ reward ∂armLaw arm, |reward| <= 1) (hmean : forall arm, integral (armLaw arm) id = mean arm) (Delta : Real) (hDelta : 0 < Delta) (hDelta_lt_one : Delta < 1) (hgap : mean 0 - mean 1 = Delta) (tailHorizon : Nat) (horizon_ge_two : 1 <= tailHorizon) : let eta := corollaryOneEta (tailHorizon + 1) integral (twoArmTrajectoryMeasure (Measure.dirac ()) eta (twoArmFixedIIDEnvironment armLaw hprob)) (twoArmSampledPseudoRegret (Env := Unit) Delta (tailHorizon + 1)) <= corollaryOneAbsoluteConstant * corollaryOneRate (tailHorizon + 1)