Как распространить отрицание на литералы?
Я хотел бы преобразовать выражение так, чтобы все операторы отрицания распространялись на литералы. Так
~(a | b)
становится
~a & ~b
. У кого-нибудь есть решение для этого?
from pyeda.boolalg.expr import expr
formula = "~(a | b)"
e = expr(formula, simplify=False)
1 ответ
Существует пара способов переключения между конъюнктивной и дизъюнктивной нормальными формами.
.to_dnf()
.to_cnf()
пытаться,
>>> e.to_dnf()
And(~a, ~b)