Условие
По аналогии с задачей дифференцирования реализовать представление символьных
булевых выражений с операциями конъюнкции, дизъюнкции отрицания, импликации.
Выражения могут включать как булевы константы, так и переменные.
Реализовать подстановку значения переменной в выражение с его приведением к
ДНФ.
Код должен быть покрыт тестами, API документирован.