There's a quiet asymmetry at the heart of modern reasoning systems: generating a candidate answer is cheap and getting cheaper, but knowing which candidate is correct is the hard part. Verification, not generation, is increasingly the bottleneck.
Why verification is the multiplier
If a model can check its own work, everything changes. It can sample many attempts and keep only the ones that pass — turning a mediocre single-shot generator into a strong system through sheer selection. The quality of that selection is capped by the quality of the checker.
Generation gives you options. Verification gives you the right one. Only the second is scarce.
Where good verifiers come from
For some domains, verification is free and perfect: run the code and see if the tests pass, execute the proof step in a formal checker, evaluate the math. These "hard" verifiers are why coding and formal math have advanced fastest — the reward signal is unambiguous.
For open-ended tasks — is this essay good, is this summary faithful — verification is itself a learned, fuzzy judgment, and that fuzziness leaks into everything built on top of it. A weak judge trains a weak policy.
The practical lesson
When you design a reasoning pipeline, invest in the checker as much as the generator:
- Prefer tasks with cheap, reliable verification, or build one (unit tests, schema validation, cross-checks).
- Use independent verifiers rather than asking the same model that generated the answer to grade it — fresh context catches more.
- Treat "how do we know this is right?" as a first-class design question, not an afterthought.
The models will keep getting better at proposing. The teams that win will be the ones best at checking.