rob-constructed-v1: constructed ReLU circuit for exact (a路b) mod p
A fixed-weight linear + ReLU network that computes (a * b) mod p exactly at
every scored tier, from 3-bit primes (tier 1) to 2048-bit primes (tier 10).
This is a constructed arithmetic circuit, not a trained model. Read the
manifest's model_description and training_description first; they state the
provenance plainly. The weights are set by construction (two numeric constants,
1 and 2^16, plus the structural wiring in circuit.py). There is no
training set, no optimizer, and no fitted parameter.
It is submitted as part research, a hand-encoded algorithm that meets the time and space budget and is exact on every scored tier.
What it computes
The forward pass is linear maps, ReLUs, and 1-D convolutions only: no integer
tensor arithmetic, no einsum on the inputs, no product of two activations.
Multiplication uses the binary-gated-product identity
b*v = relu(v - 2^16*(1-b)), which replaces every bilinear operation with a
ReLU. The pipeline is schoolbook multiply (gated partial products into
carry-save columns), MSB-first bit-peel carry normalisation, then Barrett
reduction (HAC 14.42, base 2^16, k = n limbs) with a borrow-out comparator
and at most two conditional subtractions. All weights are on the {0, 卤1, 卤2^t}
grid, stored float32 and computed float64 (exact on integers below 2^53; the
measured precision margin is comfortable at every tier).
Interface
preprocess_a,preprocess_b: parse the decimal operand (own argument only).preprocess_p: parsep, route to the circuit width fromp's bit length, and precompute the Barrett reciprocalmu = floor(2^(32n)/p)frompalone.predict_digits: reduce the operandsmod pto the limb width (a standard intermediate reduction, the same one the reference models use, not the answer), run the routed circuit forward, and emit base-2^16limbs. The harness decoder reads them MSB-first and assembles the integer.output_base = 65536(one base-2^16digit per limb), within the schema's[2, 2^32].
Inputs whose prime exceeds the 2048-bit tier ceiling return [0].
Files
circuit.py: the primitives, theModmulCircuitmodule, preprocessing helpers, and safetensors I/O. Vendored verbatim from the verified construction so the submission is self-contained in the sandbox.model.py: theConstructedCircuitModelentry class, with per-tier routing, preprocessing hooks, and the batched forward pass.manifest.json: entry class,output_base, and the honest model and training descriptions.
No weight files: the circuit needs none. That is part of the honest picture. A submission with no trained parameters is, by the rules' own wording, a circuit rather than a model.