11.1. 3. The extension by component split
Units and conventions are those of section 0 of the contact page: entropies and mutual informations are in
nats, conditional sums range over positive-probability conditioning events, and 0\ln0=0. A finite latent L of a
law p, its budgets M_L=I(X;Y\mid L) and B_L=I(L;X\mid Y)+I(L;Y\mid X), the stochastic optimum
\tau(p)=\inf_L(M_L+B_L), the score D_p(f) of a deterministic map f and the deterministic optimum
T(p)=\min_fD_p(f) are as in (D3). All alphabets are finite and nonempty; X,Y and \mathcal X,\mathcal Y
denote the same coordinate alphabets. Every law on this page is a law on the fixed rectangle \mathcal X\times\mathcal Y.
Write S=\{z:p(z)>0\}. This set is nonempty. Connectedness of the support, as a bipartite graph between the active
rows and the active columns of S, is defined on the setup page, together with its Lean
form stoch_to_det.IsConnected. On this page K is the component label, not the replica budget K of the
replica page, and C is any nonnegative constant.
Extension by component split. Given some
C\ge0withT(q)\le C\tau(q)for every lawqof connected
support, the same inequality holds for every finite law.
Splitting at the common component label preserves the two leakage terms and isolates one nonnegative entropy term in the
mutual information. This gives an additive proof for every nonnegative coefficient, with no positivity assumption on the
resulting value of \tau.
-
stoch_to_det.ComponentDecomp[complete] -
stoch_to_det.exists_componentDecomp[complete]
Lemma E3.1 (component laws and their common label). For every probability law p on finite nonempty alphabets
\mathcal X\times\mathcal Y, let S=\mathrm{supp}\,p and let (S_k)_{k\in\mathcal K} be its connected components
in the bipartite row-column graph. Put
\mathcal X_k=\{x:\exists y\ (x,y)\in S_k\},\qquad
\mathcal Y_k=\{y:\exists x\ (x,y)\in S_k\},\qquad
\rho_k=\sum_{z\in S_k}p(z)>0,
\qquad \text{(E3.A)}
and define \bar p_k on \mathcal X\times\mathcal Y by \bar p_k(z)=p(z)/\rho_k on S_k and zero elsewhere.
Then \bar p_k is a probability law whose support S_k is connected. If Z=(X,Y) has law p and K=k when
Z\in S_k, then K is a function of X alone and of Y alone, almost surely.
Lean code for Theorem11.1.1●2 declarations
Associated Lean declarations
-
stoch_to_det.ComponentDecomp[complete]
-
stoch_to_det.exists_componentDecomp[complete]
-
stoch_to_det.ComponentDecomp[complete] -
stoch_to_det.exists_componentDecomp[complete]
-
structuredefined in NaturalLatents/Upstream/Connected.leancomplete
structure stoch_to_det.ComponentDecomp.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] (p : α × β → ℝ) : Type (max (max 1 u_1) u_2)
structure stoch_to_det.ComponentDecomp.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] (p : α × β → ℝ) : Type (max (max 1 u_1) u_2)
A **component decomposition** of `p`: a finite family of laws `p i` with weights `a i`, whose supports are the connected components of `support p`. The two `hcol`/`hrow` fields encode the key observation: components occupy disjoint columns and disjoint rows, so the component index `K` is a function of `X` alone *and* of `Y` alone. That is what makes the lower bound on `tau` work.
Fields
κ : Type
Index type of the components.
fin : Fintype self.κ
Finiteness of the index type.
dec : DecidableEq self.κ
Decidable equality on the index type.
wt : self.κ → ℝ
Component masses `αᵢ`.
part : self.κ → α × β → ℝ
Conditional laws `p⁽ⁱ⁾`.
wt_isPMF : stoch_to_det.IsPMF self.wt
The masses form a law.
part_isPMF : ∀ (i : self.κ), stoch_to_det.IsPMF (self.part i)
Each part is a law.
mixture : ∀ (z : α × β), ∑ i, self.wt i * self.part i z = p z
The parts reconstruct `p`.
part_connected : ∀ (i : self.κ), stoch_to_det.IsConnected (stoch_to_det.support (self.part i))
Each part has connected support.
hcol : ∀ (i j : self.κ) (z z' : α × β), z ∈ stoch_to_det.support (self.part i) → z' ∈ stoch_to_det.support (self.part j) → z.1 = z'.1 → i = j
Distinct components use disjoint columns.
hrow : ∀ (i j : self.κ) (z z' : α × β), z ∈ stoch_to_det.support (self.part i) → z' ∈ stoch_to_det.support (self.part j) → z.2 = z'.2 → i = j
Distinct components use disjoint rows.
-
theoremdefined in NaturalLatents/Upstream/Connected.leancomplete
theorem stoch_to_det.exists_componentDecomp.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) : Nonempty (stoch_to_det.ComponentDecomp p)
theorem stoch_to_det.exists_componentDecomp.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) : Nonempty (stoch_to_det.ComponentDecomp p)
Every finite law has a component decomposition.
Lean proves: every finite probability law admits a ComponentDecomp whose nonnegative weights form a probability vector, whose parts are connected probability laws reconstructing p, and whose distinct parts share neither rows nor columns.
Split the row-column support graph into components and normalize each positive component mass; either coordinate determines its component label. See the page section.
Lean: stoch_to_det.ComponentDecomp and stoch_to_det.exists_componentDecomp
(NaturalLatents/Upstream/Connected.lean). A component decomposition of p is a finite family of weights forming a
probability vector and of probability laws on \mathcal X\times\mathcal Y with connected supports whose mixture is
p, such that support cells of two distinct parts share neither a row nor a column; its parts are the laws
\bar p_k. The structure allows a zero weight, although the construction in exists_componentDecomp makes every
weight positive, and the label K is the private function componentIndex.
Lemma E3.2 (the three conditional mutual informations split). For every p and component label K of
Lemma E3.1, and every finite latent L of p, let L^{(k)} denote the same finite label under the conditional
joint law given K=k. By (E3.B) it is a finite latent of \bar p_k. Write \mathrm{cost}_p(L)=M_L+B_L. Then
\mathrm{cost}_p(L)
=H_p(K\mid L)+\sum_k\rho_k\,\mathrm{cost}_{\bar p_k}(L^{(k)}).
\qquad \text{(E3.C)}
Lean code for Theorem11.1.2●2 theorems
Associated Lean declarations
-
theoremdefined in NaturalLatents/Upstream/Connected.leancomplete
theorem stoch_to_det.restrict_score_gap✝.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) (D : stoch_to_det.ComponentDecomp p) (V : stoch_to_det.Latent p) : ∑ i, D.wt i * (stoch_to_det.restrictLatent✝ D V i).score = V.score - ∑ v, V.prior v * stoch_to_det.H (stoch_to_det.fiberWeight✝ D V v)
theorem stoch_to_det.restrict_score_gap✝.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) (D : stoch_to_det.ComponentDecomp p) (V : stoch_to_det.Latent p) : ∑ i, D.wt i * (stoch_to_det.restrictLatent✝ D V i).score = V.score - ∑ v, V.prior v * stoch_to_det.H (stoch_to_det.fiberWeight✝ D V v)
-
theoremdefined in NaturalLatents/Upstream/Connected.leancomplete
theorem stoch_to_det.glueLatent_score✝.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) (D : stoch_to_det.ComponentDecomp p) (V : (i : D.κ) → stoch_to_det.Latent (D.part i)) : (stoch_to_det.glueLatent✝ D V).score = ∑ i, D.wt i * (V i).score
theorem stoch_to_det.glueLatent_score✝.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) (D : stoch_to_det.ComponentDecomp p) (V : (i : D.κ) → stoch_to_det.Latent (D.part i)) : (stoch_to_det.glueLatent✝ D V).score = ∑ i, D.wt i * (V i).score
Lean proves: \sum_k\rho_k\,\mathrm{score}(L^{(k)})=\mathrm{score}(L)-\sum_i\pi_iH(\mathrm{fiberWeight}_i) and \mathrm{score}(\mathrm{glueLatent})=\sum_k\rho_k\,\mathrm{score}(L_k) in bits, through the two private declarations in Connected.lean.
Apply the entropy chain rule using the component label’s determinism from each coordinate to isolate its conditional entropy. See the page section.
Lean: there is no public statement of (E3.C). The private lemma restrict_score_gap
(NaturalLatents/Upstream/Connected.lean) states, for every latent of p, that the weighted sum of the scores of its
conditional latents on the parts equals its score minus H_p(K\mid L), written as the prior average of the entropies
of the conditional laws of K given each label; the private lemma glueLatent_score states the case of a latent glued
from latents of the parts, where H_p(K\mid L)=0. Both are in bits and are proved from the score identity
stoch_to_det.Latent.score_eq (NaturalLatents/Upstream/Envelope.lean) and the split of the entropies of p over the
parts (the private Psi_eq_components and Phi_fiber_decomp), not from the chain rule. On a part of weight zero the
private restrictLatent uses the constant latent.
-
stoch_to_det.sum_components_tau_le[complete] -
stoch_to_det.T_le_sum_components[complete] -
stoch_to_det.exists_tau_optimal_latent[complete] -
stoch_to_det.exists_T_optimal_latent[complete]
Lemma E3.3 (the two component inequalities). For every finite law p with component laws and weights as in
Lemma E3.1,
\sum_k\rho_k\tau(\bar p_k)\le\tau(p),\qquad
T(p)\le\sum_k\rho_k T(\bar p_k).
\qquad \text{(E3.F)}
Lean code for Theorem11.1.3●4 theorems
Associated Lean declarations
-
stoch_to_det.sum_components_tau_le[complete]
-
stoch_to_det.T_le_sum_components[complete]
-
stoch_to_det.exists_tau_optimal_latent[complete]
-
stoch_to_det.exists_T_optimal_latent[complete]
-
stoch_to_det.sum_components_tau_le[complete] -
stoch_to_det.T_le_sum_components[complete] -
stoch_to_det.exists_tau_optimal_latent[complete] -
stoch_to_det.exists_T_optimal_latent[complete]
-
theoremdefined in NaturalLatents/Upstream/Connected.leancomplete
theorem stoch_to_det.sum_components_tau_le.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) (D : stoch_to_det.ComponentDecomp p) : ∑ i, D.wt i * stoch_to_det.tau (D.part i) ≤ stoch_to_det.tau p
theorem stoch_to_det.sum_components_tau_le.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) (D : stoch_to_det.ComponentDecomp p) : ∑ i, D.wt i * stoch_to_det.tau (D.part i) ≤ stoch_to_det.tau p
The weighted component optima give a lower bound on `tau`.
-
theoremdefined in NaturalLatents/Upstream/Connected.leancomplete
theorem stoch_to_det.T_le_sum_components.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) (D : stoch_to_det.ComponentDecomp p) : stoch_to_det.T p ≤ ∑ i, D.wt i * stoch_to_det.T (D.part i)
theorem stoch_to_det.T_le_sum_components.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) (D : stoch_to_det.ComponentDecomp p) : stoch_to_det.T p ≤ ∑ i, D.wt i * stoch_to_det.T (D.part i)
Gluing deterministic component optima gives an upper bound on `T`.
-
theoremdefined in NaturalLatents/Upstream/Envelope.leancomplete
theorem stoch_to_det.exists_tau_optimal_latent.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) : ∃ V, V.score = stoch_to_det.tau p
theorem stoch_to_det.exists_tau_optimal_latent.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) : ∃ V, V.score = stoch_to_det.tau p
Attainment: the infimum defining `τ` is attained by a finite latent. Only finiteness of the attaining latent is used downstream; a sharper `|𝒮| + 1` cardinality bound is not needed.
-
theoremdefined in NaturalLatents/Upstream/Envelope.leancomplete
theorem stoch_to_det.exists_T_optimal_latent.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) : ∃ V, V.IsDet ∧ V.score = stoch_to_det.T p
theorem stoch_to_det.exists_T_optimal_latent.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] {p : α × β → ℝ} (hp : stoch_to_det.IsPMF p) : ∃ V, V.IsDet ∧ V.score = stoch_to_det.T p
Deterministic partition form: the same statement for `T` over deterministic latents.
Lean proves: the same inequality in bits; it is invariant under the common factor \ln 2.
The page and the Lean prove the same two directions, and the extension uses only these.
Restrict each stochastic latent to the components and glue minimizing deterministic codes with their component tags. See the page section.
Lean: stoch_to_det.sum_components_tau_le and stoch_to_det.T_le_sum_components
(NaturalLatents/Upstream/Connected.lean), in bits, for a component decomposition D of p:
theorem sum_components_tau_le {p : α × β → ℝ} (hp : IsPMF p) (D : ComponentDecomp p) :
(∑ i, D.wt i * tau (D.part i)) ≤ tau p
theorem T_le_sum_components {p : α × β → ℝ} (hp : IsPMF p) (D : ComponentDecomp p) :
T p ≤ ∑ i, D.wt i * T (D.part i)
The first restricts one attaining latent of p, given by stoch_to_det.exists_tau_optimal_latent
(NaturalLatents/Upstream/Envelope.lean), rather than every latent, through the private restrict_score_le. In Lean
T is an infimum over deterministic latents, and the second glues attaining deterministic latents of the parts, given
by stoch_to_det.exists_T_optimal_latent, with the private glueLatent and glueLatent_isDet; the glued labels are
pairs of a part and a label of that part.
-
NaturalLatents.General.extension_of_connected[complete] -
stoch_to_det.reduce_to_connected[complete]
Lemma E3.4 (the extension by component split). Fix finite nonempty alphabets \mathcal X,\mathcal Y and a real
number C\ge0. Suppose T(q)\le C\tau(q) for every probability law q on these fixed alphabets whose support is
connected. Then T(p)\le C\tau(p) for every probability law p on the same alphabets, including those with
\tau(p)=0.
Lean code for Theorem11.1.4●2 theorems
Associated Lean declarations
-
NaturalLatents.General.extension_of_connected[complete]
-
stoch_to_det.reduce_to_connected[complete]
-
NaturalLatents.General.extension_of_connected[complete] -
stoch_to_det.reduce_to_connected[complete]
-
theoremdefined in NaturalLatents/General/Extension.leancomplete
theorem NaturalLatents.General.extension_of_connected {X Y : Type} [Fintype X] [Fintype Y] [DecidableEq X] [DecidableEq Y] (C : ℝ) (hC : 0 ≤ C) (hconnected : ∀ (q : NaturalLatents.General.Law X Y), stoch_to_det.IsPMF q → stoch_to_det.IsConnected (stoch_to_det.support q) → stoch_to_det.T q ≤ C * stoch_to_det.tau q) {p : NaturalLatents.General.Law X Y} (hp : stoch_to_det.IsPMF p) : stoch_to_det.T p ≤ C * stoch_to_det.tau p
theorem NaturalLatents.General.extension_of_connected {X Y : Type} [Fintype X] [Fintype Y] [DecidableEq X] [DecidableEq Y] (C : ℝ) (hC : 0 ≤ C) (hconnected : ∀ (q : NaturalLatents.General.Law X Y), stoch_to_det.IsPMF q → stoch_to_det.IsConnected (stoch_to_det.support q) → stoch_to_det.T q ≤ C * stoch_to_det.tau q) {p : NaturalLatents.General.Law X Y} (hp : stoch_to_det.IsPMF p) : stoch_to_det.T p ≤ C * stoch_to_det.tau p
For `0 ≤ C`, a connected optimum bound in bits extends to every probability law.
-
theoremdefined in NaturalLatents/Upstream/Connected.leancomplete
theorem stoch_to_det.reduce_to_connected.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] (C : ℝ) (hC : 0 ≤ C) (h : ∀ (q : α × β → ℝ), stoch_to_det.IsPMF q → stoch_to_det.IsConnected (stoch_to_det.support q) → stoch_to_det.T q ≤ C * stoch_to_det.tau q) (q : α × β → ℝ) : stoch_to_det.IsPMF q → stoch_to_det.T q ≤ C * stoch_to_det.tau q
theorem stoch_to_det.reduce_to_connected.{u_1, u_2} {α : Type u_1} {β : Type u_2} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] (C : ℝ) (hC : 0 ≤ C) (h : ∀ (q : α × β → ℝ), stoch_to_det.IsPMF q → stoch_to_det.IsConnected (stoch_to_det.support q) → stoch_to_det.T q ≤ C * stoch_to_det.tau q) (q : α × β → ℝ) : stoch_to_det.IsPMF q → stoch_to_det.T q ≤ C * stoch_to_det.tau q
Reduction consequence used by the table bound. For `0 ≤ C`, if `T ≤ C τ` holds for every finite law with connected support, it holds for every finite law.
Lean proves: the same inequality in bits; it is invariant under the common factor \ln 2.
Chain the two component inequalities with the connected-support bound and the nonnegativity of the constant. See the page section.
Lean: NaturalLatents.General.extension_of_connected (NaturalLatents/General/Extension.lean), in bits, which is
stoch_to_det.reduce_to_connected (NaturalLatents/Upstream/Connected.lean) applied to laws Law X Y:
theorem extension_of_connected (C : ℝ) (hC : 0 ≤ C)
(hconnected : ∀ (q : Law X Y), stoch_to_det.IsPMF q →
stoch_to_det.IsConnected (stoch_to_det.support q) →
stoch_to_det.T q ≤ C * stoch_to_det.tau q)
{p : Law X Y} (hp : stoch_to_det.IsPMF p) :
stoch_to_det.T p ≤ C * stoch_to_det.tau p
theorem reduce_to_connected (C : ℝ) (hC : 0 ≤ C)
(h : ∀ q : α × β → ℝ, IsPMF q → IsConnected (support q) → T q ≤ C * tau q) :
∀ q : α × β → ℝ, IsPMF q → T q ≤ C * tau q
reduce_to_connected proves the chain (E3.J) from T_le_sum_components and sum_components_tau_le, using hC in the
last step exactly as the page does. NaturalLatents.T_le_c_mul_tau (NaturalLatents/Main.lean) applies
extension_of_connected, after bits_of_nats (NaturalLatents/General/Nats.lean) converts the connected bound to bits,
with C = c, the constant NaturalLatents.c := 13999 / 2000, and its nonnegativity
c_nonneg.