Writeup
Teach the steps, not the last number
The puzzle
Every row in this contest is a tiny puzzle. There is a hidden program P. You see a few input-output pairs. You have to recover P and run it on a new input. If you only reward the final number, a model can luck into the right box with a wrong story, and then it learns the luck.
Teach the steps
I called the method PGPS, program-grounded process supervision. For each training row I search the rule family until P fits the examples. Once I have P, I already have the intermediate states, like the running total in a Roman numeral, or each bit after a rotate. I write the chain of thought from those states, so every step is true, not just the last one. A verifier checks the steps.
The story is copied from the program, not guessed after the answer.
- 01Find the hidden rulefit P to the examples
- 02Write gold stepsevery step copied from P
- 03LoRA-tuneNemotron-3-Nano, rank 32
- 04Zip itone complete run
Harder puzzles
Where the fit fails I add synthetic puzzles from the same rule space, so the model sees harder variants than the train file happened to include. Then LoRA SFT, a small adapter, on nemotron-3-nano-30b-a3b-bf16, rank 32, on the SSM and expert projections. The submission is a zip. One complete run.
The score
Public 0.704. Private 0.720. Rank 2588 of 4182. Mid pack again. The private number moved the right way, which is what you want if the gold traces actually taught a procedure.
Private was a little higher. That is the useful direction.
What I won't pretend
What I would not claim. I did not invent program induction. The rule engines are the boring part: bit ops, roman, ciphers, the grader that prefers a boxed answer and falls back to the last number. The bet is only this: if the steps are free once P is known, use them, do not sample a story and keep the ones that happen to land.
The files
I put the files under the writeup. Take one, or take the zip.
| # Teach the steps, not the last number |
| ## The puzzle |
| Every row in this contest is a tiny puzzle. There is a hidden program P. You see a few input-output pairs. You have to recover P and run it on a new input. If you only reward the final number, a model can luck into the right box with a wrong story, and then it learns the luck. |
| ## Teach the steps |
| I called the method PGPS, program-grounded process supervision. For each training row I search the rule family until P fits the examples. Once I have P, I already have the intermediate states, like the running total in a Roman numeral, or each bit after a rotate. I write the chain of thought from those states, so every step is true, not just the last one. A verifier checks the steps. |
| ### Harder puzzles |
| Where the fit fails I add synthetic puzzles from the same rule space, so the model sees harder variants than the train file happened to include. Then LoRA SFT, a small adapter, on nemotron-3-nano-30b-a3b-bf16, rank 32, on the SSM and expert projections. The submission is a zip. One complete run. |
| ## The score |
| Public 0.704. Private 0.720. Rank 2588 of 4182. Mid pack again. The private number moved the right way, which is what you want if the gold traces actually taught a procedure. |
| ## What I won't pretend |
| What I would not claim. I did not invent program induction. The rule engines are the boring part: bit ops, roman, ciphers, the grader that prefers a boxed answer and falls back to the last number. The bet is only this: if the steps are free once P is known, use them, do not sample a story and keep the ones that happen to land. |
Credits
| Kind | Writeup |
|---|---|
| Date | June 2026 |
| Tags | Kaggle, Reasoning, Nemotron |