Consider a rewrite of an emergency dispatch engine. The legacy service and its replacement receive the same incident, resource and priority records. Engineers replay one hundred thousand historical cases. Every recommended assignment matches. The dashboards are green, the migration board hears the word “equivalent”, and the old service is scheduled for retirement.
Now alter one property. A responder accepts an assignment, the incident is cancelled, and a new incident arrives before the responder reaches the first location. The legacy service represents cancellation as a state transition that revokes the assignment before reassignment. The rewrite stores cancellation as a note attached to the incident. It recommends the same resource for the new incident, but the earlier authority remains live in a downstream queue. The visible recommendation matches while the permitted world state does not.
The replay established agreement on a sampled set of outputs. It did not establish that assignment, cancellation, revocation and reassignment compose in the same way. The hidden assumption was that the observed cases exhausted the structure relevant to release. A structural claim becomes useful only when it says what can be transported through a mapping without changing the decision-relevant relations.
The bridge that replay cannot finish
The tempting intuition is simple. If two systems return the same answer often enough, perhaps they are the same system written differently. That intuition is sound only when the tested answers determine every relation that matters. Usually they do not. A finite benchmark observes selected inputs, selected outputs and a chosen time horizon. It leaves internal branching, untested interventions, authority changes and information loss outside the frame.
Suppose a source system has states a, b and c, while a target has states x, y and z. A mapping F tells us which target state represents each source state. A proof then asks whether relevant source relations survive after applying F. Without that mapping, “the systems are similar” is not wrong so much as unevaluable. There is no specified object on which a proof obligation can land.
The word “equivalent” hides several grades of claim. A lexical resemblance might generate a question. Output agreement can support a regression test. A homomorphism preserves selected operations in one direction. An embedding additionally prevents relevant distinctions from being collapsed. Bisimulation matches possible moves in both directions. Isomorphism or category equivalence supplies a suitable form of reconstruction. These are not ceremonial labels. Each grade licenses a different decision.
flowchart LR A["The bridge that replay cannot<br/>finish"] --> B["Write down what must survive"] B --> C["Choose the right return ticket"] C --> D["Put the claim through a<br/>transport gate"] D -. "re-test" .-> A classDef first fill:#0a1424,stroke:#087A98,stroke-width:2px,color:#e6f3ff classDef step fill:#0a1424,stroke:#3f7da0,stroke-width:1px,color:#e6f3ff class A first class B,C,D step
Write down what must survive
A proof begins by freezing two signatures. For present purposes, describe a source structure as 𝒮 = (OS, RS, ΩS, ≈S, IS). The target 𝒯 has corresponding components. The notation is only useful if each symbol names something concrete.
- O contains the typed objects or states, such as incidents, resources, assignments and credentials.
- R contains relations, such as “authorised for”, “precedes”, “depends on” or “can transition to”.
- Ω contains operations and their composition, such as assign, cancel, merge, add or compile.
- ≈ states what counts as equality or observational indistinguishability. Bitwise equality, equal traces and equal final balances are different contracts.
- I names the admissible interventions or contexts under which the claim must continue to hold.
A mapping F translates source objects into target objects and, where required, source actions into target actions. For an n-ary operation op, the central preservation question is whether the two paths below meet.
Individual relations are not enough when the system can compose actions. Category theory makes this obligation explicit through identity and composition laws. Translating an identity action should behave like the identity action on the translated object. Translating a composite should agree with composing the translated actions:
The dispatch case failed the second law. “Assign, then cancel” had the same final recommendation as “do nothing”, but it did not have the same authority history. Testing assign and cancel separately would still miss the defect if the target combined them through a stale queue. The proof obligation must range over the compositions that can occur in the real environment, including interruption, retry, rollback and concurrent update where those are permitted.
x₁,…,xₙ
F(x₁),…,F(xₙ)
opS(x)
opT(F(x))
Preservation is only half of a strong structural claim. For a binary relation R, preservation has the form RS(x,y) ⇒ RT(F(x),F(y)). Reflection reverses the implication for relations among mapped objects. If the target says two mapped states are adjacent, authorised or equal, reflection asks whether the corresponding source relation really held. Reflection blocks a target from inventing distinctions or permissions that the source did not license.
Different disciplines encode this reverse demand differently. A faithful functor prevents distinct morphisms from collapsing. A full functor ensures that every target morphism between mapped objects comes from a source morphism. A graph embedding preserves and reflects adjacency on its image. A bisimulation matches possible transitions in both directions. The shared mechanism is not the terminology. It is a reverse challenge to a forward story.
balance
identity, authority, queue state and effect receipts Temporal boundary
grant, execute, revoke and expiry order Operational aperture
same recommendation or final value Hidden divergence
one history temporarily permitted an action
When the inverse is coherent rather than literal
Strict isomorphism asks for maps F and G whose two composites are literally the respective identity maps. Category equivalence relaxes this. It asks for functors in both directions and natural isomorphisms connecting GF and FG to the identity functors. Informally, translate and reconstruct, then show that the reconstructed object is coherently isomorphic to the original across every allowed morphism. It need not be the same token or representation.
A standard characterisation says that a functor is an equivalence when it is full, faithful and essentially surjective, subject to the usual set-theoretic assumptions for the converse construction. Fullness covers target morphisms between represented objects. Faithfulness prevents morphism collapse. Essential surjectivity says every target object is isomorphic to one in the image. Riehl’s treatment makes the crucial point visible: equivalence concerns preserved organisation, not objectwise equality [1]. Fong and Spivak show how this compositional viewpoint becomes a practical language across systems [2].
Naturality is the coherence check that stops the return map from being a collection of bespoke repairs. Imagine that each source object can be reconstructed from its target image, but the reconstruction chosen after one allowed transformation differs from the reconstruction chosen before it. Object by object, every case appears recoverable. Across the network of transformations, the choices contradict one another. A natural isomorphism requires the reconstruction to commute with those transformations, so the witness works as one system rather than as many unrelated lookup tables.
Even this strong formal result does not settle every interpretive question. Two categories may be equivalent after important physical, semantic or modal structure has been omitted from their objects and morphisms. Philosophers of scientific theories therefore distinguish several strengths of formal equivalence and debate which structure should count as interpretation-preserving [10] [11]. The proof can be impeccable inside a category that was too weak for the decision.
Choose the right return ticket
“Show the inverse” is good discipline, but not every valid transport needs a strict inverse. Optimising compilers erase names and rearrange instructions. Causal abstractions intentionally compress microstates. Simulations may guarantee that every source move has an acceptable target move without promising the reverse. The proof must therefore name the return ticket it actually offers.
| Proof form | Core obligation | Useful for | Does not automatically give |
|---|---|---|---|
| Strict isomorphism | Two-sided inverse on the declared structure | Lossless renaming, reversible format change | Relevance of the chosen structure |
| Category equivalence | Quasi-inverse with coherent natural isomorphisms | Different presentations of the same compositional organisation | Identity of underlying ontology |
| Bisimulation | Every labelled move is matched in both directions | Behavioural equivalence of transition systems | Same internal representation |
| Simulation or refinement | Moves or traces are preserved in the required direction | Compiler correctness, implementation refinement | Reversibility or target completeness |
| Exact causal abstraction | State and intervention maps commute with causal response | Relating mechanism levels under intervention | Uniqueness of the abstraction |
| Approximate transport | Declared discrepancy remains within a bound on a declared domain | Noisy, continuous or statistical systems | Exact laws outside the measured regime |
Causal structure requires intervention transport
Observational agreement is especially weak when the claim concerns cause. Imagine two binary models that always produce X = Y. In Model A, X causes Y. In Model B, Y causes X. Passive observations cannot distinguish them. Set X to zero while holding the mechanism for Y fixed. Model A propagates the change to Y; Model B need not.
Model A before intervention
Observed pairs satisfy X = Y.
Model B before intervention
The same observed pairs satisfy X = Y.
Model A after do(X=0)
The intervention propagates through the X to Y mechanism.
Model B after do(X=0)
Y keeps its exogenous value; forcing X does not reverse the arrow.
Work on causal model abstraction formalises this demand. Exact transformations relate low-level and high-level state spaces while translating allowed interventions. Applying a low-level intervention and then abstracting its outcome should agree with applying the translated high-level intervention directly [3] [4]. Later treatments relax exactness by adding an explicit metric and error measure rather than quietly replacing equality with “close enough” [5]. Mechanistic-interpretability work has adapted these ideas to interchange interventions on representations [6].
Approximation introduces three obligations that exact diagrams can hide. The discrepancy metric must represent the decision. The domain or distribution must state where the bound applies. The map class must be restricted enough that success is informative. A zero training error from an arbitrarily expressive translator may say more about the translator than either system.
stateDiagram-v2 [*] --> Claim state "Keep every tested answer,<br/>replace the mechanism" as Claim state "Keep both systems fixed,<br/>change what counts as equal" as Test state "When the inverse is coherent<br/>rather than literal" as Revision Claim --> Test: expose mechanism Test --> Decision: evidence survives Test --> Revision: rival survives Revision --> Claim: narrow or rebuild Decision --> [*]
Put the claim through a transport gate
The practical contribution of this paper is a Structural Transport Contract. It converts a broad equivalence claim into eight fields that can fail independently. The contract is deliberately stricter than a comparison narrative and weaker than demanding one universal notion of sameness.
- Decision. Name the action the result will support: replace, compile, compare, abstract, reuse or infer.
- Signatures. List source and target object types, relations, operations, observations and interventions.
- Admissible map. Declare how mappings may be constructed and what complexity or regularity they must obey.
- Preservation. Specify every forward law that must commute.
- Reflection and coverage. State which target relations must come from the source and how much of the target must be represented.
- Return witness. Supply a strict inverse, coherent quasi-inverse, bisimulation relation, simulation relation or reconstruction bound.
- Validation. Include held-out compositions, interventions, rival mappings and explicit error thresholds.
- Break and permission. Publish the first known counterexample, the scope boundary and the exact inference the proof permits.
Locate the failure instead of averaging it away
A failed gate should report where the bridge broke. Four locations recur across mathematical, computational and cross-domain comparisons. They should remain separate because each calls for a different repair.
Vocabulary failure occurs before a functional test can begin. A source type, relation or operation has no declared target counterpart. A phenomenological account may distinguish an experienced horizon from an attended object, while the proposed machine description contains only token positions and weights. Inventing a shared label does not supply the missing target object. The honest result is an untranslated commitment and, perhaps, a design question.
Functional failure occurs when named counterparts do not respond alike under the relevant intervention. Two systems may both contain something called “memory”, yet one is an immutable training parameter and the other is writable episodic state. Resetting, updating or withholding the candidate components reveals different roles. The repair is to narrow the relation, change the target, or abandon the correspondence.
Structural failure occurs when local correspondences exist but their relations or compositions do not commute. Each role may map to a capability, each state to a state and each action to an API call, while revoke-after-approve, fork-then-merge or concurrent update behaves differently. This is the characteristic failure of attractive box-to-box diagrams. The repair is a law-level intervention, not better labels.
Ontological residue remains when the formal structure transports successfully but the source makes a further claim about what the structure is. A mathematical model of report, reflexivity or temporal integration can be instantiated in several substrates. That does not by itself decide whether any instance is conscious, biological, intentional in the phenomenological sense, or metaphysically fundamental. The proof should preserve the residue as an explicit non-inference rather than smuggling it through a shared diagram.
These failures can coexist, but they should not be blended into one confidence score. A score of 0.72 cannot tell a reader whether the missing piece is a term, an operation, a composition law or an ontological bridge. The location of failure is part of the result because it determines the next experiment.
Source policy structure
- Typed roles and subjects
- Bounded field views
- Two live approvals for suspend
- Revocation precedes execution
- Decision and effect receipts
Target runtime structure
- Scopes in short-lived tokens
- Service-specific field access
- Cached authorisation state
- Typed API actions
- Readback from system of record
Forward preservation passes
Reflection fails: target is broader
Composition fails: cache remains live
Executable lab: the finite-structure mapping gate
The browser tool below audits finite typed relational structures. Each structure declares object identifiers, object types and named binary relations. The map assigns every source object to a target object. The gate checks totality, target membership, type preservation, injectivity, surjectivity, relation-signature agreement, preservation and reflection.
Run the Structural Transport Gate
Choose a preset or edit the JSON. Relations are named arrays of ordered object pairs. The audit runs locally in the browser and can export a machine-readable receipt.
No mapping assessed yet
Load a preset or provide three valid JSON documents, then run the gate.
Independent checks
- Awaiting input
A positive isomorphism result permits interchangeability only for formulas built from the declared finite object types and binary relations. An embedding result permits faithful representation inside the target image. A homomorphism result permits one-way relation transport but not recovery. A negative result identifies a counterexample to the proposed map; it does not prove that no better map exists. The gate cannot establish shared ontology, consciousness, historical influence or equivalence of unlisted operations.
Python reference implementation and explicit invariants
The reference checker uses the same finite-relational semantics as the browser lab. Its invariants are: every source object is mapped; each image exists and has the same declared type; every source relation tuple maps to a target tuple; reflection is tested only when the map is injective; and isomorphism additionally requires surjectivity and matching relation names.
from __future__ import annotations
from dataclasses import dataclass
from typing import Mapping, Sequence
Pair = tuple[str, str]
@dataclass(frozen=True)
class FiniteStructure:
name: str
objects: Mapping[str, str]
relations: Mapping[str, frozenset[Pair]]
@dataclass(frozen=True)
class Audit:
verdict: str
checks: Mapping[str, bool]
counterexamples: tuple[str, ...]
def audit_mapping(
source: FiniteStructure,
target: FiniteStructure,
mapping: Mapping[str, str],
) -> Audit:
errors: list[str] = []
source_ids = set(source.objects)
target_ids = set(target.objects)
total = source_ids <= set(mapping)
images_exist = all(mapping.get(s) in target_ids for s in source_ids)
typed = total and images_exist and all(
source.objects[s] == target.objects[mapping[s]] for s in source_ids
)
image_values = [mapping[s] for s in source_ids if s in mapping]
injective = len(image_values) == len(set(image_values)) == len(source_ids)
surjective = set(image_values) == target_ids
same_signature = set(source.relations) == set(target.relations)
preservation = total and images_exist
for relation, pairs in source.relations.items():
target_pairs = target.relations.get(relation, frozenset())
for left, right in pairs:
mapped = (mapping.get(left), mapping.get(right))
if mapped not in target_pairs:
preservation = False
errors.append(f"{relation}: {left,right} maps to {mapped}, absent in target")
reflection = injective and images_exist
if reflection:
inverse = {mapping[s]: s for s in source_ids}
image = set(inverse)
for relation, pairs in target.relations.items():
source_pairs = source.relations.get(relation, frozenset())
for left, right in pairs:
if left in image and right in image:
preimage = (inverse[left], inverse[right])
if preimage not in source_pairs:
reflection = False
errors.append(f"{relation}: target {left,right} reflects to absent {preimage}")
checks = {
"total": total,
"images_exist": images_exist,
"type_preservation": typed,
"injective": injective,
"surjective": surjective,
"same_relation_signature": same_signature,
"relation_preservation": preservation,
"relation_reflection": reflection,
}
if typed and preservation and reflection and injective and surjective and same_signature:
verdict = "exact structural isomorphism"
elif typed and preservation and reflection and injective:
verdict = "structural embedding"
elif typed and preservation:
verdict = "relation-preserving homomorphism"
else:
verdict = "failed structural mapping"
return Audit(verdict, checks, tuple(errors))
To apply the checker, instantiate both structures, convert each relation’s pair list to a frozenset, and call audit_mapping. A production extension should add n-ary operations, action maps, temporal traces, interventions, approximate metrics and a declared map-complexity budget rather than treating this toy signature as universal.
Where the gate should stop
The gate should not be applied as a universal metaphysics machine. A correct finite-structure proof can show that two typed relational presentations are isomorphic. It cannot establish that they are made of the same kind of thing, have the same causal powers outside the signature, realise the same experience, or arose from the same historical lineage. Those are separate claims with separate evidence.
Nor should every useful mapping be forced upward to equivalence. One-way simulation may be exactly right for an implementation. Approximate abstraction may be the honest result for a noisy biological system. A lexical analogy may be enough to generate an experiment. The discipline is to lower the noun when the proof is weaker, not to inflate the proof until it matches the noun.
ConclusionsequenceDiagram participant Q as Question participant M as Mechanism participant E as Evidence participant D as Decision Q->>M: The bridge that replay cannot finish M->>E: Keep every tested answer, replace the mechanism E-->>M: compare rival explanations E->>D: Approve only the transport contract that survives a break D-->>Q: revise scope or act
Approve only the transport contract that survives a break
When a proposed bridge appears between a transformer and a cognitive theory, a biological measure and an artificial system, a legacy service and its rewrite, or two philosophical descriptions, stop asking whether the endpoints “are equivalent” in general. Ask which decision needs to cross.
If the decision is reversible format migration, demand a lossless reconstruction witness. If it is behavioural substitution, specify the observations and require matched transitions under adversarial contexts. If it is causal explanation, transport interventions. If it is a lossy abstraction, publish the metric, distribution, error and discarded distinctions. If it is only hypothesis generation, call it a correspondence and preserve the residue.
Do not approve a structural-equivalence claim until a reader can run both paths of every declared law, challenge the mapping in reverse, inspect the return witness, and point to the first condition under which the claim stops. The proof is not the impressive diagram. It is the transport contract that survives an attempted break.
This changes the release decision from “the outputs look the same” to “the decision-relevant structure is preserved under the interventions we may actually perform”. It changes comparative research from “these vocabularies resemble one another” to “this named relation survives this map, while these commitments do not transfer”. Most proposed equivalences will become narrower. That is progress. A bounded result can be tested, reused and revised; an unbounded resemblance can only be repeated.
Glossary
- Admissible map
- A mapping allowed by predeclared constraints such as type, continuity, simplicity, locality or interpretability.
- Bisimulation
- A relation between transition systems in which each labelled move on either side can be matched by the other.
- Category equivalence
- Functors in both directions whose composites are naturally isomorphic to the identity functors.
- Homomorphism
- A map that preserves named operations or relations in the forward direction.
- Reflection
- The reverse test that target relations among mapped objects correspond to source relations rather than being introduced by the mapping.
- Signature
- The declared types, relations, operations, equality notion and interventions that define what structure is under discussion.
- Structural Transport Contract
- The eight-field proof receipt proposed here for tying a mapping claim to a decision, tests, reconstruction and break conditions.
References
- Riehl, E. (2016). Category Theory in Context. Aurora: Dover. Author-hosted edition. Full text.
- Fong, B., & Spivak, D. I. (2019). An Invitation to Applied Category Theory: Seven Sketches in Compositionality. Cambridge University Press. Open preprint.
- Rubenstein, P. K., Weichwald, S., Bongers, S., Mooij, J. M., Janzing, D., Grosse-Wentrup, M., & Schölkopf, B. (2017). Causal consistency of structural equation models. Proceedings of UAI. Open preprint.
- Beckers, S., & Halpern, J. Y. (2019). Abstracting causal models. Proceedings of AAAI. Open preprint.
- Beckers, S., Eberhardt, F., & Halpern, J. Y. (2020). Approximate causal abstractions. Proceedings of UAI. Open preprint.
- Geiger, A., Ibeling, D., Zur, A., Chaudhary, M., Chauhan, S., Huang, J., Arora, A., Wu, Z., Goodman, N., Potts, C., & Icard, T. (2025). Causal abstraction: A theoretical foundation for mechanistic interpretability. Journal of Machine Learning Research, 26(83), 1–64. Journal article.
- Sutter, D., Minder, J., Hofmann, T., & Pimentel, T. (2025). The non-linear representation dilemma: Is causal abstraction enough for mechanistic interpretability? Preprint. Open preprint.
- Leroy, X. (2009). A formally verified compiler back-end. Journal of Automated Reasoning, 43, 363–446. .
- van der Schaft, A. J. (2004). Equivalence of dynamical systems by bisimulation. IEEE Transactions on Automatic Control, 49, 2160–2172. .
- Barrett, T. W., & Halvorson, H. (2016). Morita equivalence. The Review of Symbolic Logic, 9, 556–582. Open preprint.
- Weatherall, J. O. (2018). Theoretical equivalence in physics. Philosophy Compass, 14. Open preprint.