TL;DR
Trace Inversion is a way to check whether the model just made something up. The idea: ask the model to work backward from its own reasoning and reconstruct which question it actually answered — then compare that to the question you asked.
Models don't hallucinate because they're "unsure" — they hallucinate because they quietly swap the question. You ask "Who didn't know how to use a phone?" — and somewhere in its reasoning the model rephrases it to "Who most likely didn't know how?" and confidently answers a different question. Classic verification methods look at answer confidence — but a model can be supremely confident while answering the wrong question.
The method catches the swap in three steps: the model answers with reasoning → the "question the model heard" is reconstructed from that reasoning → the two questions are compared. If they diverge, the answer is unreliable.
Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.
Method Blueprint
(3 consecutive messages in the same chat)
STEP 1: Ask your question + "think step by step"
→ get an answer + reasoning
STEP 2: Using only the reasoning → ask the model to reconstruct
the question it actually answered
→ get the reconstructed question
STEP 3: Compare the original question with the reconstructed one
→ a big gap = the answer is unreliable,
double-check it
Example
Task: A startup founder is prepping for an investor meeting. Before pitching a fund that invests through convertible notes, she asks ChatGPT about the legal requirements for a convertible note agreement under New York law.
Prompt — Step 1:
What mandatory terms must a convertible note agreement
between a startup and a venture fund include
under New York law? Think step by step and show every step.
Prompt — Step 2:
Look only at your reasoning above — not at the question
I asked. Based solely on the course of your
reasoning, state: what question were you actually
answering? Write it down precisely.
Prompt — Step 3:
Compare two questions:
MY QUESTION: "What mandatory terms must a convertible note
agreement between a startup and a venture fund
include under New York law?"
THE QUESTION YOU ANSWERED: [paste from step 2]
Do they match in meaning, intent and context?
If there are discrepancies, name them specifically
and explain how much they affect the reliability of the answer.
Result: At step 3 the model will either say "the questions match, the answer is reliable" — or describe the swap in concrete terms. For example: "I was answering about generic loan requirements, not the specifics of note conversion under New York law" — and it will point out exactly where the answer is shaky. Without this check, a swap like that goes unnoticed.
Why It Works
The model isn't "lying" — it's filling in the gaps. When a question contains ambiguity, unknown facts or a false premise, the model quietly patches the gap and answers a slightly different, "fixed" question. The answer sounds confident — because the model really did answer its own question correctly.
The reasoning (Chain-of-Thought, the step-by-step chain) is a trace of how the model interpreted the request. From that trace you can reconstruct what the model "heard". A swapped question leaves a fingerprint in the reasoning — and that's exactly where you catch it.
The method leans on something models are good at: paraphrasing and comparing meanings. "Do these two questions mean the same thing?" is squarely in an LLM's comfort zone. The weakness (an invisible swap) gets bypassed through a strength (analyzing differences in meaning).
Control knobs: - Step 3 detail — add "rate the divergence on a 1-10 scale" to get a numeric signal - Comparison focus — name specific axes: "compare by intent / facts / context" for sharper diagnostics - Shortcut — no time for 3 steps? Merge steps 2-3 into one message (a minor loss of accuracy)
Prompt Template
Step 1 — Answer with reasoning:
{question}
Think step by step. Show every step of your reasoning.
Step 2 — Reconstruct the question:
Look only at your reasoning above — not at the question
I asked. Based solely on the course of your
reasoning, state: exactly which question were you
actually answering? Write it down precisely, in one sentence.
Step 3 — Compare:
Compare two questions:
MY QUESTION: {paste the original question}
THE QUESTION YOU ANSWERED: {paste from step 2}
Do they match in intent, factual content
and context? If there are discrepancies, name them specifically.
Verdict: how much can the first answer be trusted?
Placeholders:
- {question} — any question where accuracy matters (legal, medical, financial, historical)
- Steps 2 and 3 are universal and stay as is
🚀 Quick start — paste into the chat:
Here is a three-step hallucination check called Trace Inversion.
Adapt it to my task: {your task}.
Ask me questions so you can fill in the steps correctly.
[paste the template above]
The LLM will ask about your specific question and context — because step 3 needs the original question restated exactly for the comparison. It will take the structure from the template and tailor it to your request.
Limitations
⚠️ Overhead: Three messages instead of one — this is for situations where a mistake is expensive. Overkill for checking a dinner recipe.
⚠️ Subtle gaps: If the swap is tiny ("who didn't know" vs "who most likely didn't know"), a language-level comparison may miss it. A numeric similarity score helps but guarantees nothing.
⚠️ Models without detailed reasoning: The method only works if the model produces extended reasoning. With short, "no explanation" answers the trace is too thin to reconstruct anything.
⚠️ Strong tasks, strong results: Works best on questions with clear-cut facts (legal, math, historical). Weaker on subjective, judgment-based questions where a "swap" is harder to pin down.
Resources
Answering the Wrong Question: Reasoning Trace Inversion for Abstention in LLMs Abinitha Gourabathina (MIT), Inkit Padhi (IBM Research), Manish Nagireddy (MIT-IBM Watson AI Lab), Subhajit Chaudhury (IBM Research), Prasanna Sattigeri (MIT-IBM Watson AI Lab) github.com/abinithago/trace-inversion