The k-server to evader reduction on k+1 points (offline direction)
ProvedKServer.evader_to_server_offlineLet be a metric space with exactly points, an injective initial configuration of servers, and its hole (the unique uncovered point). For every sequence of nonempty set requests,
where encodes each set request as passes through : the optimal -server cost of the encoded sequence is at most the optimal evader cost.
Role
This is the offline half of the reduction on -point spaces (Bubeck–Coester–Rabani, STOC 2023, Proposition 2.6). Together with the online half (server_to_evader_reduction), it transfers a distributional evader lower bound — expected online cost at least times expected offline cost — to the -server problem on the encoded sequences, with the same up to a constant factor.
Proof idea
The servers shadow the complement of the evader: given a feasible evader path with , the schedule keeps the servers on during the -th block, moving a single server (the one standing on ) at each block boundary, at cost . Every request of block lies in , so the blocks are served without further motion. Formally the bound factors through the work function: the covered stretches are free (iterating workFn_covered), the boundary moves are paid by the Lipschitz property (workFn_lipschitz), the base case is workFn_nil, and offlineCost_le_workFn concludes. The complement configurations are maintained by an explicit one-update recursion whose invariant — injectivity, and range equal to the complement of the evader's position — is proved by induction with a counting argument for the initial hole.
import Mathlib import Definitions.Def_KServer_model import Definitions.Def_KServer_workfunction import Definitions.Def_KServer_evader import Definitions.Def_KServer_evader_encoding
namespace KServer
theorem evader_to_server_offline (k : ℕ) (hk : 1 ≤ k) (M : Type) [MetricSpace M] [Fintype M]
(hcard : Fintype.card M = k + 1) (R : ℕ)
(C₀ : Config k M) (hinj : Function.Injective C₀)
(x₀ : M) (hx₀ : x₀ ∉ Set.range C₀)
(σ : List (Set M)) (hσ : ∀ S ∈ σ, S.Nonempty) :
offlineCost C₀ (encSeq M R σ) ≤ evaderOfflineCost x₀ σ := by sorry
end KServer