M87 · 2018-04-21 · 227 GHz

Not the picture.
The set of pictures.

Every sky drawn here is one the Event Horizon Telescope’s released data allow. What they agree on is ink. What they disagree on is texture.

skies drawn information used compact flux mean disagreement
 
838 visibilities · 117 snapshots · 8 stations · 544 closure triangles · EHT release 2024-D01-01

What this is

The famous image of M87 is one sky chosen from the infinitely many that fit the data, by an imaging prior. This page carries the ensemble instead: 18 skies fitted from the released 2018-04-21 visibilities under different weights, seeds, smoothness and telescope subsets, plus 4 extremal skies that push the data’s limits. The render shows their weighted mean as brightness and their disagreement as texture.

Why the amplitudes alone cannot make a ring

Translate a sky and every visibility is multiplied by a phase; its modulus does not change. A constraint set built from amplitudes alone is therefore blind to position: any sky that fits still fits after you slide it across the field. Set the phase slider to zero and the ring dissolves, because at that setting the picture is drawn only from information that cannot locate anything.

Why not use the phases directly? These visibilities are network-calibrated, which fixes amplitudes, but not self-calibrated — residual per-station phases are still in the file, and every published image of them is made with self-calibration. Measured here: a nonnegative sky confined to this field fits the released complex visibilities no better than χ² = 4.8 per datum with a worst residual of 33 released sigmas, and the set of skies fitting them at three sigma is empty. Closure phases are the way out: the sum of three visibility phases around a triangle of stations, in which every station’s unknown phase cancels. There are 544 such triangles in these snapshots.

The difference is measurable, and it is the arc this page draws: skies fitted to the amplitudes alone score a closure χ² of about 30; skies fitted with the closure phases reach 2.0.

The ceiling, and why it is a ceiling

For any nonnegative sky μ in the field and any complex multipliers y with a constant λ ≥ 0, if the pointwise inequality below holds everywhere in the field, then the bound underneath it holds for every sky the data allow — not just for the ones we happened to find.

f(x)   ≤   Re Σk conj(yk) exp(−2πi (ukl + vkm))  +  λ

∫ f dμ   ≤   Σk |yk| Ak  +  λ F

Nonnegative multipliers, one pointwise inequality over a continuum, checked by subdividing the field. The optimiser that proposes y is not part of the proof. It is the same certificate shape the bench used on an Erdős problem about the positivity set of a potential, with cosines in place of a logarithmic kernel — which is why this front exists at all.

On the 838 rows this page carries, with the extremal skies as witnesses:

r (µas)witness (Jy)ceiling (Jy)closure χ²
60.14030.329723.8
120.19350.470124.5
200.28720.745865.3
280.44070.954157.9

And on the full set above 0.4 Gλ:

r (µas)witness (Jy)ceiling (Jy)ratio
40.00660.484673.3×
120.08560.83799.8×
200.21421.19385.6×
320.55091.57812.9×

The bracket, once the solver stopped being the problem

A ceiling seventy times its own witness was never a statement about the mathematics — linear-programming duality leaves no gap to hide in — it was a statement about the search for multipliers. Both nonsmooth pieces of the program have exact proximal operators: a block soft-threshold on each complex y, and a clamp for the constraint. A primal–dual method uses them directly instead of smoothing them, and its dual variable is a nonnegative measure on the working set — so the witness converges alongside the ceiling, for free.

r (µas)witness (Jy)ceiling (Jy)gap
60.13910.24251.74×
120.21380.35671.67×
200.32170.58521.82×
280.45310.75801.67×

A 82% bracket at worst, prior-free and phase-free, on a 80 µas field with at most 2 Jy in it. The flux hypothesis is nearly inactive: a tenfold weaker one costs about a sixth.

This bracket is wider than the one this page carried first, and that is the correction working. The ceilings were written |V| + nσ + gain·|V|, an additive allowance. But a residual station gain in VLBI takes amplitude away — decoherence and pointing lose it, they do not add it — so the truth is the measurement DIVIDED by the gain, and an additive 5% covers a loss of only 4.8% when the array’s own per-station uncertainties run to 26%. The correct form is (|V| + nσ) / ((1−da)(1−db)), station by station. It inflates every ceiling, and it is the difference between a bound and a plausible-looking number. A tighter bracket against an error model that cannot cover the error is not a better result; it is a worse one wearing a better number.

One table on this page is older than that correction. The amplitude extremes above — the skies the render draws when you switch them on — come from a run made before the per-station form became the default, so they sit under the additive allowance and are looser as constraints and tighter as numbers than they should be. They are kept because they are what the render is actually drawing; they will move when the ensemble is rebuilt. This paragraph disappears on its own when it is.

What is not here

Nothing on this page is certified in the bench’s sense. The pointwise inequality is checked on a fine grid with a Lipschitz margin covering the gaps between samples — a float safeguard, not a proof — and the enclosure is loose by 82% at worst, which is a statement about the search for good multipliers and not about the mathematics. The ensemble is an ensemble, not a posterior: it says these skies are allowed, never how likely they are. Everything was computed on one laptop from the public release; nothing has been sent anywhere.

Stated hypotheses, in full: an 80 µas field of view, nonnegativity, a total flux ceiling of 2 Jy inside it, baselines above 0.4 Gλ only, and amplitude ceilings at 3σ plus 5% gain. Nothing else is assumed and nothing else is used. That last clause describes the ENSEMBLE and the extremes; the bracket table above uses the corrected per-station form, in which the allowance divides rather than adds. Two objects, two error models, and saying so is cheaper than the confusion.