наприклад, ?
Вирази походять із звичайної алгебри середньої школи, але обмежуються арифметичним складанням і множенням (наприклад, ), без обертів, віднімання чи ділення. Букви є змінними.
Якщо це допомагає, ми можемо заборонити будь-який вираз, представлений із числовими значеннями, відмінними від ; тобто не ані ані :x 2 3 x 4
- багатолінійні , ніякі повноваження, окрім : в порядку, але не , і не все, що могло бути представлене як таке, як у повне розширення на суму продуктів, наприклад, не ; x + x y ≡ x 1 + x 1 y 1 x 2 + x 3 y 4 x ( x + y ) ≡ x 2 + y
- все одне , ніяких коефіцієнтів, окрім : є нормальним, але не , і не що-небудь, що могло б бути представлене таким чином, як у повному розширенні на суму- продукти, наприклад, не ; і x + x y ≡ 1. x + 1. x y 2 x + 3 x y a ( x + y ) + x ( a + b ) ≡ 2 a x + a y + b x
- немає констант, окрім : знову ж таки, у повністю розширеній кількості продуктів, наприклад, не( a + 1 ) + ( b + 1 ) ≡ a + b + 2
Чи існує ефективний алгоритм для визначення того, чи є два вирази еквівалентними?
Для ілюстрації, ось неефективний алгоритм грубої сили з експоненціальним часом:
повністю розширити обидва вирази до суми продуктів , що легко перевірити на еквівалентність (просто ігноруйте порядок, оскільки комутація / асоційований може змінити порядок).
наприклад
a ( x + y ) + b ( x + y ) → a x + a y + b x + b y
Це здається загальновідомою проблемою - навіть старшокласників навчають ручним способам її вирішення. Це також вирішується автоматизованими доказчиками теореми / шашками, але вони зосереджені на більш досконалих аспектах.
Ось робочий онлайн-автоматизований доказ про теорему: http://tryacl2.org/ , який показує еквівалентність шляхом знаходження послідовності маршрутів сполучення / об'єднання / розподілу тощо:
?
(thm (= (+ (* x y) x y) (+ x (* y (+ x 1))) ))
--- 188 сходинок
?
(thm (= (+ y (* x (+ y 1))) (+ x (* y (+ x 1))) ))
--- 325 кроків
Це моє перше питання тут, тому, будь ласка, повідомте мене, чи я обрав неправильне місце, неправильні теги, неправильний спосіб опису / запитання тощо. Дякую!
Примітка: це питання було переписано у відповідь на коментарі
Дякую всім респондентам! Я багато чого навчився.