Contraction through bounded vertex fibers #
Represent the vertices of a graph by occupied slots in W × I, with an executable partial
inverse. Contract each fiber to its vertex in W, moving the slot into the edge label. Empty
slots carry self-loops. The new degree is |I| times the original degree, and no enumeration or
choice is used by the rotation program.
When every fiber is inhabited, the contraction retains edge expansion. Applying the existing
lazy Cheeger bound gives a spectral gap depending only on |I| and the original gap. This is
the size-adjustment step needed when a constructive expander tower supplies only selected
vertex counts. Quotient/remainder indexing also contracts Fin m to Fin n whenever
n ≤ m ≤ k*n. Numbering the tower's vertices and certifying uniform efficiency remain separate.
Main definitions #
Cslib.RotationMap.contractDart: move the slot of a represented vertex into its edge label.Cslib.RotationMap.contractRot: the functional rotation program.Cslib.RotationMap.contract: contraction with self-loops in unoccupied slots.Cslib.RotationMap.finSlotEncode,Cslib.RotationMap.finSlotDecode: executable indexing.Cslib.RotationMap.contractFin: contraction of an indexed graph using those maps.
Main results #
Cslib.RotationMap.card_interedges_le_contract: original crossing darts survive contraction.Cslib.RotationMap.le_card_interedges_compl_contract: inhabited fibers retain edge expansion.Cslib.RotationMap.spectralExpansion_contract_lazy_le: laziness gives a spectral gap with loss depending only on the number of slots.Cslib.RotationMap.spectralExpansion_contractFin_lazy_le: the indexed specialization.
References #
The spectral consequence uses the lazy Cheeger inequality from S. Hoory, N. Linial, A. Wigderson, Expander graphs and their applications.
An occupied dart executes the original rotation and retains both return labels.
Contract the occupied slots over each vertex, completing the degree with self-loops.
Instances For
The rotation map of contract encode decode h G decodes the slot, rotates in G, and
re-encodes the resulting vertex, leaving an unoccupied slot as a self-loop.
On an occupied slot contractDart encode p, the rotation map of contract encode decode h G
rotates p in G and re-encodes the resulting dart.
The neighbor of an occupied slot is the image of its original neighbor.
Every original edge crossing between lifted sets gives a distinct edge of the contraction. The inequality also permits loops arising from unused slots when the two sets overlap.
If each new vertex has an original representative, contraction retains the original unnormalized edge-expansion lower bound.
Contracting inhabited fibers with at most |I| slots and then making the walk lazy gives
spectral expansion at most 1 - (1 - λ(G))² / (16 |I|²).
Quotient/remainder indexing and a checked multiply/add are partial inverses.
Contract an indexed graph from m vertices to n vertices, using k slots per vertex.
Instances For
An indexed graph with n ≤ m ≤ k*n contracts to n ≥ 2 vertices. After adding laziness,
the gap bound depends on k, not on m or n, and is positive when the original gap is.