Documentation

LeanPool.BollobasNikiforov.M.Basic

The matrix M(X) of eq:matrix #

For a real matrix X, M X = X ⊙ X + ∑_{i<j} (if X i j < 0 then (X i j)² else 0) • vecMulVec (e i - e j) (e i - e j). When X is positive semidefinite this is PSD and entrywise nonnegative.

MX01 — definition of M #

noncomputable def BollobasNikiforov.laplacianCoeff {n : Type u_1} [LinearOrder n] (X : Matrix n n ℝ) (i j : n) :

The correction weight on the pair {i,j}: (X i j)² when i < j and the entry is negative, and 0 otherwise.

Equations
Instances For
    noncomputable def BollobasNikiforov.M {n : Type u_1} [Fintype n] [DecidableEq n] [LinearOrder n] (X : Matrix n n ℝ) :

    The map of docs/sol.tex (eq:matrix).

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      The all-ones matrix, used as the Frobenius partner of M.

      Equations
      Instances For
        theorem BollobasNikiforov.M_apply {n : Type u_1} [Fintype n] [DecidableEq n] [LinearOrder n] (X : Matrix n n ℝ) (a b : n) :
        M X a b = X a b * X a b + ∑ i : n, ∑ j : n, laplacianCoeff X i j * Matrix.vecMulVec (e i - e j) (e i - e j) a b

        Helpers for the rank-one Laplacian #

        theorem BollobasNikiforov.vecMulVec_sub_single_offDiag {n : Type u_1} [DecidableEq n] {p q i j : n} (hij : i ≠ j) :
        Matrix.vecMulVec (e p - e q) (e p - e q) i j = if p = i ∧ q = j then -1 else if p = j ∧ q = i then -1 else 0

        Off-diagonal entries of vecMulVec (e p - e q) (e p - e q).

        theorem BollobasNikiforov.sum_sum_ite_eq_pair {n : Type u_1} [Fintype n] [DecidableEq n] (f : n → n → ℝ) (i j : n) :
        (∑ p : n, ∑ q : n, if p = i ∧ q = j then f p q else 0) = f i j
        theorem BollobasNikiforov.laplacianCoeff_correction_offDiag {n : Type u_1} [Fintype n] [DecidableEq n] [LinearOrder n] (X : Matrix n n ℝ) {i j : n} (hij : i ≠ j) :
        ∑ p : n, ∑ q : n, laplacianCoeff X p q * Matrix.vecMulVec (e p - e q) (e p - e q) i j = -laplacianCoeff X i j - laplacianCoeff X j i

        MX03 — off-diagonal formula #

        theorem BollobasNikiforov.M_apply_of_ne {n : Type u_1} [Fintype n] [DecidableEq n] [LinearOrder n] (X : Matrix n n ℝ) (hX : X.IsSymm) {i j : n} (hij : i ≠ j) :
        M X i j = posPart X i j ^ 2

        For i ≠ j and symmetric X, M X i j = (max (X i j) 0)².

        MX02 — PSD and entrywise nonnegativity #

        theorem BollobasNikiforov.M_nonneg {n : Type u_1} [Fintype n] [DecidableEq n] [LinearOrder n] {X : Matrix n n ℝ} (hX : X.PosSemidef) (i j : n) :
        0 ≤ M X i j

        MX04 — all-ones identities #

        theorem BollobasNikiforov.inner_sum_right {n : Type u_1} [Fintype n] {ι : Type u_2} (B : Matrix n n ℝ) (s : Finset ι) (f : ι → Matrix n n ℝ) :
        inner B (∑ i ∈ s, f i) = ∑ i ∈ s, inner B (f i)
        theorem BollobasNikiforov.sub_single_dotProduct_one {n : Type u_1} [Fintype n] [DecidableEq n] (i j : n) :
        (e i - e j) ⬝ᵥ 1 = 0
        theorem BollobasNikiforov.M_mulVec_one {n : Type u_1} [Fintype n] [DecidableEq n] [LinearOrder n] (X : Matrix n n ℝ) :
        (M X).mulVec 1 = (X.hadamard X).mulVec 1

        Each Laplacian annihilates the all-ones vector, so M X and X ⊙ X have the same row sums.

        MX05 — continuity and scaling #

        theorem BollobasNikiforov.laplacianCoeff_eq_min {n : Type u_1} [LinearOrder n] (X : Matrix n n ℝ) (i j : n) :
        laplacianCoeff X i j = if i < j then min (X i j) 0 ^ 2 else 0
        theorem BollobasNikiforov.laplacianCoeff_smul_sq {n : Type u_1} [LinearOrder n] (c : ℝ) (hc : 0 ≤ c) (X : Matrix n n ℝ) (i j : n) :
        laplacianCoeff (c ^ 2 • X) i j = c ^ 4 * laplacianCoeff X i j
        theorem BollobasNikiforov.M_smul_sq {n : Type u_1} [Fintype n] [DecidableEq n] [LinearOrder n] {c : ℝ} (hc : 0 ≤ c) (X : Matrix n n ℝ) :
        M (c ^ 2 • X) = c ^ 4 • M X

        M (c² • X) = c⁴ • M X for c ≥ 0.