Carlos Toledo

The bench: four experiments that make the kernel falsifiable

Continuum MFG on one finite-difference kernel — a monotone upwind HJB operator and a Fokker–Planck operator built as its exact discrete transpose. These four exist to test the kernel, not to make a claim about the world.

Here the tab metaphor is honest: these are alternatives to each other, four probes of one discretization. A benchmark with a known answer (02) fixes the observed order; a deliberately non-monotone regime (03) shows the certificate degrading exactly where the theory says uniqueness fails; an explicit integrator (04) stalls by design on a skew-dominated Jacobian. Failure modes are the point of this page.

01 · A crowd in one dimension

A population moves to a target through its own density — local aversion cost, or a genuine Lions congestion Hamiltonian — certified by exploitability, not fixed-point residual alone.

try

Fictitious play — convergence & ε-Nash certificate ‖m̃⁽ᵏ⁾−m̄⁽ᵏ⁾‖/‖m‖ and exploitability, log scale

idle — press Solve equilibrium
iteration
residual m
exploitability ε
residual u (sup)
mass drift
min m
grid nx×nt
Amber: density residual. Thin oxblood: value residual.  exploitability ε = ∫(Vπ−uBR)(·,0)m₀ — the gain the best deviator can realize; measured every 10 iterations.  marks ε < 0, which occurs when the best-response solve and the frozen policy evaluation differ only at rounding scale (observed occasionally in spot checks, at rounding scale (order 1e−10)): the sign carries no economic meaning there and is reported rather than clipped. ε = 0 exactly at the discrete fixed point by construction.

Density m(x,t) forward ▸ space–time

x horizontal, time flowing upward. With crowd interaction on, the density flattens and staggers its arrival before the jam forms — anticipation is the signature of the game.

Value u(x,t) ◂ backward space–time

Solved from the terminal condition backward. The optimal drift is −∂xu/g; the crowd raises u exactly where it is going to be.

Equilibrium vs. crowd-blind flow animated in t

The dashed curve solves the same system with all crowd interaction off — agents who ignore each other. The gap between solid and dashed is exactly what game-theoretic coupling adds.
equilibrium m(·,t) crowd-blind m(·,t) value u(·,t), right axis

02 · The LQ control experiment

Quadratic structure collapses this MFG to a small Riccati system; the PDE solver doesn't know that. Its error against the RK4 reference is measured on a grid sequence — slope −1 is the pass condition.

running cost ½α² + ½q(x − s(t))²,   s(t) = xc + ρ((t) − xc)mean-field via the mean
u = ½A(t)x² + B(t)x + C(t):   A′ = A² − q,   B′ = AB + qs,   ′ = −(A + B)Riccati reduction

Grid-refinement study PDE solver vs. Riccati reference (RK4, Δt = 5·10⁻⁵)

idle — the LQ structure collapses the MFG to four ODEs; the PDE solver doesn't know that. Press Run to measure its error.
‖u−uref core ‖m−mref/‖mref |m̄−m̄ref| slope −1 (first order)
nxerr uerr merr m̄order u
u measured on the core x∈[0.15,0.85] to exclude the artificial boundary layer of the reflecting walls (the analytic problem lives on ℝ). nt = 2nx throughout; monotone upwind + implicit Euler is a first-order scheme, so slope −1 is the pass condition.

Solution overlay — finest grid numeric vs. analytic

Teal: density m(·,T), computed (solid) vs. Gaussian N(m̄(T), v(T)) from the variance ODE (dashed). Oxblood: value u(·,0), computed vs. ½A(0)x²+B(0)x+C(0). Agreement here means the discrete forward-backward coupling reproduces the exact mean-field interaction through the mean.

03 · Two exits, one pitchfork

Crowd aversion splits the crowd evenly, with a full certificate. Herding is anti-monotone: sweep the coupling with both tilt signs and trace the symmetry breaking yourself — one solve deposits one point.

