У меня есть следующая проблема:
У меня есть две пропозициональные формулы, которые должны стать логически эквивалентными.Только один из них содержит «переменную» в том смысле, что переменная может быть заменена любой формулой высказываний.Проблема сейчас в том, что мне нужно найти фактическую замену для переменной, чтобы логическая эквивалентность стала истинной.Пример:
(a ^ ~ b) или x = a
Здесь x обозначает переменную.Эту логическую эквивалентность можно сделать истинной, заменив x на a ^ b, так что оно становится:
(a ^ ~ b) или (a ^ b) = a
Так что этопроблема.Мне нужен алгоритм, который получает в качестве входных данных «уравнение с одной переменной x» и дает в качестве выходного значения для переменной x такой, что уравнение становится логической эквивалентностью.
Всегда будет одна переменная.(На самом деле у меня могут возникнуть проблемы с более чем одной переменной, но сначала я хочу решить простой случай).И эти формулы могут иметь любую форму (они не в CNF или DNF).Кроме того, формулы могут фактически быть ЛОЖНЫМИ или ИСТИНАМИ, и бывают случаи, когда нет решения (например, для «a или x = false», решения нет) или более одного решения (например, для «a и x = false»«любое ложное предложение было бы верным ответом).
Все, что у меня есть, - это рассуждение о таблицах, которое говорит мне, является ли формула выполнимой или нет.Так что я могу проверить решение.Но моя проблема - просто дать мне решение.