Documentation

LeanPool.BollobasNikiforov.Kernel.SM

Sherman–Morrison formula for 𝒦 #

The rank-one update 𝒦 = (π’œ + VVα΅€/Ξ³)⁻¹ expands as π’œβ»ΒΉ - eβ‚€ eβ‚€α΅€ / (Ξ³ + aβ‚€), using π’œβ»ΒΉ V = eβ‚€ and V 0 = aβ‚€.

theorem BollobasNikiforov.a0_pos {k : β„•} (t q : Fin k β†’ ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) :
0 < a0 t q

aβ‚€ = 1 + βˆ‘ qα΅’ is positive when each qα΅’ is.

theorem BollobasNikiforov.Ξ³_add_a0_pos {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (hΞ³ : 0 < Ξ³) :
0 < Ξ³ + a0 t q
theorem BollobasNikiforov.Ξ³_add_a0_ne_zero {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (hΞ³ : 0 < Ξ³) :
Ξ³ + a0 t q β‰  0
theorem BollobasNikiforov.Vvec_zero {k : β„•} (t q : Fin k β†’ ℝ) :
Vvec t q 0 = a0 t q

V = π’œ eβ‚€, so the 0-coordinate is π’œ 0 0 = aβ‚€.

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

π’œ is real symmetric.

theorem BollobasNikiforov.vecMul_inv_Vvec {k : β„•} (t q : Fin k β†’ ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) :

Vα΅€ π’œβ»ΒΉ = eβ‚€α΅€, equivalently V α΅₯* π’œβ»ΒΉ = eβ‚€.

theorem BollobasNikiforov.𝒦_shermanMorrison {k : β„•} (t q : Fin k β†’ ℝ) (Ξ³ : ℝ) (hq : βˆ€ (i : Fin k), 0 < q i) (hΞ³ : 0 < Ξ³) :
𝒦 t q Ξ³ = (π’œ t q)⁻¹ - (1 / (Ξ³ + a0 t q)) β€’ Matrix.vecMulVec (Pi.single 0 1) (Pi.single 0 1)

Sherman–Morrison: 𝒦 = π’œβ»ΒΉ - eβ‚€ eβ‚€α΅€ / (Ξ³ + aβ‚€).