The object behind the curtain

Category theory begins by refusing a familiar privilege. It does not assume that an object's most revealing description is a list of its internal elements. Instead, it asks what transformations are permitted, which transformations can follow which, and which routes count as the same composite. The objects remain, but they are understood inside a structured field of possible relations.

This move is easy to romanticise. “Everything is relational” sounds profound while proving almost nothing. Yoneda matters because it replaces that slogan with a mechanism. The mechanism is not relation alone, but the complete functorial pattern of relations.

A hidden object reconstructed as a constellation of incoming probes A central hidden object A is surrounded by eight probe objects. Curved arrows enter A, while lighter arcs between probes show that changing a probe by precomposition must also change its map into A coherently. declared category C A hidden object X₁ X₂ X₃ X₄ X₅ X₆ X₇ X₈ relational signature X ↦ HomC(X, A)
The relational silhouette.Every incoming arrow is a possible probe of A. The dotted links matter because a probe may itself be changed before it reaches A. Yoneda uses the whole coherent constellation, not a bag of readings. Illustrative conceptual figure.

A probe is an object with a route

Fix a category C and an object A. Choose another object X. Every morphism g: X → A is one way that a probe shaped like X can land in A. The collection of all such routes is written HomC(X, A).

Now change the probe. Let u: X′ → X. Any route g: X → A becomes a route from X′ by composition: g ∘ u: X′ → A. This gives a rule that sends each probe object to a set of routes and each probe transformation to a function between those sets.

hA(X) = HomC(X, A),    hA(u)(g) = g ∘ u hA is a contravariant representable functor, also called the representable presheaf represented by A.

Contravariance simply records the direction reversal. A map u: X′ → X produces a function from maps out of X to maps out of X′. The probe becomes more specific, so every existing route is pulled back along it.

Which side is doing the knowing?

We have chosen incoming arrows because they make the probe metaphor literal: each X approaches A. There is a dual construction using outgoing arrows, HomC(A, X). It records every way A can act upon or be sent into another object, and it varies covariantly with the target. The dual Yoneda lemma is equally exact. The orientation is therefore not a doctrine about whether an object is passive or active. It is a choice about which relations answer the question at hand.

Consider a file format. Incoming probes may be importers that translate other formats into it. Outgoing probes may be exporters that translate it into downstream formats. An import-focused category can reveal what structures the format accepts. An export-focused category can reveal what distinctions survive conversion. Neither view automatically includes licence terms, storage history or the identity of the machine that created the file. Those facts appear only if the category contains objects and arrows that carry them.

This gives a useful discipline for real investigations. Name the candidate object, then state whether a probe is a route into it, a route out of it, or an interaction in a richer category. Do not switch orientations silently. A benchmark prompt, an observation channel and an action issued by the candidate are different morphism types, even when all three are casually called a test.

Mechanism note · composition turns contact into knowledge

A list of objects adjacent to A is not yet a Yoneda profile. The profile must also specify how every reading changes when probes are composed. Identity arrows anchor the construction, and associativity makes multi-step routes agree. Remove those laws and “relational knowledge” falls back into an unconstrained catalogue.

Worked example 1 · a preorder you can see

Take a simple permission order: public ≤ staff ≤ administrator. Regard it as a category with one arrow x → y exactly when x ≤ y. The relational profile of “staff” under incoming probes is: public can reach it, staff can reach it, administrator cannot. The profile of “administrator” contains all three probes.

In a preorder, each hom-set is either empty or a singleton. The profile therefore becomes a truth pattern. Fong and Spivak use this special case to show that, up to equivalence, an element can be known by its upper or lower relational set. The general theorem keeps the same intuition but allows many parallel morphisms and richer composition.4

Write the incoming profiles in probe order (public, staff, administrator). Public has (1,0,0), staff has (1,1,0), and administrator has (1,1,1). The target is recovered from the complete truth pattern. Notice what made this easy: the order is antisymmetric, so no two distinct levels can reach one another in both directions.

