Store the rule, not the output.
at1 recover finds the exact integer generator behind a stream — LCG, linear recurrence, multiplicative, LFSR — and stores the O(1) program instead of the values, lossless-verified. On an 8,000-sequence OEIS sample it hit a 0.000% false-positive rate: it never claims a generator behind a CSPRNG, MT19937, or noise.
- 0.000%
- false positives on CSPRNG / MT19937 / noise
- 8,000
- OEIS sequences in the validation sample
- O(1)
- stored program size when a generator is found
- lossless
- every recovery re-emits the exact stream
Recovery is the proof
Recovers the exact generator
When a stream is produced by a linear congruential generator, a linear recurrence, a multiplicative generator, or an LFSR, at1 recover solves for its parameters and state — then stores that O(1) program instead of the values.
Recovery is lossless-verified
A claimed generator is only accepted if replaying it reproduces the input stream bit-for-bit. If replay doesn't match, the claim is rejected and the data falls back to ordinary compression — never a wrong reconstruction.
0.000% false-positive rate
On an 8,000-sequence OEIS sample it never claimed a generator behind a cryptographic RNG, Mersenne Twister (MT19937), or noise. A strong generator, a good PRNG, or true randomness reads as "no rule" — because there isn't one it can recover.
Enormous win when the rule is there
A stream that's genuinely rule-governed collapses to a tiny program: megabytes of values become a handful of parameters that regenerate them exactly. When there's no rule, it says so and gets out of the way.
One command surface
# recover the integer generator behind a stream and store the program, not the numbers at1 recover scan stream.bin # -> LCG recovered (a, c, m, seed) · verified at1 recover compress stream.bin out.at1r # store the O(1) program, lossless at1 recover verify out.at1r # replay must reproduce the input bit-for-bit # no recoverable rule? it says so and falls back to ordinary compression at1 recover scan csprng.bin # -> no generator recovered (looks random)
at1 recover targets recoverable integer generators— the weak-RNG and linear-recurrence families above. A cryptographically secure generator, a well-seeded MT19937, or true noise correctly reads as “no rule”: the absence of a recovery is the result. Used the other way round, that same test is a weak-generator auditor — see the RNG Auditor. For the broader “store the rule” portfolio across other data types, see Research.