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).
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].
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.
σ(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).