A hypothesis you have not tried to kill is just a hope with better grammar. Strong solvers treat every approach as a conjecture — plausible until a counterexample murders it — and the murder attempt is not optional. The reasoning replays drill this as a loop: conjecture an approach, hunt for the input that breaks it, and pivot only when the counterexample tells you where your idea is weak.
A conjecture, in the wild
The Binary Search reasoning replay plants a real one. The problem: sorted list, find the target’s index. A natural first conjecture — the replay calls it wrong-left-only — is to inspect the midpoint and, whenever it is not the target, continue searching only the left half. It feels fine. Midpoints are where the action is; the left half seems like the place to keep looking.
The counterexample hunt
The hunt has a method: do not test random inputs — test the one that
exploits your conjecture’s blind spot. The blind spot here is a target that
lives to the RIGHT of the midpoint. So run the approach on
[1, 3, 5] looking for 5:
mid = 1, nums[1] = 3, 3 ≠ 5 → search only the left half
left half of index 1 is empty → return -1
Expected 2, got -1. The conjecture is dead, and the counterexample did more than kill it — it told you WHERE your idea was incomplete: you never considered what the midpoint comparison implies about direction.
The pivot: the counterexample writes the fix
The pivot is not “try something else.” It is the repair your counterexample dictates. The failed hunt shows the midpoint comparison carries direction information you were discarding:
- equal → return the midpoint.
- midpoint less than target → search mid + 1 through right.
- midpoint greater than target → search left through mid - 1.
Three-way comparison, both halves alive, and the halving survives — now with a proof of concept instead of a hope. That is the difference between the pivot and a guess: the counterexample constrains the fix.
Why the replay makes you predict first
The replay shows the conjecture, then asks you to predict the counterexample input before revealing it. That is the retrieval practice: the skill being built is not “know this counterexample” — it is “produce the killing input on demand.” A solver who can hunt counterexamples for their own conjectures stops shipping approaches that only work on the example cases.
The rest of the series
This is phase two of the series overview. An approach that survives its counterexamples still needs a correctness backbone — that is What stays true: invariants and reduction.