Я хочу убедиться, что одно логическое выражение математически эквивалентно другому.
Допустим, у нас есть 3 логические переменные: a, b, c
. Выражение X = ((a || b) && !c)
. Затем я переписываю некоторый код, и получается, что Y = !(((!a && !b) || c) && true)
.
Мои вопросы :
- Есть ли возможность проверить на лету, что выражения X и Y одинаковы для всех входных данных?
- Есть ли возможность сжать выражения, чтобы Y упрощался?
- Я хочу увидеть таблицу истинности для X, Y с входами a, b, c.
Отказ от ответственности : я знаю, что могу написать программу для разных входов переменных и выходов X и Y. Я подумал о синтаксическом синтаксическом анализаторе, который, вероятно, мог бы также анализировать другие переменные (например, n<100
) вместо просто a
, чтобы я мог вставить код операторов if в качестве ввода.
Привет и спасибо за ваши мысли!