Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Theorem 3.2 (Direction-finding subproblem), p. 5 — Algorithm 1 outputs a feasible and ε-suboptimal solution to (7b)

Proved
WassKF.Bisect.theorem_3_2

by mikedeng1 · Oct 7, 2026 · Mathlib 0df444a (Lean v4.33.1)

bisectiondistributionally-robust-optimizationfrank-wolfep2o-batch-pfp2bp2o-gran-per-chapterp2o-plan-paperp2o-v1semidefinite-programming

Let d=n+md = n + md=n+m with n≥1n \ge 1n≥1, let ρ,ε>0\rho, \varepsilon > 0ρ,ε>0, Σ∈S++d\Sigma \in \mathbb{S}^d_{++}Σ∈S++d​ and S∈S+dS \in \mathbb{S}^d_+S∈S+d​, and let σ‾=λmin⁡(Σ)\underline{\sigma} = \lambda_{\min}(\Sigma)σ​=λmin​(Σ). Put D=∇f(S)=[In,−G]⊤[In,−G]D = \nabla f(S) = [I_n, -G]^\top[I_n, -G]D=∇f(S)=[In​,−G]⊤[In​,−G] with G=SxySyy−1G = S_{xy}S_{yy}^{-1}G=Sxy​Syy−1​, let λ1\lambda_1λ1​ be the largest eigenvalue of DDD and v1v_1v1​ an eigenvector of λ1\lambda_1λ1​ with ∥v1∥=1\|v_1\| = 1∥v1​∥=1. The direction-finding subproblem (7b) is

max⁡L⪰σ‾Id ⟨L,D⟩s.t.Tr[L+Σ−2(Σ1/2LΣ1/2)1/2]≤ρ2,\max_{L \succeq \underline\sigma I_d}\ \langle L, D\rangle \quad\text{s.t.}\quad \mathrm{Tr}\Big[L + \Sigma - 2\big(\Sigma^{1/2}L\Sigma^{1/2}\big)^{1/2}\Big] \le \rho^2 ,L⪰σ​Id​max​ ⟨L,D⟩s.t.Tr[L+Σ−2(Σ1/2LΣ1/2)1/2]≤ρ2,

with ⟨A,B⟩=Tr[A⊤B]\langle A, B\rangle = \mathrm{Tr}[A^\top B]⟨A,B⟩=Tr[A⊤B]; let F\mathcal FF be its feasible set. Run Algorithm 1 on (Σ,D,ρ,ε)(\Sigma, D, \rho, \varepsilon)(Σ,D,ρ,ε): pass kkk tries γk=(UBk+LBk)/2\gamma_k = (UB_k + LB_k)/2γk​=(UBk​+LBk​)/2, starting from [LB0,UB0]=[γmin⁡,γmax⁡][LB_0, UB_0] = [\gamma_{\min}, \gamma_{\max}][LB0​,UB0​]=[γmin​,γmax​], and the loop exits after pass kkk with output L(γk)=γk2(γkId−D)−1Σ(γkId−D)−1L(\gamma_k) = \gamma_k^2(\gamma_k I_d - D)^{-1}\Sigma(\gamma_k I_d - D)^{-1}L(γk​)=γk2​(γk​Id​−D)−1Σ(γk​Id​−D)−1 when h(γk)>0h(\gamma_k) > 0h(γk​)>0 and Δ(γk)<ε\Delta(\gamma_k) < \varepsilonΔ(γk​)<ε. Then:

  1. (Soundness.) At every pass kkk at which the exit test holds,
L(γk)∈Fand⟨L′,D⟩≤⟨L(γk),D⟩+εfor all L′∈F.L(\gamma_k) \in \mathcal F \qquad\text{and}\qquad \langle L', D\rangle \le \langle L(\gamma_k), D\rangle + \varepsilon \quad\text{for all } L' \in \mathcal F .L(γk​)∈Fand⟨L′,D⟩≤⟨L(γk​),D⟩+εfor all L′∈F.
  1. (Termination.) If hhh does not vanish at any dyadic point γmin⁡+j(γmax⁡−γmin⁡)/2k\gamma_{\min} + j(\gamma_{\max} - \gamma_{\min})/2^kγmin​+j(γmax​−γmin​)/2k with k≥0k \ge 0k≥0 and 0<j≤2k0 < j \le 2^k0<j≤2k, then the exit test holds at some pass kkk.

Together these say that Algorithm 1 outputs a feasible and ε\varepsilonε-suboptimal solution of (7b). This is the guarantee that makes Algorithm 1 a valid linear-minimization oracle inside the Frank–Wolfe method (Algorithm 2) for program (5).

Added hypotheses (corrections to the printed theorem). (i) The termination hypothesis in 2: the printed theorem implicitly claims that the loop terminates, which fails when a trial point γk\gamma_kγk​ (or γmax⁡\gamma_{\max}γmax​) is exactly the root γ⋆\gamma^\starγ⋆ of hhh: the else-branch then sets UB=γ⋆UB = \gamma^\starUB=γ⋆, every later trial point lies below γ⋆\gamma^\starγ⋆ where h<0h < 0h<0, and the test h(γ)>0h(\gamma) > 0h(γ)>0 never holds. Soundness needs no such hypothesis. (ii) ∥v1∥=1\|v_1\| = 1∥v1​∥=1: the page says only "an eigenvector", and γmin⁡\gamma_{\min}γmin​ is wrong for a rescaled one. (iii) n≥1n \ge 1n≥1, which makes D≠0D \neq 0D=0 (Lemmas A.1–A.3 assume D∈S+d∖{0}D \in \mathbb{S}^d_+ \setminus\{0\}D∈S+d​∖{0}); for n=0n = 0n=0 the algorithm can return L=0∉FL = 0 \notin \mathcal FL=0∈/F.

