Sect. 2 (p. 5) — is the root of ; sign test and bracket
ProvedSimplexProj.Condat.threshold_root_bracketLet , , , let be the Euclidean projection of onto the simplex of radius , and let be the threshold of Proposition 2.2, so for all . Let and be the largest and smallest entries of and define
Then: ; is convex; is piecewise linear with breakpoints at the (it is affine on every closed interval whose interior contains no ); is strictly decreasing on and for every ; for every , implies and implies ; , and ; and consequently
These are the properties Condat lists in Sect. 2 when viewing the search for as root finding; the sign test is what lets an algorithm discard entries on one side of a trial value .
Formalization Note. , and are given as variables pinned by the hypotheses hf, IsGreatest (Set.range y) ymax and IsLeast (Set.range y) ymin. "Piecewise linear with breakpoints at the " is rendered as: is affine on every interval with no in .
import Mathlib import Definitions.Def_SimplexProj_Condat_IsSimplexProjection
namespace SimplexProj.Condat
/-- Condat, Sect. 2, p. 5: with `f ρ = ∑ₙ max {y_n - ρ, 0} - a` and `τ` the threshold of
Proposition 2.2 (`x = P_Δ(y)`, `x_n = max {y_n - τ, 0}`): `τ` is a root of `f`; `f` is convex,
piecewise linear with breakpoints at the `y_n` (affine on every closed interval whose interior
contains no `y_n`), strictly decreasing on `(-∞, y_max]` and equal to `-a` on `[y_max, +∞)`;
`f ρ < 0 → ρ > τ` and `f ρ > 0 → ρ < τ`; `f (y_min - a/N) ≥ 0`, `f (y_max - a/N) ≤ 0`,
`f (y_max - a) ≥ 0`; hence `τ ∈ [max {y_max - a, y_min - a/N}, y_max - a/N]`.
Standing assumptions of p. 1: `N ≥ 1`, `a > 0`. -/
theorem threshold_root_bracket (N : ℕ) (hN : 1 ≤ N) (a : ℝ) (ha : 0 < a)
(y x : Fin N → ℝ) (hx : IsSimplexProjection a y x)
(τ : ℝ) (hτ : ∀ n, x n = max (y n - τ) 0)
(f : ℝ → ℝ) (hf : ∀ ρ, f ρ = ∑ n, max (y n - ρ) 0 - a)
(ymax ymin : ℝ) (hmax : IsGreatest (Set.range y) ymax) (hmin : IsLeast (Set.range y) ymin) :
f τ = 0 ∧
ConvexOn ℝ Set.univ f ∧
(∀ ρ₁ ρ₂ : ℝ, ρ₁ ≤ ρ₂ → (∀ n, y n ∉ Set.Ioo ρ₁ ρ₂) →
∃ c d : ℝ, ∀ ρ ∈ Set.Icc ρ₁ ρ₂, f ρ = c * ρ + d) ∧
StrictAntiOn f (Set.Iic ymax) ∧
(∀ ρ ∈ Set.Ici ymax, f ρ = -a) ∧
(∀ ρ : ℝ, f ρ < 0 → τ < ρ) ∧
(∀ ρ : ℝ, 0 < f ρ → ρ < τ) ∧
0 ≤ f (ymin - a / N) ∧ f (ymax - a / N) ≤ 0 ∧ 0 ≤ f (ymax - a) ∧
max (ymax - a) (ymin - a / N) ≤ τ ∧ τ ≤ ymax - a / N := 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 .
- is a real number with for every .
- is a function satisfying, for every real ,
- is the greatest value among the entries of : it equals some , and every .
- is the least value among the entries of : it equals some , and every .
In the conclusion, divides by viewed as a real number. The theorem concludes all twelve of the following:
- .
- is convex on all of .
- For all reals such that no entry lies in the open interval , there are reals with for every .
- is strictly decreasing on : if , then .
- for every .
- For every real : if , then .
- For every real : if , then .
- .
- .
- .
- .
- .
Degenerate cases:
- , so never divides by zero, and and are entries of .
- In item 3, the case is allowed; there the interval is a single point and the claim is immediate.
- When , , and , so the bounds in items 11–12 read .
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.