Superposing two graphs, and expanderization #
Dinur's preprocessing turns an arbitrary regular constraint graph into one that is also an expander, by laying an expander over the same vertex set and taking the union of the two edge sets. This module builds that union and bounds its spectral gap.
The union of a graph G with a graph H — identified with G's vertices along
a bijection e — has label type G.D ⊕ H.D and degree G.deg + H.deg. Its
walk operator is the weighted average of the two:
step_U f = (G.deg • step_G f + H.deg • step_H (f ∘ e)) / (G.deg + H.deg)
so if H contracts mean-zero functions by lam, the union contracts them by
(G.deg + H.deg * lam) / (G.deg + H.deg) — strictly below one whenever lam is
— using nothing about G beyond sum_sq_step_le, that its own walk operator is
a contraction.
Staying square-root-free #
The triangle inequality looks unavailable in the squared-norm formulation, but
it is not needed. Expanding ‖aX + bY‖² leaves a cross term ⟨X, Y⟩, and
Cauchy–Schwarz bounds its square by ‖X‖² ‖Y‖² ≤ A · lam² A = (lam A)² —
whose square root, lam A, is rational in the data. So the cross term is
bounded with one application of le_of_sq_le_sq and no Real.sqrt ever
appears.
Main definitions #
RegGraph.unionRot— the rotation map of the unionRegGraph.union— the union graph
Main results #
RegGraph.deg_union,RegGraph.step_unionRegGraph.sum_sq_step_union_le— the combined contraction boundRegGraph.spectralBound_union— expanderization: laying an expander over any regular graph gives a spectral bound strictly below one
The rotation map of the union: reverse within G, or within H after
transporting along e.
Equations
Instances For
The combined contraction bound #
Expanderization, quantitatively. If H contracts mean-zero functions by
lam, then the union contracts them by the degree-weighted average of 1 and
lam.