Stat.Concentration.Poisson
Concentration inequalities for Poisson counts and processes, including self-normalized forms.
ConditionalProduct 3 core · 9 supporting The two count tables have separate product laws. ★ poissonTable_pilot_cell_indicators_independent
Conditioning a finite product of pilot and evaluation Poisson counts
The two count tables have separate product laws. Their product has an outer pilot integral and an inner evaluation integral. For each fixed pilot table, evaluation coordinates retain their Poisson marginals and independence, including after measurable coordinatewise transformations selected by that pilot table.
Coordinate Poisson rates determine the joint law of a finite table of independent Poisson counts, given by the finite product of the coordinate laws.
Definition (Lean source)
A cell label and a flattened count table determine the four-count subtable for that cell, given by selecting its four coordinates.
Given evaluation-cell rates, a fixed pilot table, whole-cell pilot indicators, and evaluation-cell statistics that are measurable in the evaluation cell at that pilot table, the cell statistics, each set to zero when its pilot indicator fails and viewed as functions of the evaluation table, are mutually independent across cells under the evaluation-table Poisson law.
Formal statement
Proof (Lean source)
9 supporting declarations (lemmas, instances)
-
poissonTable_integral_prodtheorem — Independent pilot-table rates and evaluation-table rates give the pilot-then-evaluation integral identity for an integrable table statistic.hypothesesconclusion= ∫ p, ∫ e, f (p, e) ∂poissonTableLaw evalRate ∂poissonTableLaw pilotRateProof (Lean source)
theorem poissonTable_integral_prod {ι : Type*} [Fintype ι] (pilotRate evalRate : ι → ℝ≥0) (f : (ι → ℕ) × (ι → ℕ) → ℝ) (hf : Integrable f ((poissonTableLaw pilotRate).prod (poissonTableLaw evalRate))) : (∫ z, f z ∂(poissonTableLaw pilotRate).prod (poissonTableLaw evalRate)) = ∫ p, ∫ e, f (p, e) ∂poissonTableLaw evalRate ∂poissonTableLaw pilotRate := by exact integral_prod f hf -
poissonTable_eval_integrable_aetheorem — Independent pilot-table rates and evaluation-table rates ensure that an integrable joint statistic has integrable evaluation sections for almost every pilot table.hypothesesconclusion∀ᵐ p ∂poissonTableLaw pilotRate, Integrable (fun e => f (p, e)) (poissonTableLaw evalRate)Proof (Lean source)
theorem poissonTable_eval_integrable_ae {ι : Type*} [Fintype ι] (pilotRate evalRate : ι → ℝ≥0) (f : (ι → ℕ) × (ι → ℕ) → ℝ) (hf : Integrable f ((poissonTableLaw pilotRate).prod (poissonTableLaw evalRate))) : ∀ᵐ p ∂poissonTableLaw pilotRate, Integrable (fun e => f (p, e)) (poissonTableLaw evalRate) := by exact hf.prod_right_ae -
poissonTable_eval_coordinate_lawtheorem — Given evaluation-table rates and a coordinate, that evaluation coordinate retains its stated Poisson law.hypothesesconclusionProof (Lean source)
theorem poissonTable_eval_coordinate_law {ι : Type*} [Fintype ι] (evalRate : ι → ℝ≥0) (i : ι) : HasLaw (fun e : ι → ℕ => e i) (poissonMeasure (evalRate i)) (poissonTableLaw evalRate) := by refine ⟨(measurable_pi_apply i).aemeasurable, ?_⟩ exact infinitePi_map_eval (fun j => poissonMeasure (evalRate j)) i -
poissonTable_eval_independenttheorem — Given evaluation-table rates, the evaluation coordinates are mutually independent.hypothesesι :Type*Fintype ιevalRate :ι → ℝ≥0conclusioniIndepFun (fun i (e : ι → ℕ) => e i) (poissonTableLaw evalRate)Proof (Lean source)
theorem poissonTable_eval_independent {ι : Type*} [Fintype ι] (evalRate : ι → ℝ≥0) : iIndepFun (fun i (e : ι → ℕ) => e i) (poissonTableLaw evalRate) := by simpa only [poissonTableLaw] using (iIndepFun_infinitePi (P := fun i => poissonMeasure (evalRate i)) (X := fun _ n => n) (by fun_prop)) -
poissonTable_cellwise_independenttheorem — Given evaluation-table rates, a fixed pilot table, and cellwise maps measurable after fixing that table, the transformed evaluation coordinates are mutually independent.hypothesesconclusioniIndepFun (fun i (e : ι → ℕ) => φ i (p i) (e i)) (poissonTableLaw evalRate)Proof (Lean source)
theorem poissonTable_cellwise_independent {ι β : Type*} [Fintype ι] [MeasurableSpace β] (evalRate : ι → ℝ≥0) (p : ι → ℕ) (φ : ι → ℕ → ℕ → β) (hφ : ∀ i, Measurable (φ i (p i))) : iIndepFun (fun i (e : ι → ℕ) => φ i (p i) (e i)) (poissonTableLaw evalRate) := by simpa only [Function.comp_def] using (poissonTable_eval_independent evalRate).comp (fun i => φ i (p i)) hφ -
poissonTable_pilot_indicator_independenttheorem — Given evaluation-table rates, a fixed pilot table, pilot-selected Boolean indicators, and measurable evaluation statistics, the indicator-weighted statistics remain mutually independent.hypothesesι :Type*Fintype ιevalRate :ι → ℝ≥0p :ι → ℕgood :ι → ℕ → Boolφ :ι → ℕ → ℕ → ℝhφ :∀ i, Measurable (φ i (p i))conclusioniIndepFun (fun i (e : ι → ℕ) => if good i (p i) then φ i (p i) (e i) else 0) (poissonTableLaw evalRate)Proof (Lean source)
theorem poissonTable_pilot_indicator_independent {ι : Type*} [Fintype ι] (evalRate : ι → ℝ≥0) (p : ι → ℕ) (good : ι → ℕ → Bool) (φ : ι → ℕ → ℕ → ℝ) (hφ : ∀ i, Measurable (φ i (p i))) : iIndepFun (fun i (e : ι → ℕ) => if good i (p i) then φ i (p i) (e i) else 0) (poissonTableLaw evalRate) := by apply poissonTable_cellwise_independent evalRate p (fun i k w => if good i k then φ i k w else 0) intro i by_cases h : good i (p i) <;> simp [h, hφ i] -
poissonTable_cell_blocks_independenttheorem — Four-coordinate rates in each finite cell yield mutually independent four-count evaluation-cell tables.hypothesesconclusioniIndepFun (fun j (e : (J × Fin 4) → ℕ) => fun z => e (j, z)) (poissonTableLaw (fun iz : J × Fin 4 => rate iz.1 iz.2))Proof (Lean source)
-- Group the `J × Fin 4` product law by `J`. Prove the regrouping map sends -- `infinitePi` to `infinitePi` using `infinitePi_map_eval` on cylinder sets, -- then use `iIndepFun_iff_map_fun_eq_infinitePi_map`. An alternative is the -- finite-set criterion for independence of disjoint coordinate subfamilies. theorem poissonTable_cell_blocks_independent {J : Type*} [Fintype J] (rate : J → Fin 4 → ℝ≥0) : iIndepFun (fun j (e : (J × Fin 4) → ℕ) => fun z => e (j, z)) (poissonTableLaw (fun iz : J × Fin 4 => rate iz.1 iz.2)) := by unfold poissonTableLaw have : IsProbabilityMeasure (infinitePi (fun iz : J × Fin 4 => poissonMeasure (rate iz.1 iz.2))) := inferInstance rw [iIndepFun_iff_map_fun_eq_infinitePi_map (by fun_prop)] convert (Measure.infinitePi_map_curry (μ := fun j z => poissonMeasure (rate j z))) using 1 · rfl · congr 1 funext j exact Measure.map_infinitePi_infinitePi_of_inj (f := fun z : Fin 4 => (j, z)) (by intro a b h; exact (Prod.mk.inj h).2) -
poissonTable_eval_cell_lawtheorem — Given evaluation-cell rates and a cell, the evaluation cell retains its four-coordinate product Poisson law.hypothesesconclusionHasLaw (poissonTableCell j) (poissonTableLaw (evalRate j)) (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2))Proof (Lean source)
theorem poissonTable_eval_cell_law {J : Type*} [Fintype J] (evalRate : J → Fin 4 → ℝ≥0) (j : J) : HasLaw (poissonTableCell j) (poissonTableLaw (evalRate j)) (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2)) := by refine ⟨(measurable_pi_iff.mpr (fun z => measurable_pi_apply (j, z))).aemeasurable, ?_⟩ exact Measure.map_infinitePi_infinitePi_of_inj (f := fun z : Fin 4 => (j, z)) (by intro a b h; exact (Prod.mk.inj h).2) -
poissonTable_pilot_cell_maps_independenttheorem — Given evaluation-cell rates, a fixed pilot table, and whole-cell maps measurable after fixing each pilot cell, the transformed evaluation cells are mutually independent.hypothesesJ β :evalRate :J → Fin 4 → ℝ≥0p :(J × Fin 4) → ℕhφ :∀ j, Measurable (φ j (poissonTableCell j p))conclusioniIndepFun (fun j (e : (J × Fin 4) → ℕ) => φ j (poissonTableCell j p) (poissonTableCell j e)) (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2))Proof (Lean source)
theorem poissonTable_pilot_cell_maps_independent {J β : Type*} [Fintype J] [MeasurableSpace β] (evalRate : J → Fin 4 → ℝ≥0) (p : (J × Fin 4) → ℕ) (φ : J → (Fin 4 → ℕ) → (Fin 4 → ℕ) → β) (hφ : ∀ j, Measurable (φ j (poissonTableCell j p))) : iIndepFun (fun j (e : (J × Fin 4) → ℕ) => φ j (poissonTableCell j p) (poissonTableCell j e)) (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2)) := by exact (poissonTable_cell_blocks_independent evalRate).comp (fun j => φ j (poissonTableCell j p)) hφ
FactorialPolynomial 2 core · 7 supporting Exact first and mixed second moments of the normalized, centered falling-factorial lift. ★ poisson_factorialLift_mixed
Centered Poisson falling-factorial moments
Exact first and mixed second moments of the normalized, centered falling-factorial lift. The finite-coordinate product identities and an exponential second-moment envelope are built from the scalar identities. No research-specific pilot or cell model occurs here.
For a normalization m, a center z, a natural count N, and an order h, the normalized centered falling-factorial lift is the sum over t from 0 to h of the binomial coefficient h-choose-t times (−z)^(h−t) times the falling factorial N(N−1)⋯(N−t+1) divided by m^t; it is the expansion of (N/m − z)^h with each power N^t replaced by the falling factorial.
Definition (Lean source)
For a Poisson count with a given rate, a normalization m and a center z with m nonzero, and two orders h and t, the expected product of the order-h and order-t centered factorial lifts equals the sum over r from 0 to min(h, t) of h-choose-r times t-choose-r times r! times (rate/m²)^r times (rate/m − z)^(h+t−2r).
Formal statement
Proof (Lean source)
7 supporting declarations (lemmas, instances)
-
poisson_descFactorial_momenttheorem — The falling factorial of a Poisson count has mean equal to the corresponding power of its rate. A direct proof shifts the Poisson series by h and cancels factorials.hypothesesrate :h :ℕconclusion(∫ N : ℕ, (N.descFactorial h : ℝ) ∂poissonMeasure rate) = (rate : ℝ) ^ hProof (Lean source)
theorem poisson_descFactorial_moment (rate : NNReal) (h : ℕ) : (∫ N : ℕ, (N.descFactorial h : ℝ) ∂poissonMeasure rate) = (rate : ℝ) ^ h := by rw [integral_poissonMeasure] simp only [smul_eq_mul] let f : ℕ → ℝ := fun N => exp (-(rate : ℝ)) * (rate : ℝ) ^ N / (N.factorial : ℝ) * (N.descFactorial h : ℝ) have hshift : Summable (fun k => f (k + h)) := (summable_nat_add_iff h).mpr (summable_poisson_descFactorial rate h) have hprefix : ∑ k ∈ range h, f k = 0 := by apply Finset.sum_eq_zero intro k hk have hkh : k < h := Finset.mem_range.mp hk simp [f, Nat.descFactorial_eq_zero_iff_lt.mpr hkh] calc ∑' N, exp (-(rate : ℝ)) * (rate : ℝ) ^ N / ↑N.factorial * ↑(N.descFactorial h) = ∑' N, f N := by rfl _ = ∑ k ∈ range h, f k + ∑' k, f (k + h) := (hshift.sum_add_tsum_nat_add').symm _ = ∑' k, (((rate : ℝ) ^ h * exp (-(rate : ℝ))) * ((rate : ℝ) ^ k / (k.factorial : ℝ))) := by rw [hprefix, zero_add] congr 1 funext k exact poisson_descFactorial_shift rate h k _ = ((rate : ℝ) ^ h * exp (-(rate : ℝ))) * exp (rate : ℝ) := by rw [tsum_mul_left] simpa only [Real.exp_eq_exp_ℝ] using congrArg (fun z : ℝ => ((rate : ℝ) ^ h * exp (-(rate : ℝ))) * z) (NormedSpace.expSeries_div_hasSum_exp (rate : ℝ)).tsum_eq _ = (rate : ℝ) ^ h := by rw [mul_assoc, ← Real.exp_add] ring_nf simp -
descFactorial_multheorem — The product of two falling factorials expands by their overlap count. This identity is purely combinatorial and also supplies the Poisson mixed second moment after integration.hypothesesN h t :ℕProof (Lean source)
theorem descFactorial_mul (N h t : ℕ) : (N.descFactorial h : ℝ) * (N.descFactorial t : ℝ) = ∑ r ∈ range (min h t + 1), (h.choose r : ℝ) * (t.choose r : ℝ) * (Nat.factorial r : ℝ) * (N.descFactorial (h + t - r) : ℝ) := by have hp := congrArg (eval (N : ℤ)) (descPochhammer_mul_linearization h t) simp only [Polynomial.eval_mul, Polynomial.eval_finsetSum, Polynomial.eval_C, descPochhammer_eval_eq_descFactorial] at hp have hn : N.descFactorial h * N.descFactorial t = ∑ r ∈ range (min h t + 1), choose h r * choose t r * r.factorial * N.descFactorial (h + t - r) := by exact_mod_cast hp exact_mod_cast hn -
poisson_descFactorial_integrabletheorem — Every falling factorial of a Poisson count is integrable. This is the integrability prerequisite for passing finite falling-factorial expansions through the integral.hypothesesrate :h :ℕconclusionIntegrable (fun N : ℕ => (N.descFactorial h : ℝ)) (poissonMeasure rate)Proof (Lean source)
theorem poisson_descFactorial_integrable (rate : NNReal) (h : ℕ) : Integrable (fun N : ℕ => (N.descFactorial h : ℝ)) (poissonMeasure rate) := by rw [integrable_poissonMeasure_iff] convert summable_poisson_descFactorial rate h using 1 ext N rw [Real.norm_eq_abs, abs_of_nonneg (by positivity)] -
poisson_descFactorial_mixedtheorem — The mixed raw falling-factorial moment is the overlap sum of powers of the Poisson rate. It follows by integrating descFactorial_mul term by term.hypothesesrate :h t :ℕProof (Lean source)
theorem poisson_descFactorial_mixed (rate : NNReal) (h t : ℕ) : (∫ N : ℕ, (N.descFactorial h : ℝ) * (N.descFactorial t : ℝ) ∂poissonMeasure rate) = ∑ r ∈ range (min h t + 1), (h.choose r : ℝ) * (t.choose r : ℝ) * (Nat.factorial r : ℝ) * (rate : ℝ) ^ (h + t - r) := by calc (∫ N : ℕ, (N.descFactorial h : ℝ) * (N.descFactorial t : ℝ) ∂poissonMeasure rate) = ∫ N : ℕ, ∑ r ∈ range (min h t + 1), (h.choose r : ℝ) * (t.choose r : ℝ) * (Nat.factorial r : ℝ) * (N.descFactorial (h + t - r) : ℝ) ∂poissonMeasure rate := by congr 1 funext N exact descFactorial_mul N h t _ = ∑ r ∈ range (min h t + 1), (h.choose r : ℝ) * (t.choose r : ℝ) * (Nat.factorial r : ℝ) * (rate : ℝ) ^ (h + t - r) := by rw [integral_finsetSum] · apply Finset.sum_congr rfl intro r _ rw [integral_const_mul, poisson_descFactorial_moment] · intro r _ exact (poisson_descFactorial_integrable rate (h + t - r)).const_mul _ -
poisson_factorialLift_meantheorem — A normalized centered factorial lift under a Poisson law has expectation (rate/m-z)^h. This is the exact unbiasedness identity for one coordinate.hypothesesconclusion(∫ N : ℕ, factorialLift m z N h ∂poissonMeasure rate) = ((rate : ℝ) / m - z) ^ hProof (Lean source)
theorem poisson_factorialLift_mean (rate : NNReal) (m z : ℝ) (h : ℕ) : (∫ N : ℕ, factorialLift m z N h ∂poissonMeasure rate) = ((rate : ℝ) / m - z) ^ h := by calc (∫ N : ℕ, factorialLift m z N h ∂poissonMeasure rate) = ∫ N : ℕ, ∑ t ∈ range (h + 1), ((h.choose t : ℝ) * (-z) ^ (h - t) / m ^ t) * (N.descFactorial t : ℝ) ∂poissonMeasure rate := by congr 1 funext N simp only [factorialLift] apply Finset.sum_congr rfl intro t _ ring _ = ∑ t ∈ range (h + 1), ((h.choose t : ℝ) * (-z) ^ (h - t) / m ^ t) * (rate : ℝ) ^ t := by rw [integral_finsetSum] · apply Finset.sum_congr rfl intro t _ rw [integral_const_mul, poisson_descFactorial_moment] · intro t _ exact (poisson_descFactorial_integrable rate t).const_mul _ _ = ((rate : ℝ) / m - z) ^ h := by rw [sub_eq_add_neg, add_pow] apply Finset.sum_congr rfl intro t _ rw [div_pow] ring -
factorialLift_mixed_finite_identitytheorem — The two binomial shifts of a finite overlap polynomial regroup into overlap powers of x-z. This is the finite algebraic identity behind centered Poisson factorial mixed moments.hypothesesx v z :ℝh t :ℕProof (Lean source)
theorem factorialLift_mixed_finite_identity (x v z : ℝ) (h t : ℕ) : (∑ j ∈ range (h + 1), ∑ k ∈ range (t + 1), (h.choose j : ℝ) * (t.choose k : ℝ) * (-z) ^ (h - j + (t - k)) * (∑ r ∈ range (min j k + 1), (j.choose r : ℝ) * (k.choose r : ℝ) * (Nat.factorial r : ℝ) * v ^ r * x ^ (j + k - 2 * r))) = ∑ r ∈ range (min h t + 1), (h.choose r : ℝ) * (t.choose r : ℝ) * (Nat.factorial r : ℝ) * v ^ r * (x - z) ^ (h + t - 2 * r) := by let A : ℕ → ℕ → ℝ := fun r j => (h.choose j : ℝ) * (-z) ^ (h - j) * (j.choose r : ℝ) * x ^ (j - r) let B : ℕ → ℕ → ℝ := fun r k => (t.choose k : ℝ) * (-z) ^ (t - k) * (k.choose r : ℝ) * x ^ (k - r) have hfactor (j k r : ℕ) : (h.choose j : ℝ) * (t.choose k : ℝ) * (-z) ^ (h - j + (t - k)) * ((j.choose r : ℝ) * (k.choose r : ℝ) * (Nat.factorial r : ℝ) * v ^ r * x ^ (j + k - 2 * r)) = A r j * B r k * ((Nat.factorial r : ℝ) * v ^ r) := by by_cases hj : r ≤ j · by_cases hk : r ≤ k · have he : j + k - 2 * r = (j - r) + (k - r) := by omega rw [pow_add, he, pow_add] dsimp [A, B] ring · have hk' : k < r := by omega simp [B, Nat.choose_eq_zero_of_lt hk'] · have hj' : j < r := by omega simp [A, Nat.choose_eq_zero_of_lt hj'] have hextend (j k : ℕ) (hj : j ≤ h) (hk : k ≤ t) : (∑ r ∈ range (min j k + 1), (j.choose r : ℝ) * (k.choose r : ℝ) * (Nat.factorial r : ℝ) * v ^ r * x ^ (j + k - 2 * r)) = ∑ r ∈ range (min h t + 1), (j.choose r : ℝ) * (k.choose r : ℝ) * (Nat.factorial r : ℝ) * v ^ r * x ^ (j + k - 2 * r) := by apply Finset.sum_subset ?_ ?_ · intro r hr simp only [Finset.mem_range] at hr ⊢ have hm : min j k ≤ min h t := min_le_min hj hk omega · intro r hr hr' simp only [Finset.mem_range] at hr hr' have hlt : min j k < r := by omega rcases le_total j k with hle | hle · have : j < r := by simpa [Nat.min_eq_left hle] using hlt simp [Nat.choose_eq_zero_of_lt this] · have : k < r := by simpa [Nat.min_eq_right hle] using hlt simp [Nat.choose_eq_zero_of_lt this] calc (∑ j ∈ range (h + 1), ∑ k ∈ range (t + 1), (h.choose j : ℝ) * (t.choose k : ℝ) * (-z) ^ (h - j + (t - k)) * (∑ r ∈ range (min j k + 1), (j.choose r : ℝ) * (k.choose r : ℝ) * (Nat.factorial r : ℝ) * v ^ r * x ^ (j + k - 2 * r))) = ∑ j ∈ range (h + 1), ∑ k ∈ range (t + 1), ∑ r ∈ range (min h t + 1), A r j * B r k * ((Nat.factorial r : ℝ) * v ^ r) := by apply Finset.sum_congr rfl intro j hj apply Finset.sum_congr rfl intro k hk rw [hextend j k (by simpa using hj) (by simpa using hk)] rw [Finset.mul_sum] apply Finset.sum_congr rfl intro r hr exact hfactor j k r _ = ∑ r ∈ range (min h t + 1), ((∑ j ∈ range (h + 1), A r j) * (∑ k ∈ range (t + 1), B r k)) * ((Nat.factorial r : ℝ) * v ^ r) := by have hswap (j : ℕ) : (∑ k ∈ range (t + 1), ∑ r ∈ range (min h t + 1), A r j * B r k * ((Nat.factorial r : ℝ) * v ^ r)) = ∑ r ∈ range (min h t + 1), ∑ k ∈ range (t + 1), A r j * B r k * ((Nat.factorial r : ℝ) * v ^ r) := Finset.sum_comm simp_rw [hswap] rw [Finset.sum_comm] apply Finset.sum_congr rfl intro r hr calc (∑ j ∈ range (h + 1), ∑ k ∈ range (t + 1), A r j * B r k * ((Nat.factorial r : ℝ) * v ^ r)) = (∑ j ∈ range (h + 1), ∑ k ∈ range (t + 1), A r j * B r k) * ((Nat.factorial r : ℝ) * v ^ r) := by rw [Finset.sum_mul] apply Finset.sum_congr rfl intro j hj rw [Finset.sum_mul] _ = _ := by rw [Finset.sum_mul_sum] _ = ∑ r ∈ range (min h t + 1), (h.choose r : ℝ) * (t.choose r : ℝ) * (Nat.factorial r : ℝ) * v ^ r * (x - z) ^ (h + t - 2 * r) := by apply Finset.sum_congr rfl intro r hr have hrh : r ≤ h := by have := Finset.mem_range.mp hr; omega have hrt : r ≤ t := by have := Finset.mem_range.mp hr; omega rw [show (∑ j ∈ range (h + 1), A r j) = (h.choose r : ℝ) * (x - z) ^ (h - r) from factorialLift_shift_sum x z h r hrh] rw [show (∑ k ∈ range (t + 1), B r k) = (t.choose r : ℝ) * (x - z) ^ (t - r) from factorialLift_shift_sum x z t r hrt] have he : h + t - 2 * r = (h - r) + (t - r) := by omega rw [he, pow_add] ring -
poisson_factorialLift_mixed_expansiontheorem — The Poisson mixed moment of two centered factorial lifts expands as a finite double binomial sum of raw falling-factorial overlap moments. The factors x=rate/m and v=rate/m² separate centering from Poisson variance.hypothesesconclusion(∫ N : ℕ, factorialLift m z N h * factorialLift m z N t ∂poissonMeasure rate)Proof (Lean source)
theorem poisson_factorialLift_mixed_expansion (rate : NNReal) (m z : ℝ) (hm : m ≠ 0) (h t : ℕ) : (∫ N : ℕ, factorialLift m z N h * factorialLift m z N t ∂poissonMeasure rate) = ∑ j ∈ range (h + 1), ∑ k ∈ range (t + 1), (h.choose j : ℝ) * (t.choose k : ℝ) * (-z) ^ (h - j + (t - k)) * (∑ r ∈ range (min j k + 1), (j.choose r : ℝ) * (k.choose r : ℝ) * (Nat.factorial r : ℝ) * ((rate : ℝ) / m ^ 2) ^ r * ((rate : ℝ) / m) ^ (j + k - 2 * r)) := by have hraw (j k : ℕ) : Integrable (fun N : ℕ => (N.descFactorial j : ℝ) * (N.descFactorial k : ℝ)) (poissonMeasure rate) := by have h := integrable_finsetSum (range (min j k + 1)) (fun r _ => (poisson_descFactorial_integrable rate (j + k - r)).const_mul ((j.choose r : ℝ) * (k.choose r : ℝ) * (Nat.factorial r : ℝ))) have heq : (fun N : ℕ => (N.descFactorial j : ℝ) * (N.descFactorial k : ℝ)) = (fun N : ℕ => ∑ r ∈ range (min j k + 1), (j.choose r : ℝ) * (k.choose r : ℝ) * (Nat.factorial r : ℝ) * (N.descFactorial (j + k - r) : ℝ)) := by funext N exact descFactorial_mul N j k rw [heq] exact h have hnormalize (j k r : ℕ) (hr : r ≤ min j k) : (rate : ℝ) ^ (j + k - r) / (m ^ j * m ^ k) = ((rate : ℝ) / m ^ 2) ^ r * ((rate : ℝ) / m) ^ (j + k - 2 * r) := by have h₁ : j + k - r = r + (j + k - 2 * r) := by omega have h₂ : j + k = 2 * r + (j + k - 2 * r) := by omega calc (rate : ℝ) ^ (j + k - r) / (m ^ j * m ^ k) = (rate : ℝ) ^ r * (rate : ℝ) ^ (j + k - 2 * r) / (m ^ (2 * r) * m ^ (j + k - 2 * r)) := by have hden : m ^ j * m ^ k = m ^ (2 * r) * m ^ (j + k - 2 * r) := by calc m ^ j * m ^ k = m ^ (j + k) := (pow_add m j k).symm _ = m ^ (2 * r + (j + k - 2 * r)) := congrArg (fun n : ℕ => m ^ n) h₂ _ = _ := pow_add m (2 * r) (j + k - 2 * r) rw [h₁, pow_add, hden] _ = ((rate : ℝ) / m ^ 2) ^ r * ((rate : ℝ) / m) ^ (j + k - 2 * r) := by rw [div_pow, div_pow, pow_mul] field_simp [hm] calc (∫ N : ℕ, factorialLift m z N h * factorialLift m z N t ∂poissonMeasure rate) = ∫ N : ℕ, ∑ j ∈ range (h + 1), ∑ k ∈ range (t + 1), ((h.choose j : ℝ) * (t.choose k : ℝ) * (-z) ^ (h - j + (t - k)) / (m ^ j * m ^ k)) * ((N.descFactorial j : ℝ) * (N.descFactorial k : ℝ)) ∂poissonMeasure rate := by congr 1 funext N simp only [factorialLift, Finset.sum_mul_sum] apply Finset.sum_congr rfl intro j _ apply Finset.sum_congr rfl intro k _ rw [pow_add] ring _ = ∑ j ∈ range (h + 1), ∑ k ∈ range (t + 1), ((h.choose j : ℝ) * (t.choose k : ℝ) * (-z) ^ (h - j + (t - k)) / (m ^ j * m ^ k)) * (∑ r ∈ range (min j k + 1), (j.choose r : ℝ) * (k.choose r : ℝ) * (Nat.factorial r : ℝ) * (rate : ℝ) ^ (j + k - r)) := by rw [integral_finsetSum] · apply Finset.sum_congr rfl intro j _ rw [integral_finsetSum] · apply Finset.sum_congr rfl intro k _ rw [integral_const_mul, poisson_descFactorial_mixed] · intro k _ exact (hraw j k).const_mul _ · intro j _ exact integrable_finsetSum _ (fun k _ => (hraw j k).const_mul _) _ = ∑ j ∈ range (h + 1), ∑ k ∈ range (t + 1), (h.choose j : ℝ) * (t.choose k : ℝ) * (-z) ^ (h - j + (t - k)) * (∑ r ∈ range (min j k + 1), (j.choose r : ℝ) * (k.choose r : ℝ) * (Nat.factorial r : ℝ) * ((rate : ℝ) / m ^ 2) ^ r * ((rate : ℝ) / m) ^ (j + k - 2 * r)) := by apply Finset.sum_congr rfl intro j _ apply Finset.sum_congr rfl intro k _ rw [Finset.mul_sum, Finset.mul_sum] apply Finset.sum_congr rfl intro r hr have hr' : r ≤ min j k := by have := Finset.mem_range.mp hr omega calc _ = (h.choose j : ℝ) * (t.choose k : ℝ) * (-z) ^ (h - j + (t - k)) * ((j.choose r : ℝ) * (k.choose r : ℝ) * (Nat.factorial r : ℝ) * ((rate : ℝ) ^ (j + k - r) / (m ^ j * m ^ k))) := by ring _ = _ := by rw [hnormalize j k r hr']; ring
ConditionalCellComposition 1 core · 3 supporting A statistic may depend on all four pilot counts in a cell and all four evaluation counts in the same cell. ★ poissonTable_cell_nonneg_integral_le_of_sections
Joint pilot-cell and evaluation-cell statistics
A statistic may depend on all four pilot counts in a cell and all four evaluation counts in the same cell. This module derives joint measurability and product-law disintegration from measurable compositions and an integrable envelope.
Let a pilot table and an evaluation table of independent Poisson counts, four per cell, have pilot-cell rates and evaluation-cell rates, and be independent of each other. Fix a cell, a measurable yes/no indicator of that cell's four pilot counts, and a jointly measurable nonnegative statistic of that cell's four pilot counts and four evaluation counts, and consider the statistic set to zero when the indicator fails. If, for every fixed pilot table, this gated statistic is integrable over the evaluation table, and its evaluation-table expectation is at most a function of the pilot table that is integrable under the pilot law, then the joint expectation of the gated statistic over both tables is at most the pilot-table expectation of that bounding function.
Formal statement
Proof (Lean source)
3 supporting declarations (lemmas, instances)
-
poissonTable_cell_indicator_measurabletheorem — Given a cell, a measurable pilot-cell indicator, and a jointly measurable cell statistic, the indicator-weighted pilot/evaluation statistic is jointly measurable.hypothesesconclusionMeasurable (fun pe : ((J × Fin 4) → ℕ) × ((J × Fin 4) → ℕ) => if good (poissonTableCell j pe.1) then φ (poissonTableCell j pe.1) (poissonTableCell j pe.2) else 0)Proof (Lean source)
theorem poissonTable_cell_indicator_measurable {J : Type*} (j : J) (good : (Fin 4 → ℕ) → Bool) (hgood : Measurable good) (φ : (Fin 4 → ℕ) → (Fin 4 → ℕ) → ℝ) (hφ : Measurable (uncurry φ)) : Measurable (fun pe : ((J × Fin 4) → ℕ) × ((J × Fin 4) → ℕ) => if good (poissonTableCell j pe.1) then φ (poissonTableCell j pe.1) (poissonTableCell j pe.2) else 0) := by have hcell : Measurable (poissonTableCell j : ((J × Fin 4) → ℕ) → Fin 4 → ℕ) := measurable_pi_iff.mpr (fun z => measurable_pi_apply (j, z)) have hp : Measurable (fun pe : ((J × Fin 4) → ℕ) × ((J × Fin 4) → ℕ) => poissonTableCell j pe.1) := hcell.comp measurable_fst have he : Measurable (fun pe : ((J × Fin 4) → ℕ) × ((J × Fin 4) → ℕ) => poissonTableCell j pe.2) := hcell.comp measurable_snd exact Measurable.ite ((hgood.comp hp) (measurableSet_singleton true)) (hφ.comp (hp.prodMk he)) measurable_const -
poissonTable_cell_indicator_integral_prodtheorem — Given pilot-cell rates, evaluation-cell rates, a cell, a measurable pilot indicator, a jointly measurable statistic, and an integrable dominating envelope, the joint integral disintegrates into pilot and evaluation integrals.hypothesesJ :Type*Fintype JpilotRate evalRate :J → Fin 4 → ℝ≥0j :Jhgood :Measurable goodhφ :Measurable (uncurry φ)henvelope :Integrable envelope ((poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2)).prod (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2)))hdom :∀ pe,|(if good (poissonTableCell j pe.1) then φ (poissonTableCell j pe.1) (poissonTableCell j pe.2) else 0)|≤ envelope peconclusion(∫ pe, (if good (poissonTableCell j pe.1) then φ (poissonTableCell j pe.1) (poissonTableCell j pe.2) else 0) ∂(poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2)).prod (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2)))= ∫ p, ∫ e, (if good (poissonTableCell j p) then φ (poissonTableCell j p) (poissonTableCell j e) else 0) ∂poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2) ∂poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2)Proof (Lean source)
theorem poissonTable_cell_indicator_integral_prod {J : Type*} [Fintype J] (pilotRate evalRate : J → Fin 4 → ℝ≥0) (j : J) (good : (Fin 4 → ℕ) → Bool) (hgood : Measurable good) (φ : (Fin 4 → ℕ) → (Fin 4 → ℕ) → ℝ) (hφ : Measurable (uncurry φ)) (envelope : ((J × Fin 4) → ℕ) × ((J × Fin 4) → ℕ) → ℝ) (henvelope : Integrable envelope ((poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2)).prod (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2)))) (hdom : ∀ pe, |(if good (poissonTableCell j pe.1) then φ (poissonTableCell j pe.1) (poissonTableCell j pe.2) else 0)| ≤ envelope pe) : (∫ pe, (if good (poissonTableCell j pe.1) then φ (poissonTableCell j pe.1) (poissonTableCell j pe.2) else 0) ∂(poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2)).prod (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2))) = ∫ p, ∫ e, (if good (poissonTableCell j p) then φ (poissonTableCell j p) (poissonTableCell j e) else 0) ∂poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2) ∂poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2) := by have hm := poissonTable_cell_indicator_measurable j good hgood φ hφ have hi : Integrable (fun pe : ((J × Fin 4) → ℕ) × ((J × Fin 4) → ℕ) => if good (poissonTableCell j pe.1) then φ (poissonTableCell j pe.1) (poissonTableCell j pe.2) else 0) ((poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2)).prod (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2))) := henvelope.mono' hm.aestronglyMeasurable (Filter.Eventually.of_forall (fun pe => by simpa only [Real.norm_eq_abs] using hdom pe)) exact integral_prod _ hi -
poissonTable_cell_indicator_integral_letheorem — Given pilot-cell rates, evaluation-cell rates, a cell, a measurable pilot indicator, a jointly measurable statistic, an integrable dominating envelope, and an integrable pilot bound on every evaluation section, the joint integral is bounded by the pilot integral of that bound.hypothesesJ :Type*Fintype JpilotRate evalRate :J → Fin 4 → ℝ≥0j :Jhgood :Measurable goodhφ :Measurable (uncurry φ)henvelope :Integrable envelope ((poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2)).prod (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2)))hdom :∀ pe,|(if good (poissonTableCell j pe.1) then φ (poissonTableCell j pe.1) (poissonTableCell j pe.2) else 0)|≤ envelope pebound :((J × Fin 4) → ℕ) → ℝhbound :hsection :∀ p,(∫ e, (if good (poissonTableCell j p) then φ (poissonTableCell j p) (poissonTableCell j e) else 0) ∂poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2))≤ bound pconclusion(∫ pe, (if good (poissonTableCell j pe.1) then φ (poissonTableCell j pe.1) (poissonTableCell j pe.2) else 0) ∂(poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2)).prod (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2)))≤ ∫ p, bound p ∂poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2)Proof (Lean source)
theorem poissonTable_cell_indicator_integral_le {J : Type*} [Fintype J] (pilotRate evalRate : J → Fin 4 → ℝ≥0) (j : J) (good : (Fin 4 → ℕ) → Bool) (hgood : Measurable good) (φ : (Fin 4 → ℕ) → (Fin 4 → ℕ) → ℝ) (hφ : Measurable (uncurry φ)) (envelope : ((J × Fin 4) → ℕ) × ((J × Fin 4) → ℕ) → ℝ) (henvelope : Integrable envelope ((poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2)).prod (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2)))) (hdom : ∀ pe, |(if good (poissonTableCell j pe.1) then φ (poissonTableCell j pe.1) (poissonTableCell j pe.2) else 0)| ≤ envelope pe) (bound : ((J × Fin 4) → ℕ) → ℝ) (hbound : Integrable bound (poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2))) (hsection : ∀ p, (∫ e, (if good (poissonTableCell j p) then φ (poissonTableCell j p) (poissonTableCell j e) else 0) ∂poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2)) ≤ bound p) : (∫ pe, (if good (poissonTableCell j pe.1) then φ (poissonTableCell j pe.1) (poissonTableCell j pe.2) else 0) ∂(poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2)).prod (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2))) ≤ ∫ p, bound p ∂poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2) := by rw [poissonTable_cell_indicator_integral_prod pilotRate evalRate j good hgood φ hφ envelope henvelope hdom] have hi := (poissonTable_cell_indicator_measurable j good hgood φ hφ) have hprod : Integrable (fun pe : ((J × Fin 4) → ℕ) × ((J × Fin 4) → ℕ) => if good (poissonTableCell j pe.1) then φ (poissonTableCell j pe.1) (poissonTableCell j pe.2) else 0) ((poissonTableLaw (fun iz : J × Fin 4 => pilotRate iz.1 iz.2)).prod (poissonTableLaw (fun iz : J × Fin 4 => evalRate iz.1 iz.2))) := henvelope.mono' hi.aestronglyMeasurable (Filter.Eventually.of_forall (fun pe => by simpa only [Real.norm_eq_abs] using hdom pe)) exact integral_mono hprod.integral_prod_left hbound hsection
CountVectorSeries 1 core · 3 supporting Summation identities for vectors of independent Poisson counts. ★ tsum_le_one_of_le_poissonFactorial
Poisson count-vector series
Summation identities for vectors of independent Poisson counts. For finitely many coordinates with rates λᵢ ≥ 0, summing over all count vectors k = (kᵢ) in ℕ^I:
* poissonFactorial_countVector_tsum_one — Σ over k of Π over i of exp(−λᵢ) λᵢ^kᵢ / kᵢ! = 1,
i.e. the product Poisson probability mass function has total mass one;
* factorial_countVector_tsum_eq_exp_sum — Σ over k of Π over i of λᵢ^kᵢ / kᵢ! = exp(Σ λᵢ);
* summable_poissonFactorial_countVector — the first series is summable, zero rates included;
* tsum_le_one_of_le_poissonFactorial — a nonnegative function of the count vector that is
dominated pointwise by the product Poisson mass function has total sum at most one.
For nonnegative coordinate rates, a nonnegative count-vector envelope that is pointwise dominated by the product Poisson factorial likelihood has total mass at most one. The result is the unit upper bound on the dominated envelope’s total mass.
Formal statement
Proof (Lean source)
3 supporting declarations (lemmas, instances)
-
poissonFactorial_countVector_tsum_onelemma — For a finite coordinate type and nonnegative coordinate rates, the product Poisson factorial likelihood sums to one over all count vectors. The result is the unit-mass identity for the product Poisson factorial likelihood.hypothesesI :Type*Fintype Irate :I → ℝ≥0Proof (Lean source)
lemma poissonFactorial_countVector_tsum_one {I : Type*} [Fintype I] (rate : I → ℝ≥0) : (∑' counts : I → ℕ, ∏ i : I, exp (-(rate i : ℝ)) * (rate i : ℝ) ^ counts i / (counts i).factorial) = 1 := by let μ : Measure (I → ℕ) := Measure.pi (fun i => poissonMeasure (rate i)) letI : IsProbabilityMeasure μ := by unfold μ infer_instance rw [← probability_real_singleton_tsum μ] apply tsum_congr intro counts unfold μ rw [Measure.real_def, Measure.pi_singleton, ENNReal.toReal_prod] apply Finset.prod_congr rfl intro i _ rw [poissonMeasure_singleton, ENNReal.toReal_ofReal] positivity -
factorial_countVector_tsum_eq_exp_sumlemma — For a finite coordinate type and nonnegative coordinate rates, the sum of the factorial-normalized monomials over all count vectors equals the exponential of the total rate. The result is the exponential identity for the factorial-normalized count-vector series.hypothesesI :Type*Fintype Irate :I → ℝ≥0Proof (Lean source)
lemma factorial_countVector_tsum_eq_exp_sum {I : Type*} [Fintype I] (rate : I → ℝ≥0) : (∑' counts : I → ℕ, ∏ i : I, (rate i : ℝ) ^ counts i / (counts i).factorial) = exp (∑ i : I, (rate i : ℝ)) := by let S : ℝ := ∑ i : I, (rate i : ℝ) let raw : (I → ℕ) → ℝ := fun counts => ∏ i : I, (rate i : ℝ) ^ counts i / (counts i).factorial have hterm (counts : I → ℕ) : (∏ i : I, exp (-(rate i : ℝ)) * (rate i : ℝ) ^ counts i / (counts i).factorial) = exp (-S) * raw counts := by rw [show (∏ i : I, exp (-(rate i : ℝ)) * (rate i : ℝ) ^ counts i / (counts i).factorial) = ∏ i : I, exp (-(rate i : ℝ)) * ((rate i : ℝ) ^ counts i / (counts i).factorial) by apply Finset.prod_congr rfl intro i _ ring, Finset.prod_mul_distrib, ← Real.exp_sum] congr 1 unfold S rw [← Finset.sum_neg_distrib] have hnorm := poissonFactorial_countVector_tsum_one rate rw [show (∑' counts : I → ℕ, ∏ i : I, exp (-(rate i : ℝ)) * (rate i : ℝ) ^ counts i / (counts i).factorial) = ∑' counts, exp (-S) * raw counts by apply tsum_congr exact hterm, tsum_mul_left] at hnorm change (∑' counts, raw counts) = exp S calc (∑' counts, raw counts) = exp S * (exp (-S) * ∑' counts, raw counts) := by rw [← mul_assoc, ← Real.exp_add] simp _ = exp S := by rw [hnorm, mul_one] -
summable_poissonFactorial_countVectorlemma — For a finite coordinate type and nonnegative coordinate rates, the product Poisson factorial likelihood is summable over all count vectors, including zero-rate coordinates. The result is summability of the product Poisson factorial likelihood.hypothesesI :Type*Fintype Irate :I → ℝ≥0Proof (Lean source)
lemma summable_poissonFactorial_countVector {I : Type*} [Fintype I] (rate : I → ℝ≥0) : Summable fun counts : I → ℕ => ∏ i : I, exp (-(rate i : ℝ)) * (rate i : ℝ) ^ counts i / (counts i).factorial := by let μ : Measure (I → ℕ) := Measure.pi (fun i => poissonMeasure (rate i)) letI : IsProbabilityMeasure μ := by unfold μ infer_instance have hm : Summable fun counts : I → ℕ => μ.real {counts} := by apply ENNReal.summable_toReal have h := MeasureTheory.Measure.tsum_indicator_apply_singleton μ (Set.univ : Set (I → ℕ)) MeasurableSet.univ simpa using h.trans_ne (measure_ne_top μ Set.univ) apply hm.congr intro counts unfold μ rw [Measure.real_def, Measure.pi_singleton, ENNReal.toReal_prod] apply Finset.prod_congr rfl intro i _ rw [poissonMeasure_singleton, ENNReal.toReal_ofReal] positivity
FactorialEnvelope 1 core · 0 supporting This module turns the exact scalar mixed-moment formula for centered Poisson falling-factorial lifts into the exponential square-moment envelope used by finite factorial-polynomial processes. ★ poisson_factorialLift_square_envelope
Exponential envelopes for centered Poisson factorial lifts
This module turns the exact scalar mixed-moment formula for centered Poisson falling-factorial lifts into the exponential square-moment envelope used by finite factorial-polynomial processes.
Let N be a Poisson count with a given rate, and let a normalization m, a center z, a radius R, and a scale L be real numbers with m, R, and L positive. If the normalized mean rate/m is within R of z and rate/(m² R²) is at most 1/L, then for every order h, the expected square of the order-h centered factorial lift of N divided by R^h is at most exp(h²/L).
Formal statement
Proof (Lean source)
FactorialPath 3 core · 0 supporting This module instantiates finite clipped-polynomial path estimates with four independent Poisson counts and normalized centered falling-factorial monomials of bounded coordinatewise degree. ★ fourPoissonFactorialPath_sq_bound
Four-coordinate clipped Poisson factorial paths
This module instantiates finite clipped-polynomial path estimates with four independent Poisson counts and normalized centered falling-factorial monomials of bounded coordinatewise degree.
For four count coordinates, a normalization, centers and radii, a multi-degree with one degree per coordinate, and a sample point, the normalized four-coordinate factorial monomial is the product over the four coordinates of the centered factorial lift of that coordinate's count, of the coordinate's degree and with the coordinate's center, divided by the product of the radii raised to those degrees.
Definition (Lean source)
For coefficient paths indexed by multi-degrees, four count coordinates, a normalization, centers and radii, a clipping radius, and a sample point, the clipped four-coordinate factorial path is the continuous path whose value at each time is the sum over multi-degrees of the normalized factorial monomial at the sample point times the coefficient path at that time, clipped to the symmetric interval of the clipping radius.
Definition (Lean source)
Under a probability measure, take coefficient paths of bounded variation, indexed by multi-degrees with each degree at most D, four measurable, mutually independent counts with Poisson laws of given rates, a positive normalization m and a positive scale L, centers and positive radii such that each normalized mean rate/m is within its radius of its center and each rate/(m² R²) is at most 1/L, and a nonnegative clipping radius. Then the clipped four-coordinate factorial path is a measurable random path, has bounded variation at every sample point, is Bochner-integrable, has integrable squared supremum-plus-variation size, and its expected squared size is at most the sum of the squared sizes of the coefficient paths times (D + 1)^4 exp(4D²/L).
Formal statement
Proof (Lean source)
FactorialProduct 2 core · 2 supporting The scalar identities are transported to random counts with Poisson laws and multiplied across independent coordinates. ★ factorialProduct_four_square_envelope
Factorial products of finitely many independent Poisson coordinates
The scalar identities are transported to random counts with Poisson laws and multiplied across independent coordinates. The four-coordinate bound isolates the paper's exponential degree cost.
For a finite family of count coordinates, a normalization, a center and an order for each coordinate, and a sample point, the factorial product is the product over coordinates of the centered factorial lift of that coordinate's count at the sample point, with that coordinate's center and order.
Definition (Lean source)
Under a probability measure, take four count coordinates with given rates that have Poisson laws of those rates and are mutually independent, a positive normalization m and a positive scale L, and centers and positive radii such that each normalized mean rate/m is within its radius of its center and each rate/(m² R²) is at most 1/L. For orders, one per coordinate, each at most D, the expected square of the factorial product divided by the product of the radii raised to the orders is at most exp(4D²/L).
Formal statement
Proof (Lean source)
2 supporting declarations (lemmas, instances)
-
factorialProduct_meantheorem — Independent Poisson coordinates make the expectation of a finite factorial product equal the product of coordinatewise powers of the mean minus the center.hypothesesι Ω :μ :W :ι → Ω → ℕrate :ι → NNRealhWlaw :∀ i, HasLaw (W i) (poissonMeasure (rate i)) μhWindep :iIndepFun W μm :ℝz :ι → ℝh :ι → ℕconclusion(∫ ω, factorialProduct W m z h ω ∂μ) = ∏ i, ((rate i : ℝ) / m - z i) ^ (h i)Proof (Lean source)
theorem factorialProduct_mean {ι Ω : Type*} [Fintype ι] [MeasurableSpace Ω] (μ : Measure Ω) [IsProbabilityMeasure μ] (W : ι → Ω → ℕ) (rate : ι → NNReal) (hWlaw : ∀ i, HasLaw (W i) (poissonMeasure (rate i)) μ) (hWindep : iIndepFun W μ) (m : ℝ) (z : ι → ℝ) (h : ι → ℕ) : (∫ ω, factorialProduct W m z h ω ∂μ) = ∏ i, ((rate i : ℝ) / m - z i) ^ (h i) := by change (∫ ω, ∏ i, factorialLift m (z i) (W i ω) (h i) ∂μ) = _ rw [hWindep.integral_fun_prod_comp (fun i => (hWlaw i).aemeasurable) (fun i => (Measurable.of_discrete : Measurable (fun N : ℕ => factorialLift m (z i) N (h i))).aestronglyMeasurable)] apply Finset.prod_congr rfl intro i _ rw [show (∫ ω, factorialLift m (z i) (W i ω) (h i) ∂μ) = ∫ N : ℕ, factorialLift m (z i) N (h i) ∂poissonMeasure (rate i) from by simpa only [Function.comp_apply] using (hWlaw i).integral_comp (f := fun N : ℕ => factorialLift m (z i) N (h i)) Measurable.of_discrete.aestronglyMeasurable] exact poisson_factorialLift_mean (rate i) m (z i) (h i) -
factorialProduct_square_envelopetheorem — Under independent Poisson coordinates, the normalized product's square moment is at most the exponential of the sum of coordinatewise squared degrees divided by L.hypothesesι Ω :μ :W :ι → Ω → ℕrate :ι → NNRealhWlaw :∀ i, HasLaw (W i) (poissonMeasure (rate i)) μhWindep :iIndepFun W μm L :ℝhm :0 < mhL :0 < Lz R :ι → ℝhR :∀ i, 0 < R ihcenter :∀ i, |(rate i : ℝ) / m - z i| ≤ R ihvariance :∀ i, (rate i : ℝ) / (m ^ 2 * (R i) ^ 2) ≤ 1 / Lh :ι → ℕconclusion(∫ ω, (factorialProduct W m z h ω / ∏ i, (R i) ^ (h i)) ^ 2 ∂μ)≤ exp ((∑ i, ((h i : ℝ) ^ 2)) / L)Proof (Lean source)
theorem factorialProduct_square_envelope {ι Ω : Type*} [Fintype ι] [MeasurableSpace Ω] (μ : Measure Ω) [IsProbabilityMeasure μ] (W : ι → Ω → ℕ) (rate : ι → NNReal) (hWlaw : ∀ i, HasLaw (W i) (poissonMeasure (rate i)) μ) (hWindep : iIndepFun W μ) (m L : ℝ) (hm : 0 < m) (hL : 0 < L) (z R : ι → ℝ) (hR : ∀ i, 0 < R i) (hcenter : ∀ i, |(rate i : ℝ) / m - z i| ≤ R i) (hvariance : ∀ i, (rate i : ℝ) / (m ^ 2 * (R i) ^ 2) ≤ 1 / L) (h : ι → ℕ) : (∫ ω, (factorialProduct W m z h ω / ∏ i, (R i) ^ (h i)) ^ 2 ∂μ) ≤ exp ((∑ i, ((h i : ℝ) ^ 2)) / L) := by have hfactor : (∫ ω, (factorialProduct W m z h ω / ∏ i, R i ^ h i) ^ 2 ∂μ) = ∏ i, ∫ ω, (factorialLift m (z i) (W i ω) (h i) / R i ^ h i) ^ 2 ∂μ := by have hp (ω : Ω) : (factorialProduct W m z h ω / ∏ i, R i ^ h i) ^ 2 = ∏ i, (factorialLift m (z i) (W i ω) (h i) / R i ^ h i) ^ 2 := by simp only [factorialProduct, ← Finset.prod_div_distrib, ← Finset.prod_pow] simp_rw [hp] exact hWindep.integral_fun_prod_comp (fun i => (hWlaw i).aemeasurable) (fun i => (Measurable.of_discrete : Measurable (fun N : ℕ => (factorialLift m (z i) N (h i) / R i ^ h i) ^ 2)).aestronglyMeasurable) rw [hfactor] calc (∏ i, ∫ ω, (factorialLift m (z i) (W i ω) (h i) / R i ^ h i) ^ 2 ∂μ) ≤ ∏ i, exp ((h i : ℝ) ^ 2 / L) := by apply Finset.prod_le_prod · intro i _ exact integral_nonneg (fun ω => sq_nonneg _) · intro i _ rw [show (∫ ω, (factorialLift m (z i) (W i ω) (h i) / R i ^ h i) ^ 2 ∂μ) = ∫ N : ℕ, (factorialLift m (z i) N (h i) / R i ^ h i) ^ 2 ∂poissonMeasure (rate i) from by simpa only [Function.comp_apply] using (hWlaw i).integral_comp (f := fun N : ℕ => (factorialLift m (z i) N (h i) / R i ^ h i) ^ 2) Measurable.of_discrete.aestronglyMeasurable] exact poisson_factorialLift_square_envelope (rate i) m (z i) (R i) L hm (hR i) hL (hcenter i) (hvariance i) (h i) _ = exp ((∑ i, (h i : ℝ) ^ 2) / L) := by rw [← Real.exp_sum] congr 1 rw [Finset.sum_div]
RawMoments 1 core · 6 supporting Exact formula and a simple bound for the raw moments of a Poisson variable N with rate λ ≥ 0. ★ poisson_power_moment_le
Raw moments of Poisson counts
Exact formula and a simple bound for the raw moments of a Poisson variable N with rate λ ≥ 0. Writing an ordinary power as a combination of falling factorials with Stirling numbers of the second kind S(r, v), and using E[N(N−1)⋯(N−v+1)] = λ^v, gives E[N^r] = Σ over v ≤ r of S(r, v) λ^v (the Touchard polynomial), and hence E[N^r] ≤ (λ + r)^r.
Main results
* count_power_factorial_expansion, count_power_factorial_expansion_real —
k^r = Σ over v ≤ r of S(r, v) · k(k−1)⋯(k−v+1).
* stirlingSecond_le_choose_mul_pow — S(r, v) ≤ C(r, v) · R^(r−v) for v ≤ r ≤ R.
* poisson_power_integrable — every power of a Poisson count is integrable.
* poisson_power_moment_eq — E[N^r] = Σ over v ≤ r of S(r, v) λ^v.
* poisson_power_moment_le — E[N^r] ≤ (λ + r)^r.
For a Poisson rate and natural power, the raw moment is bounded by the sum of the rate and the order raised to that order. The result is the rate-plus-order upper bound on the raw Poisson moment.
Formal statement
Proof (Lean source)
6 supporting declarations (lemmas, instances)
-
count_mul_descFactoriallemma — For a count and factorial order, multiplying a descending factorial by the count raises its order plus the stated lower-order correction, including when the factorial vanishes. The result is the count-times-descending-factorial recurrence.hypothesesk v :ℕconclusionk * k.descFactorial v = k.descFactorial (v + 1) + v * k.descFactorial vProof (Lean source)
lemma count_mul_descFactorial (k v : ℕ) : k * k.descFactorial v = k.descFactorial (v + 1) + v * k.descFactorial v := by by_cases h : v ≤ k · rw [Nat.descFactorial_succ] have hk : k = k - v + v := by omega calc k * k.descFactorial v = (k - v + v) * k.descFactorial v := congrArg (fun t => t * k.descFactorial v) hk _ = _ := by ring · rw [Nat.descFactorial_eq_zero_iff_lt.mpr (by omega : k < v), Nat.descFactorial_eq_zero_iff_lt.mpr (by omega : k < v + 1)] simp -
count_power_factorial_expansionlemma — For a count and power, the ordinary power is the finite Stirling-weighted sum of descending factorials. The result is the Stirling expansion of an ordinary count power.Proof (Lean source)
lemma count_power_factorial_expansion (k r : ℕ) : k ^ r = ∑ v ∈ range (r + 1), stirlingSecond r v * k.descFactorial v := by induction r with | zero => simp | succ r ih => rw [pow_succ', ih, Finset.mul_sum] simp_rw [show ∀ v, k * (stirlingSecond r v * k.descFactorial v) = stirlingSecond r v * k.descFactorial (v + 1) + v * stirlingSecond r v * k.descFactorial v by intro v rw [mul_left_comm k, count_mul_descFactorial] ring] rw [Finset.sum_add_distrib] have hb : (∑ v ∈ range (r + 1), v * stirlingSecond r v * k.descFactorial v) = ∑ v ∈ range (r + 1), (v + 1) * stirlingSecond r (v + 1) * k.descFactorial (v + 1) := by rw [Finset.sum_range_succ' (f := fun v => v * stirlingSecond r v * k.descFactorial v)] rw [Finset.sum_range_succ (f := fun v => (v + 1) * stirlingSecond r (v + 1) * k.descFactorial (v + 1))] simp [Nat.stirlingSecond_eq_zero_of_lt (lt_succ_self r)] rw [hb, Finset.sum_range_succ' (f := fun v => stirlingSecond (r + 1) v * k.descFactorial v)] simp only [Nat.stirlingSecond_succ_zero, zero_mul, add_zero, Nat.stirlingSecond_succ_succ, add_mul, Finset.sum_add_distrib] exact add_comm _ _ -
stirlingSecond_le_choose_mul_powlemma — For orders with the smaller order bounded by the ambient order and the block count bounded by the smaller order, the second-kind Stirling number is bounded by the stated binomial-power expression. The result is the stated binomial-power upper bound on the Stirling number.Proof (Lean source)
lemma stirlingSecond_le_choose_mul_pow {r R v : ℕ} (hr : r ≤ R) (hv : v ≤ r) : stirlingSecond r v ≤ r.choose v * R ^ (r - v) := by induction r generalizing v with | zero => have hv0 : v = 0 := by omega subst v simp | succ r ih => cases v with | zero => simp | succ v => by_cases ht : v + 1 = r + 1 · have ht' : v = r := by omega subst v simp [Nat.stirlingSecond_self] · have hv1 : v + 1 ≤ r := by omega have h1 := ih (by omega : r ≤ R) hv1 have h0 := ih (by omega : r ≤ R) (by omega : v ≤ r) have hR : v + 1 ≤ R := by omega have hterm : (v + 1) * stirlingSecond r (v + 1) ≤ r.choose (v + 1) * R ^ (r - v) := by calc _ ≤ R * (r.choose (v + 1) * R ^ (r - (v + 1))) := Nat.mul_le_mul hR h1 _ = _ := by rw [show r - v = (r - (v + 1)) + 1 by omega, pow_succ] ring rw [Nat.stirlingSecond_succ_succ, Nat.choose_succ_succ, show (r + 1) - (v + 1) = r - v by omega] nlinarith only [hterm, h0] -
count_power_factorial_expansion_reallemma — For a count and power, casting the count power to the reals preserves its finite Stirling expansion in descending factorials. The result is the real-valued Stirling expansion of a count power.hypothesesk r :ℕconclusion(k : ℝ) ^ r= ∑ v ∈ range (r + 1), (Nat.stirlingSecond r v : ℝ) * (k.descFactorial v : ℝ)Proof (Lean source)
lemma count_power_factorial_expansion_real (k r : ℕ) : (k : ℝ) ^ r = ∑ v ∈ range (r + 1), (Nat.stirlingSecond r v : ℝ) * (k.descFactorial v : ℝ) := by exact_mod_cast count_power_factorial_expansion k r -
poisson_power_integrablelemma — For a Poisson rate and natural power, the corresponding raw power of the count is integrable under the Poisson law. The result is integrability of the raw Poisson count power.Proof (Lean source)
lemma poisson_power_integrable (rate : NNReal) (r : ℕ) : Integrable (fun k : ℕ => (k : ℝ) ^ r) (poissonMeasure rate) := by simp_rw [count_power_factorial_expansion_real] exact integrable_finsetSum _ (fun v _ => (poisson_descFactorial_integrable rate v).const_mul _) -
poisson_power_moment_eqlemma — For a Poisson rate and natural power, the raw moment equals the finite Stirling-weighted sum of powers of the rate. The result is the Stirling-weighted formula for the raw Poisson moment.hypothesesrate :r :ℕconclusion(∫ k : ℕ, (k : ℝ) ^ r ∂poissonMeasure rate)= ∑ v ∈ range (r + 1), (Nat.stirlingSecond r v : ℝ) * (rate : ℝ) ^ vProof (Lean source)
lemma poisson_power_moment_eq (rate : NNReal) (r : ℕ) : (∫ k : ℕ, (k : ℝ) ^ r ∂poissonMeasure rate) = ∑ v ∈ range (r + 1), (Nat.stirlingSecond r v : ℝ) * (rate : ℝ) ^ v := by simp_rw [count_power_factorial_expansion_real] rw [integral_finsetSum _ (fun v _ => (poisson_descFactorial_integrable rate v).const_mul _)] simp_rw [integral_const_mul, poisson_descFactorial_moment]
Threshold 3 core · 3 supporting This module derives fixed-fraction lower-tail and exponentially weighted upper-tail estimates for a scalar Poisson count from exact exponential moments and Chernoff inequalities. ★ poisson_upper_tail_mul_exp_le★ poisson_lower_tail_of_two_mul_le★ poisson_pilot_upper_tail
Scalar Poisson threshold bounds
This module derives fixed-fraction lower-tail and exponentially weighted upper-tail estimates for a scalar Poisson count from exact exponential moments and Chernoff inequalities.
For a Poisson law with nonnegative mean, a natural cutoff, and a real exponential weight, if the weight is nonnegative, the strict upper-tail probability times its exponential penalty is bounded by the logarithmic cutoff factor.
Formal statement
Proof (Lean source)
For a positive requested count and a Poisson mean at least twice that count, the probability of falling below the requested count is at most 8 / n. The result is the 8 / n Poisson lower-tail bound.
Formal statement
Proof (Lean source)
For a Poisson count with a given rate and a real threshold B, the probability that the count strictly exceeds B/4 is at most exp(3 · rate − B · log 4 / 4).
Formal statement
Proof (Lean source)
3 supporting declarations (lemmas, instances)
-
poisson_le_cutoff_of_cutoff_lt_quarterlemma — For a Poisson law with nonnegative mean and a natural cutoff, if the cutoff is below one quarter of the mean, the lower-tail probability is at most the exponential of minus one quarter of that mean.hypothesesconclusionProof (Lean source)
lemma poisson_le_cutoff_of_cutoff_lt_quarter (lambda : NNReal) (k : Nat) (hk : (k : Real) < (lambda : Real) / 4) : poissonMeasure lambda {w : Nat | w ≤ k} ≤ ofReal (exp (-(lambda : Real) / 4)) := by have hlambda : 0 < (lambda : Real) := by have hk0 : 0 ≤ (k : Real) := Nat.cast_nonneg k linarith have hz : 0 ≤ (lambda : Real) / 4 := by positivity have hsqrt_sq : (sqrt (2 * (lambda : Real) * ((lambda : Real) / 4))) ^ 2 = (lambda : Real) ^ 2 / 2 := by rw [Real.sq_sqrt] · ring · positivity have hsqrt_lt : sqrt (2 * (lambda : Real) * ((lambda : Real) / 4)) < 3 * (lambda : Real) / 4 := by have hsqrt0 := Real.sqrt_nonneg (2 * (lambda : Real) * ((lambda : Real) / 4)) nlinarith [sq_nonneg ((lambda : Real) / 4)] have hsubset : {w : Nat | w ≤ k} ⊆ {w : Nat | (lambda : Real) - (w : Real) > sqrt (2 * (lambda : Real) * ((lambda : Real) / 4))} := by intro w hw change w ≤ k at hw have hwk : (w : Real) ≤ (k : Real) := by exact_mod_cast hw change (lambda : Real) - (w : Real) > _ linarith refine (measure_mono hsubset).trans ?_ simpa only [neg_div] using (poisson_lower_bernstein lambda hz) -
exp_neg_log_mul_nat_eq_inv_powlemma — For a real number and a natural exponent, if the real number is nonnegative, the exponential of the negative logarithmic multiple equals the reciprocal natural power.Proof (Lean source)
-
poisson_pilot_lower_taillemma — For a Poisson rate and real threshold, the probability of the count being at most one quarter of the threshold obeys the stated exponential lower-tail bound. The result is the exponential Poisson lower-tail bound at one quarter of the threshold.Proof (Lean source)
lemma poisson_pilot_lower_tail (rate : NNReal) (B : ℝ) : (poissonMeasure rate).real {k : ℕ | (k : ℝ) ≤ B / 4} ≤ exp (B * log 4 / 4 - 3 * (rate : ℝ) / 4) := by let theta : ℝ := -log 4 have hlog : 0 < log (4 : ℝ) := Real.log_pos (by norm_num) have htheta : theta ≤ 0 := by dsimp [theta]; linarith have hchernoff := measure_le_le_exp_mul_mgf (X := fun k : ℕ => (k : ℝ)) (μ := poissonMeasure rate) (B / 4) htheta (integrable_exp_natCast_poisson rate theta) rw [mgf_natCast_poisson] at hchernoff have hexp : exp theta = 1 / 4 := by dsimp [theta] rw [Real.exp_neg, Real.exp_log (by norm_num : (0 : ℝ) < 4)] norm_num calc (poissonMeasure rate).real {k : ℕ | (k : ℝ) ≤ B / 4} ≤ exp (-theta * (B / 4)) * exp ((rate : ℝ) * (exp theta - 1)) := hchernoff _ = exp (B * log 4 / 4 - 3 * (rate : ℝ) / 4) := by rw [hexp, ← Real.exp_add] dsimp [theta] congr 1 ring
UpperTail 1 core · 1 supporting The upper tail of a Poisson count with mean n/4 beyond the fixed cap n is bounded by a numerical exponential in n. ★ poisson_cap_path_risk_le
A Poisson cap at four times the mean
The upper tail of a Poisson count with mean n/4 beyond the fixed cap n
is bounded by a numerical exponential in n.
Under a probability law, take a natural-number cap n, a random count that is Poisson with mean n/4, and a random continuous path together with a fixed target path whose supremum norm is at most one. Define the capped path to be the random path when the count is at most n and the zero path otherwise. If the squared supremum distances to the target of the random path and of the capped path are integrable, then the expected squared supremum distance of the capped path to the target is at most that of the random path plus exp(−n/2).
Formal statement
Proof (Lean source)
1 supporting declaration (lemmas, instances)
-
poisson_quarter_mean_cap_tailtheorem — A natural cap gives an exponential upper bound for a Poisson count with one-quarter of that mean exceeding the cap.hypothesesn :ℕconclusionProof (Lean source)
-- Use `poisson_upper_tail_mul_exp_le` with r=3, then show -- `log 4 - 3/4 ≥ 1/2` and rearrange the positive exponential factor. theorem poisson_quarter_mean_cap_tail (n : ℕ) : poissonMeasure ((n : ℝ≥0) / 4) {w : ℕ | n < w} ≤ ofReal (exp (-(n : ℝ) / 2)) := by let p := (poissonMeasure ((n : ℝ≥0) / 4)).real {w : ℕ | n < w} have hchernoff := poisson_upper_tail_mul_exp_le ((n : ℝ≥0) / 4) n (r := 3) (by norm_num) have hlog : (5 / 4 : ℝ) ≤ log 4 := by rw [Real.log_four_eq] have := Real.log_two_gt_d9 linarith have hp : p ≤ exp (-(n : ℝ) / 2) := by have hn : 0 ≤ (n : ℝ) := Nat.cast_nonneg _ have hexp : 0 < exp (-(3 : ℝ) * ((n : ℝ) / 4)) := Real.exp_pos _ have hbound : p ≤ exp ((-log 4 + 3 / 4) * (n : ℝ)) := by apply le_of_mul_le_mul_right _ hexp calc p * exp (-3 * ((n : ℝ) / 4)) ≤ exp (-log 4 * (n : ℝ)) := by simpa [p, show (1 + 3 : ℝ) = 4 by norm_num, neg_mul] using hchernoff _ = exp ((-log 4 + 3 / 4) * (n : ℝ)) * exp (-3 * ((n : ℝ) / 4)) := by rw [← Real.exp_add] congr 1 ring calc p ≤ exp ((-log 4 + 3 / 4) * (n : ℝ)) := hbound _ ≤ exp (-(n : ℝ) / 2) := by apply Real.exp_le_exp.mpr nlinarith exact (ENNReal.le_ofReal_iff_toReal_le (measure_ne_top _ _) (Real.exp_nonneg _)).mpr hp