Size-weighted energy of a vertex partition #
For a finite simple graph G on V with n = |V| and a partition P of the vertex set, the
size-weighted energy is
G.weightedEnergy P = ∑ A ∈ P, ∑ B ∈ P, (|A||B| / n²) · d_G(A, B)²,
where d_G = SimpleGraph.edgeDensity. It is the mean square of the block-average step function
(x, y) ↦ d_G(P.part x, P.part y) (SimpleGraph.weightedEnergy_eq_sum_part).
Two conventions are deliberate. All ordered pairs of parts are summed, including the diagonal
blocks A = B, and d_G(A, A) uses the denominator |A|² (ordered pairs, loops counted as
non-edges), not |A|(|A| - 1). Consequently the energy is not Mathlib's
Finpartition.energy, which averages over off-diagonal pairs of parts without size weights and
is not monotone under arbitrary refinement.
The weighted energy is monotone under arbitrary refinement, with an exact defect: for Q ≤ P, the
weighted mean square deviation between the densities of fine blocks and of their coarse parent
blocks is the energy gap (SimpleGraph.weightedDensityDeviation_sq). By weighted Cauchy–Schwarz,
an energy gap of at most ε bounds the weighted mean absolute deviation by √ε
(SimpleGraph.weightedDensityDeviation_abs_le). Neither statement needs equitability or
regularity; these are the energy-increment inputs of weak and strong regularity arguments.
Main results #
SimpleGraph.weightedEnergy: the size-weighted energy, withweightedEnergy_nonnegandweightedEnergy_le_one.SimpleGraph.weightedEnergy_eq_sum_part: the energy is the mean square of the block-average step function.SimpleGraph.weightedEnergy_comap_symm: the energy is invariant under relabelling the vertices.SimpleGraph.weightedDensityDeviation_sq: the refinement defect identity.SimpleGraph.weightedEnergy_mono_of_refines: refining a partition does not decrease energy.SimpleGraph.weightedDensityDeviation_abs_le: the absolute-deviation bound from an energy gap.SimpleGraph.sum_sum_abs_edgeDensity_part_sub_le: the same bound summed over pairs of vertices.
References #
- L. Lovász, B. Szegedy, Szemerédi's Lemma for the Analyst, GAFA 17 (2007).
- Y. Zhao, Graph Theory and Additive Combinatorics (2023), ch. 2.
- The size-weighted energy and its refinement monotonicity also appear, for directed relations,
as
energyandenergy_monoin the Lean librarycameronfreer/regularity-lemmata(Partition/Energy.lean).
The size-weighted energy of a partition P of the vertices of G:
∑ A ∈ P, ∑ B ∈ P, (|A||B| / |V|²) · d_G(A, B)². It sums over all ordered pairs of parts,
including the diagonal blocks A = B, where d_G(A, A) has denominator |A|². Unlike Mathlib's
Finpartition.energy, it is monotone under arbitrary refinement
(SimpleGraph.weightedEnergy_mono_of_refines).
Instances For
Unfolding lemma for SimpleGraph.weightedEnergy.
The weighted energy is nonnegative.
The weighted energy is at most one, since edge densities lie in [0, 1] and the block
weights sum to at most one.
The weighted energy is the mean square of the block-average step function
(x, y) ↦ d_G(P.part x, P.part y) over all ordered pairs of vertices, diagonal included.
The weighted energy is invariant under relabelling. Relabel the vertices along e: the
graph becomes G.comap e.symm and the partition becomes the pullback of P along e.symm. The
size-weighted energy is unchanged.
Refinement defect identity. For a refinement Q ≤ P, the size-weighted mean square
deviation of the fine block densities from the densities of their coarse parent blocks equals
the energy gap. All ordered pairs of fine parts are summed, diagonal blocks included; no
equitability or regularity is assumed, and on the empty host both sides vanish.
Monotonicity under refinement. If P refines Q (P ≤ Q), then the energy of P is at
least that of Q.
Energy gap controls absolute deviation. For a refinement Q ≤ P whose energy gap is at
most ε, the size-weighted mean absolute deviation of the fine block densities from their
parent densities is at most √ε. This is weighted Cauchy–Schwarz applied to
SimpleGraph.weightedDensityDeviation_sq, using that the block weights sum to at most one.
Summed over all ordered pairs of vertices, the edge densities between the parts through them
change by at most √ε * (card V) ^ 2 from a refinement Q ≤ P to P whose energy gap is at
most ε. This is SimpleGraph.weightedDensityDeviation_abs_le with each pair of fine parts
counted once for each pair of vertices in it.