В комментариях есть ряд «точных реальных» предложений (например, непрерывные дроби, линейные дробные преобразования и т. Д.). Типичный улов в том, что, хотя вы можете вычислить ответы по формуле, равенство часто неразрешимо.
Однако, если вы просто заинтересованы в алгебраических числах, то вам повезло: теория реальных замкнутых полей полна, минимальна и разрешима. Это было доказано Тарским в 1948 году.
Но тут есть подвох. Вы не хотите использовать алгоритм Тарского, так как он находится в классе сложности NELELEMENTARY, который настолько непрактичен, насколько непрактичны алгоритмы. Существуют более современные методы, которые сводят сложность к DEXP, который является лучшим из известных нам в настоящее время.
Обратите внимание, что проблема NP-трудна, потому что она включает SAT. Тем не менее, неизвестно (или не считается) быть в NP.
РЕДАКТИРОВАТЬ Я собираюсь попытаться объяснить это немного больше.
Основой для понимания всего этого является проблема решения, известная как Теория удовлетворенности по модулю, или SMT для краткости. По сути, мы хотим решить SAT для теории, построенной на основе классической логики.
Итак, мы начнем с классической логики первого порядка с теста на равенство. Какие функциональные символы мы хотим включить и каковы их аксиомы, определяют, является ли теория разрешимой.
Есть много интересных теорий, выраженных в рамках SMT. Например, существуют теории структур данных (например, списки, двоичные деревья и т. Д.), Которые используются для доказательства правильности программ, и теория евклидовой геометрии. Но для нашей цели мы смотрим на теории разных видов чисел.
Пресбургерская арифметика - это теория натуральных чисел с сложением. Эта теория разрешима.
Арифметика Пеано - это теория натуральных чисел с сложением и умножением. Эта теория не является разрешимой, как это доказал Гедель.
Арифметика Тарского - это теория действительных чисел со всеми полевыми операциями (сложение, вычитание, умножение и деление). Интересно, что эта теория разрешима. Это был очень нелогичный результат в то время. Вы можете предположить, что, поскольку это «надмножество» натуральных чисел, это «сложнее», но это не так; например, сравнивать линейное программирование для рациональных чисел с линейным программированием для целых чисел.
Может показаться неочевидным, что удовлетворение - это все, что вам нужно, но это так. Например, если вы хотите проверить, равен ли положительный квадратный корень из 2 реальному кубическому корню из 3, вы можете выразить это как проблему выполнимости:
∃ х . х > 0 ∧ х2- 2 = 0 ∧ х3- 3 = 0
еИкс
грех{ хπ| грехх = 0 }грех
еИксея х
Альфред Тарский (1948) . Метод решения элементарной алгебры и геометрии .