Documentation

Atlas.AnAlgorithmistsToolkit.code.Expanders

@[reducible, inline]
abbrev Expanders.IsDRegular {V : Type u_1} (G : SimpleGraph V) [G.LocallyFinite] (d : ) :
Instances For
    noncomputable def Expanders.indicatorVec {V : Type u_1} [DecidableEq V] (S : Finset V) :
    V
    Instances For
      Instances For
        Instances For
          noncomputable def SimpleGraph.edgeCountBetween {V : Type u_1} (G : SimpleGraph V) [DecidableRel G.Adj] (S T : Finset V) :
          Instances For
            noncomputable def SimpleGraph.adjEigenvalues {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] :
            Instances For
              noncomputable def SimpleGraph.secondLargestAdjEigenvalue {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] (hcard : Fintype.card V 2) :
              Instances For
                theorem SimpleGraph.expander_mixing_lemma {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] {d : } (hd : G.IsRegularOfDegree d) (hcard : Fintype.card V 2) (S T : Finset V) :
                |(G.edgeCountBetween S T) - d * S.card * T.card / (Fintype.card V)| G.secondLargestAdjEigenvalue hcard / (Fintype.card V) * (S.card * ↑(Fintype.card V - S.card) * (T.card * ↑(Fintype.card V - T.card)))
                theorem SimpleGraph.expander_vertex_expansion_bound {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] {d : } (hd : G.IsRegularOfDegree d) (hcard : Fintype.card V 2) (hd_pos : d > 0) (X : Finset V) (hX : X.Nonempty) (hmu : G.secondLargestAdjEigenvalue hcard ^ 2 + (d ^ 2 - G.secondLargestAdjEigenvalue hcard ^ 2) * X.card / (Fintype.card V) > 0) :
                (G.setNeighborFinset X).card d ^ 2 * X.card / (G.secondLargestAdjEigenvalue hcard ^ 2 + (d ^ 2 - G.secondLargestAdjEigenvalue hcard ^ 2) * X.card / (Fintype.card V))
                noncomputable def BipartiteMatching.partialMatchingsOfSize (n : ) (adj : Fin nFin nBool) (k : ) :
                Instances For
                  def BipartiteMatching.HasMinDegree (n : ) (adj : Fin nFin nBool) (d : ) :
                  Instances For
                    theorem BipartiteMatching.matching_ratio_bound (n : ) (hn : 0 < n) (adj : Fin nFin nBool) (hdeg : HasMinDegree n adj ((n + 1) / 2)) (k : ) (hk : 1 k) (hk' : k n) :
                    structure SpectralExpanders.GraphFamily :
                    Type (u_1 + 1)
                    Instances For
                      noncomputable def SpectralExpanders.GraphFamily.setConductanceAt (F : GraphFamily) (n : ) (S : Finset (F.V n)) :
                      Instances For
                        Instances For
                          def SimpleGraph.bipartiteNeighborFinset {L : Type u_1} {R : Type u_2} [Fintype R] (G : SimpleGraph (L R)) [DecidableRel G.Adj] (S : Finset L) :
                          Instances For
                            def SimpleGraph.IsBipartiteExpander {L : Type u_1} {R : Type u_2} [Fintype L] [Fintype R] (G : SimpleGraph (L R)) [DecidableRel G.Adj] (α β : ) :
                            Instances For
                              theorem ExpanderDiameter.smul_matrix_pow {V : Type u_1} [Fintype V] [DecidableEq V] (c : ) (A : Matrix V V ) (n : ) :
                              (c A) ^ n = c ^ n A ^ n
                              theorem ExpanderDiameter.polynomial_diameter_bound {V : Type u_1} [Fintype V] [DecidableEq V] {d : } (G : SimpleGraph V) [DecidableRel G.Adj] (_hG : G.IsRegularOfDegree d) (_hd : 0 < d) (p : Polynomial ) {k : } (hp : p.natDegree k) (M : Matrix V V ) (hM : M = (1 / d) SimpleGraph.adjMatrix G) (h_pos : ∀ (u v : V), 0 < (Polynomial.aeval M) p u v) :
                              G.diam k
                              theorem ExpanderDiameter.conjStarAlgAut_diagonal_entry_eq {m : Type u_2} [Fintype m] [DecidableEq m] (u : (Matrix.unitaryGroup m )) (d : m) (a b : m) :
                              ((Unitary.conjStarAlgAut (Matrix m m )) u) (Matrix.diagonal d) a b = i : m, d i * u a i * u b i
                              theorem ExpanderDiameter.aeval_hermitian_entry {m : Type u_2} [Fintype m] [DecidableEq m] (M : Matrix m m ) (hM : M.IsHermitian) (p : Polynomial ) (a b : m) :
                              (Polynomial.aeval M) p a b = i : m, Polynomial.eval (hM.eigenvalues i) p * hM.eigenvectorUnitary a i * hM.eigenvectorUnitary b i
                              theorem ExpanderDiameter.unitary_row_sq_sum_eq_one {m : Type u_2} [Fintype m] [DecidableEq m] (u : (Matrix.unitaryGroup m )) (a : m) :
                              k : m, u a k ^ 2 = 1
                              theorem ExpanderDiameter.walk_matrix_mulVec_ones {n : } (G : SimpleGraph (Fin n)) [DecidableRel G.Adj] {d : } (hd : 0 < d) (hreg : G.IsRegularOfDegree d) (M : Matrix (Fin n) (Fin n) ) (hM : M = (1 / d) SimpleGraph.adjMatrix G) :
                              theorem ExpanderDiameter.walk_matrix_eigenvalues₀_zero_eq_one {n : } (hn : 0 < n) (G : SimpleGraph (Fin n)) [DecidableRel G.Adj] {d : } (hd : 0 < d) (hreg : G.IsRegularOfDegree d) (M : Matrix (Fin n) (Fin n) ) (hM : M = (1 / d) SimpleGraph.adjMatrix G) (hM_sym : M.IsHermitian) :
                              hM_sym.eigenvalues₀ 0, = 1
                              theorem ExpanderDiameter.poly_degree_bounds_diameter {n : } (hn : 0 < n) (G : SimpleGraph (Fin n)) [DecidableRel G.Adj] {d : } (hd : 0 < d) (hreg : G.IsRegularOfDegree d) (M : Matrix (Fin n) (Fin n) ) (hM : M = (1 / d) SimpleGraph.adjMatrix G) (hM_sym : M.IsHermitian) (p : Polynomial ) (k : ) (hp_deg : p.natDegree k) (hp_one : Polynomial.eval 1 p = 1) (hp_small : ∀ (i : Fin (Fintype.card (Fin n))), i 1|Polynomial.eval (hM_sym.eigenvalues₀ i) p| < 1 / n) :
                              G.diam k
                              theorem ExpanderDiameter.one_sub_lt_exp_neg_of_pos {lam : } (hlam_pos : 0 < lam) :
                              1 - lam < Real.exp (-lam)
                              theorem ExpanderDiameter.spectral_gap_rpow_bound {lam : } (hlam_pos : 0 < lam) (hlam_le : lam 1) {n : } (hn : 2 n) :
                              (1 - lam) ^ (Real.log n / lam) < 1 / n
                              theorem ExpanderDiameter.spectral_gap_nat_pow_bound {lam : } (hlam_pos : 0 < lam) (hlam_le : lam 1) {n : } (hn : 2 n) :
                              (1 - lam) ^ Real.log n / lam⌉₊ < 1 / n
                              theorem ExpanderDiameter.diameter_spectral_gap_bound {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] {d : } (_hd : 0 < d) (_hreg : G.IsRegularOfDegree d) (hcard : Fintype.card V 2) (μ₂ : ) (_hμ₂_nonneg : 0 μ₂) (hμ₂_lt : μ₂ < 1) (hpointwise : ∀ (u v : V) (t : ), |((2⁻¹ (1 + (↑d)⁻¹ SimpleGraph.adjMatrix G)) ^ t) u v - 1 / (Fintype.card V)| μ₂ ^ t) :
                              theorem MagicPolynomial.magic_chebyshev_polynomial (t : ) (ht0 : 0 < t) (ht1 : t < 1) (k : ) :
                              ∃ (p : Polynomial ), p.natDegree = k Polynomial.eval 1 p = 1 ∀ (x : ), 0 xx 1 - t|Polynomial.eval x p| 2 * (1 + (2 * t))⁻¹ ^ k
                              @[reducible, inline]
                              noncomputable abbrev SimpleGraph.diameter {V : Type u_1} (G : SimpleGraph V) :
                              Instances For