Formalization Note F\mathcal FF is WassersteinDRO.Shrinkage.sdpFeasibleSet ρ Σ σ; σ‾\underline\sigmaσ​ is passed as σ\sigmaσ with Σ−σId⪰0\Sigma - \sigma I_d \succeq 0Σ−σId​⪰0 and an eigenvector, λ1\lambda_1λ1​ as lam1 with λ1Id−D⪰0\lambda_1 I_d - D \succeq 0λ1​Id​−D⪰0 and Dv1=λ1v1Dv_1 = \lambda_1 v_1Dv1​=λ1​v1​. The algorithm is modelled as its sequence of passes (bisectState, bisectGamma, bisectOutput, bisectStops), so the output is L(γk)L(\gamma_k)L(γk​) at the first pass whose exit test holds, and soundness is stated for every such pass. ε\varepsilonε-suboptimality is stated with a universal quantifier over F\mathcal FF, not with a supremum. Mathlib's inverse makes Syy−1=0S_{yy}^{-1} = 0Syy−1​=0 when SyyS_{yy}Syy​ is singular, as allowed by S∈S+dS \in \mathbb{S}^d_+S∈S+d​; DDD is then diag(In,0)\mathrm{diag}(I_n, 0)diag(In​,0).

Preamble
import Mathlib
import Definitions.Def_WassersteinDRO_Shrinkage_sdpFeasibleSet
import Definitions.Def_WassKF_Bisect_gradF
import Definitions.Def_WassKF_Bisect_hFun
import Definitions.Def_WassKF_Bisect_Lgamma
import Definitions.Def_WassKF_Bisect_Delta
import Definitions.Def_WassKF_Bisect_algorithm1

open Matrix
Formal statement
namespace WassKF.Bisect

/-- Theorem 3.2 (Direction-finding subproblem), p. 5: for `ρ, ε > 0`, `Σ ≻ 0` and `S ⪰ 0`,
Algorithm 1 run on `D = ∇f(S)` (`gradF S`), with `λ₁` the largest eigenvalue of `D` and `v₁` a
unit eigenvector for it, outputs a feasible and `ε`-suboptimal solution of (7b), whose feasible
set is `sdpFeasibleSet ρ Σ σ̲` with `σ̲ = λ_min(Σ)` passed as `σ`.
(1) Soundness: at every pass `k` at which the exit test `h(γ) > 0 ∧ Δ < ε` holds, the matrix `L`
of that pass is feasible and within `ε` of every feasible objective value `⟨L', D⟩ = Tr[L'ᵀD]`.
(2) Termination: the exit test holds at some pass, provided `h` has no root at a dyadic point
`γ_min + j(γ_max − γ_min)/2^k`, `0 < j ≤ 2^k` (added hypothesis: otherwise the loop can run forever).
Added: `0 < n` (so `D ≠ 0`) and `v₁ᵀv₁ = 1`. -/
theorem theorem_3_2 {n m : ℕ} (hn : 0 < n)
    (Sigma S : Matrix (Fin n ⊕ Fin m) (Fin n ⊕ Fin m) ℝ) (ρ ε σ lam1 : ℝ)
    (v₁ : Fin n ⊕ Fin m → ℝ)
    (hρ : 0 < ρ) (hε : 0 < ε) (hSigma : Sigma.PosDef) (hS : S.PosSemidef)
    (hσ : (Sigma - σ • (1 : Matrix (Fin n ⊕ Fin m) (Fin n ⊕ Fin m) ℝ)).PosSemidef)
    (hσ_eig : ∃ v : Fin n ⊕ Fin m → ℝ, v ≠ 0 ∧ Sigma *ᵥ v = σ • v)
    (hlam : (lam1 • (1 : Matrix (Fin n ⊕ Fin m) (Fin n ⊕ Fin m) ℝ) - gradF S).PosSemidef)
    (hv : gradF S *ᵥ v₁ = lam1 • v₁) (hv1 : v₁ ⬝ᵥ v₁ = 1) :
    (∀ k : ℕ, bisectStops Sigma (gradF S) ρ ε lam1 v₁ k →
        bisectOutput Sigma (gradF S) ρ lam1 v₁ k ∈
            WassersteinDRO.Shrinkage.sdpFeasibleSet ρ Sigma σ ∧
          ∀ L' ∈ WassersteinDRO.Shrinkage.sdpFeasibleSet ρ Sigma σ,
            (L'ᵀ * gradF S).trace ≤
              ((bisectOutput Sigma (gradF S) ρ lam1 v₁ k)ᵀ * gradF S).trace + ε) ∧
      ((∀ k j : ℕ, 0 < j → j ≤ 2 ^ k →
          hFun Sigma (gradF S) ρ
              (gammaMin Sigma ρ lam1 v₁ +
                (j : ℝ) * (gammaMax Sigma ρ lam1 - gammaMin Sigma ρ lam1 v₁) / 2 ^ k) ≠ 0) →
        ∃ k : ℕ, bisectStops Sigma (gradF S) ρ ε lam1 v₁ k) := by sorry

end WassKF.Bisect
Source
Shafieezadeh-Abadeh, Nguyen, Kuhn, Mohajerin Esfahani, Wasserstein Distributionally Robust Kalman Filtering, arXiv:1809.08830v3, p. 5, Theorem 3.2; p. 6, Algorithm 1; p. 13, App. A.3
Human review
  • Endorsed by Shuze Chen · Oct 8, 2026

    Confirmed by the moderator at approval.

  • Endorsed by mikedeng1 · Oct 8, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me