Kemperman's identity for forests #
For an offspring probability measure μ, ℓ ≥ 1 and every n, the total weight
forestWeight (fun d => μ {d}) ℓ n of the ordered forests of ℓ trees with n vertices satisfies
n * forestWeight μ ℓ n = ℓ * Measure.pi (fun _ : Fin n => μ) {ω | ∑ i, ω i + ℓ = n},
that is n P(|𝒢_ℓ| = n) = ℓ P(S_n = -ℓ) for ℓ independent trees and the Łukasiewicz walk of
independent offspring counts (natCast_mul_forestWeight_eq_pi). No criticality, aperiodicity or
positivity is assumed; both sides vanish when n < ℓ, and ℓ = 1 is the identity for trees
(forestWeight_one_eq_bienaymeLaw_sizeEvent, countForestBridges_one). The multiplied form is
kept: no division and no conditioning event is involved. Adapted from
PoissonDeclumping/Bridge/Kemperman.lean; the first-passage convolution, the conditional bridge law
and local limits are not part of this module.
Reindexing the forest bridge words by offspring-count vectors.
The mass of any set of count vectors under the product measure is the sum of its point masses.
Kemperman's identity for forests: n P(|𝒢_ℓ| = n) = ℓ P(S_n = -ℓ), for every offspring
probability measure, every 1 ≤ ℓ and every n.