Lean module · Foundations
BanditRLProof.HeavyTailClipping
Reserved transfer: winsorized estimators under an L1 corruption budget. The budget is on the consumed prefix. No corruption-robust regret claim.
Module map
Imports
BanditRLProof.HeavyTailTruncation
Imported by
Declarations
Open an item to read its exact compact statement and source link. Detailed teaching notes are linked when registered.
def
BanditRLProof.HeavyTail.clip
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
Used in these reading views: Bandit Book
1. Finite bandits, traces, and regret
Canonical node identity
declaration:BanditRLProof.HeavyTail.clipReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
noncomputable def clip (B x : ℝ) : ℝ
theorem
BanditRLProof.HeavyTail.abs_clip_sub_clip_le
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
Used in these reading views: Bandit Book
1. Finite bandits, traces, and regret
Canonical node identity
declaration:BanditRLProof.HeavyTail.abs_clip_sub_clip_leReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem abs_clip_sub_clip_le (B x y : ℝ) : |clip B x - clip B y| ≤ |x - y|
theorem
BanditRLProof.HeavyTail.clip_corruption_le
Compiled
Unlike hard truncation, clipping is stable even when corruption crosses B.
Used in these reading views: Bandit Book
1. Finite bandits, traces, and regret
Canonical node identity
declaration:BanditRLProof.HeavyTail.clip_corruption_leReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem clip_corruption_le (B x c : ℝ) : |clip B (x + c) - clip B x| ≤ |c|
def
BanditRLProof.HeavyTail.prefixMean
Compiled
No declaration docstring is present; use the chapter context and exact statement below.
Used in these reading views: Bandit Book
1. Finite bandits, traces, and regret
Canonical node identity
declaration:BanditRLProof.HeavyTail.prefixMeanReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
noncomputable def prefixMean (X : ℕ → ℝ) (n : ℕ) : ℝ
theorem
BanditRLProof.HeavyTail.clipped_prefix_corruption_le
Compiled
The finite-prefix corruption producer allows index-dependent clipping.
Used in these reading views: Bandit Book
1. Finite bandits, traces, and regret
Canonical node identity
declaration:BanditRLProof.HeavyTail.clipped_prefix_corruption_leReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem clipped_prefix_corruption_le (X c B : ℕ → ℝ) (n : ℕ) (C : ℝ) (hC : (∑ s ∈ Finset.range n, |c s|) ≤ C) : |prefixMean (fun s => clip (B s) (X s + c s)) n - prefixMean (fun s => clip (B s) (X s)) n| ≤ C / n
theorem
BanditRLProof.HeavyTail.clipped_observed_prefix
Compiled
Actual adaptively consumed clipped observations retain the same prefix. The corruption stream can be arbitrary; this is a pathwise statement.
Used in these reading views: Bandit Book
1. Finite bandits, traces, and regret
Canonical node identity
declaration:BanditRLProof.HeavyTail.clipped_observed_prefixReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem clipped_observed_prefix {Ω : Type*} {K : ℕ} (action : Ω → ActionTrace (Fin K)) (stream corruption : Ω → UCB.ArmRewardStream K) (B : ℕ → Fin K → ℝ) (ω : Ω) (arm : Fin K) (t : ℕ) : sumRewards (action ω) (fun s => clip (B (pullCount (action ω) (action ω s) s) (action ω s)) (UCB.rewardFromArmStream action (fun ω j a => stream ω j a + corruption ω j a) ω s)) arm t = ∑ j ∈ Finset.range (pullCount (action ω) arm t), clip (B j arm) (stream ω j arm + corruption ω j arm)
theorem
BanditRLProof.HeavyTail.corrupted_clipped_estimator_error_le
Compiled
Combine the new corruption producer with the common error assembly. Bias and fluctuation are still supplied; no concentration is asserted here.
Used in these reading views: Bandit Book
1. Finite bandits, traces, and regret
Canonical node identity
declaration:BanditRLProof.HeavyTail.corrupted_clipped_estimator_error_leReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem corrupted_clipped_estimator_error_le (X c B : ℕ → ℝ) (n : ℕ) (C center mean bias fluctuation : ℝ) (hC : (∑ s ∈ Finset.range n, |c s|) ≤ C) (hb : |center - mean| ≤ bias) (hf : |prefixMean (fun s => clip (B s) (X s)) n - center| ≤ fluctuation) : |prefixMean (fun s => clip (B s) (X s + c s)) n - mean| ≤ bias + fluctuation + C / n
theorem
BanditRLProof.HeavyTail.actual_clipped_corruption_le
Compiled
Full pathwise transfer to the actually observed estimator. Both reward streams are compared along the SAME action trace; this does not compare two policies whose actions changed in response to the corruption.
Used in these reading views: Bandit Book
1. Finite bandits, traces, and regret
Canonical node identity
declaration:BanditRLProof.HeavyTail.actual_clipped_corruption_leReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem actual_clipped_corruption_le {Ω : Type*} {K : ℕ} (action : Ω → ActionTrace (Fin K)) (stream corruption : Ω → UCB.ArmRewardStream K) (B : ℕ → Fin K → ℝ) (ω : Ω) (arm : Fin K) (t : ℕ) (C : ℝ) (hC : (∑ j ∈ Finset.range (pullCount (action ω) arm t), |corruption ω j arm|) ≤ C) : |sumRewards (action ω) (fun s => clip (B (pullCount (action ω) (action ω s) s) (action ω s)) (UCB.rewardFromArmStream action (fun ω j a => stream ω j a + corruption ω j a) ω s)) arm t / pullCount (action ω) arm t - sumRewards (action ω) (fun s => clip (B (pullCount (action ω) (action ω s) s) (action ω s)) (UCB.rewardFromArmStream action stream ω s)) arm t / pullCount (action ω) arm t| ≤ C / pullCount (action ω) arm t
theorem
BanditRLProof.HeavyTail.truncate_not_unit_lipschitz
Compiled
A concrete discontinuity diagnostic: hard truncation cannot use the same unit-Lipschitz corruption producer.
Used in these reading views: Bandit Book
1. Finite bandits, traces, and regret
Canonical node identity
declaration:BanditRLProof.HeavyTail.truncate_not_unit_lipschitzReading membership is not a proof dependency. Exact assumptions remain in the Lean statement.
theorem truncate_not_unit_lipschitz : ¬ (∀ x y : ℝ, |truncate 1 x - truncate 1 y| ≤ |x - y|)