Дизъюнктивная нормальная форма в Python

Используя python, как лучше всего преобразовать строку из AND и OR вдизъюнктивная нормальная форма (также известный как «сумма продуктов»)?

b AND (c OR (a AND d))

становится

(b AND c) OR (b AND a AND d)

Я хотел бы также отсортировать их, лексикографически

(a AND b AND d) OR (b AND c)

Ответы на вопрос(1)

Ваш ответ на вопрос