{ "entry_class": "model.BitSerialReducer", "output_base": 2, "framework": "pytorch", "model_description": "One shared, p-conditioned recurrent transition cell (~471K-param bidirectional 2-layer GRU over three bit-channels + control-bit embedding + per-bit head) applied in a fixed bit-serial Horner loop at 256/512-bit state width. The same weights reduce a mod p, reduce b mod p (multiplicand 1), and multiply the two residues (multiplicand a mod p, control bits scanning b mod p); state is carried as bits between steps, so no integer arithmetic or modular product runs in Python. Answers are emitted as base-2 digits and reconstructed by the scorer's decoder. Trained regime: primes below 2^512, operands up to ~1024 bits (tiers 1-8); outside it the model abstains and emits a single zero.", "training_description": "Trained from random initialisation on one-step transitions s' = (2*s + d*x) mod p (modulus bit-length stratified, wrap-boundary oversampled; AdamW with lr warmup + cosine decay), then refined with on-policy DAgger: the cell's own visited states during free-running reduce/multiply rollouts (powers of two, sparse, near-multiple, all-ones, symmetric, multiply-control) were relabelled with the exact transition and added to training. No precomputed tables, no hand-coded reduction or multiplication. The capability lives in the trained parameters; randomising them collapses every tier to 0. Evaluation primes are unseen during training (secret seed)." }