Logic
Tautology
test for a tautology
Contradiction
test for a contradiction
Calling Sequence
Parameters
Description
Details
Examples
Tautology(b, p)
Contradiction(b, p)
b
-
Boolean expression
p
(optional) unevaluated name
The Tautology and Contradiction commands test whether the given Boolean expression b is a tautology or a contradiction.
The Tautology(b) calling sequence returns true if b is a tautology (true for every valuation of its variables) and false otherwise. Similarly, Contradiction(b) returns true if b is a contradiction (false for every valuation of its variables) and false otherwise.
If the parameter p is supplied and the test returns false, then a valuation is assigned to p which demonstrates a negative result. Otherwise, p is assigned NULL. Note that the test may be significantly faster if p is not given.
The problem of determining whether every possible assignment of truth values satisfies a given Boolean formula is the dual of the Boolean satisfiability problem and is known to be co-NP-complete, meaning that no polynomial-time algorithm is presently known.
with(Logic):
Tautology(&and(a,b) &or (¬ a) &or (¬ b));
true
Tautology((a &iff b) &or b, 'p');
false
p;
a=true,b=false
Tautology(a &or (¬ a), 'p');
Contradiction(a &or ¬(a &and b) &nor b);
Contradiction((a &iff b) &or b, 'p');
a=false,b=true
Contradiction(¬(a) &and a, 'p');
See Also
Logic/Equivalent
Logic/Satisfy
Download Help Document