noncomputable def
AlgoLib.nG
{α : Type u_1}
(G : SimpleGraph α)
[Fintype ↑G.vertexSet]
[DecidableEq α]
[DecidablePred fun (x : Sym2 α) => x ∈ G.edgeSet]
:
Equations
- AlgoLib.nG G = ↑G.vertexFinset.card
Instances For
noncomputable def
AlgoLib.xS
{α : Type u_1}
(G : SimpleGraph α)
[Fintype ↑G.vertexSet]
[DecidableEq α]
[DecidablePred fun (x : Sym2 α) => x ∈ G.edgeSet]
(S : Finset α)
:
α → ℝ
Instances For
theorem
AlgoLib.xS_orth
{α : Type u_1}
(G : SimpleGraph α)
[Fintype ↑G.vertexSet]
[DecidableEq α]
[DecidablePred fun (x : Sym2 α) => x ∈ G.edgeSet]
(d : ℕ)
(S : Finset α)
(hS_nonempty : S.Nonempty)
(hS_subset : S ⊆ G.vertexFinset)
(h_reg : ∀ v ∈ G.vertexFinset, G.degree v = d)
:
have x := xS G S;
∑ v ∈ G.vertexFinset, ↑(G.degree v) * x v = 0
theorem
AlgoLib.lambda_le_rq
{α : Type u_1}
(G : SimpleGraph α)
[Fintype ↑G.vertexSet]
[DecidableEq α]
[DecidablePred fun (x : Sym2 α) => x ∈ G.edgeSet]
(S : Finset α)
(hS_nonempty : S.Nonempty)
(hS_size : 2 * S.card ≤ G.vertexFinset.card)
(hS_subset : S ⊆ G.vertexFinset)
(h_orth : ∑ v ∈ G.vertexFinset, ↑(G.degree v) * xS G S v = 0)
:
have x := xS G S;
lambda2 G ≤ G.rayleighQuotient x
noncomputable def
AlgoLib.edge_diff_sq
{α : Type u_1}
(G : SimpleGraph α)
[Fintype ↑G.vertexSet]
[DecidableEq α]
[DecidablePred fun (x : Sym2 α) => x ∈ G.edgeSet]
(x : α → ℝ)
:
Instances For
theorem
AlgoLib.num_eq
{α : Type u_1}
(G : SimpleGraph α)
[Fintype ↑G.vertexSet]
[DecidableEq α]
[DecidablePred fun (x : Sym2 α) => x ∈ G.edgeSet]
(S : Finset α)
(hS_nonempty : S.Nonempty)
:
have n := nG G;
have x := xS G S;
have dS := Cut G S;
have edge_diff := edge_diff_sq G x;
∑ e ∈ G.edgeFinset, edge_diff e = n ^ 2 * ↑dS.card
theorem
AlgoLib.denom_eq
{α : Type u_1}
(G : SimpleGraph α)
[Fintype ↑G.vertexSet]
[DecidableEq α]
[DecidablePred fun (x : Sym2 α) => x ∈ G.edgeSet]
(d : ℕ)
(S : Finset α)
(hS_size : 2 * S.card ≤ G.vertexFinset.card)
(hS_subset : S ⊆ G.vertexFinset)
:
theorem
AlgoLib.rq_eq
{α : Type u_1}
(G : SimpleGraph α)
[Fintype ↑G.vertexSet]
[DecidableEq α]
[DecidablePred fun (x : Sym2 α) => x ∈ G.edgeSet]
(d : ℕ)
(S : Finset α)
(hS_nonempty : S.Nonempty)
(hS_size : 2 * S.card ≤ G.vertexFinset.card)
(hS_subset : S ⊆ G.vertexFinset)
(h_reg : ∀ v ∈ G.vertexFinset, G.degree v = d)
:
theorem
AlgoLib.rq_le_two_phi
{α : Type u_1}
(G : SimpleGraph α)
[Fintype ↑G.vertexSet]
[DecidableEq α]
[DecidablePred fun (x : Sym2 α) => x ∈ G.edgeSet]
(d : ℕ)
(S : Finset α)
(hS_nonempty : S.Nonempty)
(hS_size : 2 * S.card ≤ G.vertexFinset.card)
(hS_subset : S ⊆ G.vertexFinset)
(h_reg : ∀ v ∈ G.vertexFinset, G.degree v = d)
(hd : d > 0)
:
have x := xS G S;
G.rayleighQuotient x ≤ 2 * edgeExpansion G d S
theorem
AlgoLib.cheeger_easy_direction
{α : Type u_1}
(G : SimpleGraph α)
[Fintype ↑G.vertexSet]
[DecidableEq α]
[DecidablePred fun (x : Sym2 α) => x ∈ G.edgeSet]
(d : ℕ)
(S : Finset α)
(hS_nonempty : S.Nonempty)
(hS_size : 2 * S.card ≤ G.vertexFinset.card)
(hS_subset : S ⊆ G.vertexFinset)
(h_reg : ∀ v ∈ G.vertexFinset, G.degree v = d)
(hd : d > 0)
: