53 lines
3.3 KiB
Markdown
53 lines
3.3 KiB
Markdown
# Independent ABI verification plan
|
|
|
|
Session `run-6c7a726f5a2849ef0407876f`; verifier `research-abi-independent`;
|
|
requested model `openai/gpt-5.6-sol`.
|
|
|
|
This plan was fixed before running the independent objdump reproductions. The object is the
|
|
owner-supplied `dumps/sots.exe` whose required SHA-256 is
|
|
`970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841`.
|
|
|
|
## Falsifiers
|
|
|
|
1. Stop if the executable hash, GNU objdump identity, paired baseline HEAD/common-directory, or
|
|
source-binding differs from the handoff.
|
|
2. Reject the dedup interpretation if complete independent windows do not show: both description
|
|
string addresses passed to `0x0046f8c0`; caller cleanup; helper result tested; zero selecting the
|
|
match return; and the helper/callees implementing byte-and-length inequality with independent
|
|
inline/heap selection at capacity `0x10`.
|
|
3. Reject an ownership claim if append/growth paths use raw element-header transfer, if the
|
|
`0x2c` and `0x74` strides collapse to one shape, if long-string destruction does not call the
|
|
recorded delete thunk, or if old elements are not destroyed/freed after deep copy.
|
|
4. Reject archived record-value claims if an independent parser does not recover the stated event
|
|
IDs, nested turn buckets, strings, action/location, and exact `0x7f7fffff` position words from
|
|
the named save.
|
|
5. Reject acceptance on zero instruction output, nonzero command exit, missing requested address
|
|
ranges, unexpected skips, hash mismatch, or reliance on counters without inspecting bytes/state.
|
|
|
|
## Required branch exposures and distinct states
|
|
|
|
Static instruction exposures required in this quantum: dedup null/empty return, scalar mismatch
|
|
continuation, description equal match, description unequal continuation, short/long selection for
|
|
both operands, byte mismatch, length mismatch, and equal return; ObservedTech spare/full append and
|
|
deep copy; PlayerEvent spare/full append, three-string copy, and long cleanup; TurnEvents hit/miss,
|
|
outer spare/full growth, nested empty/nonempty copy, and destruction; prune zero/one/two leading
|
|
stale plus stale-after-fresh control flow.
|
|
|
|
Distinct semantic states to keep separate: empty/short/long descriptions; equal versus
|
|
description-only-different events; new versus existing tech name; spare versus full capacity;
|
|
empty versus nonempty nested vectors; duplicate versus no duplicate; zero/one/two leading stale
|
|
buckets; stale-after-fresh; duplicate turn buckets versus miss. Static branch exposure is not live
|
|
execution of these states.
|
|
|
|
## Independent challenge
|
|
|
|
Held-out negative control: inspect unordered/NaN position behavior in the dedup comparator, which
|
|
the handoff summarizes as finite-position fixtures. Prediction from x87 `fucompp` plus
|
|
`test ah,0x44; jp mismatch`: otherwise-identical records containing NaN in any compared coordinate
|
|
must not deduplicate, including two records carrying the same NaN payload. This challenges any
|
|
implicit whole-bit-equality interpretation without using a live allocator.
|
|
|
|
Scope labels will remain separate: this quantum can establish an **independent static
|
|
reproduction** and an **archived-save value cross-check**. It is not original-assisted runtime
|
|
execution, full live compare, independent replacement, or integrated replay, and makes no live
|
|
allocator-safety or replacement-acceptance claim.
|