Run: python check_gmp_defaults.py

Python standard library only. No network or external files are required.
The verifier writes result.json.

This checks a bounded construction: original GMP 2.0.2 generic 32-bit
urandom packing with two recorded default GNU libc streams (1.09.1 and
2.0.6), first 64 whole-number draws per field-size group. Every per-limb
ordering of the two random() calls is included. Raw values plus stated
field-bound reductions are compared with the public binary starts and
prime half-generator first-valid-x intervals.

The recorded run has zero matches. This does not identify the SEC authors'
software, recover their recipe, or exclude GMP under other initializations,
offsets, platforms, word sizes, routines or caller constructions.

fixture.json contains numeric default tables, source hashes, targets,
control outputs and scope. Both libc manuals explicitly document the
default sequence as reproducible by srandom(1); this check initializes
directly from the original static tables.

512 recorded C control values came from original RNG declarations/step
statements and unchanged GMP urandom.h, using a new freestanding i386
output harness. Actual 32-bit GCC builds at O0 and O2 agreed. This portable
script compares the recorded values; it does not rebuild the C programs
or revalidate the original source/archive hashes.

Primary source archives:
https://gmplib.org/download/gmp/archive/gmp-2.0.2.tar.xz
https://ftp.gnu.org/gnu/libc/glibc-1.09.1.tar.gz
https://ftp.gnu.org/gnu/libc/glibc-2.0.6.tar.gz
Public SEC parameters:
https://www.secg.org/SEC2-Ver-1.0.pdf

No evidence found in this pass links these implementations to SEC parameter
generation. The field-bound reductions are explicit caller hypotheses;
mpz_random itself returns whole limbs without field reduction.
