Documentation

LeanPool.BollobasNikiforov.Kernel.Bilinear

Bilinear expansion of 𝒦 #

Completing squares in coordinates 2,1,0 yields eq:bilinear, and substituting U yields the factorization eq:factor of docs/sol.tex Β§3.

Fin 3 expansions #

theorem BollobasNikiforov.mulVec_fin3 (M : Matrix (Fin 3) (Fin 3) ℝ) (z : Fin 3 β†’ ℝ) (i : Fin 3) :
M.mulVec z i = M i 0 * z 0 + M i 1 * z 1 + M i 2 * z 2
theorem BollobasNikiforov.dotProduct_mulVec_fin3 (M : Matrix (Fin 3) (Fin 3) ℝ) (z w : Fin 3 β†’ ℝ) :
z ⬝α΅₯ M.mulVec w = z 0 * (M 0 0 * w 0 + M 0 1 * w 1 + M 0 2 * w 2) + z 1 * (M 1 0 * w 0 + M 1 1 * w 1 + M 1 2 * w 2) + z 2 * (M 2 0 * w 0 + M 2 1 * w 1 + M 2 2 * w 2)
theorem BollobasNikiforov.bilinear_complete_last (M : Matrix (Fin 3) (Fin 3) ℝ) (hM : M.IsHermitian) (z w : Fin 3 β†’ ℝ) (h22 : M 2 2 β‰  0) :
z ⬝α΅₯ M.mulVec w = M.mulVec z 2 * M.mulVec w 2 / M 2 2 + z 0 * w 0 * (M 0 0 - M 0 2 * M 2 0 / M 2 2) + z 0 * w 1 * (M 0 1 - M 0 2 * M 2 1 / M 2 2) + z 1 * w 0 * (M 1 0 - M 1 2 * M 2 0 / M 2 2) + z 1 * w 1 * (M 1 1 - M 1 2 * M 2 1 / M 2 2)

Completing the square in coordinate 2 for a real symmetric 3Γ—3 form.

KR08: pivot 𝒦 2 2 #

