Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Proof of Theorem 2, upper bound: q̄ is feasible and D(J; q̄) ≤ Σ_{i∈J} p_i min_{j∉J} c(ω_i, ω_j)

Proved
ScenarioReduction.Redistribution.qbar_upper_bound

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

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

Under the standing assumptions of Section 3, let J⊊{1,…,N}J\subsetneq\{1,\dots,N\}J⊊{1,…,N} and choose for every deleted index i∈Ji\in Ji∈J a kept index j(i)∉Jj(i)\notin Jj(i)∈/J with j(i)∈arg⁡min⁡j∉Jc(ωi,ωj)j(i)\in\arg\min_{j\notin J}c(\omega_i,\omega_j)j(i)∈argminj∈/J​c(ωi​,ωj​). Put Jj={i∈J:j(i)=j}J_j=\{i\in J: j(i)=j\}Jj​={i∈J:j(i)=j} and define the optimal redistribution

qˉj=pj+∑i∈Jjpi(j∉J).\bar q_j=p_j+\sum_{i\in J_j}p_i\qquad(j\notin J).qˉ​j​=pj​+i∈Jj​∑​pi​(j∈/J).

Then qˉ\bar qqˉ​ is a feasible reduced weight (qˉj≥0\bar q_j\ge0qˉ​j​≥0 and ∑j∉Jqˉj=1\sum_{j\notin J}\bar q_j=1∑j∈/J​qˉ​j​=1), and

D(J;qˉ)≤∑i∈Jpimin⁡j∉Jc(ωi,ωj).D(J;\bar q)\le\sum_{i\in J}p_i\min_{j\notin J}c(\omega_i,\omega_j).D(J;qˉ​)≤i∈J∑​pi​j∈/Jmin​c(ωi​,ωj​).

Together with the lower bound this shows that qˉ\bar qqˉ​ is an optimal reweighting of the kept scenarios: every deleted scenario hands its probability to a nearest kept scenario.

Formalization Note The statement holds for every arg-min selector j(⋅)j(\cdot)j(⋅), not a particular one. The selector's values must be kept indices, because c(ωi,ωi)=0c(\omega_i,\omega_i)=0c(ωi​,ωi​)=0 would make iii itself an arg-min over all indices. The complement of JJJ is assumed nonempty (implicit on p. 501).

Preamble
import Mathlib
import Definitions.Def_ScenarioReduction_Redistribution_transportValue

open Finset
Formal statement
namespace ScenarioReduction.Redistribution

theorem qbar_upper_bound {Ω : 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)
    (J : Finset (Fin N)) (hJ : Jᶜ.Nonempty) (jsel : Fin N → Fin N)
    (hsel : IsArgminSelector c ω J jsel) :
    IsReducedWeight J (qbar p J jsel) ∧
      transportValue c ω p J (qbar p J jsel) ≤ ∑ i ∈ J, p i * minOver Jᶜ (fun j => c (ω i) (ω j)) := 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. 501, §3, proof of Theorem 2, upper bound (definition of η̄ and q̄, and the display D(J; q̄) ≤ …)
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;
  • J⊆[N]J \subseteq [N]J⊆[N];
  • a map σ:[N]→[N]\sigma : [N] \to [N]σ:[N]→[N].

The 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;
  • Jc≠∅J^c \neq \emptysetJc=∅;
  • σ\sigmaσ is an arg-min selector for JJJ: for every i∈Ji \in Ji∈J, σ(i)∉J\sigma(i) \notin Jσ(i)∈/J and c(ωi,ωσ(i))≤c(ωi,ωj)c(\omega_i, \omega_{\sigma(i)}) \le c(\omega_i, \omega_j)c(ωi​,ωσ(i)​)≤c(ωi​,ωj​) for all j∉Jj \notin Jj∈/J. Nothing is required of σ\sigmaσ outside JJJ.

Define

qˉj=pj+∑i∈J, σ(i)=jpi(j∈[N]).\bar q_j = p_j + \sum_{i \in J,\ \sigma(i) = j} p_i \qquad (j \in [N]).qˉ​j​=pj​+i∈J, σ(i)=j∑​pi​(j∈[N]).

The theorem asserts both of the following:

  • qˉ\bar qqˉ​ is a reduced weight for JJJ: qˉj≥0\bar q_j \ge 0qˉ​j​≥0 for j∉Jj \notin Jj∈/J and ∑j∉Jqˉj=1\sum_{j \notin J} \bar q_j = 1∑j∈/J​qˉ​j​=1.
  • The transport value is bounded above:
D(J;qˉ)  ≤  ∑i∈Jpi min⁡j∉Jc(ωi,ωj).D(J; \bar q) \;\le\; \sum_{i \in J} p_i \,\min_{j \notin J} c(\omega_i, \omega_j).D(J;qˉ​)≤i∈J∑​pi​j∈/Jmin​c(ωi​,ωj​).

Here D(J;qˉ)D(J; \bar q)D(J;qˉ​) is the infimum of ∑i∈[N]∑j∉Jc(ωi,ωj) ηij\sum_{i \in [N]} \sum_{j \notin J} c(\omega_i, \omega_j)\, \eta_{ij}∑i∈[N]​∑j∈/J​c(ωi​,ωj​)ηij​ 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 every iii;
  • ∑iηij=qˉj\sum_i \eta_{ij} = \bar q_j∑i​ηij​=qˉ​j​ for every j∉Jj \notin Jj∈/J.

It is 000 if no such η\etaη exists.

Degenerate cases:

  • N=0N = 0N=0. The statement is vacuous.
  • J=∅J = \emptysetJ=∅. Then σ\sigmaσ is unconstrained and qˉ=p\bar q = pqˉ​=p. The claims become "ppp is a reduced weight for ∅\emptyset∅" and D(∅;p)≤0D(\emptyset; p) \le 0D(∅;p)≤0.
  • J=[N]J = [N]J=[N]. This is excluded by Jc≠∅J^c \neq \emptysetJc=∅.
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