Prove2Me
Navigate
MissionsFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Pushing the request from the first anchor slot to the last

Proved
KServer.potential_push_first

by Shuze Chen · Sep 1, 2026 · Mathlib c5ea003 (Lean v4.30.0)

k-serveronline-algorithmspotential-functionwork-function

Let www be the work function of a 333-server instance ending with the request rrr, in the antipodal extension of a bounded metric space. The anchored potential Φx1x2x3(w)=w(x1x2x3)+w(xˉ1x2x3)+w(xˉ2xˉ2x3)+w(xˉ3 3)\Phi_{x_1x_2x_3}(w) = w(x_1x_2x_3) + w(\bar x_1 x_2 x_3) + w(\bar x_2\bar x_2 x_3) + w(\bar x_3^{\,3})Φx1​x2​x3​​(w)=w(x1​x2​x3​)+w(xˉ1​x2​x3​)+w(xˉ2​xˉ2​x3​)+w(xˉ33​) has a common first summand for all orderings of a fixed triple, so comparing anchored potentials over reorderings compares the last three summands. The theorem states, in that reduced form: for any y,zy, zy,z,

Φyzr(w)≤Φryz(w)orΦzyr(w)≤Φryz(w):\Phi_{yzr}(w) \le \Phi_{ryz}(w) \qquad \text{or} \qquad \Phi_{zyr}(w) \le \Phi_{ryz}(w):Φyzr​(w)≤Φryz​(w)orΦzyr​(w)≤Φryz​(w):

the request can be pushed from the first anchor slot to the last, at the price of possibly transposing the other two anchors. Together with the middle-slot push this completes Lemma 21 of Coester and Koutsoupias for k=3k=3k=3: the minimum of the potential over orderings of a fixed anchor triple containing rrr is attained with rrr last. (Remarkably, this pushing lemma is false for k=4k = 4k=4; it is the step that confines the potential method, in this form, to three servers.)

Structure of the proof

The configuration yˉ yˉ z\bar y\,\bar y\,zyˉ​yˉ​z resolves. If a yˉ\bar yyˉ​-server resolves (cost 2Δ−ry2\Delta - ry2Δ−ry), a single Lipschitz move w(rˉrˉz)≤w(rˉyz)+(2Δ−yr)w(\bar r\bar r z) \le w(\bar r y z) + (2\Delta - yr)w(rˉrˉz)≤w(rˉyz)+(2Δ−yr) lands the first three summands on those of Φyrz\Phi_{yrz}Φyrz​, and the middle-slot push finishes.

If instead zzz resolves, the all-antipodes value of zzz expands exactly (w(zˉ3)=w(zˉzˉr)+2Δ−rzw(\bar z^3) = w(\bar z\bar z r) + 2\Delta - rzw(zˉ3)=w(zˉzˉr)+2Δ−rz, the resolution being forced), and the resolution dichotomy for (rˉ,y,z)(\bar r, y, z)(rˉ,y,z) --- such a configuration always resolves through one of its original servers --- splits the argument. If it resolves from yyy, quasiconvexity of the work function applied to the pair (r,yˉ,yˉ),(r,rˉ,z)(r,\bar y,\bar y), (r,\bar r, z)(r,yˉ​,yˉ​),(r,rˉ,z) with the request as common point, followed by the Lipschitz bound w(rˉ3)≤w(r,yˉ,rˉ)+2Δ+yrw(\bar r^3) \le w(r, \bar y, \bar r) + 2\Delta + yrw(rˉ3)≤w(r,yˉ​,rˉ)+2Δ+yr, closes the first disjunct; if from zzz, the mirror argument with (r,zˉ,zˉ),(r,rˉ,y)(r, \bar z, \bar z), (r, \bar r, y)(r,zˉ,zˉ),(r,rˉ,y) closes the second. Each branch is a linear assembly of the substituted identities.

Role

In the case analysis of Theorem 23 (WFA is 333-competitive on trees), whenever the minimising anchor triple resolves from its first or second anchor, the analysis produces an anchored potential with rrr in the first slot; this lemma relocates rrr to the last slot, which is the form the update property of the potential consumes. No tree structure is used --- resolution, quasiconvexity, Lipschitzness, and the antipodal distance algebra suffice.

