noncomputable def
RandomWalks.stationaryDist
{V : Type u_1}
[Fintype V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(v : V)
:
Instances For
theorem
RandomWalks.stationaryDist_sum_eq_one
{V : Type u_1}
[Fintype V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(hpos : 0 < ∑ u : V, ↑(G.degree u))
:
noncomputable def
RandomWalks.walkMatrix
{V : Type u_1}
[Fintype V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
:
Instances For
noncomputable def
RandomWalks.stationaryVec
{V : Type u_1}
[Fintype V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
:
V → ℝ
Instances For
theorem
RandomWalks.adjMatrix_row_sum
{V : Type u_1}
[Fintype V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(k : V)
:
theorem
RandomWalks.degree_pos_of_adj
{V : Type u_1}
[Fintype V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
{k x : V}
(h : G.Adj k x)
:
theorem
RandomWalks.walkMatrix_stationaryVec_term
{V : Type u_1}
[Fintype V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(k x : V)
(S : ℝ)
:
theorem
RandomWalks.walkMatrix_mulVec_stationaryVec
{V : Type u_1}
[Fintype V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
:
theorem
RandomWalks.eigenspace_conj_eq
{R : Type u_1}
{M : Type u_2}
[CommRing R]
[AddCommGroup M]
[Module R M]
(e : M ≃ₗ[R] M)
(f : Module.End R M)
(μ : R)
:
theorem
RandomWalks.hasEigenvalue_conj_iff
{R : Type u_1}
{M : Type u_2}
[CommRing R]
[AddCommGroup M]
[Module R M]
(e : M ≃ₗ[R] M)
(f : Module.End R M)
(μ : R)
:
noncomputable def
RandomWalks.rwMatrixGen
{V : Type u_3}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
:
Instances For
noncomputable def
RandomWalks.normWalkMatrix
{V : Type u_3}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
:
Instances For
theorem
RandomWalks.normWalkMatrix_eq_conj_rwMatrixGen
{V : Type u_3}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
:
normWalkMatrix G = (Matrix.diagonal fun (v : V) => (√↑(G.degree v))⁻¹) * rwMatrixGen G * Matrix.diagonal fun (v : V) => √↑(G.degree v)
noncomputable def
RandomWalks.lazyRwMatrixGen
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
:
Instances For
noncomputable def
RandomWalks.normLazyWalkMatrix
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
:
Instances For
noncomputable def
RandomWalks.lazyRwMatrix
{V : Type u_1}
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(d : ℕ)
:
Instances For
theorem
RandomWalks.normLazyWalkMatrix_isHermitian
{V : Type u_1}
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
[Fintype V]
:
theorem
RandomWalks.lazy_rw_convergence_bound
{V : Type u_1}
[Fintype V]
[DecidableEq V]
[Nonempty V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(p₀ : V → ℝ)
(μ₂' : ℝ)
(hμ₂'_nn : 0 ≤ μ₂')
(hμ₂'_lt : μ₂' < 1)
(t : ℕ)
:
theorem
RandomWalks.lazy_rw_pointwise_convergence
{V : Type u_1}
[Fintype V]
[DecidableEq V]
[Nonempty V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(hpos : ∀ (v : V), 0 < G.degree v)
(μ₂' : ℝ)
(hμ₂'_nn : 0 ≤ μ₂')
(hμ₂'_lt : μ₂' < 1)
(h_spectral_bound : ∀ (i : V), ⋯.eigenvalues i ≤ μ₂' ∨ ⋯.eigenvalues i = 1)
(p₀ : V → ℝ)
(hp_sum : ∑ v : V, p₀ v = 1)
(hp_nn : ∀ (v : V), 0 ≤ p₀ v)
(t : ℕ)
(v : V)
:
theorem
RandomWalks.sqrtDeg_mul_sqrtDeg_inv
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(hpos : ∀ (v : V), 0 < G.degree v)
:
((Matrix.diagonal fun (v : V) => √↑(G.degree v)) * Matrix.diagonal fun (v : V) => (√↑(G.degree v))⁻¹) = 1
theorem
RandomWalks.sqrtDeg_inv_mul_sqrtDeg
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(hpos : ∀ (v : V), 0 < G.degree v)
:
((Matrix.diagonal fun (v : V) => (√↑(G.degree v))⁻¹) * Matrix.diagonal fun (v : V) => √↑(G.degree v)) = 1
noncomputable def
RandomWalks.sqrtDegEquiv
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(hpos : ∀ (v : V), 0 < G.degree v)
:
Instances For
theorem
RandomWalks.rwMatrixGen_eq_sqrt_mul_normWalkMatrix_mul_sqrt_inv
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(hpos : ∀ (v : V), 0 < G.degree v)
:
rwMatrixGen G = (Matrix.diagonal fun (v : V) => √↑(G.degree v)) * normWalkMatrix G * Matrix.diagonal fun (v : V) => (√↑(G.degree v))⁻¹
theorem
RandomWalks.rwMatrixGen_eq_conj_normWalkMatrix
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(hpos : ∀ (v : V), 0 < G.degree v)
:
theorem
RandomWalks.normWalkMatrix_rwMatrixGen_same_eigenvalues
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(hpos : ∀ (v : V), 0 < G.degree v)
(μ : ℝ)
:
theorem
RandomWalks.hasEigenvalue_conj_graph_iff
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(hpos : ∀ (v : V), 0 < G.degree v)
(μ : ℝ)
:
theorem
RandomWalks.expander_matching_contraction_ratio
{L : Type u_1}
{R : Type u_2}
[Fintype L]
[Fintype R]
[DecidableEq L]
[DecidableEq R]
(G : SimpleGraph (L ⊕ R))
[DecidableRel G.Adj]
{d : ℕ}
{α β : ℝ}
(hbip : G.IsBipartiteOn)
(hreg : G.IsRegularOfDegree d)
(hexp : G.IsBipartiteExpander α β)
(hd : 0 < ↑d)
(Si : Finset L)
(hSi : ↑Si.card ≤ α * ↑(Fintype.card L))
(hSi_pos : 0 < ↑Si.card)
(Si1_card : ℝ)
(hSi1 : Si1_card ≤ ↑Si.card - ↑(G.uniqueNeighbors Si).card / ↑d)
:
theorem
SimpleGraph.rw_convergence_conductance_bound
{V : Type u_1}
[Fintype V]
[DecidableEq V]
(G : SimpleGraph V)
[DecidableRel G.Adj]
(hconn : G.Connected)
(S : Finset V)
(t : ℕ)
(p₀ : V → ℝ)
(m : ℕ)
(hm : m = G.edgeFinset.card)
(x : ℝ)
(hx : x = ∑ w ∈ S, ↑(G.degree w))
(φ : ℝ)
(hφ : φ = ↑(G.setConductance S))
: