linear_neumann_off_diagonal_coefficient_bound_from_bernstein_base_bounds_fix
Provedbernsteincandes-rechtconcentrationmatrix-completion
CR-faithful corrected off-diagonal first-Neumann coefficient Bernstein bound. Same as linear_neumann_off_diagonal_coefficient_bound_from_bernstein_base_bounds but with the -linear sample lower bound (CR2009 Lemma 6.6 / Thm 1.3 eq 1.9). Given deterministic base entry-sup and Frobenius bounds and the centered-scalar representation, a union of per-cell two-term Bernstein tails over output cells gives, with probability , the clean coefficient bound.
Preamble
import Definitions.Def_linear_neumann_offdiag_bernstein open MatrixCompletion
Formal statement
theorem linear_neumann_off_diagonal_coefficient_bound_from_bernstein_base_bounds_fix
(Centry Cfro : ℝ) :
0 < Centry → 0 < Cfro →
∃ Ccoef ccoef : ℝ, 0 < Ccoef ∧ 0 < ccoef ∧
∀ (β lam : ℝ), 2 < β → 1 ≤ lam →
∀ (n₁ n₂ r m : ℕ) (M : Matrix (Fin n₁) (Fin n₂) ℝ)
(μ₀ μ₁ : ℝ) (S : SVD M r),
0 < n₁ → 0 < n₂ → 0 < r → m ≤ n₁ * n₂ →
1 ≤ μ₀ → 1 ≤ μ₁ →
A0 S μ₀ → A1 S μ₁ →
(m : ℝ) ≥
lam * μ₁ * max μ₀ μ₁ *
(↑(max n₁ n₂)) * (r : ℝ) *
(β * Real.log (↑(max n₁ n₂))) →
(∀ (Omega2 : Finset (Fin n₁ × Fin n₂))
(w : Fin n₁ × Fin n₂),
linearNeumannOffDiagonalCoefficientMatrix Omega2 S
((m : ℝ) / ((n₁ : ℝ) * (n₂ : ℝ))) w.1 w.2 =
matrixEntrySum
(centeredSamplingFluctuation Omega2
((m : ℝ) / ((n₁ : ℝ) * (n₂ : ℝ)))
(linearNeumannOffDiagonalCoefficientBaseMatrix S w))) →
(∀ w : Fin n₁ × Fin n₂,
entrySupNorm
(linearNeumannOffDiagonalCoefficientBaseMatrix S w) ≤
Centry * μ₁ *
Real.sqrt ((r : ℝ) / ((n₁ : ℝ) * (n₂ : ℝ))) *
(μ₀ * (r : ℝ) / (↑(max n₁ n₂)))) →
(∀ w : Fin n₁ × Fin n₂,
frobeniusNorm
(linearNeumannOffDiagonalCoefficientBaseMatrix S w) ≤
Cfro * μ₁ *
Real.sqrt ((r : ℝ) / ((n₁ : ℝ) * (n₂ : ℝ))) *
Real.sqrt
(μ₀ * (r : ℝ) / (↑(max n₁ n₂)))) →
bernoulliEventProb ((m : ℝ) / ((n₁ : ℝ) * (n₂ : ℝ)))
(fun Omega2 =>
LinearNeumannOffDiagonalCoefficientBound Omega2 S
((m : ℝ) / ((n₁ : ℝ) * (n₂ : ℝ)))
(Ccoef * μ₁ *
Real.sqrt ((r : ℝ) / ((n₁ : ℝ) * (n₂ : ℝ))) *
Real.sqrt
((μ₀ * (↑(max n₁ n₂)) * (r : ℝ) *
(β * Real.log (↑(max n₁ n₂)))) / (m : ℝ)))) ≥
1 - ccoef * Real.rpow (↑(max n₁ n₂)) (-β) := by
sorry
Source