Pushing the request from the middle anchor slot to the last
ProvedKServer.potential_push_midLet be the work function of a -server instance ending with the request , evaluated in the antipodal extension of a metric space with distances bounded by . Then for every point :
In potential terms this is the "easy case" of Lemma 21 of Coester and Koutsoupias: the anchored potential and share their first two summands ( and up to ordering), and the displayed inequality compares exactly the remaining two — so it says the request may be pushed from the middle anchor slot to the last without increasing the potential, .
Role
The potential method proves -competitiveness of the Work Function Algorithm once the minimum of the potential is attained at an anchor triple ending with the current request. The pushing lemmas are how the case analysis of Coester--Koutsoupias' Theorem 23 finishes: whenever the analysis produces a minimising triple with in the first or middle slot, they move to the last slot. This theorem is the middle-slot step; the first-slot step reduces to it. The paper calls this case "easy" and omits it; the proof below is the omitted argument.
About the proof
No tree structure is used --- only the resolution property of (some server of any configuration can be sent to the last request at exactly the cost of the move) and -Lipschitzness, together with the antipodal distance algebra , , .
The all-antipodes configuration resolves necessarily to , giving the exact identity . The mixed configuration resolves either from --- then , and the single Lipschitz bound closes the inequality exactly --- or from a copy of at cost , and then the Lipschitz bound closes it, again exactly. Both branches are equalities up to the substituted identities, reflecting that the push loses nothing.
Formalization note
The extension is antipodalExtension on , original points embedded by Sum.inl, antipodes written Sum.inr; the work function is workFnU of the embedded instance. The proof is independent of which resolving index the resolution theorem returns.
import Mathlib import Definitions.Def_KServer_workfunctionU import Definitions.Def_KServer_antipodal_extension
namespace KServer
theorem potential_push_mid (M : Type) [MetricSpace M] (Δ : ℝ) (hΔ0 : 0 < Δ)
(hΔ : ∀ u v : M, dist u v ≤ Δ) (C₀ : Config 3 M) (σ : List M) (r z : M) :
@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.inr r, 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