If we weaken the structure to a preorder, two differently named levels may satisfy x ≤ y and y ≤ x. Their relational profiles then coincide. Yoneda has not failed. The two objects are isomorphic in that category, which is exactly the category's own criterion for structural sameness. To distinguish the labels, provenance or administrative owner, we would need a richer category. This tiny example already contains the article's central boundary: recovery is exact only relative to the relations the model admits.

The phrase “all probes” is doing heavy work. A laboratory rarely has every possible connector. A benchmark rarely spans every relevant intervention. A service test suite usually calls a small public interface. When the aperture is narrow, distinct objects can cast the same silhouette.

Restricted probes create a collision that a wider probe family resolves On the left, two objects A and B sit behind a narrow aperture and return the same two visible probe responses. On the right, the aperture opens and a third probe reaches only B, separating them. restricted aperture expanded aperture A B P₁ P₂ collision A B P₁ P₂ P₃ no route to A separated Changing probe coverage changes what can be inferred, even when the hidden objects do not change.
A shutter can manufacture equivalence.With only P₁ and P₂, the candidates have the same visible profile. The extra probe P₃ reveals a relation available to B but not A. Illustrative causal-intervention diagram.
Thought experiment 2 · change only the probe family

Two data services answer the same read queries. One also preserves transaction identity across export and import; the other silently creates new identifiers. Hold the services fixed. First allow only read probes, then add a migration probe that composes export with import. The equivalence disappears.

The intervention did not expose a hidden mystical essence. It enlarged the category of tested relations. The question becomes practical: which probe family is sufficient for the decision you intend to make?

Published mathematics

The formal claims in the next part follow the ordinary locally small version of the Yoneda lemma as presented by Mac Lane, Riehl and Leinster.123 The system-evaluation language and audit developed later are practitioner synthesis, not consequences that the theorem supplies automatically.

The argument in one pass
Chart · flow
flowchart LR
  A["The instrument with no label"] --> B["The object behind the curtain"]
  B --> C["The pattern that composes"]
  C --> D["When a small window lies"]
  D -. "re-test" .-> A
  classDef first fill:#0a1424,stroke:#7B4CD8,stroke-width:2px,color:#e6f3ff
  classDef step fill:#0a1424,stroke:#3f7da0,stroke-width:1px,color:#e6f3ff
  class A first
  class B,C,D step
A structural route through Yoneda and knowledge through relations: from The instrument with no label to Ask whether the relations are complete…. Reading use: follow the relation, then return to the surrounding argument for evidence and limits.

The pattern that composes

Suppose someone hands you a table. Each row names a probe X; each cell lists the routes from X into A. Is that the relational signature?

Not yet. The table says what each probe sees in isolation. It does not say how the readings must change when one probe is transformed into another. Yoneda's decisive ingredient is coherence under composition.

The smallest exact example

Consider the full subcategory of finite sets containing three objects: the empty set 0, a singleton 1, and a two-element set 2. Morphisms are all functions between these sets.

Ask how many functions each probe can send into each target. There is one function from the empty set into any set. There are no functions from a non-empty set into the empty set. From a singleton into a two-element set there are two functions, one for each chosen image. From a two-element set into itself there are four functions.

Relational fingerprints for finite sets of size zero, one and two Three target sets are shown with vertical fingerprints giving the exact number of functions from probes of size zero, one and two. The profiles are 1-0-0, 1-1-1, and 1-2-4. Probe shape X Target A and the size of Hom(X, A) 0 = ∅ 1 = {•} 2 = {0,1} 0 1 0 0 [1, 0, 0] 1 1 1 1 [1, 1, 1] 2 1 2 4 [1, 2, 4] Counts already separate these three targets, but the full functor also records every precomposition action.
Exact fingerprints in a tiny category.The vectors show hom-set cardinalities for three probe shapes. They are useful intuition, but Yoneda retains the actual functions and their composition, not only the counts. Exact mathematical example in the category of finite sets.

Counts are a compressed shadow. The actual representable presheaf remembers each function and how every function changes under precomposition. That additional structure becomes decisive as soon as different routes have the same count.

