1What a positive geometry is
A positive geometry is a pair: a complex variety X, and a region X≥₀ inside its real points with boundary. To that pair is attached one object, the canonical form Ω(X≥₀), defined by two conditions:
- it has logarithmic singularities and nothing else, located only on the boundary of the region;
- its residue on each boundary component is the canonical form of that boundary — which is itself a positive geometry, so the definition recurses, all the way down to a point, where the form is ±1.
That recursion is the whole definition. Nothing else is supplied: no action, no Hamiltonian, no dynamics. You draw a region, and the requirement that the form be logarithmic on the boundary and restrict correctly to every face leaves exactly one answer.
The one-dimensional case is small enough to see entirely. Take the interval [a, b] inside the projective line. Its boundary is two points, so the form must have simple poles at a and b and nowhere else, with residues +1 and −1:
Note what it does: it diverges exactly where the region ends, and it is finite everywhere inside. That is not a defect to be regulated away. The divergence is how the form reports the boundary — and it is the reason this page is about parameter ranges and probability simplices rather than only about scattering amplitudes.
2The three facts that do the work
Uniqueness. The boundary determines the form. Two regions with the same boundary structure have the same canonical form, and no additional data — no dynamics, no equations of motion — is admitted. If you can say precisely where a thing stops, you have already said everything about the form it carries.
Triangulation independence. You may cut the region into pieces however you like — a polygon into triangles, a polytope into simplices — take the canonical form of each piece, and add. The sum is the canonical form of the whole, for every decomposition. The internal cuts produce poles that are in no piece's boundary; those are spurious poles, and they cancel in the sum. Anything that survives was a real boundary; anything that cancels was an artefact of how you chose to cut.
Residues factorise. The form restricted to a facet is the residue of the form on the whole. In the amplitude setting this is literally the statement that an amplitude on a pole factorises into the product of two smaller amplitudes. Geometrically it is simpler than that: the part is a boundary of the whole, and the whole's form knows what its parts' forms are.
Those three together are a definition of a whole that is made of parts without being assembled from them. The parts are not components you combine; they are the faces you reach by taking residues — and the residue is computed from the whole.
3Where it has already paid
The amplituhedron (Arkani-Hamed & Trnka, 2013). Scattering amplitudes in planar maximally supersymmetric Yang–Mills are the canonical form of a region in the positive Grassmannian. The headline is not that this computes amplitudes faster. It is that locality and unitarity are not inputs — they are consequences of where the boundaries of the region are. Two of the principles physics had treated as axioms turn out to be readouts of a shape.
The ABHY associahedron (2017). For bi-adjoint φ³ theory the relevant polytope is the associahedron, realised directly in kinematic space. Its vertices are the ways of parenthesising a product; its facets are the factorisation channels. The combinatorics of how a thing can be decomposed is the combinatorics of where its form has poles. That is the cleanest statement of part-and-whole in mathematics, and it was found by looking for the shape rather than by writing down a theory.
Cosmological polytopes (2017). The wavefunction of the universe for a class of models is the canonical form of a polytope built combinatorially from a graph; its singularities are energy-conservation conditions. The pattern repeats: a question that looked like it needed time evolution turns out to be a question about a boundary.
4Where our stack already has this shape
Three places, none of which were built with positive geometry in mind. That is the point: these are not analogies imported from physics. They are the same objects.
A ParamSpec declares a box, and a box is a positive geometry
cadcad-models/manifest.py defines a parameter as ParamSpec(name, kind, lo, hi, note) — a name and an admissible interval. The conviction-voting model declares eight: alpha in (0.5, 0.9999), beta in (0.01, 0.99), weight in (0.0001, 0.99), horizon in [1, 100000], and four token quantities.
A product of intervals is a box. A box is a positive geometry, and its canonical form is just the product of the one-dimensional forms from §1:
So every declared parameter space in the twin stack already carries a canonical form. Nobody put it there. It followed from writing down lo and hi.
The generative model lives in a product of simplices
An active inference agent in ActiveBlockference is four matrices: A, beliefs about how hidden states produce observations; B, beliefs about transitions; C, preferences over observations as probabilities; D, the prior over initial states. Every column of A and B, and D itself, is a probability vector — a point in a simplex.
The simplex is the canonical positive geometry, the one from which the others are built. And its canonical form has poles exactly on its faces. A face of the probability simplex is the set where some outcome has probability zero.
Conviction voting's threshold has a facet — and honestly is not a canonical form
models/conviction_voting.py computes a threshold that scales with the requested fraction of the pool and diverges as requested/total_funds approaches beta, whose own declared note is “max fraction of the pool one proposal may take”. So beta is not a tuning knob sitting somewhere in the interior. It is a wall, and the mechanism's own formula knows it: as a proposal approaches β of the pool, the conviction required to pass runs away to infinity.
But that divergence is second order — the formula squares the gap — and a canonical form has only simple, logarithmic poles. So conviction voting is geometry-adjacent and not a positive geometry. That distinction is not pedantry; it is the check that keeps this from turning into mysticism. It also reads as a design statement: the mechanism's wall is harder than the boundary of a positive region, which is a choice somebody made and could revisit.
The twin already names points, which is what a geometry needs
An rSpace simulation result is an AgentClaim whose subject is twin:<model_id>@<model_version>#<params_digest>. A params_digest is a point in the declared box. That is already the right primitive — a claim is about a point in a region, not about a model in general, which is why an unversioned model's forecast is clamped to provisional and can never clear a gate.
What the geometry adds is the only thing that primitive is missing: how much interior surrounds that point.
5What it buys, concretely
1. An edge-of-validity score, free, for every twin run
Define, over a model's declared parameters, E = Πᵢ 1/(uᵢ(1−uᵢ)). That is the canonical form of the declared box, evaluated at the point the run was made at. Its minimum is 4ⁿ, at the centre of every range.
Run it against conviction-voting's own declared alpha ∈ (0.5, 0.9999):
| alpha | u | E factor | conviction half-life |
|---|---|---|---|
| 0.750 | 0.500 | 4.0 — the minimum | ~2.4 timesteps |
| 0.900 | 0.800 | 6.3 | ~6.6 timesteps |
| 0.990 | 0.980 | 51.5 | ~69 timesteps |
Two readings, and the second is the more useful one.
The first is the obvious one: a forecast run at alpha = 0.99 sits thirteen times further from the interior of its own declared range than one run at the centre, and eight times further out than alpha = 0.90. A claim from the edge of a model's declared validity is not the same kind of claim as one from the middle of it, and the stack already has the vocabulary — it clamps an unversioned model's forecast to provisional for a structurally identical reason.
The second reading is about the range, not the run. The centre of (0.5, 0.9999) is alpha ≈ 0.75, a conviction half-life of under three timesteps — a regime nobody would ever configure. Real conviction voting lives above 0.9. So nearly every genuine run will score far from the minimum, not because the runs are risky but because the declared box is badly centred on the regime actually used. The edge score diagnoses a mis-declared range exactly as readily as a risky run, and that is a thing worth knowing about a model you are about to let gate a decision.
It is also covariant in the way an ad hoc “distance to the bound” heuristic is not: E comes from a form, so it transforms correctly when you change coordinates on the box. A heuristic in raw units does not, and will rank two parameters differently depending on whether you stored a rate or its logarithm.
2. Triangulation independence as a design test
§2 gives a criterion, not just a slogan: anything that changes when you re-decompose the region is a spurious pole, and must cancel.
Applied to the twin: if a simulation's answer depends on how the model was partitioned into partial state update blocks, that dependence is an artefact of the partition and not a fact about the mechanism. Applied to our merge algebra, it is the prohibition we already enforce, with a reason attached — reconciling two observers against a supplied common ancestor makes the result depend on a chosen decomposition, and a quantity that depends on the triangulation was never physical.
3. The residue law for holons
In a positive geometry the form on a face is the residue of the form on the whole. That is a law a holon algebra can be held to: restriction to a boundary must commute with composition. If the parts of a composed holon do not agree with the restriction of the composite, whole-from-parts is ambiguous and the holarchy is a naming convention rather than a geometry. This is checkable, and it is the kind of thing that is far cheaper to check early.
4. Positivity instead of checking
The amplituhedron does not test its terms for non-locality and discard the bad ones. Non-local terms are outside the region; there is nothing to check because there is nothing to find. That is the same move as making a wrong state unrepresentable rather than detectable — choose coordinates in which the thing you were going to check for is not in the domain. A check is a predicate, and a predicate is a thing that can be wrong; a boundary is not.
6Where it breaks
- Most regions are not positive geometries. The condition is strong: singularities must be logarithmic, and every boundary must itself be a positive geometry, recursively. Conviction voting's threshold already fails it on the first clause. Do not assume a canonical form exists because a region has corners.
- A canonical form is not a probability density. The form on the simplex diverges at the faces; a probability density there is perfectly finite. The form measures position relative to the boundary, which is why it works as an edge score and would be nonsense as a likelihood.
- The amplituhedron is one very special theory. Planar maximally supersymmetric Yang–Mills. “Locality is emergent” is a theorem there, not a design principle available for free elsewhere. The honest transferable content is the method — look for the region whose boundary reproduces your factorisation structure — not the conclusion.
- The edge score is a diagnostic, not an error bar. A high E does not say a forecast is wrong. It says the declared box is about to end, which is a statement about the declaration as much as about the run — see the conviction-voting range above, where the high scores indict the range rather than the runs.
- Amplitudes are complex and interfere; beliefs and assurances do not. The same caveat that applies to every import from scattering theory applies here: an assurance lattice must stay ordered, idempotent and monotone, and evidence that can cancel evidence is an attack surface rather than a richer model.