@@ -559,6 +559,132 @@ lemma probReal_sumRewards_le_sumRewards_le [Fintype α] (h : IsAlgEnvSeq A R alg
559559
560560section Subgaussian
561561
562+ /-! ### Sub-Gaussian concentration (δ-parameterized) -/
563+
564+ private lemma exp_neg_sq_div_eq_delta {σ2 : ℝ≥0 } (hσ2 : σ2 ≠ 0 )
565+ (k : ℕ) (hk : k ≠ 0 ) (δ : ℝ) (hδ : 0 < δ) (hδ1 : δ < 1 ) :
566+ ENNReal.ofReal (Real.exp (-(√(2 * k * ↑σ2 * Real.log (1 / δ)))^2 /
567+ (2 * k * ↑σ2 ))) = ENNReal.ofReal δ := by
568+ have hk_pos : (0 : ℝ) < k := Nat.cast_pos.mpr (Nat.pos_of_ne_zero hk)
569+ have hσ2_pos : (0 : ℝ) < ↑σ2 := NNReal.coe_pos.mpr (pos_iff_ne_zero.mpr hσ2 )
570+ have hlog : 0 < Real.log (1 / δ) :=
571+ Real.log_pos (by rw [one_div]; exact one_lt_inv₀ hδ |>.mpr hδ1 )
572+ rw [Real.sq_sqrt (by positivity)]
573+ simp only [neg_div, Real.exp_neg]
574+ rw [show 2 * (k : ℝ) * ↑σ2 * Real.log (1 / δ) / (2 * k * ↑σ2 ) =
575+ Real.log (1 / δ) from by field_simp [ne_of_gt hσ2_pos, ne_of_gt hk_pos]]
576+ rw [Real.exp_log (by positivity : (0 : ℝ) < 1 / δ), one_div, inv_inv]
577+
578+ omit [DecidableEq α] [StandardBorelSpace α] [Nonempty α] in
579+ /-- Claude: δ-parameterized one-sided concentration for the stream measure. Setting `δ = 1/(n+1)^c`
580+ recovers `todo` and `todo'` (case-split on `c = 0`) -/
581+ lemma streamMeasure_concentration_le_delta {σ2 : ℝ≥0 } (hσ2 : σ2 ≠ 0 )
582+ (hν : ∀ a, HasSubgaussianMGF (fun x ↦ x - (ν a)[id]) σ2 (ν a))
583+ (a : α) (k : ℕ) (hk : k ≠ 0 ) (δ : ℝ) (hδ : 0 < δ) (hδ1 : δ < 1 ) :
584+ streamMeasure ν {ω | (∑ m ∈ range k, ω m a) / k +
585+ √(2 * ↑σ2 * Real.log (1 / δ) / k) ≤ (ν a)[id]} ≤
586+ ENNReal.ofReal δ := by
587+ have hlog : 0 < Real.log (1 / δ) :=
588+ Real.log_pos (by rw [one_div]; exact one_lt_inv₀ hδ |>.mpr hδ1 )
589+ calc
590+ streamMeasure ν {ω | (∑ m ∈ range k, ω m a) / k +
591+ √(2 * ↑σ2 * Real.log (1 / δ) / k) ≤ (ν a)[id]}
592+ _ = streamMeasure ν
593+ {ω | (∑ s ∈ range k, (ω s a - (ν a)[id])) / k ≤
594+ -√(2 * ↑σ2 * Real.log (1 / δ) / k)} := by
595+ congr with ω
596+ field_simp
597+ rw [Finset.sum_sub_distrib]
598+ simp
599+ grind
600+ _ = streamMeasure ν
601+ {ω | (∑ s ∈ range k, (ω s a - (ν a)[id])) ≤
602+ -√(2 * k * ↑σ2 * Real.log (1 / δ))} := by
603+ congr with ω
604+ field_simp
605+ congr! 2
606+ rw [Real.sqrt_div (by positivity : 0 ≤ 2 * ↑σ2 * Real.log (1 / δ)),
607+ show ↑k * 2 * ↑σ2 * Real.log (1 / δ) = ↑k * (2 * ↑σ2 * Real.log (1 / δ)) from by ring,
608+ Real.sqrt_mul (by positivity : (0 : ℝ) ≤ ↑k), ← mul_div_assoc,
609+ mul_div_right_comm, Real.div_sqrt]
610+ _ ≤ ENNReal.ofReal (Real.exp (-(√(2 * k * ↑σ2 * Real.log (1 / δ)))^2 /
611+ (2 * k * ↑σ2 ))) := by
612+ rw [← ofReal_measureReal]
613+ gcongr
614+ refine HasSubgaussianMGF.measure_sum_range_le_le_of_iIndepFun (c := σ2 ) ?_ ?_
615+ (by positivity)
616+ · exact (iIndepFun_eval_streamMeasure'' ν a).comp
617+ (fun i ω ↦ ω - (ν a)[id]) (fun _ ↦ by fun_prop)
618+ · intro i _; exact (hν a).congr_identDistrib
619+ ((identDistrib_eval_eval_id_streamMeasure _ _ _).symm.sub_const _)
620+ _ = ENNReal.ofReal δ := exp_neg_sq_div_eq_delta hσ2 k hk δ hδ hδ1
621+
622+ omit [DecidableEq α] [StandardBorelSpace α] [Nonempty α] in
623+ lemma streamMeasure_concentration_ge_delta {σ2 : ℝ≥0 } (hσ2 : σ2 ≠ 0 )
624+ (hν : ∀ a, HasSubgaussianMGF (fun x ↦ x - (ν a)[id]) σ2 (ν a))
625+ (a : α) (k : ℕ) (hk : k ≠ 0 ) (δ : ℝ) (hδ : 0 < δ) (hδ1 : δ < 1 ) :
626+ streamMeasure ν {ω | (ν a)[id] ≤ (∑ m ∈ range k, ω m a) / k -
627+ √(2 * ↑σ2 * Real.log (1 / δ) / k)} ≤
628+ ENNReal.ofReal δ := by
629+ have hlog : 0 < Real.log (1 / δ) :=
630+ Real.log_pos (by rw [one_div]; exact one_lt_inv₀ hδ |>.mpr hδ1 )
631+ calc
632+ streamMeasure ν {ω | (ν a)[id] ≤ (∑ m ∈ range k, ω m a) / k -
633+ √(2 * ↑σ2 * Real.log (1 / δ) / k)}
634+ _ = streamMeasure ν
635+ {ω | √(2 * ↑σ2 * Real.log (1 / δ) / k) ≤
636+ (∑ s ∈ range k, (ω s a - (ν a)[id])) / k} := by
637+ congr with ω
638+ field_simp
639+ rw [Finset.sum_sub_distrib]
640+ simp
641+ grind
642+ _ = streamMeasure ν
643+ {ω | √(2 * k * ↑σ2 * Real.log (1 / δ)) ≤
644+ (∑ s ∈ range k, (ω s a - (ν a)[id]))} := by
645+ congr with ω
646+ field_simp
647+ congr! 1
648+ rw [Real.sqrt_div (by positivity : 0 ≤ 2 * ↑σ2 * Real.log (1 / δ)),
649+ show 2 * ↑σ2 * Real.log (1 / δ) * ↑k = ↑k * (2 * ↑σ2 * Real.log (1 / δ)) from by ring,
650+ Real.sqrt_mul (by positivity : (0 : ℝ) ≤ ↑k), ← mul_div_assoc,
651+ mul_div_right_comm, Real.div_sqrt]
652+ _ ≤ ENNReal.ofReal (Real.exp (-(√(2 * k * ↑σ2 * Real.log (1 / δ)))^2 /
653+ (2 * k * ↑σ2 ))) := by
654+ rw [← ofReal_measureReal]
655+ gcongr
656+ refine HasSubgaussianMGF.measure_sum_range_ge_le_of_iIndepFun (c := σ2 ) ?_ ?_
657+ (by positivity)
658+ · exact (iIndepFun_eval_streamMeasure'' ν a).comp (fun i ω ↦ ω - (ν a)[id])
659+ (fun _ ↦ by fun_prop)
660+ · intro i _; exact (hν a).congr_identDistrib
661+ ((identDistrib_eval_eval_id_streamMeasure _ _ _).symm.sub_const _)
662+ _ = ENNReal.ofReal δ := exp_neg_sq_div_eq_delta hσ2 k hk δ hδ hδ1
663+
664+ omit [DecidableEq α] [StandardBorelSpace α] [Nonempty α] in
665+ lemma streamMeasure_concentration_bound {σ2 : ℝ≥0 } (hσ2 : σ2 ≠ 0 )
666+ (hν : ∀ a, HasSubgaussianMGF (fun x ↦ x - (ν a)[id]) σ2 (ν a))
667+ (a : α) {δ : ℝ} (hδ : 0 < δ) (hδ1 : δ < 1 ) (m : ℕ) (hm : m ≠ 0 ) :
668+ streamMeasure ν {ω : ℕ → α → ℝ | ∑ i ∈ range m, ω i a ∈
669+ {x | x / m + √(2 * ↑σ2 * Real.log (1 / δ) / m) ≤ (ν a)[id]} ∪
670+ {x | (ν a)[id] ≤ x / m - √(2 * ↑σ2 * Real.log (1 / δ) / m)}} ≤
671+ ENNReal.ofReal (2 * δ) :=
672+ calc streamMeasure ν {ω : ℕ → α → ℝ | ∑ i ∈ range m, ω i a ∈
673+ {x | x / m + √(2 * ↑σ2 * Real.log (1 / δ) / m) ≤ (ν a)[id]} ∪
674+ {x | (ν a)[id] ≤ x / m - √(2 * ↑σ2 * Real.log (1 / δ) / m)}}
675+ ≤ streamMeasure ν {ω | (∑ i ∈ range m, ω i a) / m +
676+ √(2 * ↑σ2 * Real.log (1 / δ) / m) ≤ (ν a)[id]} +
677+ streamMeasure ν {ω | (ν a)[id] ≤ (∑ i ∈ range m, ω i a) / m -
678+ √(2 * ↑σ2 * Real.log (1 / δ) / m)} := by
679+ apply (measure_mono (fun ω hω ↦ ?_)).trans (measure_union_le _ _)
680+ simp only [Set.mem_setOf_eq, Set.mem_union] at hω ⊢; exact hω
681+ _ ≤ ENNReal.ofReal δ + ENNReal.ofReal δ := by
682+ gcongr
683+ · exact streamMeasure_concentration_le_delta hσ2 hν a m hm δ hδ hδ1
684+ · exact streamMeasure_concentration_ge_delta hσ2 hν a m hm δ hδ hδ1
685+ _ = ENNReal.ofReal (2 * δ) := by
686+ rw [← ENNReal.ofReal_add (by positivity) (by positivity)]; ring_nf
687+
562688omit [DecidableEq α] [StandardBorelSpace α] in
563689lemma probReal_sum_le_sum_streamMeasure [Fintype α] {c : ℝ≥0 }
564690 (hν : ∀ a, HasSubgaussianMGF (fun x ↦ x - (ν a)[id]) c (ν a)) (a : α) (m : ℕ) :
0 commit comments