The lemma in one line

Let F: Cop → Set be any presheaf. The Yoneda lemma states that natural transformations from the representable presheaf hA to F correspond bijectively to elements of F(A).

Nat(hA, F) ≅ F(A) Assumption: C is locally small, so each hom-collection used here is a set.

The statement looks larger than the idea. A natural transformation α: hA ⇒ F supplies, for every probe X, a function αX: Hom(X,A) → F(X). That seems like a vast family of choices. Yoneda says the family is determined by one element.

Which element? Evaluate the component at A on the identity route idA: A → A:

x = αA(idA) ∈ F(A)

Given any probe route g: X → A, naturality forces the rest:

αX(g) = F(g)(x) The value at the identity propagates to every probe through the functorial action of F.

The proof closes by showing both constructions are inverse. Start with α, extract x, rebuild the family, and naturality returns the original α. Start with x, build the family, evaluate at the identity, and functoriality returns x. Leinster's exposition makes the key point vivid: there is essentially only one possible construction once the types are respected.3

Why the identity route carries the whole family

The identity arrow can look like a trivial probe because it changes nothing. Here it is the universal handle. Every route g: X → A factors as idA ∘ g. Naturality says that whatever α does to the identity at A must be transported along g in the only way allowed by F. The value x = αA(idA) is not a compressed statistical summary from which the other values are guessed. It is the generator from which they are forced.

Contrast this with an ordinary lookup table. If a row for probe X is missing, the table supplies no rule for recovering it. A natural family does. A map g: X → A tells us exactly how to pull the chosen element of F(A) back to F(X). The proof therefore depends on a structural fact, not on having sampled enough rows.

The smallest numerical instance makes the constraint visible. Let F = h2 and A = 1 in the finite-set category. Choosing x ∈ h2(1) means choosing one of the two maps 1 → 2. For probe 0, there is one map 0 → 1, and it must be sent to the unique map 0 → 2. For probe 2, there is one map 2 → 1, and it must be sent to the constant map at the element selected by x. One choice at the identity fixes all three components.

The naturality square as two routes that must agree A square shows two ways to transform a probe route. Across then down produces f composed with g composed with u. Down then across produces the same expression because composition is associative. Change the target, or change the probe first route into A g : X → A postcompose with f f ∘ g : X → B precompose with u g ∘ u : X′ → A same final route f ∘ g ∘ u : X′ → B apply f change probe by u apply f change probe by u The square commutes because composition is associative.
Naturality is the anti-counterfeit feature.Every legitimate transformation of relational profiles must give the same result whether we alter the probe first or transform the target first. This is stronger than matching entries row by row. Exact commutative-square interpretation.
Worked example 2 · two choices generate two whole transformations

Return to the finite sets 0, 1 and 2. There are exactly two functions f: 1 → 2, because the sole element of 1 may be sent to either element of 2.

Each choice induces a natural transformation h1 ⇒ h2. At every probe X, it sends a function g: X → 1 to f ∘ g: X → 2. If X = 2, the only map into 1 is the constant map, and postcomposition turns it into one of the two constant maps into 2. The entire family is fixed by the single choice made at id1.

Now transform the probe by any function u: X′ → X. Going across first gives f ∘ g, then precomposition gives (f ∘ g) ∘ u. Going down first gives g ∘ u, then postcomposition gives f ∘ (g ∘ u). Associativity makes the results identical. The naturality square is not an extra pattern fitted after the functions are chosen. It is guaranteed by the mechanism that generated the family.

From the lemma to the embedding

Set F = hB. Yoneda gives:

Nat(hA, hB) ≅ HomC(A, B)

This is the operational heart of the Yoneda embedding y: C → [Cop, Set]. It sends each object A to its representable presheaf hA, and each morphism f: A → B to postcomposition by f. The embedding is full because every natural transformation between representables comes from a morphism in C. It is faithful because two different morphisms produce different natural transformations.

These two words support different decisions. Faithfulness says that distinct arrows f, f′: A → B cannot acquire the same relational action. Evaluate their induced transformations at probe A and route idA; the results are f and f′. Any difference survives. Fullness says the converse: a coherent transformation between the two representable profiles cannot be an invented operation living only in the presheaf world. It comes from a genuine arrow A → B in C.

Full faithfulness therefore preserves both the transformations and their composition. It is stronger than assigning unique feature vectors to objects. Unique vectors may separate the present catalogue while giving no account of how a real operation should act on those vectors. Yoneda embeds the operational grammar, rather than only the names of its nouns.

Therefore, if hA and hB are naturally isomorphic, then A and B are isomorphic in C. Nothing expressible through the category's morphisms is lost by passing to the full relational representation.

Boundary condition · up to isomorphism, inside C

Yoneda does not establish literal equality, material identity or metaphysical essence. It establishes recovery up to isomorphism in the chosen category. If the category forgets colour, manufacturing history, implementation substrate, welfare-relevant state or temporal lineage, the representable profile forgets them too. The theorem is exact relative to a modelling boundary, not a warrant that the boundary contains everything one cares about.

This boundary is not a defect. It is the price of precision. The theorem tells us exactly what follows after the category has been declared. It does not choose the category on our behalf.

When a small window lies

A practical system is almost never tested by every object in its category. We choose a probe family P, perhaps client requests, benchmark prompts, sensor stimuli or migration scenarios. We then observe the restricted profile:

NP(A)(P) = HomC(i(P), A) i: P → C includes the selected probe category inside the wider system category.

This construction is often called a restricted Yoneda embedding or a nerve relative to the probe family. If the probes are dense or adequate in the relevant technical sense, the restricted representation can still be fully faithful. Isbell's work on adequate subcategories formalised this question: when do selected test objects induce every natural transformation and distinguish every morphism?7

Usually, however, density is not proved. The probe family is selected by convenience, available data or budget. The result is not false, but its conclusion must shrink.

New causal distinction · relational completeness versus probe adequacy

Relational completeness is theorem-level. It uses the full Yoneda profile within a declared category. Probe adequacy is design-level. It asks whether a selected subcategory preserves the distinctions needed for a particular decision. Confusing them turns a finite test result into an identity claim.

Three different meanings of “enough probes”

A test family can be adequate in a weak, candidate-relative sense. Given the five systems currently under review, their restricted profiles may all differ. This licenses identification within that finite catalogue. Add a sixth system and a collision may appear. The result is useful for selection, but it is not a theorem about the surrounding category.

A stronger target is morphism separation. Here, different operations between candidates must induce different actions on every selected probe. This is faithfulness of the restricted representation on the declared subcategory. It protects against two operations that look identical through the interface even though they compose differently elsewhere.

The strongest target in this ladder is reconstruction. Every coherent transformation between restricted profiles must arise from an operation in the original category, and every relevant object must remain recoverable up to isomorphism. That is a fullness or density question. It is rarely established by ordinary evaluation practice because the claim ranges over possible natural transformations, not only the transformations engineers happened to implement.

These grades should not be averaged into a score. They answer different questions. Candidate separation asks, “Can I choose among these options?” Faithfulness asks, “Will distinct operations remain distinct?” Full faithfulness asks, “Has the restricted relational world preserved the original operational structure?” A system may pass the first and fail the other two.

The Yoneda gap

Call the difference between the full relational representation y(A) and the restricted representation NP(A) the Yoneda gap. This is practitioner terminology, not a standard invariant. It names a recurring failure pattern: a system appears characterised because the visible profile is detailed, while the untested relations contain the decision-relevant difference.

A probe collision occurs when two candidates have isomorphic restricted profiles even though they are not isomorphic in the wider category, or even though they differ on a property relevant to the intended decision. Adding a probe may split the collision. Adding more instances of an existing probe type may not.

Imagine scaling a benchmark from one hundred to one million paraphrases while preserving the same input-output relation. A mimic that has learned that relation may remain tied with the target throughout. Add one probe that resets hidden state between two linked requests, and the tie breaks immediately. The apparent discontinuity belongs to the measurement geometry, not to a sudden change in either system. Volume reduced sampling error inside one slice; the new probe changed the slice.

