Mathlib.Probability.Poisson.FinitePartition.CappedPrefix
This subtopic identifies a fixed finite iid sample, uniformly permuted and independently marked by fair Boolean variables, with the nonoverflow part of a finite marked-Poisson prefix experiment.
Uniform 2 core · 4 supporting An iid sample remains iid after a coordinate permutation. ★ map_permuted_marked_pi
Uniform permutation and Boolean mark laws
An iid sample remains iid after a coordinate permutation. Independent fair Boolean marks pair with that sample to give the paired iid product law. The finite mark and permutation normalizations are explicit.
The fair Boolean law assigns probability one half to each Boolean value.
For an iid probability law, a sample size, and a coordinate permutation, independently fair marked permuted observations have the paired iid product law.
Formal statement
Proof (Lean source)
4 supporting declarations (lemmas, instances)
-
fairBoolLaw_isProbabilityMeasureinstance — The fair Boolean law is a probability measure.instancegiven byby refine ⟨?_⟩ simp [fairBoolLaw, smul_eq_mul] exact ENNReal.inv_two_add_inv_two -
map_perm_pitheorem — For an iid probability law, a sample size, and a coordinate permutation, reordering its finite iid product leaves the law unchanged.hypothesesProof (Lean source)
theorem map_perm_pi {X : Type*} [MeasurableSpace X] (μ : Measure X) [IsProbabilityMeasure μ] (n : ℕ) (perm : Perm (Fin n)) : Measure.map (fun x : Fin n → X => fun i => x (perm i)) (Measure.pi (fun _ : Fin n => μ)) = Measure.pi (fun _ : Fin n => μ) := by /- Use `measurePreserving_piCongrLeft` for the index equivalence `perm`. -/ have hf : (fun x : Fin n → X => fun i => x (perm i)) = (MeasurableEquiv.piCongrLeft (fun _ : Fin n => X) perm.symm : (Fin n → X) → (Fin n → X)) := by funext x i simp [MeasurableEquiv.coe_piCongrLeft, Equiv.piCongrLeft_apply] rw [hf] simpa using Measure.pi_map_piCongrLeft perm.symm (fun _ : Fin n => μ) -
fairMarkPi_eq_uniform_sumtheorem — For a sample size, the finite law of independent fair Boolean marks is the uniform average of the point masses on all Boolean mark vectors.hypothesesn :ℕProof (Lean source)
theorem fairMarkPi_eq_uniform_sum (n : ℕ) : Measure.pi (fun _ : Fin n => fairBoolLaw) = (card (Fin n → Bool) : ENNReal)⁻¹ • (∑ marks : Fin n → Bool, Measure.dirac marks) := by /- Compare singleton masses, using `Measure.pi_pi` and `Fintype.card_fun`. -/ have hpoint (b : Bool) : fairBoolLaw {b} = 2⁻¹ := by cases b <;> simp [fairBoolLaw, smul_eq_mul] apply Measure.ext_of_singleton intro marks rw [Measure.pi_singleton] simp [hpoint, Finset.prod_const] exact ENNReal.inv_pow.symm -
perm_mark_weight_sumtheorem — For a sample size, the finite permutation and mark averaging weights sum to one, including when the sample size is zero.hypothesesn :ℕProof (Lean source)
theorem perm_mark_weight_sum (n : ℕ) : (∑ _perm : Perm (Fin n), ∑ _marks : Fin n → Bool, (1 : ℝ) / ((card (Perm (Fin n)) : ℝ) * (card (Fin n → Bool) : ℝ))) = 1 := by /- Both finite types are nonempty; reduce the two constant sums to cardinalities. -/ have hp : (card (Perm (Fin n)) : ℝ) ≠ 0 := by exact_mod_cast Fintype.card_pos.ne' have hm : (card (Fin n → Bool) : ℝ) ≠ 0 := by exact_mod_cast Fintype.card_pos.ne' simp [div_eq_mul_inv, hp, ← mul_assoc]
Basic 1 core · 2 supporting Finite Poisson count mixtures from a fixed iid sample agree with the nonoverflow restriction of the marked Poisson finite-prefix law. ★ capped_marked_prefix_integral
Capped marked Poisson prefix identities
Finite Poisson count mixtures from a fixed iid sample agree with the nonoverflow restriction of the marked Poisson finite-prefix law.
For a probability observation law, a Poisson mean, a sample size, a real statistic of finite fair-marked samples, and its integrability under the Poisson finite-sample law of fair-marked observations, the expectation over an iid sample of size n of the mixture that draws a prefix length M ≤ n with its Poisson probability, a uniformly random ordering of the sample, and uniformly random Boolean marks, and evaluates the statistic at the length-M prefix of the reordered marked sample, equals the expectation of the statistic under the Poisson finite-sample law restricted to samples of at most n points. The Poisson weights of lengths above n are dropped on both sides, so neither side is renormalized.
Formal statement
Proof (Lean source)
2 supporting declarations (lemmas, instances)
-
perm_mark_prefix_average_integraltheorem — For an iid observation law, a sample size, a fixed admissible prefix length, a prefix statistic, and an integrability condition for that statistic, averaging over uniform permutations and fair mark vectors has the paired iid prefix expectation.hypothesesX :Type*μ :n m :ℕh :m ≤ ng :FiniteSample (X × Bool) → ℝhg :Integrable (fun y : Fin n → X × Bool => g (prefixOfLE y m h)) (Measure.pi (fun _ : Fin n => μ.prod fairBoolLaw))Proof (Lean source)
theorem perm_mark_prefix_average_integral {X : Type*} [MeasurableSpace X] (μ : Measure X) [IsProbabilityMeasure μ] (n m : ℕ) (h : m ≤ n) (g : FiniteSample (X × Bool) → ℝ) (hg : Integrable (fun y : Fin n → X × Bool => g (prefixOfLE y m h)) (Measure.pi (fun _ : Fin n => μ.prod fairBoolLaw))) : (∫ x : Fin n → X, ∑ perm : Perm (Fin n), ∑ marks : Fin n → Bool, ((1 : ℝ) / ((card (Perm (Fin n)) : ℝ) * (card (Fin n → Bool) : ℝ))) * g (prefixOfLE (fun i => (x (perm i), marks i)) m h) ∂Measure.pi (fun _ : Fin n => μ)) = ∫ y : Fin n → X × Bool, g (prefixOfLE y m h) ∂Measure.pi (fun _ : Fin n => μ.prod fairBoolLaw) := by classical let ν : Measure (Fin n → X) := Measure.pi (fun _ : Fin n => μ) let ρ : Measure (Fin n → Bool) := Measure.pi (fun _ : Fin n => fairBoolLaw) let c : ℝ := (card (Perm (Fin n)) : ℝ) let d : ℝ := (card (Fin n → Bool) : ℝ) have hmass (marks : Fin n → Bool) : ρ.real {marks} = 1 / d := by change (Measure.pi (fun _ : Fin n => fairBoolLaw)).real {marks} = _ rw [fairMarkPi_eq_uniform_sum] simp [Measure.real, Measure.smul_apply, Finset.sum_apply, d] have hmap (perm : Perm (Fin n)) : Measurable (fun z : (Fin n → X) × (Fin n → Bool) => fun i => (z.1 (perm i), z.2 i)) := by fun_prop have hInt (perm : Perm (Fin n)) : Integrable (fun z : (Fin n → X) × (Fin n → Bool) => g (prefixOfLE (fun i => (z.1 (perm i), z.2 i)) m h)) (ν.prod ρ) := by change Integrable ((fun y : Fin n → X × Bool => g (prefixOfLE y m h)) ∘ (fun z : (Fin n → X) × (Fin n → Bool) => fun i => (z.1 (perm i), z.2 i))) (ν.prod ρ) exact (integrable_map_measure (by rw [map_permuted_marked_pi μ n perm] exact hg.aestronglyMeasurable) (hmap perm).aemeasurable).mp (by rw [map_permuted_marked_pi μ n perm] exact hg) have hslice (perm : Perm (Fin n)) (x : Fin n → X) : (∫ marks : Fin n → Bool, g (prefixOfLE (fun i => (x (perm i), marks i)) m h) ∂ρ) = ∑ marks : Fin n → Bool, (1 / d) * g (prefixOfLE (fun i => (x (perm i), marks i)) m h) := by rw [integral_fintype (Integrable.of_finite)] simp_rw [hmass, smul_eq_mul] have hsection (perm : Perm (Fin n)) : Integrable (fun x : Fin n → X => ∑ marks : Fin n → Bool, (1 / d) * g (prefixOfLE (fun i => (x (perm i), marks i)) m h)) ν := by convert (hInt perm).integral_prod_left using 1 funext x exact (hslice perm x).symm have hperm (perm : Perm (Fin n)) : (∫ x : Fin n → X, ∑ marks : Fin n → Bool, (1 / d) * g (prefixOfLE (fun i => (x (perm i), marks i)) m h) ∂ν) = ∫ y : Fin n → X × Bool, g (prefixOfLE y m h) ∂Measure.pi (fun _ : Fin n => μ.prod fairBoolLaw) := by calc _ = ∫ z : (Fin n → X) × (Fin n → Bool), g (prefixOfLE (fun i => (z.1 (perm i), z.2 i)) m h) ∂ν.prod ρ := by rw [integral_prod _ (hInt perm)] simp_rw [hslice] _ = _ := by calc _ = ∫ y : Fin n → X × Bool, g (prefixOfLE y m h) ∂Measure.map (fun z : (Fin n → X) × (Fin n → Bool) => fun i => (z.1 (perm i), z.2 i)) (ν.prod ρ) := by exact (integral_map (hmap perm).aemeasurable (by rw [map_permuted_marked_pi μ n perm] exact hg.aestronglyMeasurable)).symm _ = _ := by rw [map_permuted_marked_pi μ n perm] have hc : c ≠ 0 := by unfold c exact_mod_cast (Fintype.card_pos : 0 < card (Perm (Fin n))).ne' have hd : d ≠ 0 := by unfold d exact_mod_cast (Fintype.card_pos : 0 < card (Fin n → Bool)).ne' calc _ = ∫ x : Fin n → X, ∑ perm : Perm (Fin n), (1 / c) * ∑ marks : Fin n → Bool, (1 / d) * g (prefixOfLE (fun i => (x (perm i), marks i)) m h) ∂ν := by congr 1 funext x apply Finset.sum_congr rfl intro perm _ rw [Finset.mul_sum] apply Finset.sum_congr rfl intro marks _ dsimp [c, d] ring _ = ∑ perm : Perm (Fin n), (1 / c) * (∫ x : Fin n → X, ∑ marks : Fin n → Bool, (1 / d) * g (prefixOfLE (fun i => (x (perm i), marks i)) m h) ∂ν) := by rw [integral_finsetSum univ] · simp_rw [integral_const_mul] · intro perm _ exact (hsection perm).const_mul _ _ = _ := by simp_rw [hperm] rw [← Finset.sum_mul] have hweights : (∑ _perm : Perm (Fin n), (1 / c)) = 1 := by simp [c, div_eq_mul_inv, hc] rw [hweights, one_mul] -
poisson_prefix_mixture_integraltheorem — For an iid marked observation law, a Poisson mean, a count cap, a finite-sample statistic, and an integrability condition, the finite Poisson count mixture of admissible prefixes equals its nonoverflow finite Poisson expectation.hypothesesY :Type*ν :lam :ℝ≥0n :ℕg :FiniteSample Y → ℝhg :Integrable g (finitePoissonSampleLaw ν lam)conclusion(∑ M : Fin (n + 1), (poissonMeasure lam {M.val}).toReal * ∫ y : Fin n → Y, g (prefixOfLE y M.val (le_of_lt_succ M.isLt)) ∂Measure.pi (fun _ : Fin n => ν))= ∫ z : FiniteSample Y, if z.count ≤ n then g z else 0 ∂finitePoissonSampleLaw ν lamProof (Lean source)
theorem poisson_prefix_mixture_integral {Y : Type*} [MeasurableSpace Y] (ν : Measure Y) [IsProbabilityMeasure ν] (lam : ℝ≥0) (n : ℕ) (g : FiniteSample Y → ℝ) (hg : Integrable g (finitePoissonSampleLaw ν lam)) : (∑ M : Fin (n + 1), (poissonMeasure lam {M.val}).toReal * ∫ y : Fin n → Y, g (prefixOfLE y M.val (le_of_lt_succ M.isLt)) ∂Measure.pi (fun _ : Fin n => ν)) = ∫ z : FiniteSample Y, if z.count ≤ n then g z else 0 ∂finitePoissonSampleLaw ν lam := by /- Apply `poisson_nonoverflow_integral_eq_sum_count_fibres` on the right, then rewrite each count fibre with `poisson_prefix_count_fibre_integral`. The latter already handles zero-Poisson-mass fibres. -/ rw [poisson_nonoverflow_integral_eq_sum_count_fibres ν lam n g hg] congr 1 funext M exact (poisson_prefix_count_fibre_integral ν lam n M.val (le_of_lt_succ M.isLt) g hg).symm
CountFibre 1 core · 3 supporting These lemmas isolate the fixed-count step in capped-prefix mixtures. ★ poisson_prefix_count_fibre_integral
Integrability and integration on a Poisson count fibre
These lemmas isolate the fixed-count step in capped-prefix mixtures. A positive Poisson count mass transports integrability to the corresponding finite iid prefix. The weighted identity also covers zero-mass fibres.
For an iid observation law, a Poisson mean, a sample size, a count that fits in the sample, and an integrable finite-sample statistic, the count-fibre integral equals the Poisson atom times the iid prefix integral, including a zero-mass atom.
Formal statement
Proof (Lean source)
3 supporting declarations (lemmas, instances)
-
integrable_prefix_of_nonzero_poisson_counttheorem — For an iid observation law, a Poisson mean, a sample size, a count that fits in the sample, an integrable finite-sample statistic, and positive mass at that count, the statistic of the fixed-count iid prefix is integrable.hypothesesY :Type*ν :lam :ℝ≥0n m :ℕh :m ≤ ng :FiniteSample Y → ℝhg :Integrable g (finitePoissonSampleLaw ν lam)hmass :poissonMeasure lam {m} ≠ 0conclusionProof (Lean source)
theorem integrable_prefix_of_nonzero_poisson_count {Y : Type*} [MeasurableSpace Y] (ν : Measure Y) [IsProbabilityMeasure ν] (lam : ℝ≥0) (n m : ℕ) (h : m ≤ n) (g : FiniteSample Y → ℝ) (hg : Integrable g (finitePoissonSampleLaw ν lam)) (hmass : poissonMeasure lam {m} ≠ 0) : Integrable (fun y : Fin n → Y => g (prefixOfLE y m h)) (Measure.pi (fun _ : Fin n => ν)) := by /- Restrict `hg` to the count-m fibre, rewrite with `finitePoissonSampleLaw_restrict_count_eq`, cancel the nonzero finite Poisson scalar using `integrable_smul_measure`, then transport the map-integrability across `fixedSizeEmbed` and `map_prefixCoordinates_pi`. -/ classical have hfixed : Integrable g (Measure.map (fixedSizeEmbed m) (Measure.pi (fun _ : Fin m => ν))) := by have hr := hg.restrict (s := FiniteSample.count ⁻¹' ({m} : Set ℕ)) rw [finitePoissonSampleLaw_restrict_count_eq ν lam m] at hr exact (integrable_smul_measure hmass (measure_ne_top _ _)).mp hr have hsmall : Integrable (g ∘ fixedSizeEmbed m) (Measure.pi (fun _ : Fin m => ν)) := (integrable_map_measure hfixed.aestronglyMeasurable (measurable_fixedSizeEmbed m).aemeasurable).mp hfixed let f : (Fin n → Y) → (Fin m → Y) := fun x i => x ⟨i, lt_of_lt_of_le i.isLt h⟩ have hf : Measurable f := by dsimp [f] fun_prop have hmap : Measure.map f (Measure.pi (fun _ : Fin n => ν)) = Measure.pi (fun _ : Fin m => ν) := by symm refine Measure.pi_eq (μ := fun _ : Fin m => ν) (fun s hs => ?_) rw [Measure.map_apply hf (.univ_pi hs)] have hpre : f ⁻¹' (Set.univ.pi s) = Set.univ.pi (fun j : Fin n => if hj : j.val < m then s ⟨j.val, hj⟩ else univ) := by ext x simp only [Set.mem_preimage, Set.mem_pi, Set.mem_univ, true_implies] constructor · intro hx j split · exact hx ⟨j.val, ‹j.val < m›⟩ · trivial · intro hx i simpa [f] using hx ⟨i.val, lt_of_lt_of_le i.isLt h⟩ rw [hpre, Measure.pi_pi] let t : Finset (Fin n) := Finset.univ.filter fun j => j.val < m have ht (j : t) : j.val.val < m := by simpa only [t, mem_filter, Finset.mem_univ, true_and] using j.property let e : Fin m ≃ t := { toFun := fun i => ⟨⟨i.val, lt_of_lt_of_le i.isLt h⟩, by simp [t, i.isLt]⟩ invFun := fun j => ⟨j.val.val, ht j⟩ left_inv := fun i => by rfl right_inv := fun j => by ext; rfl } calc (∏ j : Fin n, ν (if hj : j.val < m then s ⟨j.val, hj⟩ else univ)) = ∏ j : Fin n, if hj : j.val < m then ν (s ⟨j.val, hj⟩) else 1 := by apply Fintype.prod_congr intro j split <;> simp _ = ∏ j : t, ν (s ⟨j.val.val, ht j⟩) := by rw [Finset.prod_dite] simp only [Finset.prod_const_one, mul_one] apply Fintype.prod_congr intro j congr 2 _ = ∏ i : Fin m, ν (s i) := by symm apply Fintype.prod_equiv e intro i rfl have hlarge : Integrable ((g ∘ fixedSizeEmbed m) ∘ f) (Measure.pi (fun _ : Fin n => ν)) := by apply (integrable_map_measure (by rw [hmap]; exact hsmall.aestronglyMeasurable) hf.aemeasurable).mp rwa [hmap] simpa [Function.comp_def, f, prefixOfLE, fixedSizeEmbed] using hlarge -
poisson_prefix_count_fibre_integral_of_zerotheorem — For an iid observation law, a Poisson mean, a count, a finite-sample statistic, and zero mass at that count, integrating the statistic over that count fibre gives zero.hypothesesconclusion∫ z : FiniteSample Y in FiniteSample.count ⁻¹' ({m} : Set ℕ), g z ∂finitePoissonSampleLaw ν lam= 0Proof (Lean source)
theorem poisson_prefix_count_fibre_integral_of_zero {Y : Type*} [MeasurableSpace Y] (ν : Measure Y) [IsProbabilityMeasure ν] (lam : ℝ≥0) (m : ℕ) (g : FiniteSample Y → ℝ) (hmass : poissonMeasure lam {m} = 0) : ∫ z : FiniteSample Y in FiniteSample.count ⁻¹' ({m} : Set ℕ), g z ∂finitePoissonSampleLaw ν lam = 0 := by /- The count restriction is a zero scalar multiple of its iid fibre law. -/ rw [finitePoissonSampleLaw_restrict_count_eq ν lam m, hmass] simp -
poisson_prefix_count_fibre_integral_of_nonzerotheorem — For an iid observation law, a Poisson mean, a sample size, a count that fits in the sample, an integrable finite-sample statistic, and positive mass at that count, the restricted integral is that mass times the iid fixed-prefix integral.hypothesesY :Type*ν :lam :ℝ≥0n m :ℕh :m ≤ ng :FiniteSample Y → ℝhg :Integrable g (finitePoissonSampleLaw ν lam)hmass :poissonMeasure lam {m} ≠ 0conclusion∫ z : FiniteSample Y in FiniteSample.count ⁻¹' ({m} : Set ℕ), g z ∂finitePoissonSampleLaw ν lam= (poissonMeasure lam {m}).toReal * ∫ y : Fin n → Y, g (prefixOfLE y m h) ∂Measure.pi (fun _ : Fin n => ν)Proof (Lean source)
theorem poisson_prefix_count_fibre_integral_of_nonzero {Y : Type*} [MeasurableSpace Y] (ν : Measure Y) [IsProbabilityMeasure ν] (lam : ℝ≥0) (n m : ℕ) (h : m ≤ n) (g : FiniteSample Y → ℝ) (hg : Integrable g (finitePoissonSampleLaw ν lam)) (hmass : poissonMeasure lam {m} ≠ 0) : ∫ z : FiniteSample Y in FiniteSample.count ⁻¹' ({m} : Set ℕ), g z ∂finitePoissonSampleLaw ν lam = (poissonMeasure lam {m}).toReal * ∫ y : Fin n → Y, g (prefixOfLE y m h) ∂Measure.pi (fun _ : Fin n => ν) := by /- Rewrite the count restriction as a scalar times `map fixedSizeEmbed`. `integrable_prefix_of_nonzero_poisson_count` supplies fixed-prefix integrability. Transport the integral through `fixedSizeEmbed`, then show the first `m` coordinates of the `Fin n` iid law have the `Fin m` iid law. The latter calculation already appears as `hmap` in that theorem's proof. -/ classical have hfixed : Integrable g (Measure.map (fixedSizeEmbed m) (Measure.pi (fun _ : Fin m => ν))) := by have hr := hg.restrict (s := FiniteSample.count ⁻¹' ({m} : Set ℕ)) rw [finitePoissonSampleLaw_restrict_count_eq ν lam m] at hr exact (integrable_smul_measure hmass (measure_ne_top _ _)).mp hr have hsmall : Integrable (g ∘ fixedSizeEmbed m) (Measure.pi (fun _ : Fin m => ν)) := (integrable_map_measure hfixed.aestronglyMeasurable (measurable_fixedSizeEmbed m).aemeasurable).mp hfixed let f : (Fin n → Y) → (Fin m → Y) := fun x i => x ⟨i, lt_of_lt_of_le i.isLt h⟩ have hf : Measurable f := by dsimp [f] fun_prop have hmap : Measure.map f (Measure.pi (fun _ : Fin n => ν)) = Measure.pi (fun _ : Fin m => ν) := by symm refine Measure.pi_eq (μ := fun _ : Fin m => ν) (fun s hs => ?_) rw [Measure.map_apply hf (.univ_pi hs)] have hpre : f ⁻¹' (Set.univ.pi s) = Set.univ.pi (fun j : Fin n => if hj : j.val < m then s ⟨j.val, hj⟩ else univ) := by ext x simp only [Set.mem_preimage, Set.mem_pi, Set.mem_univ, true_implies] constructor · intro hx j split · exact hx ⟨j.val, ‹j.val < m›⟩ · trivial · intro hx i simpa [f] using hx ⟨i.val, lt_of_lt_of_le i.isLt h⟩ rw [hpre, Measure.pi_pi] let t : Finset (Fin n) := Finset.univ.filter fun j => j.val < m have ht (j : t) : j.val.val < m := by simpa only [t, mem_filter, Finset.mem_univ, true_and] using j.property let e : Fin m ≃ t := { toFun := fun i => ⟨⟨i.val, lt_of_lt_of_le i.isLt h⟩, by simp [t, i.isLt]⟩ invFun := fun j => ⟨j.val.val, ht j⟩ left_inv := fun i => by rfl right_inv := fun j => by ext; rfl } calc (∏ j : Fin n, ν (if hj : j.val < m then s ⟨j.val, hj⟩ else univ)) = ∏ j : Fin n, if hj : j.val < m then ν (s ⟨j.val, hj⟩) else 1 := by apply Fintype.prod_congr intro j split <;> simp _ = ∏ j : t, ν (s ⟨j.val.val, ht j⟩) := by rw [Finset.prod_dite] simp only [Finset.prod_const_one, mul_one] apply Fintype.prod_congr intro j congr 2 _ = ∏ i : Fin m, ν (s i) := by symm apply Fintype.prod_equiv e intro i rfl have htransport : ∫ z : FiniteSample Y, g z ∂Measure.map (fixedSizeEmbed m) (Measure.pi (fun _ : Fin m => ν)) = ∫ y : Fin n → Y, g (prefixOfLE y m h) ∂Measure.pi (fun _ : Fin n => ν) := by rw [integral_map (measurable_fixedSizeEmbed m).aemeasurable hfixed.aestronglyMeasurable] have hcoordinate := integral_map (μ := Measure.pi (fun _ : Fin n => ν)) hf.aemeasurable (by rw [hmap]; exact hsmall.aestronglyMeasurable) (f := g ∘ fixedSizeEmbed m) rw [hmap] at hcoordinate simpa [Function.comp_def, f, prefixOfLE, fixedSizeEmbed] using hcoordinate rw [finitePoissonSampleLaw_restrict_count_eq ν lam m, integral_smul_measure, smul_eq_mul, htransport]
CountPartition 1 core · 0 supporting The integral over finite samples whose count is at most a fixed cap splits into the integrals over its finitely many exact-count fibres. ★ poisson_nonoverflow_integral_eq_sum_count_fibres
Finite count partition of a Poisson prefix integral
The integral over finite samples whose count is at most a fixed cap splits into the integrals over its finitely many exact-count fibres.
For an iid observation law, a Poisson mean, a count cap, and an integrable statistic, the expectation with zero value above the cap is the sum of exact-count fibre integrals.