Preamble
import Mathlib
import Definitions.Def_KServer_workfunctionU
import Definitions.Def_KServer_antipodal_extension
Formal statement
namespace KServer

theorem potential_push_first (M : Type) [MetricSpace M] (Δ : ℝ) (hΔ0 : 0 < Δ)
    (hΔ : ∀ u v : M, dist u v ≤ Δ) (C₀ : Config 3 M) (σ : List M) (r y z : M) :
    (@workFnU 3 (M ⊕ M) (antipodalExtension M Δ hΔ0 hΔ)
          (fun i => Sum.inl (C₀ i)) ((σ ++ [r]).map Sum.inl) ![Sum.inr y, Sum.inl z, Sum.inl r]
        + @workFnU 3 (M ⊕ M) (antipodalExtension M Δ hΔ0 hΔ)
          (fun i => Sum.inl (C₀ i)) ((σ ++ [r]).map Sum.inl) ![Sum.inr z, Sum.inr z, Sum.inl r]
        + @workFnU 3 (M ⊕ M) (antipodalExtension M Δ hΔ0 hΔ)
          (fun i => Sum.inl (C₀ i)) ((σ ++ [r]).map Sum.inl) ![Sum.inr r, Sum.inr r, Sum.inr r]
      ≤ @workFnU 3 (M ⊕ M) (antipodalExtension M Δ hΔ0 hΔ)
          (fun i => Sum.inl (C₀ i)) ((σ ++ [r]).map Sum.inl) ![Sum.inr r, Sum.inl y, Sum.inl z]
        + @workFnU 3 (M ⊕ M) (antipodalExtension M Δ hΔ0 hΔ)
          (fun i => Sum.inl (C₀ i)) ((σ ++ [r]).map Sum.inl) ![Sum.inr y, Sum.inr y, Sum.inl z]
        + @workFnU 3 (M ⊕ M) (antipodalExtension M Δ hΔ0 hΔ)
          (fun i => Sum.inl (C₀ i)) ((σ ++ [r]).map Sum.inl) ![Sum.inr z, Sum.inr z, Sum.inr z])
    ∨ (@workFnU 3 (M ⊕ M) (antipodalExtension M Δ hΔ0 hΔ)
          (fun i => Sum.inl (C₀ i)) ((σ ++ [r]).map Sum.inl) ![Sum.inr z, Sum.inl y, Sum.inl r]
        + @workFnU 3 (M ⊕ M) (antipodalExtension M Δ hΔ0 hΔ)
          (fun i => Sum.inl (C₀ i)) ((σ ++ [r]).map Sum.inl) ![Sum.inr y, Sum.inr y, Sum.inl r]
        + @workFnU 3 (M ⊕ M) (antipodalExtension M Δ hΔ0 hΔ)
          (fun i => Sum.inl (C₀ i)) ((σ ++ [r]).map Sum.inl) ![Sum.inr r, Sum.inr r, Sum.inr r]
      ≤ @workFnU 3 (M ⊕ M) (antipodalExtension M Δ hΔ0 hΔ)
          (fun i => Sum.inl (C₀ i)) ((σ ++ [r]).map Sum.inl) ![Sum.inr r, Sum.inl y, Sum.inl z]
        + @workFnU 3 (M ⊕ M) (antipodalExtension M Δ hΔ0 hΔ)
          (fun i => Sum.inl (C₀ i)) ((σ ++ [r]).map Sum.inl) ![Sum.inr y, Sum.inr y, Sum.inl z]
        + @workFnU 3 (M ⊕ M) (antipodalExtension M Δ hΔ0 hΔ)
          (fun i => Sum.inl (C₀ i)) ((σ ++ [r]).map Sum.inl) ![Sum.inr z, Sum.inr z, Sum.inr z]) := by sorry

end KServer
Source
C. Coester, E. Koutsoupias, 'Towards the k-server conjecture: a unifying potential, pushing the frontier to the circle', ICALP 2021, arXiv:2102.10474, Lemma 21 (lem:push3), the main case π(k−2) = r, for k = 3; the paper remarks the lemma fails for k = 4.

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.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactJoin Slack© 2026 Prove2Me