instruments · census · k decided over ℚ in your tab

Unique totals, and the split nobody can see.

Two populations cross the same network and pay the same price per edge. The equilibrium fixes how much flows on every edge, and cannot say whose flow it is: the set of splits it cannot tell apart is a face, and its dimension is a number this page decides in exact rationals — 6 on the network of Bakaryan, Aoun, de Lima Ribeiro, Hovakimyan and Gomes. Drag a direction of that face and watch the two populations trade an edge while every total holds. Drop an edge and watch the dimension re-decided.

Every band is one member of the face, drawn as such: its width is the flow, population a the brighter side, population b the darker, and the dotted outline says it was chosen, not decided. Filled nodes are exits; the two larger nodes are the entrances a and b. Click an edge to drop it.

decided
exact arithmetic backs it
chosen
one member of a set the data admits
k, exact over ℚ
6
shortcut |shared| − cons
6
z, exit-free shared components
0
|shared| · cons
11 · 5

What backs what

k is decided. The two populations’ conservation systems are stacked, restricted to the 11 edges both can reach, and their null space is computed over the rationals: dimension 6, rank 5. The same arithmetic runs in this tab. It is the theorem of the face law, k = |shared| − cons + z, decided in Python on 7,850 networks and recorded in certs/facelaw-theorem.json; the JavaScript engine here is a second copy of that rule, and the page refuses to build unless the two agree on every k, z and shortcut they share (6 cycle rows, 3 failing instances, the paper’s network).

The totals are chosen. Table I of the paper prints rounded integers, and rounded integers are not a flow: at nodes 3 (-1), 4 (+2), 5 (+1), 6 (-1), 7 (-1) the printed outflow does not equal the inflow. The totals drawn are the nearest conserving flow to Table I in the least-squares sense, solved exactly — no edge moves by more than 21/37 (0.568), inside the rounding. That is one member of the rounding box, so it is drawn dotted. The totals themselves are reproduced within their rounding and proved on the Wardrop page; this page does not re-prove them.

The split is chosen. Population a’s share of each shared edge is one point of the face, found by exact max-flow and centred so that no flow sits at zero (smallest slack 3/2). The sliders move it along the 6 directions of the null space; the ranges are where a flow would turn negative. Nothing decides which point the players actually chose — the paper’s own scenario S1 has unique totals and a split that moves across re-seeds, which is exactly the non-uniqueness this face measures.

The census

The shortcut k = |shared| − cons is what one would guess and what the paper’s network makes look like a law (z = 0 there). It is wrong exactly when the shared subgraph has a component with no exit, and then it undercounts by that number of components. Across 3,925 random networks the theorem was tested on (seed 5320260901), the shortcut failed 571 times and z was positive 571 times — the same 571 networks. Three of them, from the record, and the constructed family that forces it:

#1 · k = 1, shortcut 0, z = 1. The heavy edges are the exit-free shared component.
#2 · k = 0, shortcut -1, z = 1. The heavy edges are the exit-free shared component.
#3 · k = 0, shortcut -1, z = 1. The heavy edges are the exit-free shared component.
the shared 3-cycle with no exit · k = 1, shortcut 0, z = 1; the same for every cycle length from 3 to 8.

Every network in the gallery is a preset above. The engine that decided them is playground/census/engine.js, written fresh in JavaScript with BigInt rationals against the Python record, and the facts on this page were written by make-facts.mjs after that cross-check passed.