Physlib Documentation

QuantumInfo.ForMathlib.LimSupInf

Several 'bespoke' facts about limsup and liminf on ENNReal / NNReal needed in SteinsLemma

theorem exists_strictMono_seq_le (y : NNReal) (f : NNRealENNReal) (hf : x > 0, Filter.liminf (f x) Filter.atTop y) :
∃ (n : ), StrictMono n ∀ (k : ), f (k + 1)⁻¹ (n k) y + ↑(k + 1)⁻¹
theorem exists_seq_bound (y : NNReal) (f : NNRealENNReal) (hf : x > 0, Filter.limsup (f x) Filter.atTop y) :
∃ (M : ), StrictMono M ∀ (k n : ), n M kf (k + 1)⁻¹ n y + (k + 1)⁻¹
theorem exists_liminf_zero_of_forall_liminf_le (y : NNReal) (f : NNRealENNReal) (hf : x > 0, Filter.liminf (f x) Filter.atTop y) :
∃ (g : NNReal), (∀ (x : ), g x > 0) Filter.Tendsto g Filter.atTop (nhds 0) Filter.liminf (fun (n : ) => f (g n) n) Filter.atTop y
theorem exists_liminf_zero_of_forall_liminf_le_with_UB (y : NNReal) (f : NNRealENNReal) {z : NNReal} (hz : 0 < z) (hf : x > 0, Filter.liminf (f x) Filter.atTop y) :
∃ (g : NNReal), (∀ (x : ), g x > 0) (∀ (x : ), g x < z) Filter.Tendsto g Filter.atTop (nhds 0) Filter.liminf (fun (n : ) => f (g n) n) Filter.atTop y
theorem exists_limsup_zero_of_forall_limsup_le (y : NNReal) (f : NNRealENNReal) (hf : x > 0, Filter.limsup (f x) Filter.atTop y) :
∃ (g : NNReal), (∀ (x : ), g x > 0) Filter.Tendsto g Filter.atTop (nhds 0) Filter.limsup (fun (n : ) => f (g n) n) Filter.atTop y
theorem tendsto_of_block_sequence {α : Type u_1} [TopologicalSpace α] {x : α} {T : } (hT : StrictMono T) {L : α} (hx : Filter.Tendsto x Filter.atTop (nhds L)) (g : α) (hg : ∀ (k n : ), n Set.Ico (T k) (T (k + 1))g n = x k) :
theorem exists_increasing_sequence_with_property (M : ) (P : Prop) (hP : ∀ (k L : ), nL, P k n) :
∃ (T : ), StrictMono T (∀ (k : ), T k M k) ∀ (k : ), nSet.Ico (T k) (T (k + 1)), P k n
theorem liminf_le_of_block_sequence_witnesses {α : Type u_1} (y : NNReal) (f : αENNReal) (T : ) (hT : StrictMono T) (x g : α) (hg : ∀ (k n : ), n Set.Ico (T k) (T (k + 1))g n = x k) (hwit : ∀ (k : ), nSet.Ico (T k) (T (k + 1)), f (x k) n y + ↑(k + 1)⁻¹) :
Filter.liminf (fun (n : ) => f (g n) n) Filter.atTop y
theorem limsup_le_of_block_sequence_bound {α : Type u_1} (y : NNReal) (f : αENNReal) (T : ) (hT : StrictMono T) (x g : α) (hg : ∀ (k n : ), n Set.Ico (T k) (T (k + 1))g n = x k) (hbound : ∀ (k n : ), n Set.Ico (T k) (T (k + 1))f (x k) n y + ↑(k + 1)⁻¹) :
Filter.limsup (fun (n : ) => f (g n) n) Filter.atTop y
theorem exists_liminf_zero_of_forall_liminf_limsup_le_with_UB (y₁ y₂ : NNReal) (f₁ f₂ : NNRealENNReal) {z : NNReal} (hz : 0 < z) (hf₁ : x > 0, Filter.liminf (f₁ x) Filter.atTop y₁) (hf₂ : x > 0, Filter.limsup (f₂ x) Filter.atTop y₂) :
∃ (g : NNReal), (∀ (x : ), g x > 0) (∀ (x : ), g x < z) Filter.Tendsto g Filter.atTop (nhds 0) Filter.liminf (fun (n : ) => f₁ (g n) n) Filter.atTop y₁ Filter.limsup (fun (n : ) => f₂ (g n) n) Filter.atTop y₂
theorem extracted_limsup_inequality (z : ENNReal) (hz : z ) (y x : ENNReal) (h_lem5 : ∀ (n : ), x n y n + z) :
Filter.limsup (fun (n : ) => x n / n) Filter.atTop Filter.limsup (fun (n : ) => y n / n) Filter.atTop
theorem Filter.tendsto_sub_atTop_iff_nat {α : Type u_1} {f : α} {l : Filter α} (k : ) :
Tendsto (fun (n : ) => f (n - k)) atTop l Tendsto f atTop l

Like Filter.tendsto_add_atTop_iff_nat, but with nat subtraction.

theorem ENNReal.tendsto_sub_const_nhds_zero_iff {α : Type u_1} {l : Filter α} {f : αENNReal} {a : ENNReal} :
Filter.Tendsto (fun (x : α) => f x - a) l (nhds 0) Filter.limsup f l a

Sort of dual to ENNReal.tendsto_const_sub_nhds_zero_iff. Takes a substantially different form though, since we don't actually have equality of the limits, or even the fact that the other one converges, which is why we need to use limsup.