The truth table for p \to q catches every beginner off-guard. Three of its four rows are \mathbf{T}, and only one row is \mathbf{F}. Why? The table looks wrong until you reframe the whole connective: p \to q is a promise. "If p happens, I promise that q will happen." A promise is broken only in one specific circumstance — when the condition is met and the guarantee is not delivered. In every other case, the promise is intact.

The setup: a real promise

Imagine your parent says: "If you finish your homework, I will take you to the ice-cream shop."

Two events are in play: p = "you finish your homework" and q = "we go for ice-cream." The statement is p \to q — the implication.

There are four possible worlds. Let us ask in each one: is your parent a liar?

Four worlds of implication promiseFour labelled boxes side by side representing the four rows of the implication truth table. Each box contains the p and q values and a verdict — kept, broken, or vacuously kept. A draggable slider moves across the axis beneath, and the readout above shows which world is currently highlighted with its verdict. p = T q = T KEPT ✓ p = T q = F BROKEN ✗ p = F q = T vacuous ✓ p = F q = F vacuous ✓ 0 1 2 3 drag to walk through each world only World 1 (p=T, q=F) makes p → q false
The four worlds of an implication. Drag the slider to visit each. Only the second world — promise made, promise broken — makes $p \to q$ false. In the other three, including both where $p$ is false, the promise is either kept or vacuously intact.

World 1 — p true, q true. You finished your homework, and you went for ice-cream. Promise kept. p \to q is \mathbf{T}.

World 2 — p true, q false. You finished your homework, and yet your parent did not take you for ice-cream. Promise broken — your parent lied. p \to q is \mathbf{F}. This is the only row that makes an implication false.

World 3 — p false, q true. You did not finish your homework, but your parent took you for ice-cream anyway. Are they a liar? No — the promise was conditional. The condition was never triggered, so the promise could not be broken. The ice-cream is a generous bonus, not a liability. p \to q is \mathbf{T}.

World 4 — p false, q false. You did not finish your homework, and you did not go for ice-cream. Again, the condition was never triggered — the promise is vacuously intact. p \to q is \mathbf{T}.

The logic in one sentence

The implication p \to q is false only when p is true and q is false. In every other row, it is true.

p \to q \equiv \lnot(p \land \lnot q)

That equivalence is the formal version of "the only way to break a promise is to trigger the condition and then fail to deliver." Read the right-hand side: "it is not the case that p holds and q fails." That is exactly one row — the \mathbf{F} row.

Why this confuses students

School logic often comes from a mathematical universe where "implication" is read as "causation" or "tight coupling" — if p is false, surely q must be false too, or there is no connection between them. The truth table refuses this reading. Implication in logic is not a claim that p causes q; it is a claim that if p holds, then q holds — nothing more.

Why mathematics insists on this: universal statements of the form "for all n, if n is prime then n > 1" must be unambiguously true or false. If implication turned false whenever p was false, then the claim "all unicorns have three horns" — a statement about an empty set — would be false, meaningless, or philosophically fraught. Logic cuts this knot by declaring it vacuously true: no unicorns means no counterexamples, so the promise stands.

The broken-promise test

For any implication question — "is p \to q true in this scenario?" — run this one-line test:

  1. Is p true? If no, p \to q is true (vacuous).
  2. If yes, is q true? If yes, p \to q is true (promise kept).
  3. If p is true and q is false, p \to q is false (promise broken).

Three seconds, no truth table needed.

A worked example: spot the broken promise

Statement: "If today is Sunday, then the bakery is closed."

Walk through the four cases over a week:

The only data that can falsify the statement is a Sunday when the bakery is found open. A Monday's hours cannot touch it. This is why mathematicians insist the other three rows are \mathbf{T} — anything else would corrupt the meaning of the original claim.

The vacuous-truth edge case

Students sometimes revolt at the idea that "if p is false, p \to q is automatically true." Try this example: "All students in an empty classroom are wearing hats." There are zero students. Are any of them hatless? No — there are none at all. So you cannot point to a counterexample, and the statement stands as vacuously true.

That same logic governs every row of the truth table where p is false: there is no world in which the promise is tested, so the promise cannot be broken.

The takeaway rule

Burn this into memory: the only way p \to q is false is p true and q false. Every other combination — \mathbf{T}\mathbf{T}, \mathbf{F}\mathbf{T}, \mathbf{F}\mathbf{F} — is \mathbf{T}. The table is not weird; it is precisely the table of a promise.

Related: Logic and Propositions · Relations · Set Operations · Proof by Contrapositive