BanditRLlib
Lean gate passed before this site build; local proof declarations are shown as compiled.Lean-verified build · exact declarations linked.

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

Declarations
9
Placeholders
0

Imports

BanditRLProof.HeavyTailTruncation

Imported by

BanditRLProof, BanditRLProof.HeavyTailClippedMoments

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 identitydeclaration:BanditRLProof.HeavyTail.clip

Reading 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 identitydeclaration:BanditRLProof.HeavyTail.abs_clip_sub_clip_le

Reading 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 identitydeclaration:BanditRLProof.HeavyTail.clip_corruption_le

Reading 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 identitydeclaration:BanditRLProof.HeavyTail.prefixMean

Reading 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 identitydeclaration:BanditRLProof.HeavyTail.clipped_prefix_corruption_le

Reading 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 identitydeclaration:BanditRLProof.HeavyTail.clipped_observed_prefix

Reading 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 identitydeclaration:BanditRLProof.HeavyTail.corrupted_clipped_estimator_error_le

Reading 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 identitydeclaration:BanditRLProof.HeavyTail.actual_clipped_corruption_le

Reading 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 identitydeclaration:BanditRLProof.HeavyTail.truncate_not_unit_lipschitz

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