Vacuous truth in logic: meaning and examples
A statement is vacuously true when it holds only because the case it speaks about never arises: a conditional with a false antecedent, a claim about every member of an empty set, an argument whose premises cannot all be true.
In propositional logic A -> B is true whenever A is false, so “if 2 is odd then the moon is cheese” is true. The same rule makes an argument with contradictory premises valid: validity requires no row with all premises true and the conclusion false, and if no row has all premises true there is nothing to refute. Mathematicians rely on this (“every element of the empty set is prime” is true); engineers and reviewers are caught out by it, because a vacuous pass looks like a real one.
The artefact on this page is the argument from the single premise A AND NOT A to the conclusion B. The premise column reads false on all 4 rows. The validity check holds, but with the warning, quoted from the engine, that the argument is valid only vacuously because the premises can never all be true, so anything would follow; the verdict carries the vacuous flag and the consistency status “no”. The premise-consistency check is violated, with the summary that the premises are mutually inconsistent and no assignment makes all of them true.
In practice vacuous truth is the reason a verdict and a consistency check are reported together: a rule under contradictory assumptions passes every property, and the engine flags each such result rather than printing a pass. In testing, a test whose precondition no input meets is a vacuous pass. The term is confused with an ordinary true conditional and with triviality; a vacuous result is not wrong, it is uninformative, and the fix is to repair the premises.
Example
p1 — A AND NOT A · premiseconclusion — B · conclusion
Exact checks
Truth table (4 rows)
| # | A | B | p1 | conclusion |
|---|---|---|---|---|
| 0 | FALSE | FALSE | FALSE | FALSE |
| 1 | FALSE | TRUE | FALSE | TRUE |
| 2 | TRUE | FALSE | FALSE | FALSE |
| 3 | TRUE | TRUE | FALSE | TRUE |
Plain-language reading
BeginnerConclusion: B is true.
IntermediateConclusion: B is true.
AdvancedConclusion: B is true.
Formal notation: B
The common slip
Reading a vacuous “valid” as support for the conclusion. On this page B follows from A AND NOT A, and so would NOT B; the verdict says nothing about B at all. The warning and the failed consistency check are the result, not the word “valid”.
Questions
Why does the engine still say “valid” instead of rejecting the argument?
Because the argument is valid by the standard definition, and the engine reports verdicts honestly. It separates the question “is there a counterexample?” (no) from “could the premises hold?” (no), shows both, and marks the first as vacuous so that it is not mistaken for evidence.
Related
See also
- Vacuous truth: a property that holds because nothing satisfies the assumptions
- Inconsistent assumptions make every test pass
- Inconsistent premises: A and NOT A prove anything (vacuous validity)
- Valid argument in logic: meaning and examples
- Contradiction in logic: meaning and examples
- Complement law: A AND NOT A = FALSE, A OR NOT A = TRUE
Glossary
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.