Documentation

LeanPool.RareSubtreePatterns.Cyclic.UniformVertex

Corollary cor:cyclicshift: the fringe subtree at a uniform vertex #

Source lines 777–825 (Corollary 2.3 and its proof), 227–229 (U01, first part) and 914–920, 960–969 (U05).

Let U_n be a uniform vertex of 𝒯^n, independent of 𝒯^n; the law of 𝒯^n_{U_n} is uniformFringeLaw ΞΌ n (Setup/Marks.lean). We prove, following the paper's proof:

All identities hold for every n. The paper restricts to admissible n; at an inadmissible n both sides vanish (𝒯^n is then the zero measure, Ξ¨_n(-1) = 0, and 0⁻¹ = 0 in ℝ). The expectation E is the integral against PlaneTree.bienayme ΞΌ; no criticality is needed.

The law of 𝒯^n_{U_n} #

The uniform law on {0, …, n-1} βŠ† β„• is the image of the uniform law on Fin n.

The law of 𝒯^n_{U_n} is the image of 𝒯^n βŠ— Unif(Fin n) under (T, i) ↦ T_{u_i}.

At an admissible size, the law of 𝒯^n_{U_n} is a probability measure.

theorem PoissonDeclumping.Cyclic.bridgeLaw_ofSeq_mem (ΞΌ : PMF β„•) (n : β„•) (s : Set PlaneTree) :
(Lukasiewicz.bridgeLaw ΞΌ n) {Ο‰ : Fin n β†’ β„€ | βˆƒ T ∈ s, PlaneTree.ofSeq (List.ofFn Ο‰) = some T} = (uniformFringeLaw ΞΌ n) s

First step of the proof of cor:cyclicshift. The tree T(X_1, …, X_n) encoded by the first excursion of (X_1, …, X_n) under P(Β· | S_n = -1) has the law of 𝒯^n_{U_n}.

P(G(𝒯^n_{U_n}) = 1, |𝒯^n_{U_n}| ≀ M) = P(I_1^{(M)}(X_1, …, X_n) = 1 | S_n = -1).

The fringe subtree at a uniform vertex of 𝒯^n has at most n vertices almost surely.

theorem PoissonDeclumping.Cyclic.uniformFringeLaw_eq_bridgeLaw (ΞΌ : PMF β„•) (n : β„•) (G : PlaneTree β†’ Prop) :
(uniformFringeLaw ΞΌ n) {T : PlaneTree | G T} = (Lukasiewicz.bridgeLaw ΞΌ n) {Ο‰ : Fin n β†’ β„€ | firstIndicator G (↑n) (List.ofFn Ο‰) = 1}

First display of the proof of cor:cyclicshift: P(G(𝒯^n_{U_n}) = 1) = P(I_1^{(n)}(X_1, …, X_n) = 1 | S_n = -1).

The Markov property at ΞΆ on the bridge (P01) #

∫⁻ 1_{𝒯 ∈ s} g(|𝒯|) dP_ΞΌ = βˆ‘_m P_ΞΌ(𝒯 ∈ s, |𝒯| = m) g(m).

theorem PoissonDeclumping.Cyclic.walkVecLaw_bridge_inter_ofSeq (ΞΌ : PMF β„•) (n : β„•) (s : Set PlaneTree) :
(Lukasiewicz.walkVecLaw ΞΌ n) ({Ο‰ : Fin n β†’ β„€ | βˆ‘ i : Fin n, Ο‰ i = -1} ∩ {Ο‰ : Fin n β†’ β„€ | βˆƒ T ∈ s, PlaneTree.ofSeq (List.ofFn Ο‰) = some T}) = ∫⁻ (T : PlaneTree), s.indicator (fun (T : PlaneTree) => if T.vertexCount ≀ n then (walkLaw ΞΌ (n - T.vertexCount)) {0} else 0) T βˆ‚PlaneTree.bienayme ΞΌ

Markov property at ΞΆ (P01). P(T(X_1, …, X_n) ∈ s, S_n = -1) = E[1_{𝒯 ∈ s} Ξ¨_{n-|𝒯|}(0)], with Ξ¨_{n-m}(0) = 0 for m > n: after the first excursion (ending at level -1 at time ΞΆ), the walk must return from -1 to -1, i.e. make a fresh walk of length n - ΞΆ ending at 0.

