Skip to content

Denying the antecedent: A → B, NOT A, therefore NOT B (invalid)

Denying the antecedent: from A -> B and NOT A, concluding NOT B. The validity check fails with the counterexample A = FALSE, B = TRUE: the implication and the negated antecedent hold, yet B is true.

If A then B; not A; therefore not B. The form mimics modus tollens but negates the wrong side: “if you are a member you get a discount; you are not a member; so you get no discount”, which ignores every other way to get one. The model has the premises p1, A -> B, and p2, NOT A, and the conclusion NOT B; the engine's reading of the conclusion is “B is false”. On the four-row table p2 is true on rows 0 and 1, where A is false, and p1 is true on both of those rows.

The validity check is violated: in the counterexample every premise is true but the conclusion is false. The engine reports A = FALSE, B = TRUE, row 1: A -> B is true because its antecedent is false, NOT A is true, and NOT B is false. On the other row where both premises hold, row 0, A = FALSE, B = FALSE, the conclusion happens to be true, which is what makes the fallacy feel safe. The premise-consistency check holds with the witness A = FALSE, B = FALSE: the premises are possible together and simply do not determine B.

This fallacy is the argument-form version of the inverse slip, and it appears whenever a rule is read as “only if”: a permission rule that grants access to admins is taken to deny it to everyone else. The thing to watch is what the implication leaves open. A -> B says nothing about the rows where A is false, and both of those rows satisfy the premises here. To conclude NOT B from NOT A you need the converse implication, B -> A, as a separate premise, which is a separate claim to verify.

p1 — A -> B · premisep2 — NOT A · premiseconclusion — NOT B · conclusion

Exact checks

Does the conclusion follow from the premises? No Counterexample: A = F, B = T · Exhaustively checked and solver cross-checked · 2 rows
Can all premises be true together? Yes Example assignment: A = F, B = F · Exhaustively checked and solver cross-checked · 1 rows

Truth table (4 rows)

Denying the antecedent: A → B, NOT A, therefore NOT B (invalid)
#ABp1p2conclusion
0FALSEFALSETRUETRUETRUE
1FALSETRUETRUETRUEFALSE
2TRUEFALSEFALSEFALSETRUE
3TRUETRUETRUEFALSEFALSE

Plain-language reading

BeginnerConclusion: B is false.
About the operators:
- NOT reverses a value: true becomes false and false becomes true.
IntermediateConclusion: B is false.
AdvancedConclusion: B is false [negation ¬].
Formal notation: ¬B

Logic diagram

Denying the antecedent: A → B, NOT A, therefore NOT B (invalid) Denying the antecedent: A → B, NOT A, therefore NOT B (invalid) A B p1 p2 conclusion → NOT NOT
Denying the antecedent: A → B, NOT A, therefore NOT B (invalid) Denying the antecedent: A → B, NOT A, therefore NOT B (invalid) A B p1 p2 conclusion → NOT NOT

The common slip

Reading A -> B as “B if and only if A”. With that reading the fallacy would be valid, but the implication in the premise is weaker, and the counterexample row A = FALSE, B = TRUE is consistent with it. If the policy really is “only members get discounts”, write the biconditional and re-run the check.

Questions

How is this different from modus tollens?

Modus tollens negates the consequent, from NOT B to NOT A, and the validity check holds on all four rows. Denying the antecedent negates the antecedent, from NOT A to NOT B, and the row A = FALSE, B = TRUE refutes it. The side you negate decides whether the argument is valid.

Related

Guides

Operators and gates

Tools

Practice

See also

Worked examples

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.