Skip to content

A → B does not give B → A

A -> B does not give B -> A. The two implications differ on the rows where exactly one of A and B holds, and the engine's check names A = FALSE, B = TRUE as the counterexample.

The table compares A -> B with its converse B -> A. On the row A = FALSE, B = TRUE the first is TRUE (A never happened, the promise stands) and the second is FALSE (B happened without A). On the row A = TRUE, B = FALSE it is the other way round. They agree only where A and B have the same value, which is why the slip is invisible on examples where both conditions hold or both fail.

The converse is one of three relatives of an implication. The contrapositive NOT B -> NOT A is equivalent to the original; the converse B -> A and the inverse NOT A -> NOT B are equivalent to each other and not to the original. The worked examples on the contrapositive, the converse and the inverse show each pair on a table.

Reasoning from the converse has a name, affirming the consequent: from “if it rained, the ground is wet” and “the ground is wet”, concluding “it rained”. The argument checker reports that form invalid with the counterexample where the ground is wet for another reason. In rules, “members get a discount” does not make everyone with a discount a member, and a rule that assumes so will let the wrong people through.

if_a_then_b := A -> B · outputconverse := B -> A · output
Are if_a_then_b and converse equivalent? No Counterexample: A = F, B = T · Exhaustively checked and solver cross-checked · 2 rows

Truth table

They differ on this row: #1, #2

A → B does not give B → A
#ABif_a_then_bconverse
0FALSEFALSETRUETRUE
1FALSETRUETRUEFALSE
2TRUEFALSEFALSETRUE
3TRUETRUETRUETRUE

Plain-language reading

Beginnerif_a_then_b is true exactly when the following holds: if A is true, then B is true.
In every other case, if_a_then_b is false.
About the operators:
- An “if … then” condition only constrains the case where its “if” part holds: when the “if” part is false, the condition is satisfied whatever the “then” part is. It does not say the reverse.
Intermediateif_a_then_b is true exactly when the following holds: if A is true, then B is true.
In every other case, if_a_then_b is false.
Advancedif_a_then_b is true exactly when the following holds: if A is true, then B is true [material implication →].
In every other case, if_a_then_b is false.
Formal notation: A → B
A → B does not give B → A A → B does not give B → A A B if_a_then_bPRIMARY converse → →
A → B does not give B → A A → B does not give B → A A B if_a_then_bPRIMARY converse → →

The common slip

Reading “if A then B” as a two-way link. The sentence only rules out A without B; it says nothing about B without A. When both directions are meant, say “if and only if” and write A <-> B.

Questions

When are an implication and its converse both true?

On the rows where A and B have the same value, and as formulas, when A <-> B holds. The biconditional is exactly the conjunction of the two directions.

What is the valid way to use an implication?

Modus ponens (from A -> B and A, conclude B) and modus tollens (from A -> B and NOT B, conclude NOT A). Both are checked valid on their worked-example pages.

Related

Guides

Worked examples

Tools

See also

Pitfalls

Generated from the Tangibool engine, semantics tangibool-semantics/1, engine 1.0.0, build . Every table, map, simplification and verdict on these pages was computed by the Tangibool engine when the site was built, and every claim was re-checked by the same exact checker the app uses. Limits are stated where they apply. © 2026 Foreranger LTD.