−∂tu − νΔu + ½|∇u|² = f(m),  u(·,T) = κ·min(|z−E₁|², |z−E₂|²)◂ backward
tm − νΔm − ∇·(mu) = 0forward ▸
try

Convergence, symmetry & ε-Nash 48² × 96 grid · dimensional splitting

idle — press Solve equilibrium
iteration
residual m
exit asymmetry
exploitability ε
mass drift
min m
ε is computed once at termination (one policy-evaluation plus one best-response solve). ε here is iteration-limited, not grid-limited. Measured on the 1D kernel: at a fixed iteration tolerance the residual stalls near 1e−6 on every grid, so refining h and Δt does not drive ε down in any stable way — the apparent slope across four grids ranges from −1.9 to 2.6 depending on the parameter set, which is a sign that ε is dominated by iteration error rather than discretization. Against that, |ε|/(h+Δt) is of order 5e−9, so a naive O(h+Δt) bound sits some nine orders above the measured ε and certifies nothing. Across 51 parameter corners |ε|/residual spans ~2400×, so no calibrated absolute floor is defensible either. The convergence theory for fully-discrete MFG schemes (Bonnans–Liu–Pfeiffer, ESAIM M2AN 2023) supplies rates of the form C·hr with r<1 tied to solution regularity, but never evaluates C — and it is proved for a centered scheme, not the upwind kernel used here. So no absolute floor is available to us from theory either. We therefore report ε beside the residual that limits it: when the residual stalls at the herding plateau while ε stays orders below it, the iteration is orbiting a genuine equilibrium rather than diverging from one. Note that ε measures exploitability at the discrete fixed point; it is not the distance to the continuous MFG solution that those rate theorems bound.

Density m(x,y,t) animated in t

The crowd starts left of center; E₁ and E₂ are the exits. Under crowd aversion it splits evenly. Switch to herding and the split becomes unstable — the tilt sign selects which exit wins.

Bifurcation diagram assembled from your solves

Each completed solve deposits one point: coupling strength c vs. exit asymmetry at time T. Under aversion all points sit on zero. Under herding, sweep c from 0 upward with both tilt signs and the pitchfork appears — symmetric below c* ≈ 0.4 (with a full 1e−6 certificate), broken above it.

04 · The stationary system, solved by flow

The ergodic MFG integrated by the crossed monotone flow of Almulla–Ferreira–Gomes — proximal-implicit, because the explicit toggle stalls, and it should: the flow's Jacobian is skew-dominated.

−νu″ + |u′|²/2g(m) = V(x) + f(m) + H̄,   −νm″ − (m·u′/g)′ = 0,   ∫m = 1, ∫u = 0ergodic system, unknowns (u, m, H̄)
crossed flow:   ∂sm = +RHJB,   ∂su = −RFPcontraction from Lasry–Lions monotonicity
try

Monotone flow — operator norm decay ‖F(w)‖ per step, log scale

idle — press Run flow
step
‖F(w)‖
flux certificate
mass − 1
min m
τ
The flux certificate is maxi|Fi+½| of the scheme's own discrete Fokker–Planck flux: stationarity with reflecting walls forces it to vanish identically, so machine zero here is a structural receipt, not a tolerance. Try the explicit integrator to feel why it exists: the flow's Jacobian is skew-dominated (νΔ and transport enter antisymmetrically), and explicit Euler expands on skew systems at any step size.

Stationary solution m teal · u oxblood · V shaded

Density piles into the wells of V(x) until crowd cost balances potential gain. In aversion mode the dashed curve is the Gibbs measure e−u/ν/Z — an exact structural identity of the continuum solution, reproduced here to O(h).
m(x) Gibbs e−u/ν/Z (aversion mode) u(x), right axis shaded: potential V(x)

A price that clears a market of storage agents, with the imbalance itself as the convergence criterion

