Essay · Reasoning

Make the Model Commit

Free-text reasoning is cheap and ungradeable. Make the model emit something a solver can falsify.

Key Takeaway

Improve model reliability by forcing it to emit checkable mathematical or symbolic structures (like SMT inputs or type definitions) verified by external solvers rather than relying on unstructured text.

A language model will produce a fluent, confident explanation of a scene that cannot physically exist — and an equally fluent one of a scene that can. The output surface is too cheap. Prose never has to commit to a constraint that something else can check, so a wrong answer costs the model nothing but a slightly different paragraph.

Propose, then verify

In one project I stopped asking the model to explain and started asking it to commit: emit a structured program — declared contacts, supports, centre-of-mass claims — and hand it to an SMT solver. Now a wrong claim is not a softly-worded sentence; it is an UNSAT. Either the centre of mass is over the support polygon or it is not. The model proposes; the checker disposes.

Why this generalises

Anywhere the answer has checkable structure — geometry, arithmetic, schedules, types, proofs, API contracts — you can push the model to emit that structure and verify it externally. This is the spine of the neuro-symbolic revival, and it is the most reliable way I know to make machine reasoning gradeable instead of merely persuasive. The verifier turns confidence into a testable claim.

The honest caveat

This only works where you can formalise the check, and most interesting questions resist formalisation. The space of problems with a clean external verifier is smaller than we would like. But for the slice that has one, “make the model commit to a verifiable artifact” beats “trust the prose” every single time — and it is worth designing problems so that more of them fall into that slice.

Citations & References