Documentation

LeanPool.BollobasNikiforov.M.Config

Planar configuration and block entries of M #

The normalized configuration of docs/sol.tex §4 (eq:coordinates, eq:blocks): z₀ = (1,0), zᵢ = √sᵢ (-1, tᵢ), yⱼ = √ρⱼ (xⱼ, 1).

Indices are identified with Option (Fin k) ⊕ Fin p via configIdxEquiv: none is z₀, some i is zᵢ, and Sum.inr j is yⱼ. The carrier is Fin (k + 1 + p), which supplies LinearOrder for M.

@[reducible, inline]

Index type identified with Option (Fin k) ⊕ Fin p: 0 is z₀, 1..k are the zᵢ, and k+1.. are the yⱼ.

Equations
Instances For

    none = z₀, some i = zᵢ, inr j = yⱼ.

    Equations
    Instances For

      The z₀ index (none).

      Equations
      Instances For
        def BollobasNikiforov.idxZ {k p : } (i : Fin k) :

        The zᵢ index (some i).

        Equations
        Instances For
          def BollobasNikiforov.idxY {k p : } (j : Fin p) :

          The yⱼ index.

          Equations
          Instances For
            theorem BollobasNikiforov.idxZ_val {k p : } (i : Fin k) :
            (idxZ i) = i + 1
            theorem BollobasNikiforov.idxY_val {k p : } (j : Fin p) :
            (idxY j) = k + 1 + j
            theorem BollobasNikiforov.idxZ_lt_idxY {k p : } (i : Fin k) (j : Fin p) :
            idxZ i < idxY j
            theorem BollobasNikiforov.idxZ_lt_idxZ_iff {k p : } {i h : Fin k} :
            idxZ i < idxZ h i < h
            theorem BollobasNikiforov.idxZ_ne_idxY {k p : } (i : Fin k) (j : Fin p) :
            theorem BollobasNikiforov.sum_configIdx {k p : } (f : ConfigIdx k p) :
            α : ConfigIdx k p, f α = f idxZ0 + i : Fin k, f (idxZ i) + j : Fin p, f (idxY j)

            MX06 — configuration vectors and Gram matrix #

            Feature vector z₀ = (1, 0).

            Equations
            Instances For
              noncomputable def BollobasNikiforov.zVec {k : } (s t : Fin k) (i : Fin k) :
              Fin 2

              Feature vector zᵢ = √sᵢ (-1, tᵢ).

              Equations
              Instances For
                noncomputable def BollobasNikiforov.yVec {p : } (ρ x : Fin p) (j : Fin p) :
                Fin 2

                Feature vector yⱼ = √ρⱼ (xⱼ, 1).

                Equations
                Instances For
                  @[simp]
                  @[simp]
                  @[simp]
                  theorem BollobasNikiforov.zVec_zero {k : } (s t : Fin k) (i : Fin k) :
                  zVec s t i 0 = -(s i)
                  @[simp]
                  theorem BollobasNikiforov.zVec_one {k : } (s t : Fin k) (i : Fin k) :
                  zVec s t i 1 = (s i) * t i
                  @[simp]
                  theorem BollobasNikiforov.yVec_zero {p : } (ρ x : Fin p) (j : Fin p) :
                  yVec ρ x j 0 = (ρ j) * x j
                  @[simp]
                  theorem BollobasNikiforov.yVec_one {p : } (ρ x : Fin p) (j : Fin p) :
                  yVec ρ x j 1 = (ρ j)
                  noncomputable def BollobasNikiforov.configVec {k p : } (s t : Fin k) (ρ x : Fin p) :
                  ConfigIdx k pFin 2

                  The assembled configuration on ConfigIdx.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem BollobasNikiforov.configVec_z0 {k p : } (s t : Fin k) (ρ x : Fin p) :
                    configVec s t ρ x idxZ0 = z0
                    theorem BollobasNikiforov.configVec_z {k p : } (s t : Fin k) (ρ x : Fin p) (i : Fin k) :
                    configVec s t ρ x (idxZ i) = zVec s t i
                    theorem BollobasNikiforov.configVec_y {k p : } (s t : Fin k) (ρ x : Fin p) (j : Fin p) :
                    configVec s t ρ x (idxY j) = yVec ρ x j
                    noncomputable def BollobasNikiforov.configMat {k p : } (s t : Fin k) (ρ x : Fin p) :

                    Rows of the configuration, as a ι × 2 matrix.

                    Equations
                    Instances For
                      noncomputable def BollobasNikiforov.Xconfig {k p : } (s t : Fin k) (ρ x : Fin p) :

                      Gram matrix of the configuration.

                      Equations
                      Instances For
                        theorem BollobasNikiforov.Xconfig_apply {k p : } (s t : Fin k) (ρ x : Fin p) (a b : ConfigIdx k p) :
                        Xconfig s t ρ x a b = configVec s t ρ x a ⬝ᵥ configVec s t ρ x b
                        theorem BollobasNikiforov.Xconfig_eq_mul_transpose {k p : } (s t : Fin k) (ρ x : Fin p) :
                        Xconfig s t ρ x = configMat s t ρ x * (configMat s t ρ x).transpose
                        theorem BollobasNikiforov.Xconfig_isSymm {k p : } (s t : Fin k) (ρ x : Fin p) :
                        (Xconfig s t ρ x).IsSymm
                        theorem BollobasNikiforov.Xconfig_posSemidef {k p : } (s t : Fin k) (ρ x : Fin p) :
                        (Xconfig s t ρ x).PosSemidef

                        Inner products of configuration vectors #

                        theorem BollobasNikiforov.z0_dot_zVec {k : } (s t : Fin k) (i : Fin k) :
                        z0 ⬝ᵥ zVec s t i = -(s i)
                        theorem BollobasNikiforov.z0_dot_yVec {p : } (ρ x : Fin p) (j : Fin p) :
                        z0 ⬝ᵥ yVec ρ x j = (ρ j) * x j
                        theorem BollobasNikiforov.zVec_dot_zVec {k : } (s t : Fin k) (i h : Fin k) :
                        zVec s t i ⬝ᵥ zVec s t h = (s i) * (s h) * (1 + t i * t h)
                        theorem BollobasNikiforov.zVec_dot_yVec {k p : } (s t : Fin k) (ρ x : Fin p) (i : Fin k) (j : Fin p) :
                        zVec s t i ⬝ᵥ yVec ρ x j = (s i) * (ρ j) * (t i - x j)
                        theorem BollobasNikiforov.Xconfig_z0_z0 {k p : } (s t : Fin k) (ρ x : Fin p) :
                        Xconfig s t ρ x idxZ0 idxZ0 = 1
                        theorem BollobasNikiforov.Xconfig_z0_z {k p : } (s t : Fin k) (ρ x : Fin p) (i : Fin k) :
                        Xconfig s t ρ x idxZ0 (idxZ i) = -(s i)
                        theorem BollobasNikiforov.Xconfig_z0_y {k p : } (s t : Fin k) (ρ x : Fin p) (j : Fin p) :
                        Xconfig s t ρ x idxZ0 (idxY j) = (ρ j) * x j
                        theorem BollobasNikiforov.Xconfig_z_z {k p : } (s t : Fin k) (ρ x : Fin p) (i h : Fin k) :
                        Xconfig s t ρ x (idxZ i) (idxZ h) = (s i) * (s h) * (1 + t i * t h)
                        theorem BollobasNikiforov.Xconfig_z_y {k p : } (s t : Fin k) (ρ x : Fin p) (i : Fin k) (j : Fin p) :
                        Xconfig s t ρ x (idxZ i) (idxY j) = (s i) * (ρ j) * (t i - x j)

                        MX07 — auxiliary scalars #

                        def BollobasNikiforov.configH {k p : } (t : Fin k) (ρ x : Fin p) (i : Fin k) :

                        Hᵢ = ∑ⱼ ρⱼ (xⱼ - tᵢ)₊².

                        Equations
                        Instances For
                          def BollobasNikiforov.configD {k p : } (t : Fin k) (ρ x : Fin p) (i : Fin k) :

                          dᵢ = 1 + Hᵢ.

                          Equations
                          Instances For
                            def BollobasNikiforov.configσ {k : } (s : Fin k) :

                            σ = ∑ᵢ sᵢ.

                            Equations
                            Instances For
                              theorem BollobasNikiforov.configH_nonneg {k p : } (t : Fin k) {ρ : Fin p} ( : ∀ (j : Fin p), 0 < ρ j) (x : Fin p) (i : Fin k) :
                              0 configH t ρ x i
                              theorem BollobasNikiforov.configD_pos {k p : } (t : Fin k) {ρ : Fin p} ( : ∀ (j : Fin p), 0 < ρ j) (x : Fin p) (i : Fin k) :
                              0 < configD t ρ x i
                              theorem BollobasNikiforov.configσ_nonneg {k : } {s : Fin k} (hs : ∀ (i : Fin k), 0 < s i) :

                              Diagonal expansion of M #

                              theorem BollobasNikiforov.vecMulVec_sub_single_diag {n : Type u_1} [DecidableEq n] (u v a : n) :
                              Matrix.vecMulVec (e u - e v) (e u - e v) a a = if u = v then 0 else if a = u a = v then 1 else 0
                              theorem BollobasNikiforov.M_diag {n : Type u_1} [Fintype n] [DecidableEq n] [LinearOrder n] (X : Matrix n n ) (a : n) :
                              M X a a = (X a a ^ 2 + q : n, if a < q X a q < 0 then X a q ^ 2 else 0) + u : n, if u < a X u a < 0 then X u a ^ 2 else 0

                              MX08 — block entries #

                              theorem BollobasNikiforov.Xconfig_z0_z_neg {k p : } (s t : Fin k) (ρ x : Fin p) (hs : ∀ (i : Fin k), 0 < s i) (i : Fin k) :
                              Xconfig s t ρ x idxZ0 (idxZ i) < 0
                              theorem BollobasNikiforov.Xconfig_z0_y_nonneg {k p : } (s t : Fin k) (ρ x : Fin p) (hx : ∀ (j : Fin p), 0 x j) (j : Fin p) :
                              0 Xconfig s t ρ x idxZ0 (idxY j)
                              theorem BollobasNikiforov.Xconfig_z_z_pos {k p : } (s t : Fin k) (ρ x : Fin p) (hs : ∀ (i : Fin k), 0 < s i) (ht : ∀ (i : Fin k), 0 < t i) (i h : Fin k) :
                              0 < Xconfig s t ρ x (idxZ i) (idxZ h)
                              theorem BollobasNikiforov.MX_z0_z0 {k p : } (s t : Fin k) (ρ x : Fin p) (hs : ∀ (i : Fin k), 0 < s i) (hx : ∀ (j : Fin p), 0 x j) :
                              M (Xconfig s t ρ x) idxZ0 idxZ0 = 1 + configσ s

                              M_{00} = 1 + σ.

                              theorem BollobasNikiforov.MX_z0_z {k p : } (s t : Fin k) (ρ x : Fin p) (i : Fin k) :
                              M (Xconfig s t ρ x) idxZ0 (idxZ i) = 0

                              M_{0i} = 0.

                              theorem BollobasNikiforov.MX_z0_y {k p : } (s t : Fin k) (ρ x : Fin p) ( : ∀ (j : Fin p), 0 < ρ j) (hx : ∀ (j : Fin p), 0 x j) (j : Fin p) :
                              M (Xconfig s t ρ x) idxZ0 (idxY j) = ρ j * x j ^ 2

                              M_{0ybar} = ρⱼ xⱼ².

                              theorem BollobasNikiforov.MX_z_z_of_ne {k p : } (s t : Fin k) (ρ x : Fin p) (hs : ∀ (i : Fin k), 0 < s i) (ht : ∀ (i : Fin k), 0 < t i) {i h : Fin k} (hih : i h) :
                              M (Xconfig s t ρ x) (idxZ i) (idxZ h) = s i * s h * (1 + t i * t h) ^ 2

                              Off-diagonal z-block: M_{ih} = sᵢ sₕ (1 + tᵢ tₕ)² for i ≠ h.

                              theorem BollobasNikiforov.MX_z_y {k p : } (s t : Fin k) (ρ x : Fin p) (hs : ∀ (i : Fin k), 0 < s i) ( : ∀ (j : Fin p), 0 < ρ j) (i : Fin k) (j : Fin p) :
                              M (Xconfig s t ρ x) (idxZ i) (idxY j) = s i * ρ j * max (t i - x j) 0 ^ 2

                              M_{iybar} = sᵢ ρⱼ (tᵢ - xⱼ)₊².

                              theorem BollobasNikiforov.MX_z_z_diag {k p : } (s t : Fin k) (ρ x : Fin p) (hs : ∀ (i : Fin k), 0 < s i) (ht : ∀ (i : Fin k), 0 < t i) ( : ∀ (j : Fin p), 0 < ρ j) (i : Fin k) :
                              M (Xconfig s t ρ x) (idxZ i) (idxZ i) = s i * s i * (1 + t i * t i) ^ 2 + s i * configD t ρ x i

                              Diagonal z-block: M_{ii} = sᵢ² (1 + tᵢ²)² + sᵢ dᵢ.

                              theorem BollobasNikiforov.MX_z_z {k p : } (s t : Fin k) (ρ x : Fin p) (hs : ∀ (i : Fin k), 0 < s i) (ht : ∀ (i : Fin k), 0 < t i) ( : ∀ (j : Fin p), 0 < ρ j) (i h : Fin k) :
                              M (Xconfig s t ρ x) (idxZ i) (idxZ h) = s i * s h * (1 + t i * t h) ^ 2 + if i = h then s i * configD t ρ x i else 0

                              Combined z-block formula, including the Kronecker term.

                              MX09 — first column #

                              theorem BollobasNikiforov.MX_z0_z0_pos {k p : } (s t : Fin k) (ρ x : Fin p) (hs : ∀ (i : Fin k), 0 < s i) (hx : ∀ (j : Fin p), 0 x j) :
                              0 < M (Xconfig s t ρ x) idxZ0 idxZ0
                              theorem BollobasNikiforov.MX_z0_nonneg {k p : } (s t : Fin k) (ρ x : Fin p) (hs : ∀ (i : Fin k), 0 < s i) ( : ∀ (j : Fin p), 0 < ρ j) (hx : ∀ (j : Fin p), 0 x j) (α : ConfigIdx k p) :
                              0 M (Xconfig s t ρ x) idxZ0 α