Model: Gomes & Saúde, A mean-field game approach to price formation — the balance condition determines the price as a Lagrange multiplier. Skin: a fleet of batteries choosing when to charge.
REPRODUCED · model structure CERTIFIED · clearing residual ≤ 1e−9 PRE-UPDATE · residual measured before the step it judges

The price is not a parameter here; it is the multiplier that makes supply meet demand at every instant. That makes the certificate unusually clean: the fixed-point residual of the clearing map IS the market imbalance. There is no separate tolerance to argue about — either the market clears or the number on screen says it does not. The iteration is Anderson-accelerated on the clearing map, and the residual displayed is computed before the update it judges, so it cannot be made small by the very step it is measuring.

The economic content is the second panel. A greedy tariff — every agent charging whenever the price is momentarily low — is the policy most people expect to be efficient. It is not: it rebounds, creating a new peak where the cheap window was. The page measures the rebound rather than asserting it (+44% on the base configuration, +81% on the overnight-wind preset), and both numbers move when you move the sliders.

05 · Price formation, in a battery fleet

The Gomes–Saúde clearing price against a posted time-of-use tariff on the same overnight window — the synchronized rebound is the exhibit, and the clearing residual is the convergence criterion.

−∂tu − ν∂xxu + ½(∂xu + ϖ(t))² = 0,  u(·,T) = κ(x−x*)²◂ backward · x = state of charge
tm − ν∂xxm − ∂x(m·(∂xu+ϖ)) = 0forward ▸
∫α*m dx = Q(t)  ⇒  ϖ(t) = −Q(t) − ∫∂xu·m dxmarket clearing · price is the multiplier
try

Market clearing — certificate maxt|D(t)−Q(t)|, Anderson-accelerated fixed point on ϖ

idle — press Solve equilibrium
iteration
clearing residual
exploitability ε
greedy rebound
mass drift
min m
The clearing residual and the fixed-point residual are the same number — an algebraic identity of the quadratic-cost model — so “the market clears to 1e−9” is the convergence criterion.  exploitability against the realized price, measured every 25 iterations; machine-level at convergence.

Fleet demand vs. grid supply the rebound exhibit

Shaded: residual supply Q(t) — scarce during the evening peak, abundant under overnight wind. Dashed oxblood: demand under the posted time-of-use tariff — every battery sees the same cheap window and piles in, overshooting supply. Teal: equilibrium demand under the market-clearing price — it hugs the supply curve to the width of the line.
equilibrium demand D(t) greedy demand under posted TOU shaded: supply Q(t)

Price paths ϖ(t) · arbitrary units

Gray dashed: the posted TOU tariff (volume-calibrated by bisection — the utility forecasts total demand perfectly). Amber: the equilibrium clearing price, which anticipates the crowd’s reaction. Negative prices under a wind glut are real — the duck curve, priced.

Fleet state of charge m(x,t) forward ▸ space–time

SoC horizontal, night flowing upward, 20:00 → 08:00. The fleet climbs from 30% toward the 85% morning target — staggered by the price, not by a timer.

What this does not show

The units are dimensionless demo units, not a market. Nothing here is calibrated to a real tariff, a real fleet, or a real grid, and no number on this page should ever be quoted as one.

The iteration reaches 1e−9 in 37–180 iterations on 12 of 16 slider corners; the other four hit the 200-iteration cap first — cap-limited slow tails at residuals 8.6e−9–1.1e−7, not hard stalls — and the status line says so. That range is re-measured from this page by its battery on every run, after two earlier prose ranges (one remembered, one from a superseded ad-hoc sweep) each proved wrong — see the failure log.

This tab's kernel has a dedicated headless battery (mfg-lab/tests/test-mpr.js · 26 checks, inside make check): it extracts the kernel from this page at run time, requires the recorded clearing residual to equal an independent pre-update recomputation bit-for-bit at every iteration, and re-measures the corner sweep — it converges on 12 corners (worst clearing residual 9.0e−10, 37–180 iterations); the other four hit the 200-iteration cap with residuals between 8.6e−9 and 1.1e−7 — against the prose above. Interior presets between the corners land inside the corner range here (one reaches ~100 iterations).