This is why collision search should be adversarial. Start from two candidates that the current profile identifies, then ask for the smallest new object or morphism that separates them. The cost of that discriminator is often more informative than aggregate accuracy. It tells us which causal relation the existing interface failed to expose.

Illustrative decline in candidate objects as qualitatively different probes are added A stair-step chart begins with 64 candidate objects and falls to 1 as probes for output, identity, state, composition, history and recovery are added. The largest drops occur when a new relation type is introduced. 644832161 candidate objects remaining noneoutputidentitystatecompositionhistoryrecovery 6428126321 The useful move is often new geometry, not more samples of the old probe.
Probe diversity can matter more than probe volume.The numbers are synthetic. They illustrate a common identification pattern: qualitatively new relations split candidate classes that repeated output checks leave intact. Illustrative chart; values are not empirical measurements.

Pointwise matching can be counterfeited

Imagine two evaluators. The first records the response of a system to each test case. The second also transforms test cases and checks whether the system's responses commute with those transformations. Both may collect the same number of observations. Only the second checks relational coherence.

Thought experiment 3 · same cells, different mechanism

A counterfeit profile is constructed by filling every visible row with the expected answer. For probe X, its table matches the real system. For probe X′, it also matches. Now introduce a transformation u: X′ → X. The real system's answers are linked by precomposition. The counterfeit rows were filled independently, so the two paths need not agree.

Change only one causal property: require compatibility under probe transformation. A pointwise mimic becomes distinguishable. This is why naturality is more than elegant notation. It is a compositional consistency test.

A counterfeit relational table passes isolated checks but fails a composition square At the top, two rows marked X and X prime both pass. Beneath them, a naturality square has two paths that end in different outputs q and r, shown by a crack between the endpoints. Isolated rows pass probe Xexpected response ✓ probe X′expected response ✓ The composition audit fails response at X transform target change probe q r A natural profile cannot choose q on one route and r on the other.
The adversarial path is a broken square.A system can memorise each test case and still fail when tests are related by a transformation. Composition-aware evaluation searches for this crack. Illustrative failure-path visual.

Present behaviour may omit temporal identity

The category boundary becomes especially important for stateful systems. A stateless API category may contain requests and responses but omit checkpoints, migrations, resets, lineage and recovery. Within that category, two deployments can be isomorphic even if one can resume an interrupted transaction and the other cannot.

Thought experiment 4 · the fork and reset case

Clone a service at noon. Branch A retains the original event lineage. Branch B copies only current state, assigns new identifiers and discards the causal path that produced them. At 12:01, both answer every read request identically.

Now reset each branch to an earlier checkpoint and replay one pending action. Branch A recognises the action as already committed; Branch B executes it again. If the category contains only present-state reads, the branches remain indistinguishable. If it contains replay and idempotency morphisms, they separate. The identity question was not answered differently by Yoneda. It was asked in a different category.

Two service versions inside an operational boundary with four probe families Version A and Version B sit inside a central boundary. Client and monitor probes see them as equivalent. Migration and audit probes reveal that Version B changes identifiers and lacks lineage. configured-system boundary version A same reads stable identity replay receipts version B same reads new identity no lineage clientread and write monitorhealth and latency migratorexport and replay auditorlineage query client + monitor: collision migration + audit: separation The relevant object is the configured system under the relations the decision actually depends on.
System identity depends on the probe boundary.Client and monitor probes may certify behavioural equivalence while migration and audit probes expose different identity and lineage semantics. Worked configured-system scenario; no deployment claim.
Worked example 3 · an evaluation claim rewritten honestly

Weak claim: “Version A and Version B are equivalent.”

Better claim: “Across the selected client and monitor probe category, the two configured versions produced isomorphic observed profiles in the tested candidate set. Migration and lineage relations were outside scope.”

Strong claim, permitted only after more work: “The restricted Yoneda functor induced by this probe family is fully faithful on the declared system category.” That statement requires a proof or a sufficiently explicit finite construction, not a larger benchmark score.

