The monotone flow is how the Gomes school computes stationary mean-field games: an operator that is monotone in the sense of Lasry and Lions, so a contracting flow finds its zero. This page puts two certificates on the same equilibrium. The first says the linearised operator is monotone exactly when the coupling is non-negative, and it is one line. The second says the flow is not a gradient flow under any Riemannian metric near that equilibrium, because its Jacobian has a non-real eigenvalue pair, enclosed. Monotone operator theory is needed here because energy descent is not available. Where every eigenvalue reached is real, the page says not decided and claims nothing.
The model is the quadratic stationary mean-field game of the observatory on the torus, with coupling c and potential A cos 2πx:
Lasry and Lions read it as the zero of one operator on the pair (m, u), paired in L²:
and Almulla, Ferreira and Gomes (§2.6) run the flow (ṁ, u̇) = −A(m, u), with the zero mode held so that mass and mean are preserved. Because A is monotone, the flow contracts in L² and its limit is the equilibrium. The chapter by Ferreira, Gomes and Tada is the survey of that method. Everything below is about this flow on the even Fourier–Galerkin space of order N, the same truncation the lab's certificates live in.
Linearise A at any pair with m > 0 and pair the result with the direction itself. Two integrations by parts on the torus cancel every cross term, and what remains is
So the linearised operator is positive semidefinite exactly when c ≥ 0. That is the Lasry–Lions condition, and it is decided by inspection, not by computation. For c < 0 the direction δm = cos 2πx, δu = 0 is an exact negative witness with value c/2. The instrument evaluates the form from the interval Jacobian it assembles at every instance and requires c/2 back: C1 → 0.5000, M1 → 0.5000, M2 → 0.5000, R1 → 1.0000, H1 → -6.0000, H2 → -6.0000, H0 → -6.0000. That is a check on the assembly, and the page calls it one.
Two walls on the coupling axis are different things. c = 0 is where monotonicity ends. c* = −σ²(2π)² = −9.87 is where the constant solution's linearisation becomes singular and two more solutions are born, which is the multiplicity theorem. Between them, for −9.87 < c < 0, the operator is not monotone and the constant solution is still the only one enclosed.
A gradient flow with respect to a Riemannian metric G and an energy E is ż = −G(z)⁻¹∇E(z). At an equilibrium its Jacobian is −G⁻¹ Hess E, which is similar to −G^{−½} Hess E G^{−½}, a symmetric matrix. Its spectrum is real. So if the Jacobian of a flow at an equilibrium has one non-real eigenvalue, no choice of G and E makes the flow a gradient flow near that point. This is elementary, and it is the whole argument.
At the constant solution everything is a formula. Per Fourier mode k with λ = (2πk)² the block is [[−c, σλ],[−σλ, −λ]], with eigenvalues ½(−(c + λ) ± √((c − λ)² − 4σ²λ²)), non-real exactly when λ(1 − 2σ) < c < λ(1 + 2σ). For σ = ½ that window is 0 < c < 2λ, so at c = 1 every mode is a non-real pair; for σ = 0.3 and c = 2 no mode is, which is why R1 comes back real and undecided.
Three monotone equilibria at c = 1 (the constant control and two potentials), one monotone equilibrium at σ = 0.3, and three at the herding coupling c = −12 of the multiplicity theorem: the constant solution and the symmetry-broken branch with and without a potential. The herding branch is not monotone, and it is not a gradient either.
| id | instance | certificate 1 | certificate 2 | radii (Galerkin · PDE) |
|---|---|---|---|---|
| C1 | (σ, c, A) = (0.5, 1, 0) | monotone (c ≥ 0) | not a gradient flow · μ ∈ [-20.2392, -20.2392] + i [4.4147, 4.4147] | 1.0e-13 · 5.8e-16 |
| M1 | (σ, c, A) = (0.5, 1, 1) | monotone (c ≥ 0) | not a gradient flow · μ ∈ [-20.2619, -20.2619] + i [4.5986, 4.5986] | 1.0e-13 · 1.6e-15 |
| M2 | (σ, c, A) = (0.5, 1, 0.5) | monotone (c ≥ 0) | not a gradient flow · μ ∈ [-20.2449, -20.2449] + i [4.4612, 4.4612] | 1.0e-13 · 1.2e-15 |
| R1 | (σ, c, A) = (0.3, 2, 1.5) | monotone (c ≥ 0) | not decided · 7 eigenvalues reached, all real | 2.0e-13 · 5.6e-15 |
| H1 | (σ, c, A) = (0.5, -12, 0), herding branch | not monotone (c < 0, witness c/2 = -6) | not a gradient flow · μ ∈ [-17.1340, -17.1340] + i [17.9650, 17.9650] | 2.0e-12 · 1.6e-11 |
| H2 | (σ, c, A) = (0.5, -12, 0.5), herding branch | not monotone (c < 0, witness c/2 = -6) | not a gradient flow · μ ∈ [-19.7953, -19.7953] + i [17.0381, 17.0381] | 1.9e-12 · 4.4e-12 |
| H0 | (σ, c, A) = (0.5, -12, 0) | not monotone (c < 0, witness c/2 = -6) | not decided · 6 eigenvalues reached, all real | 1.2e-12 · 7.2e-15 |
H0 deserves its own sentence. At the constant solution with c = −12 the closed form gives a real spectrum with one positive eigenvalue, 2.780: the monotone flow leaves the constant state, which is exactly why the flow finds the symmetry-broken branch H1 in that regime and why the multiplicity page had to enter that branch by continuation rather than by Newton from the constant.
node instruments/monoflow/battery.js # re-derives the record, 16 checks, 5 red controls node instruments/monoflow/run.js --check # the record, re-derived and compared byte for byte
The record is certs/monoflow-spectrum.json; it carries the sha256 of the code that made it and the float candidates, so every box can be re-opened.