Make the resource finite, and the price acquires a second component — the water value, a martingale between the moments the stock binds.

The previous page's price is a multiplier on instantaneous clearing. Add a scarce stock — a reservoir — and the multiplier gains an intertemporal part. This is where the reproduction ends and my own work begins; the full note is Price formation with a stock constraint.
PROVED · discrete time, by LP duality CERTIFIED · zero duality gap OPEN · the continuum statement

On a finite scenario tree the problem is a linear program, so KKT holds with no constraint qualification and duality is exact. Let w be the multiplier on a node's water balance. Then stationarity in the release gives the Hotelling trichotomy of price against w; stationarity in the carried stock gives wn = E[wchild | n] at every node whose stock is interior, stepping down across a full reservoir and up across an empty one. That is the theorem: the water value is a martingale between stock-binding events, and it is proved by nothing deeper than LP duality.

The panel below solves the tree exactly — piecewise-linear concave value functions, every breakpoint tracked — and then certifies rather than trusts the answer: primal feasibility, the trichotomy, the dual wedge signs and complementary slackness, and a zero duality gap together prove optimality of the returned primal–dual pair. Only then is the martingale identity read off the certified dual. Move any control and watch which nodes leave the interior: those are exactly the nodes where the martingale is allowed to break.

The water value on a scenario tree — solved exactly, certified by duality

Price-taking hydro on a finite tree: release h ∈ [0, h̄] against price ϖ, spill s ≥ 0, carry stock R′ ∈ [0, R̄], linear salvage φR′ at the leaves. The solver is a guess; the certificate is the proof.

max Σ pnϖnhn + Σleaves plφR′lfinite LP · KKT needs no CQ
ϖn vs wn ⇒ h ∈ {0, interior, h̄}Hotelling trichotomy
wn = E[wchild|n] + α̃n − β̃nmartingale off the binding set
try

Certificates optimality proved, then the theorem read off the dual

duality gap (rel)
martingale residual
trichotomy violations
binding / total nodes
certified revenue
The duality gap is the load-bearing number: primal revenue minus the dual objective built from the same multipliers. Zero gap proves the returned pair is optimal — no tolerance, no convergence argument. The martingale residual is then max |wn − E[wchild|n]| over interior nodes only, because the theorem makes no claim at nodes where the stock binds; the display says how many nodes are excluded so the certificate cannot be flattered by excluding most of them. Lineage, plainly: water values and their martingale behaviour are classical in hydro scheduling (the SDDP / Pereira–Pinto line) and in commodity-storage economics. What is mine is the precise tree-LP statement, its one-page duality proof, and this certificate.

The tree, coloured by regime amber = interior, where the martingale must hold

Each node is drawn at its depth with its water value w. Amber: stock interior — w equals the probability-weighted average of its children, to machine precision. Oxblood: reservoir full, the value steps down. Teal: reservoir empty, it steps up. Edge width is conditional probability. The theorem is the picture: colour tells you exactly where the identity is permitted to break.

What this does not show

The continuum version is open, and is stated as open. What is proved here is the discrete-time statement on a finite tree. The continuum form — reflected FBSDE well-posedness through the mean-field coupling — is a conjecture in the note, not a result, and nothing on this page should be read as evidence for it.

Units are dimensionless, as everywhere in this lab. The real-data work — five years of Brazilian hourly prices against the flat-window prediction — lives in the note, where it is labelled consistency, not a test, for a reason worth reading: the published price is the administered output of the official dispatch model, whose hydro-marginal value is a constructed water value, so the agreement partly reflects the price's own construction rather than an independent market fact.

One weak check is flagged as weak. The tree's revenue-dominance test compares against random feasible policies, which is a weak null; there is no local-optimality witness for the tree yet. The deterministic case has one; the tree does not, and the note says so.