Open research hypothesis · transformation-aware tests find cheaper discriminators

For systems that can memorise or imitate finite input-output suites, a fixed evaluation budget allocated to probe transformations and commuting-path checks will uncover more decision-relevant collisions than the same budget allocated only to additional independent prompts.

The hypothesis would be strengthened if matched-budget studies repeatedly found higher defect yield from composition-aware probes. It would weaken if independent random tests performed as well after controlling for coverage and difficulty. A rival explanation is that transformed tests are simply harder, not structurally better. The smallest useful study compares static, metamorphic and composition-aware suites on synthetic systems with planted non-natural mimics. Do not apply the claim where no meaningful probe transformations or composition laws have been specified.

How the claim changes under pressure
Chart · state
stateDiagram-v2
  [*] --> Claim
  state "A probe is an object with a route" as Claim
  state "Which side is doing the knowing?" as Test
  state "The smallest exact example" as Revision
  Claim --> Test: expose mechanism
  Test --> Decision: evidence survives
  Test --> Revision: rival survives
  Revision --> Claim: narrow or rebuild
  Decision --> [*]
The revision loop begins with A probe is an object with a route and keeps counterexamples inside the reasoning path. Reading use: follow the relation, then return to the surrounding argument for evidence and limits.

Turn the theorem into an audit

A theorem becomes operational only after its assumptions are turned into questions a team can answer. The following lab and audit instrument do that at two scales.

The first panel uses a diamond-shaped preorder. It lets you watch restricted probes collide and then add the cheapest probe that separates the current candidates. The second panel uses finite sets of sizes zero, one and two. It constructs every function A → B and exhaustively checks the naturality equations for the induced transformations between representables.

Executable Yoneda probe lab

Runs entirely in the browser with synthetic finite categories.

A. Restricted-probe collision

Objects form a diamond: root ≤ left ≤ top and root ≤ right ≤ top. A checked object is allowed to act as a probe.

Probe family

B. Exhaustive naturality check

Choose finite sets A and B. Each function f: A → B should induce one natural transformation hA ⇒ hB.

The working Yoneda exercise.A positive collision result means the current probes do not identify the target within this finite candidate set. A passed naturality run verifies every constructed transformation in the tiny finite-set category, but it does not prove the general theorem. Executable synthetic artefact.

What the lab exposes

In the diamond preorder, the root probe reaches every object. Its profile is therefore identical for all four candidates. Adding the left probe separates “right” from “left”, but “left” and “top” still collide. Adding the right probe separates those two. The result depends on which target and which candidates remain.

The finite-set panel checks a different property. For every chosen function f: A → B, every probe X, every route g: X → A, and every probe transformation u: X′ → X, it compares:

(f ∘ g) ∘ u = f ∘ (g ∘ u)

The equality holds because function composition is associative. The code also reports the number of functions A → B, which Yoneda identifies with the number of natural transformations hA ⇒ hB. The lab constructs the forward direction explicitly. The identity-arrow argument supplies the converse.

Read the two panels differently. “No collision” in the preorder panel means only that the checked probes distinguish the target from the current finite candidate set. It says nothing about an unseen fifth candidate. “All squares commute” in the finite-set panel is universal over the enumerated category, but the category itself is tiny. The first result is candidate-relative; the second is category-relative. Neither licenses a claim about arbitrary software or arbitrary categories.

A useful negative result is equally specific. A collision names two candidates and the probe aperture under which they coincide. A failed square names the transformation, route and probe change that disagree. These are diagnostic witnesses, not just lower scores. They point directly to the relation that must be implemented, repaired or added to the model.

There is also a useful vacuous case. If A is non-empty and B is empty, there are no functions A → B, so the program constructs no transformations and checks no squares. “Pass” then means only that there was nothing to test. The interface reports this separately.

