Certain answers: the math of saying "I don't know" (Foundations, part 3)

July 3, 2026

Part 3 of Foundations. Parts 1–2 covered structure and questions. This one's about making honesty precise.

"Proof or honest abstention" sounds like a slogan. It's actually a fifty-year-old piece of mathematics, and I think it's the most underused idea in AI right now.

Database researchers hit our exact problem in the 1970s: what should a system say when its data is incomplete? The landmark answer came from Imieliński and Lipski (1984), building on Codd's relational foundations and Reiter's logical reading of databases. Under the open-world assumption — what you know is true, but it isn't everything — the only defensible answers are the certain answers: the ones that hold in every possible world consistent with your data.

Everything else is a guess. Might be right! A memory system has no business trading in "might be right."

What you get for taking this seriously

"I don't know" becomes a verdict, not a vibe. An abstention means: this candidate is possible but not certain. That's checkable. And it splits ignorance into useful kinds — no candidate at all, versus two candidates the data can't tell apart. In the second case the honest output is the tie itself: "the 1997 film or the 2005 remake — which one did you mean?"

Saying "no" requires a license. Here's the subtle one. "Has the invoice been paid?" — answering no means knowing your records are complete for payments. Not finding a payment isn't the same as there being none. Systems that skip this distinction manufacture confident falsehoods out of missing rows every single day. Open-world honesty says: treat absence as absence, not as falsity, unless you've established completeness for that corner of the data.

Counts inherit the rule. "How many meetings did I have with Dana?" is only certain if the underlying set is certainly complete. A count over maybe-partial data, presented as exact, is a subtle lie. The theory catches it mechanically.

And there's a lucky break: for the conjunctive queries from part 2, certain answers are cheap to compute. The exact fragment natural questions live in is the fragment where honesty is affordable. When the math lines up that well, I stop believing in coincidence.

Why a wrong answer is worse than none

Worth saying plainly. An abstention costs you a lookup somewhere else. A wrong answer — delivered confidently, by the component whose whole job is being trusted — costs you the decision you built on it. And eventually it costs you your trust in every answer the system ever gave. A memory layer is infrastructure for trust. Certain-answer semantics is just what that looks like written down.

So that's how our engine behaves: every answer is a certain answer with its derivation attached, and every abstention says whether the problem was absence, ambiguity, or your question assuming something the data doesn't support. The silences are as engineered as the speech.