theorem PoissonDeclumping.Cyclic.walkVecLaw_bridge_inter_ofSeq_eq_tsum (ΞΌ : PMF β„•) (n : β„•) (s : Set PlaneTree) :
(Lukasiewicz.walkVecLaw ΞΌ n) ({Ο‰ : Fin n β†’ β„€ | βˆ‘ i : Fin n, Ο‰ i = -1} ∩ {Ο‰ : Fin n β†’ β„€ | βˆƒ T ∈ s, PlaneTree.ofSeq (List.ofFn Ο‰) = some T}) = βˆ‘' (m : β„•), (PlaneTree.bienayme ΞΌ) (s ∩ {T : PlaneTree | T.vertexCount = m}) * if m ≀ n then (walkLaw ΞΌ (n - m)) {0} else 0

Markov property at ΞΆ, the paper's form: P(T(𝐗) ∈ s, S_n = -1) = βˆ‘_{m β‰₯ 1} P(𝒯 ∈ s, |𝒯| = m) Ξ¨_{n-m}(0), with Ξ¨_{n-m}(0) = 0 for m > n (and the m = 0 term vanishes since no tree has 0 vertices).

Corollary cor:cyclicshift #

Corollary cor:cyclicshift in ℝβ‰₯0∞: P(G(𝒯^n_{U_n}) = 1) = Ξ¨_n(-1)⁻¹ E[1_{G(𝒯) = 1} Ξ¨_{n-|𝒯|}(0)], where Ξ¨_n(-1) = P(S_n = -1) and Ξ¨_{n-m}(0) = P(S_{n-m} = 0) for m ≀ n, 0 for m > n.

theorem PoissonDeclumping.Cyclic.uniformFringeLaw_real_eq (ΞΌ : PMF β„•) (n : β„•) (G : PlaneTree β†’ Prop) :
(uniformFringeLaw ΞΌ n).real {T : PlaneTree | G T} = (walkProb ΞΌ (↑n) (-1))⁻¹ * ∫ (T : PlaneTree), {T : PlaneTree | G T}.indicator (fun (T : PlaneTree) => walkProb ΞΌ (↑n - ↑T.vertexCount) 0) T βˆ‚PlaneTree.bienayme ΞΌ

Corollary cor:cyclicshift, exactly as stated, in ℝ: P(G(𝒯^n_{U_n}) = 1) = (1 / Ξ¨_n(-1)) E[1_{G(𝒯) = 1} Ξ¨_{n-|𝒯|}(0)], with U_n a uniform vertex of 𝒯^n independent of 𝒯^n, 𝒯 a ΞΌ-BienaymΓ© tree, Ξ¨_m(i) = P(S_m = i) and Ξ¨_m(i) = 0 for m < 0.

Corollary cor:cyclicshift, truncated version: P(G(𝒯^n_{U_n}) = 1, |𝒯^n_{U_n}| ≀ M) = P(I_1^{(M)}(X_1, …, X_n) = 1 | S_n = -1) = (1 / Ξ¨_n(-1)) E[1_{G(𝒯) = 1, |𝒯| ≀ M} Ξ¨_{n-|𝒯|}(0)].

Corollary cor:cyclicshift, bridge form: P(G(𝒯^n_{U_n}) = 1) = P(I_1^{(n)}(X_1, …, X_n) = 1 | S_n = -1), in ℝ.

U01, first part: expected count and uniform vertex #

markCount G T as the number of DFS indices i < |T| whose fringe tree is marked.

U01, first part (source lines 227–229). E[#{u ∈ 𝒯^n : G(𝒯^n_u) = 1}] = n P(G(𝒯^n_{U_n}) = 1), in ℝβ‰₯0∞.

U01, first part, in ℝ: E[#{u ∈ 𝒯^n : G(𝒯^n_u) = 1}] = n P(G(𝒯^n_{U_n}) = 1).

U05: marks forcing the size exclude nested pairs #

theorem PoissonDeclumping.Cyclic.pairProb_eq_zero_of_forces_size (ΞΌ : PMF β„•) (G : β„• β†’ PlaneTree β†’ Prop) (k : β„• β†’ β„•) (n : β„•) (hG : βˆ€ (Ο„ : PlaneTree), G (k n) Ο„ β†’ Ο„.vertexCount = k n) {β„“ : β„•} (hβ„“ : 1 ≀ β„“) :
pairProb ΞΌ G k n β„“ = 0

U05. If the mark G_{k_n} forces the size k_n (G_{k_n}(Ο„) = 1 β‡’ |Ο„| = k_n), then A_n(β„“) = 0 for every β„“ β‰₯ 1: a fringe subtree cannot contain a proper fringe subtree of the same size.