We define a propositional formula as follows:
- {a,b,...j} are atomic propositions, representing either true or false.
- If A and B are propositional formulae, then so are:
- (A ^ B) – ^ is Boolean AND
- (A v B) – v is Boolean OR
- ~A – ~ is Boolean NOT
For example, ((a v b) ^ (~c v a)) is a propositional formula. A tautology is a propositional formula that equates to true for all possible value assignments to the atomic propositions. Our previous example ((a v b) ^ (~c v a)) is not a tautology because for the assignments {a = false, b = false, c = true}, the formula evaluates to false. However, (a v ~a) is a tautology because no matter what, the atomic proposition is this equates to true: (true or not-true) = true, (false or not-false) = true.
The input file DATA5.txt will contain 5 test cases, each three lines long (not more than 255 characters per line) with a propositional formula per line.
The output file OUT5.txt will contain 5 lines of output, each three characters long: Y for tautology, N for not tautology.
((a v b) ^ (~c v a))
(a v ~a)
~(a ^ ~a)
a
~b
((a ^ b) v (c ^ ~c))
NYY
NNY