Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Theorem 4 (bounds): greedy backward/forward bounds on the optimal deletion problem (13)

Proved
ScenarioReduction.Redistribution.bounds

by mikedeng1 · Sep 26, 2026 · Mathlib 0df444a (Lean v4.33.1)

combinatorial-optimizationoptimal-transportp2o-batch-p100ap2o-gran-per-chapterp2o-plan-paperp2o-v1scenario-reductionstochastic-programming

Under the standing assumptions of Section 3, fix k∈Nk\in\mathbb Nk∈N with 1≤k<N1\le k<N1≤k<N and consider the optimal deletion problem (13),

min⁡{DJ:J⊂{1,…,N}, #J=k},\min\{D_J: J\subset\{1,\dots,N\},\ \#J=k\},min{DJ​:J⊂{1,…,N}, #J=k},

where DJD_JDJ​ is the optimal-weights value of Theorem 2. Choose indices recursively:

  1. l1,…,lkl_1,\dots,l_kl1​,…,lk​ such that for i=1,…,ki=1,\dots,ki=1,…,k, lil_ili​ solves min⁡l∈{1,…,N}∖{l1,…,li−1}plmin⁡j≠lc(ωl,ωj)\min_{l\in\{1,\dots,N\}\setminus\{l_1,\dots,l_{i-1}\}}p_l\min_{j\neq l}c(\omega_l,\omega_j)minl∈{1,…,N}∖{l1​,…,li−1​}​pl​minj=l​c(ωl​,ωj​) — (16);
  2. u1,…,uN−ku_1,\dots,u_{N-k}u1​,…,uN−k​ such that for j=1,…,N−kj=1,\dots,N-kj=1,…,N−k, uju_juj​ solves
min⁡u∉{u1,…,uj−1} ∑i∉{u1,…,uj−1,u}pimin⁡l∈{u1,…,uj−1,u}c(ωl,ωi)(17),\min_{u\notin\{u_1,\dots,u_{j-1}\}}\ \sum_{i\notin\{u_1,\dots,u_{j-1},u\}}p_i\min_{l\in\{u_1,\dots,u_{j-1},u\}}c(\omega_l,\omega_i)\qquad(17),u∈/{u1​,…,uj−1​}min​ i∈/{u1​,…,uj−1​,u}∑​pi​l∈{u1​,…,uj−1​,u}min​c(ωl​,ωi​)(17),

and put Ju={1,…,N}∖{u1,…,uN−k}J_u=\{1,\dots,N\}\setminus\{u_1,\dots,u_{N-k}\}Ju​={1,…,N}∖{u1​,…,uN−k​}. Then

∑i=1kplimin⁡j≠lic(ωli,ωj)≤min⁡{DJ:#J=k}≤∑i∈Jupimin⁡j∉Juc(ωi,ωj).\sum_{i=1}^kp_{l_i}\min_{j\neq l_i}c(\omega_{l_i},\omega_j)\le\min\{D_J:\#J=k\}\le\sum_{i\in J_u}p_i\min_{j\notin J_u}c(\omega_i,\omega_j).i=1∑k​pli​​j=li​min​c(ωli​​,ωj​)≤min{DJ​:#J=k}≤i∈Ju​∑​pi​j∈/Ju​min​c(ωi​,ωj​).

Moreover, {l1,…,lk}\{l_1,\dots,l_k\}{l1​,…,lk​} is a solution of (13) if for each i=1,…,ki=1,\dots,ki=1,…,k the set arg⁡min⁡j≠lic(ωli,ωj)∖{l1,…,li−1,li+1,…,lk}\arg\min_{j\neq l_i}c(\omega_{l_i},\omega_j)\setminus\{l_1,\dots,l_{i-1},l_{i+1},\dots,l_k\}argminj=li​​c(ωli​​,ωj​)∖{l1​,…,li−1​,li+1​,…,lk​} is nonempty.

The two recursions are the backward-reduction and forward-selection heuristics of the paper; the theorem certifies the quality of their output.

Formalization Note Indices are 0-based: l:Fin k→Fin Nl:\mathrm{Fin}\,k\to\mathrm{Fin}\,Nl:Fink→FinN and u:Fin(N−k)→Fin Nu:\mathrm{Fin}(N-k)\to\mathrm{Fin}\,Nu:Fin(N−k)→FinN, where the natural-number subtraction N−kN-kN−k is exact because k<Nk<Nk<N. The recursions are hypotheses: each lil_ili​ (resp. uju_juj​) is distinct from the earlier ones and minimizes (16) (resp. (17)) over the remaining indices. In (16) and in the lower bound the inner minimum ranges over all j≠lj\neq lj=l, not over kept indices. The value of (13) is the infimum of DJD_JDJ​ over #J=k\#J=k#J=k, a finite nonempty set of reals; "solution of (13)" is stated as #{l1,…,lk}=k\#\{l_1,\dots,l_k\}=k#{l1​,…,lk​}=k and D{l1,…,lk}D_{\{l_1,\dots,l_k\}}D{l1​,…,lk​}​ equal to that value.

Preamble
import Mathlib
import Definitions.Def_ScenarioReduction_Redistribution_transportValue

open Finset
Formal statement
namespace ScenarioReduction.Redistribution

theorem bounds {Ω : Type*} {N : ℕ} (c : Ω → Ω → ℝ) (ω : Fin N → Ω) (p : Fin N → ℝ)
    (hc : ∀ a b : Ω, 0 ≤ c a b) (hc1 : ∀ a b : Ω, c a b = 0 ↔ a = b)
    (hc2 : ∀ a b : Ω, c a b = c b a)
    (hp : ∀ i, 0 < p i) (hp1 : ∑ i, p i = 1)
    (k : ℕ) (hk1 : 1 ≤ k) (hkN : k < N)
    (l : Fin k → Fin N)
    (hl : ∀ i : Fin k, l i ∉ (univ.filter (fun i' => i' < i)).image l ∧
      ∀ m ∉ (univ.filter (fun i' => i' < i)).image l,
        p (l i) * minOver {l i}ᶜ (fun j => c (ω (l i)) (ω j)) ≤ p m * minOver {m}ᶜ (fun j => c (ω m) (ω j)))
    (u : Fin (N - k) → Fin N)
    (hu : ∀ j : Fin (N - k), u j ∉ (univ.filter (fun j' => j' < j)).image u ∧
      ∀ m ∉ (univ.filter (fun j' => j' < j)).image u,
        ∑ i ∈ (insert (u j) ((univ.filter (fun j' => j' < j)).image u))ᶜ,
            p i * minOver (insert (u j) ((univ.filter (fun j' => j' < j)).image u)) (fun l' => c (ω l') (ω i))
          ≤ ∑ i ∈ (insert m ((univ.filter (fun j' => j' < j)).image u))ᶜ,
            p i * minOver (insert m ((univ.filter (fun j' => j' < j)).image u)) (fun l' => c (ω l') (ω i))) :
    ∑ i : Fin k, p (l i) * minOver {l i}ᶜ (fun j => c (ω (l i)) (ω j)) ≤ optimalDeletionValue c ω p k ∧
      optimalDeletionValue c ω p k ≤
        ∑ i ∈ (univ.image u)ᶜ, p i * minOver (univ.image u) (fun j => c (ω i) (ω j)) ∧
      ((∀ i : Fin k, ∃ j : Fin N, j ≠ l i ∧ (∀ i' : Fin k, i' ≠ i → j ≠ l i') ∧
          ∀ j' : Fin N, j' ≠ l i → c (ω (l i)) (ω j) ≤ c (ω (l i)) (ω j')) →
        (univ.image l).card = k ∧ optWeightsValue c ω p (univ.image l) = optimalDeletionValue c ω p k) := by sorry

end ScenarioReduction.Redistribution
Source
Dupačová, Gröwe-Kuska, Römisch, Scenario reduction in stochastic programming, Math. Program. Ser. A 95 (2003), p. 503, Theorem 4, eqs. (16)–(17); problem (13) on p. 502
Read-back

What the Lean code literally says, in plain math · claude-opus-5-5

The data are:

  • an arbitrary type Ω\OmegaΩ and N∈NN \in \mathbb{N}N∈N;
  • c:Ω×Ω→Rc : \Omega \times \Omega \to \mathbb{R}c:Ω×Ω→R;
  • ω:[N]→Ω\omega : [N] \to \Omegaω:[N]→Ω and p:[N]→Rp : [N] \to \mathbb{R}p:[N]→R;
  • k∈Nk \in \mathbb{N}k∈N;
  • a sequence l0,…,lk−1∈[N]l_0, \dots, l_{k-1} \in [N]l0​,…,lk−1​∈[N];
  • a sequence u0,…,uN−k−1∈[N]u_0, \dots, u_{N-k-1} \in [N]u0​,…,uN−k−1​∈[N].

The standing hypotheses are:

  • c≥0c \ge 0c≥0;
  • c(a,b)=0  ⟺  a=bc(a, b) = 0 \iff a = bc(a,b)=0⟺a=b;
  • ccc is symmetric;
  • pi>0p_i > 0pi​>0 for all iii, and ∑ipi=1\sum_i p_i = 1∑i​pi​=1;
  • 1≤k<N1 \le k < N1≤k<N.

Write:

  • φ(m)=pmmin⁡j≠mc(ωm,ωj)\varphi(m) = p_m \min_{j \ne m} c(\omega_m, \omega_j)φ(m)=pm​minj=m​c(ωm​,ωj​);
  • L<i={li′:i′<i}L_{<i} = \{l_{i'} : i' < i\}L<i​={li′​:i′<i} and L={l0,…,lk−1}L = \{l_0, \dots, l_{k-1}\}L={l0​,…,lk−1​};
  • U<j={uj′:j′<j}U_{<j} = \{u_{j'} : j' < j\}U<j​={uj′​:j′<j} and U={u0,…,uN−k−1}U = \{u_0, \dots, u_{N-k-1}\}U={u0​,…,uN−k−1​};
  • for a nonempty S⊆[N]S \subseteq [N]S⊆[N],
F(S)=∑i∉Spimin⁡l′∈Sc(ωl′,ωi).F(S) = \sum_{i \notin S} p_i \min_{l' \in S} c(\omega_{l'}, \omega_i).F(S)=i∈/S∑​pi​l′∈Smin​c(ωl′​,ωi​).

The sequences lll and uuu must satisfy:

  • Condition on lll. For each i<ki < ki<k: li∉L<il_i \notin L_{<i}li​∈/L<i​, and φ(li)≤φ(m)\varphi(l_i) \le \varphi(m)φ(li​)≤φ(m) for every m∉L<im \notin L_{<i}m∈/L<i​. So each lil_ili​ is a new index minimizing φ\varphiφ among the indices not yet chosen.
  • Condition on uuu. For each j<N−kj < N - kj<N−k: uj∉U<ju_j \notin U_{<j}uj​∈/U<j​, and F(U<j∪{uj})≤F(U<j∪{m})F(U_{<j} \cup \{u_j\}) \le F(U_{<j} \cup \{m\})F(U<j​∪{uj​})≤F(U<j​∪{m}) for every m∉U<jm \notin U_{<j}m∈/U<j​.

The theorem also uses the following quantities:

  • D(J;q)D(J; q)D(J;q) is the infimum, over matrices η\etaη with ηij≥0\eta_{ij} \ge 0ηij​≥0 for j∉Jj \notin Jj∈/J, ∑j∉Jηij=pi\sum_{j \notin J} \eta_{ij} = p_i∑j∈/J​ηij​=pi​ for all iii, and ∑iηij=qj\sum_i \eta_{ij} = q_j∑i​ηij​=qj​ for j∉Jj \notin Jj∈/J, of ∑i∑j∉Jc(ωi,ωj) ηij\sum_i \sum_{j \notin J} c(\omega_i, \omega_j)\, \eta_{ij}∑i​∑j∈/J​c(ωi​,ωj​)ηij​.
  • DJD_JDJ​ is the infimum of D(J;q)D(J; q)D(J;q) over all qqq with qj≥0q_j \ge 0qj​≥0 for j∉Jj \notin Jj∈/J and ∑j∉Jqj=1\sum_{j \notin J} q_j = 1∑j∈/J​qj​=1.
  • Dk∗D^*_kDk∗​ is the infimum of DJD_JDJ​ over all J⊆[N]J \subseteq [N]J⊆[N] with ∣J∣=k|J| = k∣J∣=k.

Every infimum is 000 if its set is empty or unbounded below.

The theorem asserts all three of the following:

  1. Lower bound.
∑i=0k−1plimin⁡j≠lic(ωli,ωj)  ≤  Dk∗.\sum_{i=0}^{k-1} p_{l_i} \min_{j \ne l_i} c(\omega_{l_i}, \omega_j) \;\le\; D^*_k.i=0∑k−1​pli​​j=li​min​c(ωli​​,ωj​)≤Dk∗​.
  1. Upper bound.
Dk∗  ≤  ∑i∉Upimin⁡j∈Uc(ωi,ωj).D^*_k \;\le\; \sum_{i \notin U} p_i \min_{j \in U} c(\omega_i, \omega_j).Dk∗​≤i∈/U∑​pi​j∈Umin​c(ωi​,ωj​).

Note the argument order: here it is c(ωi,ωj)c(\omega_i, \omega_j)c(ωi​,ωj​) with the non-UUU index first, whereas FFF in the condition on uuu uses c(ωl′,ωi)c(\omega_{l'}, \omega_i)c(ωl′​,ωi​) with the UUU-index first. 3. Conditional optimality of LLL. Suppose that for every i<ki < ki<k there is an index jjj with all of the following properties:

  • j≠lij \ne l_ij=li​;
  • j≠li′j \ne l_{i'}j=li′​ for every i′≠ii' \ne ii′=i;
  • c(ωli,ωj)≤c(ωli,ωj′)c(\omega_{l_i}, \omega_j) \le c(\omega_{l_i}, \omega_{j'})c(ωli​​,ωj​)≤c(ωli​​,ωj′​) for every j′≠lij' \ne l_ij′=li​.

Then ∣L∣=k|L| = k∣L∣=k and DL=Dk∗D_L = D^*_kDL​=Dk∗​.

Degenerate cases:

  • Size of NNN. The hypothesis 1≤k<N1 \le k < N1≤k<N forces N≥2N \ge 2N≥2. So every set {m}c\{m\}^c{m}c is nonempty and φ\varphiφ is a genuine minimum.
  • Size of UUU. N−k≥1N - k \ge 1N−k≥1, so uuu has at least one entry. Every set U<j∪{⋅}U_{<j} \cup \{\cdot\}U<j​∪{⋅} in the condition on uuu is nonempty, as is UUU itself.
  • Empty complement of UUU. If U=[N]U = [N]U=[N], which can happen only if uuu repeats no index and N−k=NN - k = NN−k=N (impossible since k≥1k \ge 1k≥1), the sum in (2) would be empty. In fact Uc≠∅U^c \neq \emptysetUc=∅ in every admissible case.
  • No subtraction truncation. The length N−kN - kN−k is an ordinary difference because k<Nk < Nk<N.
  • k=1k = 1k=1. Part (1) reads φ(l0)≤D1∗\varphi(l_0) \le D^*_1φ(l0​)≤D1∗​, where l0l_0l0​ is a global minimizer of φ\varphiφ.
  • Repeated points. ω\omegaω may be non-injective. If two indices share a point, the corresponding φ\varphiφ values are 000.
Human review
  • Endorsed by Shuze Chen · Sep 27, 2026

    Confirmed by the moderator at approval.

  • Endorsed by mikedeng1 · Sep 27, 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