formula = input("Введите логическую формулу: ")
p = formula
p = p.replace("<=>", " == ").replace("<->", " == ")
p = p.replace("=>", " <= ").replace("->", " <= ")
p = p.replace("¬", " not ").replace("~", " not ")
p = p.replace("&", " and ").replace("∧", " and ")
p = p.replace("V", " or ").replace("v", " or ")
p = p.replace("⊕", " ^ ")
p = p.replace("|", " ^ 1 ^ ")
p = p.replace("↑", " == 0 == ")
has_a = 'A' in formula
has_b = 'B' in formula
has_c = 'C' in formula
vals_a = [0, 1] if has_a else [0]
vals_b = [0, 1] if has_b else [0]
vals_c = [0, 1] if has_c else [0]
header_cols = []
if has_a: header_cols.append("A")
if has_b: header_cols.append("B")
if has_c: header_cols.append("C")
header = " ".join(header_cols) + " | " + formula
print("-" * len(header))
print(header)
print("-" * len(header))
results = []
for A in vals_a:
for B in vals_b:
for C in vals_c:
res = int(bool(eval(p)))
results.append(res)
row_cols = []
if has_a: row_cols.append(str(A))
if has_b: row_cols.append(str(B))
if has_c: row_cols.append(str(C))
print(" ".join(row_cols) + f" | {res}")
print("-" * len(header))
if all(r == 1 for r in results):
print("Вывод: Тавтология (тождественно истинна)")
elif all(r == 0 for r in results):
print("Вывод: Противоречие (тождественно ложна)")
else:
print("Вывод: Выполнимая формула")