sots-re/verify/results/research-completion-abi-independent/verification-plan-run-eba7860308317f839eb35392.md

45 lines
2.8 KiB
Markdown

# Independent ABI verification plan — repaired handoff
Session `run-eba7860308317f839eb35392`; verifier `research-abi-independent`; requested model
`openai/gpt-5.6-sol`. Fixed before this session's independent executions.
## Scope and acceptance labels
This quantum may establish independent static reproduction and an archived-state cross-check.
It cannot establish original-assisted runtime execution, partial/full live compare, independent
replacement, integrated replay, live allocator safety, or replacement acceptance.
## Falsifiers
1. Stop on mismatch in paired HEAD/common Git directory/source binding, input SHA-256, objdump
path/hash/version, nonzero exit, zero instruction output, missing requested address, truncated
terminal instruction, or unexpected skip.
2. Reject the dedup claim unless independent complete bytes show both `EvDsc` addresses passed to
`0x0046f8c0`, caller cleanup, result test, zero selecting match, and helper/callees implementing
byte-and-length inequality with independent inline/heap selection at capacity `0x10`.
3. Reject ownership claims if either append transfers raw string/vector headers, if `0x2c` and
`0x74` element strides collapse, if long strings are not independently freed, or if growth omits
deep copy followed by old-element destruction/free.
4. Reject archived-value claims unless direct parsed tree state (not counters) contains the named
buckets, IDs, all event fields, and exact `0x7f7fffff` position words.
## Required branch exposures and distinct states
Instruction exposure: dedup null/empty, scalar mismatch, description equal/unequal, each operand's
short/long selection, byte mismatch, length mismatch and equal return; ObservedTech spare/full
append and copy; PlayerEvent spare/full append, three-string copy and long cleanup; TurnEvents
hit/miss, spare/full outer growth, empty/nonempty nested copy and destruction; prune zero/one/two
leading stale and stale-after-fresh paths.
States remain distinct: empty/short/long strings; equal versus description-only-different events;
finite versus unordered (NaN) coordinates; new/existing tech; spare/full capacity; empty/nonempty
nested vectors; duplicate/no duplicate; zero/one/two leading stale buckets; stale-after-fresh;
duplicate turn buckets versus miss. Static exposure is not live state execution.
## Independent challenge
Held-out NaN negative control: independently decode the three x87 position comparisons. Prediction:
the branch must reject unordered comparisons, so otherwise-identical events with NaN in any compared
coordinate do not deduplicate, even with identical NaN payloads. This challenges any bitwise- or
ordinary-equality gloss. Also ablate the widened stop boundary back to `0x00825e65`; it must reproduce
the known truncation and therefore cannot serve as complete-byte provenance.