Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Lemma 4.1 — the concave closure dominates ggg on BBB, has the same maximum, and its maximizers are argmax⁡(g)‾\overline{\operatorname{argmax}(g)}argmax(g)​

Proved
SteinitzExchange.Extension.concaveClosure_basic

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

concave-closurediscrete-convex-analysisp2o-batch-p100bp2o-gran-per-chapterp2o-plan-paperp2o-v1

Let B⊆ZVB\subseteq\mathbb Z^VB⊆ZV be a nonempty finite set, g:B→Rg:B\to\mathbb Rg:B→R any function, and g^\hat gg^​ its concave closure, regarded as a function on B‾\overline BB. Then:

  1. g^(x)≥g(x)\hat g(x)\ge g(x)g^​(x)≥g(x) for every x∈Bx\in Bx∈B;
  2. max⁡{g^(b)∣b∈B‾}=max⁡{g(x)∣x∈B}\max\{\hat g(b)\mid b\in\overline B\}=\max\{g(x)\mid x\in B\}max{g^​(b)∣b∈B}=max{g(x)∣x∈B}, the maximum on the left being attained;
  3. argmax⁡(g^)=argmax⁡(g)‾\operatorname{argmax}(\hat g)=\overline{\operatorname{argmax}(g)}argmax(g^​)=argmax(g)​, where argmax⁡(g^)={b∈B‾∣g^(b)≥g^(c) ∀c∈B‾}\operatorname{argmax}(\hat g)=\{b\in\overline B\mid\hat g(b)\ge\hat g(c)\ \forall c\in\overline B\}argmax(g^​)={b∈B∣g^​(b)≥g^​(c) ∀c∈B} and the right side is the convex hull of argmax⁡(g)⊆B\operatorname{argmax}(g)\subseteq Bargmax(g)⊆B.

No exchange property is assumed. The lemma transfers maximization questions about ggg on the lattice points to the concave function g^\hat gg^​ on the polytope B‾\overline BB.

Formalization Note. Part (2) is stated as: some b∈B‾b\in\overline Bb∈B has g^(b)=max⁡Bg\hat g(b)=\max_B gg^​(b)=maxB​g, and g^(b)≤max⁡Bg\hat g(b)\le\max_B gg^​(b)≤maxB​g for all b∈B‾b\in\overline Bb∈B. All three parts evaluate g^\hat gg^​ only on B‾\overline BB (see the definition of concaveClosure).

Preamble
import Mathlib
import Definitions.Def_SteinitzExchange_Extension_IntegralBaseSet
import Definitions.Def_SteinitzExchange_Extension_Exchange
import Definitions.Def_SteinitzExchange_Extension_ConcaveClosure
Formal statement
namespace SteinitzExchange.Extension