JavaScript · core finite-category logic
function allFunctions(domainSize, codomainSize) {
  if (domainSize === 0) return [[]];
  if (codomainSize === 0) return [];

  const out = [];
  const current = Array(domainSize).fill(0);
  function build(position) {
    if (position === domainSize) {
      out.push([...current]);
      return;
    }
    for (let image = 0; image < codomainSize; image += 1) {
      current[position] = image;
      build(position + 1);
    }
  }
  build(0);
  return out;
}

// f : A → B, g : X → A. Arrays store images of domain elements.
function compose(f, g) {
  return g.map(element => f[element]);
}

function verifyNaturality(aSize, bSize) {
  let checks = 0;
  const arrows = allFunctions(aSize, bSize);
  for (const f of arrows) {
    for (const xSize of [0, 1, 2]) {
      for (const g of allFunctions(xSize, aSize)) {
        for (const xPrimeSize of [0, 1, 2]) {
          for (const u of allFunctions(xPrimeSize, xSize)) {
            const routeOne = compose(compose(f, g), u);
            const routeTwo = compose(f, compose(g, u));
            if (JSON.stringify(routeOne) !== JSON.stringify(routeTwo)) {
              return {passed: false, checks, arrows: arrows.length};
            }
            checks += 1;
          }
        }
      }
    }
  }
  return {passed: true, checks, arrows: arrows.length};
}

To run the standalone code, save it in a browser console or a JavaScript file and call verifyNaturality(1, 2). The embedded page already invokes the same logic through the lab controls.

Technical depth: assumptions, positive and negative results

Assumptions encoded. Objects are finite sets of size at most two. Morphisms are all functions. Equality is extensional equality of the image arrays. Composition is ordinary function composition. The category laws are therefore inherited from functions.

A positive naturality result permits. It permits the narrow claim that every postcomposition family constructed by the program commutes for every enumerated probe and probe transformation. It also provides a concrete witness for the map from Hom(A,B) to Nat(hA,hB).

A negative result means. Either the composition implementation is wrong, the encoding of a function is inconsistent, or the claimed family is not natural. It does not by itself identify which assumption failed.

What it cannot establish. Exhaustion over this finite category is not a proof of the Yoneda lemma for arbitrary locally small categories. It cannot establish that a real-world probe family is dense, that a selected category captures every property of interest, or that relational equivalence settles metaphysical identity.

The probe-sufficiency audit

The practical contribution is a five-gate instrument. It separates claims that are often compressed into the word “equivalent”. Move down only when the evidence for the previous gate is explicit.

The smallest useful implementation is a typed record beside every comparison. Record the category boundary, candidate objects, allowed morphisms, equality rule, selected probes, transformations between probes, observed collisions and known residue. Add a claim field that the tooling is permitted to generate. The claim must be computed from the highest gate actually passed, not typed freely by the analyst.

This design prevents evidence from drifting upward. Ten thousand matching outputs populate the pointwise-test field. They do not silently populate the composition or faithfulness fields. A successful metamorphic suite supplies commuting-path evidence. It does not prove density. A formal proof of faithfulness on a finite declared category may support morphism preservation, while still leaving cost, substrate and history outside the category.

Swipe or use the arrow keys to inspect all three columns.

Gate 1
Boundary
Evidence required: objects, morphisms, equality and composition are declared.
Allowed wording: “We compare systems inside category C.” Without this, stop.
Gate 2
Pointwise tests
Evidence required: outputs match for named probes and conditions.
Allowed wording: “Matched on this test set.” No equivalence claim.
Gate 3
Composition
Evidence required: probe transformations and commuting-path checks pass.
Allowed wording: “Profiles are coherent under the tested transformations.”
Gate 4
Collision search
Evidence required: rivals are generated; no decision-relevant candidate shares the restricted profile.
Allowed wording: “P-indistinguishable within the candidate family,” or “separated within it.”
Gate 5
Faithfulness
Evidence required: the restricted Yoneda functor is proved faithful or fully faithful on the declared domain.
Allowed wording: “Morphisms are preserved,” or “objects are recoverable up to isomorphism in C.”
Residue
Outside C
Evidence required: omitted substrate, history, value, welfare and operational properties are listed.
Allowed wording: state exactly what the formal result does not decide.
The probe-sufficiency decision instrument.The ladder prevents output matching, compositional coherence, finite candidate separation and full faithfulness from being reported as the same result. Practitioner synthesis derived from the theorem's assumptions and failure modes.

