Proposition 2.2 — the simplex projection is a thresholding
ProvedSimplexProj.Condat.simplex_projection_thresholdLet , , , and let be the Euclidean projection of onto the simplex of radius . Then there exists a unique such that
This is Proposition 2.2 of Condat (Eq. (6)). It reduces computing to finding the single number , which all the algorithms of the paper do; is then characterized by .
Formalization Note. is the predicate IsSimplexProjection a y x. The hypothesis is needed for uniqueness of .
import Mathlib import Definitions.Def_SimplexProj_Condat_IsSimplexProjection
namespace SimplexProj.Condat
/-- Condat, Proposition 2.2 (p. 2, Eq. (6)): if `x = P_Δ(y)` is the Euclidean projection of `y`
onto the simplex of radius `a`, there is a unique `τ ∈ ℝ` with `x_n = max {y_n - τ, 0}` for all
`n`. Standing assumptions of p. 1: `N ≥ 1`, `a > 0`. -/
theorem simplex_projection_threshold (N : ℕ) (hN : 1 ≤ N) (a : ℝ) (ha : 0 < a)
(y x : Fin N → ℝ) (hx : IsSimplexProjection a y x) :
∃! τ : ℝ, ∀ n, x n = max (y n - τ) 0 := by sorry
end SimplexProj.Condat
Read-back
What the Lean code literally says, in plain math · claude-opus-5-5
The theorem has these hypotheses:
- is a natural number with .
- is a real number with .
- and are vectors in (real-valued functions on ).
- is a simplex projection of with radius . This means , every , and for every with and all :
The conclusion is that there is exactly one real number such that
"Exactly one" means such a exists and any two such reals are equal.
Degenerate cases: and are excluded by the hypotheses. When , the hypothesis forces , and the conclusion says there is exactly one with . There is no other restriction on .
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.