4. Task and order of execution / Завдання та порядок виконання
Source of tasks. Tasks 1–2 are taken exactly from the assignment “Advanced Propositional Logic and Computational Logic” (their input/output examples are authoritative). Tasks 3–4 extend the work to the level of its prerequisite, Lecture 6 — implication/equivalence and a satisfiability/tautology decision.
Order of execution
Implement in order and test each against its example; your score corresponds to the
highest band you complete correctly. Reuse the Task 1 evaluator throughout. (The tables
below list true before false; Lecture 6 and Practical 3 instead list false first —
either order is acceptable as long as your program is consistent.)
Easy tasks (60–74 points)
Task 1 — Complex logical expressions evaluation
Evaluate a logical expression, built from AND, OR, NOT, and parentheses,
under a given assignment of truth values to its variables.
- Input:
- Expression:
"(A AND B) OR (NOT C)" - Values:
{"A": true, "B": false, "C": true}
- Expression:
- Output:
- Result:
false
- Result:
Task 2 — Automated truth table generation
Given a logical expression, generate its complete truth table — one row for every combination of truth values of its variables.
- Input:
- Expression:
"(A AND B) OR C"
- Expression:
- Output — Truth Table:
| A | B | C | (A AND B) OR C |
|---|---|---|---|
| true | true | true | true |
| true | true | false | true |
| true | false | true | true |
| true | false | false | false |
| false | true | true | true |
| false | true | false | false |
| false | false | true | true |
| false | false | false | false |
Medium tasks (75–89 points)
Task 3 — Implication and equivalence
Extend the evaluator to the connectives IMPLIES () and IFF (),
with precedence , and print the truth table
of the input expression.
- Input: Expression:
"(A IMPLIES B) IFF ((NOT B) IMPLIES (NOT A))" - Output: every row of the truth table is
true— the expression is a tautology (it is the contrapositive law ).
Hard tasks (90–100 points)
Task 4 — Satisfiability / tautology classifier
Given an expression, classify it by scanning its truth table as a tautology (true in every row), a contradiction (false in every row), or a contingency (satisfiable but not a tautology).
- Input: Expression:
"A AND (NOT A)" - Output: Classification:
Contradiction(unsatisfiable).