Apply the audit to a real system

Suppose a team is replacing one workflow engine with another. Their first evidence is a corpus of 10,000 input-output cases. The outputs match. Gate 2 passes. Nothing yet shows that retries, partial failures, state restoration or audit queries compose in the same way.

They define a category whose objects are configured workflow states and whose morphisms are typed operations: submit, retry, cancel, checkpoint, restore, read back and compensate. Equality means equality of verified externally visible state plus stable action identity. Composition follows the order in which operations execute.

Next they build transformed probes. “Submit then retry” must relate to “submit once and read back”. “Checkpoint then restore then compensate” must relate to the original action ledger. A metamorphic generator creates rival trajectories, rather than only new inputs. The new engine fails one commuting path: restoring after a timeout loses the original idempotency key, so retry executes twice.

The original benchmark was not wrong. It measured pointwise behaviour. The category and composition probes revealed that the replacement did not preserve the relation the decision depended on.

Worked example 4 · a counterexample to overreach

Assume the same engines pass every operation and recovery probe in the declared workflow category. May the team conclude they are the same software?

No. They may conclude that the corresponding objects are isomorphic if the full relational representation or an adequate restricted representation has actually been established. They may not conclude identical source code, cost profile, energy use, ownership, security exposure or internal mechanism unless those properties are represented by objects and morphisms in the category. Yoneda closes a formal identification problem; it does not erase modelling residue.

Decision rule

When two candidates look the same, do not immediately add more examples. First ask which transformation, state change, boundary move or composition could make them differ. A new relation type is often a better discriminator than a larger sample of the old one.

The evidence conversation
Chart · sequence
sequenceDiagram
  participant Q as Question
  participant M as Mechanism
  participant E as Evidence
  participant D as Decision
  Q->>M: The instrument with no label
  M->>E: A probe is an object with a route
  E-->>M: compare rival explanations
  E->>D: Ask whether the relations are complete enough
  D-->>Q: revise scope or act
Question, mechanism, evidence and decision exchange the burdens developed in Yoneda and knowledge through relations. Reading use: follow the relation, then return to the surrounding argument for evidence and limits.

Ask whether the relations are complete enough

The ordinary decision is: inspect an object directly when possible, otherwise collect enough observations and infer what it is. Yoneda changes the structure of that decision.

Do not ask whether relations reveal the object in the abstract. Ask whether your declared category and probe family make the relevant relations complete. In the full categorical setting, the object's incoming relational profile is lossless up to isomorphism. In an operational setting, the decisive work is proving or testing that the selected probes preserve enough of that profile.

This changes how a mathematician reads a representation, how an engineer designs a compatibility suite, and how a researcher reports equivalence. A table of matched outputs supports a table-level claim. A family of commuting interventions supports a compositional claim. A collision search supports a candidate-relative identification claim. Full faithfulness supports recovery of morphisms and objects within the model.

The practical sequence is simple: declare the boundary, type the probes, include transformations between probes, test the commuting paths, generate rivals, search for collisions, and name the residue outside the category. Only then choose the strongest wording the evidence permits.

This also changes where effort should go. When a comparison has stalled, more observations are not automatically the next move. Look for a missing composition law, an unrepresented state transition or a rival that shares the current profile. The cheapest decisive experiment is often a new kind of relation rather than another sample from the old one.

Relational characterisation is therefore conditional, but not weak. Once the world of objects and transformations is explicit, Yoneda gives an exact result. Before that point, the theorem functions as an audit question: have we modelled the world in which our proposed sameness actually matters?

Yoneda's deepest lesson is therefore disciplined rather than mystical. An object can be known through relations when the relations are complete, composable and interpreted inside an explicit world. Most failures begin by omitting one of those three conditions.