kernel     sin-mfg/tools/water_value_tree.js — embedded verbatim in this page, byte-identity gated
gate       mfg-lab/tests/test-water-value-diff.js — the two copies cannot drift
battery    sin-mfg/tests/test-water-value.js — 120-tree random sweep, every instance certified
full note  Price formation with a stock constraint — the model, the proofs, the data study

Common noise, integrated pathwise — and a balance relation that holds along every realization

Gomes, Gutierrez & Ribeiro, Random supply and price formation (arXiv:2003.01945), §4, followed verbatim: RK4 for the coefficient ODEs, Euler–Maruyama for the common-noise path.
REPRODUCED · §4 verbatim CERTIFIED · balance ~5e−15 pathwise REPRODUCIBLE · seed shown and editable

Along every noise realization the combination ϖ + Π + cQ stays constant to ~5e−15 — not at the end of the solve, but at every step of every path. The mean reverts to the closed form ϖ̄ = −3+2α, which is an independent check against algebra rather than against another run of the same code. The seed is printed in the status line and can be typed into the box, so any figure on this page is a reproducibility receipt rather than an illustration.

06 · Random supply — GGR 2021, verbatim

Section 4 of Gomes–Gutierrez–Ribeiro, A mean field game price model with noise: explicit coefficients, common noise, and a pathwise clearing invariant conserved to machine precision — reproducible by seed.

dQ = (1−Q)dt + Q dW,   q̄ = 1  ·  dϖ = −c(1−Q)dt − [(c+a₂²)/(1+a₂³)]·Q dWcommon noise · bP = −c·bS
L = ½v²,  Ψ = (x−α)²,  m̄ = N(0,1),  c = 1,  T = 1the paper's Section 4 benchmark, verbatim
ϖ + Π + cQ = const  (Π the Lemma 3.1 martingale)pathwise clearing invariant
try

Pathwise certificates exact along every noise realization

initial price ϖ̄
closed form
clearing invariant
mean-agent clearing
corr(Q, ϖ)
The invariant ϖ + Π + cQ is conserved to machine precision under Euler–Maruyama — the paper's balance condition as a discrete conservation law. The mean-agent residual is the independent check: 2000 virtual agents trade at v* = −(ϖ+ux)/c and their average matches Q to O(Δt). The initial price obeys ϖ̄ = −3 + 2α exactly in this benchmark — formula (3.7) collapses because a₂³(0) = −⅔. To be exact about whose result this is: ϖ+Π+cQ = 0 is the paper's balance condition (§3.1, Qt = −(1/c)(ϖtt)) — an identity in t, not a conservation law found here. What is ours is the certificate: the scheme carries that clearing constraint pathwise to ~5e−15 on every noise draw, and it is knife-edge — deform the price loading by ε and it breaks at O(ε), while the wrong ray (c₁ = 1.5) drifts at 3.1e−1. Demanding pathwise cancellation of drift and noise in c₀ϖ+c₁Π+c₂Q does force (c₀,c₁,c₂) ∝ (1,1,c), so the ray is unique within constant-coefficient linear functionals; the battery (test-invariant.js) verifies that, it does not derive it.

Supply vs. price paths reproduces Fig. 1 of Gomes–Gutierrez–Ribeiro (2021) on a fresh noise draw

Teal: one realization of the mean-reverting supply. Oxblood, light to dark: the non-anticipative clearing price for the paper's four storage targets α = 0, 0.1, 0.25, 0.5 — same common noise, price anti-correlated with supply, and higher targets bid the whole curve up. Amber: your α.

ODE coefficients the Riccati layer

a₂¹ = 1/(1+2(T−t)) (their explicit solution), a₂², a₂³ from the linear system, and the price-volatility loading (c+a₂²)/(1+a₂³) — the time-dependence they highlight in Section 4.

Agent holdings Xt 40 sampled agents · common noise

Spaghetti: agents drawn from m̄ = N(0,1) following the optimal feedback. Dark line: the population mean — which climbs by exactly the cumulative supply, because the market clears.

