Lemma 2: Edge-to-Vertex Expansion #
Main Results #
edgeToVertexExpansion: For a finite, connecteds-regular graph with second-largest eigenvaluelam2, if|E| <= alpha|X1|then|Gamma(E)| >= beta|E|wherebeta = (sqrt(lam2^2 + 4s(s-lam2)alpha) - lam2) / (s(s-lam2)alpha).
The quadratic inverse gamma(at) #
The quadratic inverse: given at, solve at = g^2 + (lam2/s)g(1-g) for g.
Gives g(at) = (sqrt(lam2^2 + 4s(s-lam2)at) - lam2) / (2(s-lam2)).
Equations
Instances For
Discriminant positivity #
sqrt >= lam2 #
gammaOfAlpha is nonneg #
theorem
EdgeToVertexExpansion.gammaOfAlpha_nonneg
(s lam2 a : ℝ)
(hs : 0 < s)
(hsl : lam2 < s)
(ha : 0 ≤ a)
:
gammaOfAlpha at zero #
theorem
EdgeToVertexExpansion.gammaOfAlpha_zero
(s lam2 : ℝ)
(_hs : 0 < s)
(_hsl : lam2 < s)
(hlam_nn : 0 ≤ lam2)
:
Concavity: gamma(at) * alpha >= gamma(alpha) * at for at <= alpha #
Handshaking lemma #
theorem
EdgeToVertexExpansion.edgeFinset_eq_half_sn
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(s : ℕ)
(hreg : G.IsRegularOfDegree s)
:
Step 2: Alon-Chung implies |Gamma(E)| >= gamma(at) * |V| #
theorem
EdgeToVertexExpansion.incidentVertices_ge_gamma
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(s : ℕ)
(hs : 1 ≤ s)
(hreg : G.IsRegularOfDegree s)
(hcard : 2 ≤ Fintype.card V)
(lam2 : ℝ)
(hlam2 : lam2 = GraphExpansion.secondLargestEigenvalue G hcard)
(hlam2_lt_s : lam2 < ↑s)
(E : Finset (Sym2 V))
(hE_sub : E ⊆ G.edgeFinset)
(hE_ne : E.Nonempty)
:
↑(AlonChungContrapositive.incidentVertices E).card ≥ gammaOfAlpha (↑s) lam2 (↑E.card / ↑G.edgeFinset.card) * ↑(Fintype.card V)
Main theorem #
theorem
EdgeToVertexExpansion.edgeToVertexExpansion
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(s : ℕ)
(hs : 1 ≤ s)
(hreg : G.IsRegularOfDegree s)
(hcard : 2 ≤ Fintype.card V)
(lam2 : ℝ)
(hlam2 : lam2 = GraphExpansion.secondLargestEigenvalue G hcard)
(hlam2_lt_s : lam2 < ↑s)
(alpha : ℝ)
(halpha_pos : 0 < alpha)
(_halpha_le : alpha ≤ 1)
(E : Finset (Sym2 V))
(hE_sub : E ⊆ G.edgeFinset)
(hE_le : ↑E.card ≤ alpha * ↑G.edgeFinset.card)
: