ADR-0040: Sealed Predecessor Translation Correspondence Roots
Status: accepted and implemented for the frozen 51-case predecessor boundary; R1-S8 was subsequently finite-accepted; Gate B performance remains open
Date: 2026-07-30
Historical scope: ADR-0042 later migrated the encoder-derived target and carrier identities without changing the predecessor Core↔SSA or SSA↔Machine IR translation relations sealed here.
Extends: ADR-0035, ADR-0036, and ADR-0039 without reinterpreting an accepted Residual Core, Core SSA, Machine IR, R1-S7a, or R1-S7b identity
Context
R1-S5 already sealed the three-engine Gate A relation and source-bound each Core SSA artifact to its Residual Core. R1-S6 source-bound each Machine IR artifact to its Core SSA and Residual Core. The frozen 51-case semantic comparisons across these two translation handoffs, however, existed only as test assertions. They did not have their own stage-separated record schemas and ordered aggregate roots that R1-S8 authority could carry.
R1-S8 must not jump from a Residual Core identity to a native target identity while treating the two intermediate semantic relations as implicit. Detached hash tuples are also insufficient: an attacker can recompute hashes over fabricated observations.
Decision
1. Two distinct evidence lines
NAUX defines two finite, ordered translation-correspondence protocols:
R1-S5 Residual Core ↔ source-bound Core SSA
R1-S6 source-bound Core SSA ↔ source-bound Machine IR
Both schema and policy versions are exactly 1.0.0. Their public,
NUL-terminated domains are:
NAUX:core-ssa:r1-s5:translation-correspondence:record:v1\0
NAUX:core-ssa:r1-s5:translation-correspondence:results:v1\0
NAUX:machine-ir:r1-s6:translation-correspondence:record:v1\0
NAUX:machine-ir:r1-s6:translation-correspondence:results:v1\0
The domains are stage-separated from Gate A, artifact semantic identities, R1-S7a, and each other.
2. Exact finite corpus and observations
Each evidence line contains exactly 51 records in canonical Gate A order:
ordinals 0..45 BranchMix
ordinals 46..50 Bounds
Every record binds its ordinal, workload, class, canonical input hash, source
and translated artifact identities, normalized outcomes, ordered effects, and
record hash. Non-NaN F64 results preserve exact bits, including signed zero.
All NaNs normalize to the one declared semantic NaN class. The Bounds outcome
and effect order are exact.
The fixed correspondence limits bind:
total cases 51
BranchMix cases 46
Bounds cases 5
max array elements per case Gate A fixed cap
max total array elements Gate A fixed cap
max effects per observation Gate A fixed cap
steps per case Gate A residual-step cap
call depth Gate A call-depth cap
max total steps per engine Gate A residual aggregate cap
Admission uses checked arithmetic and rejects any noncanonical limit, count, ordinal, manifest, identity, observation, nested record seal, or aggregate seal.
3. Regeneration, not detached resealing
Emission first replays each source binding, executes all 51 cases through both engines, checks the fixed limits, and seals the ordered result.
Verification validates the complete nested shape and then deterministically regenerates all 51 executions from the live source artifacts. Even a fabricated observation whose record and aggregate hashes have both been recomputed cannot mint the opaque verified correspondence view.
The accepted locked roots are:
R1-S5 Core↔SSA
18db0347094dfad000e7a6401cd1d989edd57f44bd0b31a9544d80f3803ba58b
R1-S6 SSA↔Machine IR
3cc7cbd876531ea6f88c56f50c851eb168ac76afe2d9a05ae6835687bf411205
4. R1-S8 inherited authority
The lighthouse package independently rebuilds the other workload package, emits both correspondence lines, and reverifies them before authority construction.
The R1-S8 inherited envelope now carries, in each corresponding stage:
- correspondence schema and policy versions;
- exact Gate A manifest hash;
- ordered correspondence result root;
- complete fixed correspondence limit vector;
- exact record count;
- selected and cross-profile source/target identities.
These additions increase the manual big-endian inherited-envelope encoding
from 2,728 to exactly 2,984 bytes: 128 bytes for R1-S5 and 128 bytes for
R1-S6. The envelope is embedded in the existing pre-acceptance R1-S8 artifact
preimage. No Rust layout, native endian, debug text, serde, saturation, or
host-width cast participates.
5. Claim boundary
These roots are finite translation validation over the frozen corpus. They do not prove equivalence for arbitrary inputs or programs. They do not complete R1-S8, Gate B, Gate C, Futamura P1, performance leadership, or seed sovereignty.
R1-S8 may describe them as canonical transitive carriers only because every consumer regenerates the complete leaf evidence from live predecessor artifacts. Copying the two root values without that replay grants no authority.
Consequences
- The R1-S8 artifact identity changes because its inherited preimage is now complete at both missing semantic handoffs.
- Authority construction and verification are intentionally more expensive: they replay the frozen predecessor corpus instead of trusting cached roots.
- Any future change to either protocol requires append-only schema/policy evolution, new domains, new locked vectors, and an explicit ADR.
- At this decision’s acceptance, the standalone ELF bytes were unchanged; only the authority-bound artifact and downstream R1-S8 execution identities changed. ADR-0042 later migrated the inherited target and ELF bytes together.