What this does not show

An honest narrowing, twice. This was written up here as though the conserved quantity were ours. It is not: the relation is the paper's own §3.1 balance condition. Everything downstream — the pathwise certification, the mutation tests, the wrong-ray falsifier that drifts 3.1e−1 — is real work and stays; the framing was wrong and was corrected. One fetch of the source paper would have caught it three sessions earlier, which is why "read the source before claiming an identity" is now a rule with a place in the failure log.

The uniqueness statement is within the linear ansatz the paper works in — the wrong-ray falsifier shows the certificate going red off that ray, which is a check of our integrator, not a theorem about the model.

A multi-population Wardrop equilibrium, reproduced live, certified at machine zero — and proved.

Bakaryan, Aoun, de Lima Ribeiro, Hovakimyan & Gomes, Hessian Riemannian Flow for Multi-Population Wardrop Equilibrium (arXiv:2504.16028). Fig. 1a network, Table I edge order, all three scenarios. Related: Al Saleh, Bakaryan, Gomes & de Lima Ribeiro, First-order mean-field games on networks and Wardrop equilibrium, Portugaliae Math. 81 (2024).
REPRODUCED · Table I within its rounding CERTIFIED · relative gap < 1e−16 PROVED · S2 exact · S3 enclosed FALSIFIED · S1 refuses, by design

The flow below is the paper's: a Hessian–Riemannian flow with h = Σϑ·log ϑ, which makes the dynamics replicator-type. Two structural consequences do the work. Kirchhoff conservation is an algebraic identity of the dynamics — Krϑ̇r = 0, so mass balance holds to ~1e−14 along the entire trajectory rather than being restored by projection — and positivity is kept by the metric rather than by clipping. Time stepping is RK4 under a merit rule, and once the flow has identified the support an active-set Newton polish lands the KKT system at machine zero.

The certificate on screen is Wardrop's own 1952 principle turned into a readout: with Bellman potentials φ computed from current costs, the relative gap Σϑk(ckv−φu) / Σϑc is non-negative and vanishes exactly when every used route is a shortest route. It is not a tolerance we chose; it is the equilibrium condition itself, evaluated.

07 · Multi-population Wardrop, by Hessian–Riemannian flow

Bakaryan–Aoun–de Lima Ribeiro–Hovakimyan–Gomes (2025): two populations route through one road network. The flow keeps Kirchhoff and positivity by geometry; an active-set Newton polish lands the Wardrop certificate at machine zero.

⟨C(J̄), J̄ − J⟩ ≤ 0  ∀J ∈ 𝒜   (Wardrop VI; 𝒜: Kϑ = B, ϑ ≥ 0)
ϑ̇ = −H(ϑ)⁻¹ F(ϑ) c(ϑ)   (HRF, h = Σ ϑ log ϑ — replicator-type, interior by the metric)
try

Hessian–Riemannian flow → active-set Newton polish certificates

idle — press Run flow
flow step
rel. Wardrop gap
Kirchhoff max|Kϑ−B|
min ϑ on support
cost per unit · pop 1
cost per unit · pop 2
Table I max deviation
vs previous start · Δtotals / Δsplit
pre-projection |Kϑ−B| per step · PG vs flow
rel. Wardrop gap — HRF (log) projected gradient, η = 0.4 (comparison) polish tolerance 1e−10

The network Fig. 1a topology · Table I edge order

population 1 · enters node 1 population 2 · enters node 9 exits 8, 10

Per-edge flows ticks: published Table I totals

population 1 population 2 (stacked) Table I total (scenario 1)

From a certificate to a proof new

Everything above is floating point. A relative gap of 7.9e−16 is evidence that we are at an equilibrium; it is not a proof, because it is a measurement taken in an arithmetic that rounds. So the same equilibrium was re-derived twice more, in arithmetic that does not round, by a headless battery that extracts this page's kernel at run time rather than validating a copy of it.

