Comb March Solver

A Theory of Dynamic Contests with Deadlines and Effort Smoothing Joffrion & Parreiras, 2026

Enter a cost function c(·) with c(0)=0 as a Julia expression (variable e only) plus the players' valuations vA and vB and player A's lead Δ. The solver returns every σ(m, n) equilibrium candidate for both regimes (uA>0 and uB>0) across nine canonical sizes, each labelled with a verdict. Click a case to inspect its atoms and payoff graph — including the failed comb for no-equilibrium cases.
Engine: forward comb march (robust where Newton false-negatives near affine costs).

Allowed: numeric literals, variable e, operators + − * / ^, and exp, log, log1p, cosh, sinh, tanh, sqrt, abs. Must satisfy c(0) = 0, be non-decreasing (c′ ≥ 0) and convex (c″ ≥ 0) on [0, 2].
Presets: cosh(e)−1 exp(e)−1 explin e^2.5

Asymmetric cases take a while — please be patient. With vA = vB and Δ = 0 the solve returns in a couple of seconds. Once the valuations differ or Δ ≠ 0 the march has far more work to do, and Compute commonly takes around half a minute on this server. That is the solver thinking, not a stuck page. Re-submitting the same inputs afterwards is instant, but reloading mid-solve does not cancel anything — it just starts a second solve alongside the first.


Verdict legend

σ(m, n) is indexed by (slack-IR atoms, binding-IR atoms). The uB>0 column uses the parameter-swap symmetry σ(m, n, vA, vB, Δ | uB>0) ≡ σ(m, n, vB, vA, −Δ | uA>0).