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

2.8 KiB

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.