Scenario 2 is solved exactly. Its costs are affine, so the support-KKT system — 38 unknowns: the flows on used edges and the node potentials — is linear with dyadic-rational data. It is solved over BigInt fractions: the residual is identically zero, not small; support positivity and every off-support slack are then decided by exact comparison rather than against a tolerance.

Scenario 3 is enclosed. Its speed–flow relation is a rational function with a cubic, so the KKT system is genuinely nonlinear and exact solution is not available. Instead a Krawczyk operator in outward-rounded interval arithmetic proves that a solution exists and is locally unique inside an explicit box of radius 7.3e−13 around the computed point, with support positivity and strict complementarity verified over the entire box — not at a point. That is the step from "our solver stopped here" to "the equilibrium is in here."

Scenario 1 refuses, and the battery demands that it refuse. Its cost c = j¹+j² is monotone but not strictly monotone across populations, so the split direction lies in the null space of the KKT Jacobian and no enclosure can be contracted. A verifier that reported success there would be broken, so the check asserts the failure. The totals are still unique — that part is certified — and the split genuinely is not.

What trying to prove it found

Building the interval leg first is what turned up something about the benchmark itself: in Scenario 2, population 2's unused edge (4,5) carries a slack of exactly zero. There is an unused route that is exactly as short as the used ones — weak complementarity, not strict. Interval arithmetic returned −1.6e−12 for that slack and could not decide the sign, because no interval method can ever decide a tie; exact rational arithmetic decides it immediately. This is a property of the instance, not an error in the paper — but it is the kind of thing that is invisible to any amount of floating-point measurement, and it is the reason S2's certificate here is exact rather than enclosed.

What "proved" does and does not mean here

Existence is not the news. Existence of an equilibrium for a monotone problem on a compact polyhedron is classical (Hartman–Stampacchia). What the enclosure adds is location and local uniqueness: a specific box, with a specific radius, containing exactly one solution.

Global uniqueness for S2 is the paper's Theorem 4, cited here and not claimed as ours.

The methods are standard and the citations are owed. Krawczyk operators, verified complementarity (Alefeld and co-authors), interval computation of Nash equilibria (Kubica & Woźniak), certified zeros of polynomial systems (Breiding, Rose & Timme), and exact Wardrop equilibria for piecewise-linear costs (Klimm & Warode, SODA 2019) all predate this. What appears to be unclaimed is the instance: a multi-population network equilibrium with smooth nonlinear costs, which is not a gradient problem, certified together with its active set.

Provenance. The numbers in this section are measured by the headless battery, not computed in your browser — they are labelled as such rather than being displayed beside the live readouts, because a number that is not being recomputed in front of you is a different kind of claim.

battery    mfg-lab/tests/test-wardrop-interval.js · 15 checks, 5 falsifiers, inside make check
kernel     extracted from the validated kernel at run time; sha256 printed on every run
S2         exact rational · 38 unknowns · residual ≡ 0 · interval cross-check radius 2.6e−12
S3         Krawczyk enclosure · 38 unknowns · max radius 7.3e−13 · min off-support slack 0.33
S1         refuses to certify — asserted as a required failure
rigor      outward-rounded intervals, validated against exact BigInt rationals on 8000 random operations
falsifiers skipped rounding · corrupted derivative · wrong active set · wrong cost model · corrupted inflow

What this page does not show

Scenario 3 follows §V-C's cost structure — the speed–flow relation, the paper's emission table, trucks at 3× — but on the Fig. 1a graph with illustrative edge lengths, because the Fig. 3a lengths are not given in the text. It is therefore "in the style of," not a reproduction, and would become one if those lengths were available.

Table I is the integer-rounded output of the authors' own run. Our totals agree within that rounding (max deviation 1.57 on flows of ~100) while carrying a machine-zero certificate. One row, edge (4,7), lists components summing to 52 against a total of 54; ours is 52. That is a rounding or typesetting artifact in a published table, which is a normal thing to find and is stated here as such.