/-- Murota 1996, p. 285, Lemma 4.1, for any `g : B → ℝ` on a nonempty finite `B ⊆ ℤ^V`:
(1) `ĝ(x) ≥ g(x)` for `x ∈ B`;
(2) `max{ĝ(b) | b ∈ B̄} = max{g(x) | x ∈ B}` (the left maximum is attained);
(3) `argmax(ĝ) = conv(argmax(g))`, the argmax of `ĝ` taken over `B̄`. -/
theorem concaveClosure_basic {V : Type*} [Fintype V] [DecidableEq V] [Nonempty V]
    (B : Finset (V → ℤ)) (hB : B.Nonempty) (g : (V → ℤ) → ℝ) :
    (∀ x ∈ B, g x ≤ concaveClosure B g (toReal x)) ∧
    ((∃ b ∈ hull B, concaveClosure B g b = B.sup' hB g) ∧
      ∀ b ∈ hull B, concaveClosure B g b ≤ B.sup' hB g) ∧
    argmaxOn (hull B) (concaveClosure B g) = hull (argmaxB B g) := by sorry

end SteinitzExchange.Extension
Source
Murota, Convexity and Steinitz's Exchange Property, Adv. Math. 124 (1996), p. 285, Lemma 4.1
Read-back

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

Setting. VVV is a finite, nonempty type with decidable equality. The symbols used are:

  • ι(x)\iota(x)ι(x) is x∈ZVx \in \mathbb{Z}^Vx∈ZV read in RV\mathbb{R}^VRV.
  • ⟨p,b⟩=∑vp(v)b(v)\langle p, b\rangle = \sum_v p(v) b(v)⟨p,b⟩=∑v​p(v)b(v).
  • B⊆ZVB \subseteq \mathbb{Z}^VB⊆ZV is a nonempty finite set. It is not assumed to be an integral base set.
  • g:ZV→Rg : \mathbb{Z}^V \to \mathbb{R}g:ZV→R is arbitrary.

Definitions used.

  • Bˉ\bar BBˉ is the real convex hull of {ι(x):x∈B}\{\iota(x) : x\in B\}{ι(x):x∈B}.
  • The conjugate is
g∘(p)=min⁡x∈B(⟨p,ι(x)⟩−g(x)).g^\circ(p) = \min_{x\in B}\big(\langle p, \iota(x)\rangle - g(x)\big).g∘(p)=x∈Bmin​(⟨p,ι(x)⟩−g(x)).
  • The closure is
g^(b)=inf⁡p∈RV(⟨p,b⟩−g∘(p)),\hat g(b) = \inf_{p\in\mathbb{R}^V}\big(\langle p,b\rangle - g^\circ(p)\big),g^​(b)=p∈RVinf​(⟨p,b⟩−g∘(p)),

taken as a real infimum. It takes the value 000 when the family is not bounded below.

  • argmax⁡B(g)={x∈B:g(y)≤g(x) ∀y∈B}\operatorname{argmax}_B(g) = \{x\in B : g(y)\le g(x)\ \forall y\in B\}argmaxB​(g)={x∈B:g(y)≤g(x) ∀y∈B}.
  • argmax⁡Bˉ(g^)={b∈Bˉ:g^(c)≤g^(b) ∀c∈Bˉ}\operatorname{argmax}_{\bar B}(\hat g) = \{b\in\bar B : \hat g(c)\le\hat g(b)\ \forall c\in\bar B\}argmaxBˉ​(g^​)={b∈Bˉ:g^​(c)≤g^​(b) ∀c∈Bˉ}.

Let M=max⁡x∈Bg(x)M = \max_{x \in B} g(x)M=maxx∈B​g(x).

Conclusion. Three claims hold together:

  1. g(x)≤g^(ι(x))g(x) \le \hat g(\iota(x))g(x)≤g^​(ι(x)) for every x∈Bx \in Bx∈B.
  2. There is some b∈Bˉb \in \bar Bb∈Bˉ with g^(b)=M\hat g(b) = Mg^​(b)=M, and g^(b)≤M\hat g(b) \le Mg^​(b)≤M for every b∈Bˉb \in \bar Bb∈Bˉ.
  3. argmax⁡Bˉ(g^)\operatorname{argmax}_{\bar B}(\hat g)argmaxBˉ​(g^​) equals the convex hull of {ι(x):x∈argmax⁡B(g)}\{\iota(x) : x \in \operatorname{argmax}_B(g)\}{ι(x):x∈argmaxB​(g)}.

Degenerate cases.

  • If B={x}B = \{x\}B={x}, then Bˉ={ι(x)}\bar B = \{\iota(x)\}Bˉ={ι(x)}. The claims say:
    • g(x)≤g^(ι(x))g(x) \le \hat g(\iota(x))g(x)≤g^​(ι(x)) and g^(ι(x))=g(x)\hat g(\iota(x)) = g(x)g^​(ι(x))=g(x);
    • both argmax sets equal {ι(x)}\{\iota(x)\}{ι(x)}.
  • g^\hat gg^​ is only evaluated at points of Bˉ\bar BBˉ, so its behaviour outside Bˉ\bar BBˉ is not constrained here.
  • If g^(b)\hat g(b)g^​(b) took the default value 000 for some b∈Bˉb \in \bar Bb∈Bˉ, claims 2 and 3 would apply to that default value.
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