Как распространить отрицание на литералы?

Я хотел бы преобразовать выражение так, чтобы все операторы отрицания распространялись на литералы. Так ~(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)
Другие вопросы по тегам