theorem BollobasNikiforov.inv_π’œ_two_two {k : β„•} (t q : Fin k β†’ ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) :
(π’œ t q)⁻¹ 2 2 = D2 t q / Ξ” t q
theorem BollobasNikiforov.𝒦_two_two {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (hΞ³ : 0 < Ξ³) :
𝒦 t q Ξ³ 2 2 = D2 t q / Ξ” t q

Leading 2Γ—2 block of π’œ #

theorem BollobasNikiforov.leading2_π’œ_inv_one_one {k : β„•} (t q : Fin k β†’ ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) :
theorem BollobasNikiforov.leading2_π’œ_inv_one_zero {k : β„•} (t q : Fin k β†’ ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) :

The {0,1} Schur complement of π’œβ»ΒΉ is (π’œ[{0,1}])⁻¹.

KR09: {0,1} block of 𝒦⁻¹ = 𝒦Mat #

theorem BollobasNikiforov.Vvec_one {k : β„•} (t q : Fin k β†’ ℝ) :
Vvec t q 1 = -√2 * m t q 1
theorem BollobasNikiforov.𝒦Mat_zero_zero {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hΞ³ : 0 < Ξ³) :
𝒦Mat t q Ξ³ 0 0 = a0 t q * (Ξ³ + a0 t q) / Ξ³
theorem BollobasNikiforov.𝒦Mat_one_zero {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hΞ³ : 0 < Ξ³) :
𝒦Mat t q Ξ³ 1 0 = -√2 * m t q 1 * (Ξ³ + a0 t q) / Ξ³
theorem BollobasNikiforov.𝒦Mat_zero_one {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hΞ³ : 0 < Ξ³) :
𝒦Mat t q Ξ³ 0 1 = -√2 * m t q 1 * (Ξ³ + a0 t q) / Ξ³
theorem BollobasNikiforov.𝒦Mat_one_one {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hΞ³ : 0 < Ξ³) :
𝒦Mat t q Ξ³ 1 1 = 1 + 2 * m t q 2 + 2 * m t q 1 ^ 2 / Ξ³
theorem BollobasNikiforov.𝒦Mat01_det {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (_hq : βˆ€ (i : Fin k), 0 < q i) (hΞ³ : 0 < Ξ³) :
((𝒦Mat t q Ξ³).submatrix Fin.castSucc Fin.castSucc).det = D2 t q * (Ξ³ + a0 t q) / Ξ³
theorem BollobasNikiforov.𝒦Mat01_inv_one_one {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (hΞ³ : 0 < Ξ³) :
theorem BollobasNikiforov.𝒦Mat01_inv_one_zero {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (hΞ³ : 0 < Ξ³) :
theorem BollobasNikiforov.𝒦Mat01_inv_ratio {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (hΞ³ : 0 < Ξ³) :

KR10: last pivot #

theorem BollobasNikiforov.inv_𝒦Mat_zero_zero {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (hΞ³ : 0 < Ξ³) :
1 / 𝒦Mat t q Ξ³ 0 0 = Ξ³ / (a0 t q * (Ξ³ + a0 t q))

Inverse bilinear form of π’œ #

theorem BollobasNikiforov.inv_π’œ_isHermitian {k : β„•} (t q : Fin k β†’ ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) :
theorem BollobasNikiforov.leading2_inv_bilinear {k : β„•} (t q : Fin k β†’ ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (z0 z1 w0 w1 : ℝ) :
z0 * w0 * ((π’œ t q).submatrix Fin.castSucc Fin.castSucc)⁻¹ 0 0 + z0 * w1 * ((π’œ t q).submatrix Fin.castSucc Fin.castSucc)⁻¹ 0 1 + z1 * w0 * ((π’œ t q).submatrix Fin.castSucc Fin.castSucc)⁻¹ 1 0 + z1 * w1 * ((π’œ t q).submatrix Fin.castSucc Fin.castSucc)⁻¹ 1 1 = (a0 t q * z1 + √2 * m t q 1 * z0) * (a0 t q * w1 + √2 * m t q 1 * w0) / (a0 t q * D2 t q) + z0 * w0 / a0 t q
theorem BollobasNikiforov.dotProduct_inv_π’œ {k : β„•} (t q : Fin k β†’ ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (z w : Fin 3 β†’ ℝ) :
z ⬝α΅₯ (π’œ t q)⁻¹.mulVec w = Ξ” t q * (π’œ t q)⁻¹.mulVec z 2 * (Ξ” t q * (π’œ t q)⁻¹.mulVec w 2) / (Ξ” t q * D2 t q) + (a0 t q * z 1 + √2 * m t q 1 * z 0) * (a0 t q * w 1 + √2 * m t q 1 * w 0) / (a0 t q * D2 t q) + z 0 * w 0 / a0 t q

KR11: eq:bilinear #

theorem BollobasNikiforov.dotProduct_𝒦_eq_inv_π’œ {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (hΞ³ : 0 < Ξ³) (z w : Fin 3 β†’ ℝ) :
z ⬝α΅₯ (𝒦 t q Ξ³).mulVec w = z ⬝α΅₯ (π’œ t q)⁻¹.mulVec w - z 0 * w 0 / (Ξ³ + a0 t q)
theorem BollobasNikiforov.𝒦_bilinear {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (hΞ³ : 0 < Ξ³) (z w : Fin 3 β†’ ℝ) :
z ⬝α΅₯ (𝒦 t q Ξ³).mulVec w = Ξ” t q * (π’œ t q)⁻¹.mulVec z 2 * (Ξ” t q * (π’œ t q)⁻¹.mulVec w 2) / (Ξ” t q * D2 t q) + (a0 t q * z 1 + √2 * m t q 1 * z 0) * (a0 t q * w 1 + √2 * m t q 1 * w 0) / (a0 t q * D2 t q) + Ξ³ * z 0 * w 0 / (a0 t q * (Ξ³ + a0 t q))

KR12: substituting U #

theorem BollobasNikiforov.bhat_zero {k : β„•} (t q : Fin k β†’ ℝ) (x : ℝ) :
bhat t q x 0 = x ^ 2 + h t q x
theorem BollobasNikiforov.bhat_one {k : β„•} (t q : Fin k β†’ ℝ) (x : ℝ) :
bhat t q x 1 = √2 * x - √2 * h1 t q x
theorem BollobasNikiforov.N_eq_Ξ”_inv_U {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (x : ℝ) :
N t q x = Ξ” t q * (π’œ t q)⁻¹.mulVec (U t q Ξ³ x) 2
theorem BollobasNikiforov.U_zero {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ x : ℝ) (hΞ³ : 0 < Ξ³) :
U t q Ξ³ x 0 = Z t q Ξ³ x / Ξ³
theorem BollobasNikiforov.U_weighted {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ x : ℝ) (hΞ³ : 0 < Ξ³) :
a0 t q * U t q γ x 1 + √2 * m t q 1 * U t q γ x 0 = √2 * P t q x

KR13: eq:factor #

theorem BollobasNikiforov.𝒦_factor {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (hΞ³ : 0 < Ξ³) (x y : ℝ) :
U t q Ξ³ x ⬝α΅₯ (𝒦 t q Ξ³).mulVec (U t q Ξ³ y) = N t q x * N t q y / (Ξ” t q * D2 t q) + 2 * P t q x * P t q y / (a0 t q * D2 t q) + Z t q Ξ³ x * Z t q Ξ³ y / (Ξ³ * a0 t q * (Ξ³ + a0 t q))