Уніфікація в логіці та інформатиці — це алгоритмічний процес розв'язання рівнянь між символічними виразами.
Залежно від того, яким виразам (термам) дозволено з'являтись в наборі рівнянь (також називається проблемою уніфікації), і які вирази вважаються рівними, виділяють кілька структур уніфікації. Якщо у виразі допускаються змінні вищого порядку, тобто змінні, що представляють функції, процес називається уніфікація вищого порядку, інакше, уніфікація першого порядку. Якщо потрібно, щоб обидві сторони кожного рівняння були буквально рівними, цей процес називається синтаксичним або вільним уніфікація, в іншому випадку — семантичне або рівноправна уніфікація, або Е-уніфікація або теорія модулів уніфікації.
Рішення проблеми уніфікації позначається як [en], тобто відображення, що присвоює символічне значення кожній змінній виразів задачі. Алгоритм уніфікації повинен обчислити для заданої задачі повний і мінімальний набір підстановок, тобто набір, що охоплює всі його рішення, і не містить зайвих членів. Залежно від структури, повний та мінімальний набір заміни може мати не більше одного, не більше ніж кінцевого числа або, можливо, нескінченно багато членів або може не існувати зовсім. В деяких рамках взагалі неможливо вирішити, чи існує якесь рішення. Для синтаксичної уніфікації першого порядку Мартеллі та Монтанаріподали алгоритм, який повідомляє про нерозв'язність, або обчислює повний і мінімальний синтаксичний набір, який містить так званий найбільш загальний уніфікатор.
Наприклад, використовуючи x,y,z як змінні, встановлюється рівняння: { cons(x,cons(x,( nil))) = cons (2, y) } — це синтаксична проблема уніфікації першого порядку що має єдине рішення для заміни { x ↦ 2, y ↦ cons(2, nil)}.
Синтаксична проблема уніфікації першого порядку ( y = cons (2, y)} не має вирішення над набором кінцевих виразів; однак у нього є єдине рішення { y ⟩ cons (2, cons (2, cons (2, …)))} над набором нескінченних дерев.
Семантична проблема уніфікації першого порядку {a⋅x = x⋅a} має кожну підстановку форми { x ↦ "'a' ' ⋅ … ⋅a } як рішення в напівгрупи, тобто якщо (⋅) вважається асоціативна; та ж проблема, розглянута в абелевій групі, де (⋅) також вважається комутативна, має взагалі будь-яку заміну як рішення. Синтаксична задача уніфікації другого порядку, оскільки y — функціональна змінна, є синтаксичною задачею { a = y ( x ) }. Одним із рішень є {x ↦ a, y ↦ (тотожність функції)}; інший є {y ↦ (стала функція, що відслідковує кожне значення до a), x ↦ (будь-яке значення)}.
Перше формальне дослідження уніфікації можна віднести до Джон Алан Робінсон,, який застосував синтаксичне уніфікація першого порядку як базовий будівельний блок його рішення процедури логіки першого порядку, великий крок вперед в автоматизоване обґрунтування технології, оскільки вона усуває одне джерело комбінаторного вибуху: пошук об'єктів термінів. Сьогодні автоматизовані міркування залишаються головною областю застосування уніфікації.
Синтаксичне уніфікація першого порядку використовується для здійснення логічного програмування та реалізації мови програмування типа даних, особливо в [en] на основі алгоритму виведення типу. Семантичне об'єднання використовується в алгоритмах Satisfiability Modulo Theories, алгоритмах рерайтинг та аналізі криптографічного протоколу. Об'єднання більш високого порядку використовується в асистентах-доказах, наприклад [en], а також обмежені форми уніфікації більш високого порядку (уніфікація шаблонів вищого порядку) використовуються в деяких реалізаціях мов програмування, таких як [en], оскільки шаблони вищих порядків є експресивними, проте їх пов'язана процедура уніфікації зберігає теоретичні властивості ближче до уніфікації першого порядку.
Загальні формальні визначення
Необхідні умови
Формально припускає уніфікаційний підхід
- Безліч встановлених V змінних. Для уніфікації вищого порядку зручно вибрати V , непересічну з набору лямбда-термінів.
- Набір T термінів такий, що V ⊆ T. Для уніфікації першого порядку та уніфікації вищого порядку T — це зазвичай набір виразів першого порядку (вирази побудовані з символів змінної та функцій) і лямбда-числення (вираз, що містять деякі змінні вищестоящих порядків), відповідно.
- Позначення vars : T → ℙ ( V ), присвоюючи кожному терміну t встановлений vars ( т ) ⊊ V з вільних змінних, що відбуваються у t .
- Відношення еквівалентності ≡ T , вказуючи, які терміни вважаються рівними. Для уніфікації більш високого порядку, як правило, t ≡ u якщо t і u є еквівалент альфа. Для Е-уніфікації першого порядку ≡ відображає фонові знання про певні символьні функції; наприклад, якщо ⊕ вважається комутативним, t ≡ u , якщо u виходить з t , обмінюючи аргументи ⊕ на деяких (можливо, всіх) випадках. Якщо взагалі не існує фонового знання, то в буквальному чи синтаксичному відношенні однакові терміни вважаються рівними; в цьому випадку ≡ називається вільна теорія (тому що це вільний об'єкт), або теорія [en] (оскільки всі символьні функції просто створюють терміни даних, а не працюють на них).
Термін першого порядку
Враховуючи набір символів V змінних, набір символів C постійних символів і встановлює Fn функції n — ary Символи, також називаються символами оператора, для кожного натурального числа n ≥ 1, сукупність (несортованих першого порядку) термінів T є рекурсивно визначено як найменший набір з наступних властивостей:
- кожен змінний символ позначається виразом: V ⊆ T ,
- кожен постійний символ — це вираз: C ⊆ T ,
- з кожним n виразом t 1 , …, t n, можна побудувати кожен n — функціональний символ f ∈ F n , більший за цей вираз f ( t 1 , …, t n ).
Наприклад, якщо x ∈ V є символом змінної, 1 ∈ C є постійним символом і add ∈ F 2 — це символ двійкової функції, потім x ∈ T , 1 ∈ T і (отже) add ( x , 1) ∈ T відповідно до правил будівництва першого, другого та третього виразів відповідно. Останній термін зазвичай записується як x + 1, використовуючи інфіксну нотацію та більш загальний символ оператора + для зручності. <! — перейти до основної статті: Часто математики фіксують аріус (кількість аргументів) символу функції (див. Підпис), як правило, в задачах синтаксичного уніфікації символ функції може мати будь-яку (кінцеву) кількість аргументів і, можливо, може мати різні числа аргументів у різних контекстах. наприклад, f (f (a), f (x, y, z)) — добре сформований термін для задач уніфікації.
Термін вищого порядку
Замещение
Замещение — це відображення σ: V → T від змінних до виразів; позначення {x1 ↦ t1, ..., xk ↦ tk} означає підстановку, що заміняє кожну змінну xi to the term ti, for i=1,…,k, та кожної іншої змінної для себе. Застосування, що заміняє до виразаt записується як постфіксний запис, оскільки t {x1 ↦ t1, ..., xk ↦ tk}; це означає (одночасно) замінити кожну змінну xi на вираз t іti. Результат tσ застосування заміни σ на вираз t називається екземпляр цього вираза t. Як приклад першого порядку застосуємо заміщення {x ↦ h(a,y), z ↦ b } до вираза
f( | x | , a, g( | z | ), y) | |
перетворимо | |||||
f( | h(a,y) | , a, g( | b | ), y). |
Узагальнення, спеціалізація
Якщо вираз t має екземпляр, еквівалентний виразу u, тобто якщо, tσ ≡ u для деякої заміни σ, то t називається більш загальним, ніж u,і u називається більш спеціальним, або підкоряється t. Наприклад, x ⊕ a загальніший, ніж a ⊕ b, якщо ⊕ — , комутативне, з того часу (x ⊕ a) x↦b = b ⊕ a ≡ a ⊕ b.
Якщо ≡ синтаксичний ідентичність термінів, вираз, можливо, є як загальніший, так і більше спеціальний, ніж інший, тільки якщо обидва виирази відрізняються тільки їх іменами змінної, не в їх синтаксичній структурі; такі вирази — звані перейменування один одного. Наприклад f(x1,a,g(z1),y1) —варіант f(x2,a,g(z2),y2), , оскільки f(x1,a,g(z1),y1) {{x1 ↦ x2, y1 ↦ y2, z1 ↦ z2}} = f(x2,a,g(z2),y2) і f(x2,a,g(z2),y2) {{x2 ↦ x1, y2 ↦ y1, z2 ↦ z1}} = f(x1,a,g(z1),y1). Проте, f(x1,a,g(z1),y1) не є варіантом f(x2,a,g(x2),x2), , оскільки жодна заміна не може перетворити останній член на перший. Отже, останній вираз є набагато більш спеціальним, ніж перший.
Для довільного ≡, вираз може бути як загальним, так і більш спеціальним, ніж структурно інший вираз. Наприклад, якщо ⊕ є ідемпотентним, тобто, якщо завжди x ⊕ x ≡ x, тоді вираз x ⊕ y є більш загальним, ніж (x ⊕ y) x ↦ z, y ↦ z = z ⊕ z ≡ z, і навпаки z є більш загальним, ніж z z ↦ x ⊕ y = x ⊕ y, хоча x⊕y and z мають різну структуру.
Заміна σ є більш спеціальною чи підпорядкований ніж, заміна τ у tσ є більш спеціальним, ніж tτ для кожного вираза t.Ми також говоримо, що τ є більш загальним, ніж σ. Наприклад, x ↦ a, y ↦ a є більш спеціальним, ніж τ = x ↦ y , але σ = x ↦ a ні, оскільки f(x,y)σ = f(a,y) не більш особливий, ніж f(x,y)τ = f(y,y).
Примітки
- в цьому випадку, все ще існує повні набори заміщення (наприклад, набір усіх рішень взагалі); однак, кожен такий набір містить резервні члени.
- Наприклад, a ⊕ (b ⊕ f(x)) ≡ a ⊕ (f(x) ⊕ b) ≡ (b ⊕ f(x)) ⊕ a ≡ (f(x) ⊕ b) ⊕ a
Список літератури
- Fages, François; Huet, Gérard (1986). Complete Sets of Unifiers and Matchers in Equational Theories. Theoretical Computer Science. 43: 189—200. doi:10.1016/0304-3975(86)90175-1.
- Martelli, Alberto; Montanari, Ugo (Apr 1982). An Efficient Unification Algorithm. ACM Trans. Program. Lang. Syst. 4 (2): 258—282. doi:10.1145/357162.357169.
- J.A. Robinson (Jan 1965). A Machine-Oriented Logic Based on the Resolution Principle. Journal of the ACM. 12 (1): 23—41. doi:10.1145/321250.321253.; Here: sect.5.8, p.32
- J.A. Robinson (1971). Computational logic: The unification computation (PDF). Machine Intelligence. 6: 63—72.
- ; (1977). Model Theory. Studies in Logic and the Foundation of Mathematics. Т. 73. North Holland.; here: Sect.1.3
- K.R. Apt. «From Logic Programming to Prolog», p. 24. Prentice Hall, 1997.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Unifikaciya v logici ta informatici ce algoritmichnij proces rozv yazannya rivnyan mizh simvolichnimi virazami Zalezhno vid togo yakim virazam termam dozvoleno z yavlyatis v nabori rivnyan takozh nazivayetsya problemoyu unifikaciyi i yaki virazi vvazhayutsya rivnimi vidilyayut kilka struktur unifikaciyi Yaksho u virazi dopuskayutsya zminni vishogo poryadku tobto zminni sho predstavlyayut funkciyi proces nazivayetsya unifikaciya vishogo poryadku inakshe unifikaciya pershogo poryadku Yaksho potribno shob obidvi storoni kozhnogo rivnyannya buli bukvalno rivnimi cej proces nazivayetsya sintaksichnim abo vilnim unifikaciya v inshomu vipadku semantichne abo rivnopravna unifikaciya abo E unifikaciya abo teoriya moduliv unifikaciyi Rishennya problemi unifikaciyi poznachayetsya yak en tobto vidobrazhennya sho prisvoyuye simvolichne znachennya kozhnij zminnij viraziv zadachi Algoritm unifikaciyi povinen obchisliti dlya zadanoyi zadachi povnij i minimalnij nabir pidstanovok tobto nabir sho ohoplyuye vsi jogo rishennya i ne mistit zajvih chleniv Zalezhno vid strukturi povnij ta minimalnij nabir zamini mozhe mati ne bilshe odnogo ne bilshe nizh kincevogo chisla abo mozhlivo neskinchenno bagato chleniv abo mozhe ne isnuvati zovsim V deyakih ramkah vzagali nemozhlivo virishiti chi isnuye yakes rishennya Dlya sintaksichnoyi unifikaciyi pershogo poryadku Martelli ta Montanaripodali algoritm yakij povidomlyaye pro nerozv yaznist abo obchislyuye povnij i minimalnij sintaksichnij nabir yakij mistit tak zvanij najbilsh zagalnij unifikator Napriklad vikoristovuyuchi x y z yak zminni vstanovlyuyetsya rivnyannya cons x cons x nil cons 2 y ce sintaksichna problema unifikaciyi pershogo poryadku sho maye yedine rishennya dlya zamini x 2 y cons 2 nil Sintaksichna problema unifikaciyi pershogo poryadku y cons 2 y ne maye virishennya nad naborom kincevih viraziv odnak u nogo ye yedine rishennya y cons 2 cons 2 cons 2 nad naborom neskinchennih derev Semantichna problema unifikaciyi pershogo poryadku a x x a maye kozhnu pidstanovku formi x a a yak rishennya v napivgrupi tobto yaksho vvazhayetsya asociativna ta zh problema rozglyanuta v abelevij grupi de takozh vvazhayetsya komutativna maye vzagali bud yaku zaminu yak rishennya Sintaksichna zadacha unifikaciyi drugogo poryadku oskilki y funkcionalna zminna ye sintaksichnoyu zadacheyu a y x Odnim iz rishen ye x a y totozhnist funkciyi inshij ye y stala funkciya sho vidslidkovuye kozhne znachennya do a x bud yake znachennya Pershe formalne doslidzhennya unifikaciyi mozhna vidnesti do Dzhon Alan Robinson yakij zastosuvav sintaksichne unifikaciya pershogo poryadku yak bazovij budivelnij blok jogo rishennya proceduri logiki pershogo poryadku velikij krok vpered v avtomatizovane obgruntuvannya tehnologiyi oskilki vona usuvaye odne dzherelo kombinatornogo vibuhu poshuk ob yektiv terminiv Sogodni avtomatizovani mirkuvannya zalishayutsya golovnoyu oblastyu zastosuvannya unifikaciyi Sintaksichne unifikaciya pershogo poryadku vikoristovuyetsya dlya zdijsnennya logichnogo programuvannya ta realizaciyi movi programuvannya tipa danih osoblivo v en na osnovi algoritmu vivedennya tipu Semantichne ob yednannya vikoristovuyetsya v algoritmah Satisfiability Modulo Theories algoritmah rerajting ta analizi kriptografichnogo protokolu Ob yednannya bilsh visokogo poryadku vikoristovuyetsya v asistentah dokazah napriklad en a takozh obmezheni formi unifikaciyi bilsh visokogo poryadku unifikaciya shabloniv vishogo poryadku vikoristovuyutsya v deyakih realizaciyah mov programuvannya takih yak en oskilki shabloni vishih poryadkiv ye ekspresivnimi prote yih pov yazana procedura unifikaciyi zberigaye teoretichni vlastivosti blizhche do unifikaciyi pershogo poryadku Zagalni formalni viznachennyaNeobhidni umovi Formalno pripuskaye unifikacijnij pidhid Bezlich vstanovlenih V zminnih Dlya unifikaciyi vishogo poryadku zruchno vibrati V neperesichnu z naboru lyambda terminiv Nabir T terminivtakij sho V T Dlya unifikaciyi pershogo poryadku ta unifikaciyi vishogo poryadku T ce zazvichaj nabir viraziv pershogo poryadku virazi pobudovani z simvoliv zminnoyi ta funkcij i lyambda chislennya viraz sho mistyat deyaki zminni vishestoyashih poryadkiv vidpovidno Poznachennya vars T ℙ V prisvoyuyuchi kozhnomu terminu t vstanovlenij vars t V z vilnih zminnih sho vidbuvayutsya u t Vidnoshennya ekvivalentnosti T vkazuyuchi yaki termini vvazhayutsya rivnimi Dlya unifikaciyi bilsh visokogo poryadku yak pravilo t u yaksho t i u ye ekvivalent alfa Dlya E unifikaciyi pershogo poryadku vidobrazhaye fonovi znannya pro pevni simvolni funkciyi napriklad yaksho vvazhayetsya komutativnim t u yaksho u vihodit z t obminyuyuchi argumenti na deyakih mozhlivo vsih vipadkah Yaksho vzagali ne isnuye fonovogo znannya to v bukvalnomu chi sintaksichnomu vidnoshenni odnakovi termini vvazhayutsya rivnimi v comu vipadku nazivayetsya vilna teoriya tomu sho ce vilnij ob yekt abo teoriya en oskilki vsi simvolni funkciyi prosto stvoryuyut termini danih a ne pracyuyut na nih Termin pershogo poryadku Vrahovuyuchi nabir simvoliv V zminnih nabir simvoliv C postijnih simvoliv i vstanovlyuye Fn funkciyi n ary Simvoli takozh nazivayutsya simvolami operatora dlya kozhnogo naturalnogo chisla n 1 sukupnist nesortovanih pershogo poryadku terminiv T ye rekursivno viznacheno yak najmenshij nabir z nastupnih vlastivostej kozhen zminnij simvol poznachayetsya virazom V T kozhen postijnij simvol ce viraz C T z kozhnim n virazom t 1 t n mozhna pobuduvati kozhen n funkcionalnij simvol f F n bilshij za cej viraz f t 1 t n Napriklad yaksho x V ye simvolom zminnoyi 1 C ye postijnim simvolom i add F 2 ce simvol dvijkovoyi funkciyi potim x T 1 T i otzhe add x 1 T vidpovidno do pravil budivnictva pershogo drugogo ta tretogo viraziv vidpovidno Ostannij termin zazvichaj zapisuyetsya yak x 1 vikoristovuyuchi infiksnu notaciyu ta bilsh zagalnij simvol operatora dlya zruchnosti lt perejti do osnovnoyi statti Chasto matematiki fiksuyut arius kilkist argumentiv simvolu funkciyi div Pidpis yak pravilo v zadachah sintaksichnogo unifikaciyi simvol funkciyi mozhe mati bud yaku kincevu kilkist argumentiv i mozhlivo mozhe mati rizni chisla argumentiv u riznih kontekstah napriklad f f a f x y z dobre sformovanij termin dlya zadach unifikaciyi Termin vishogo poryadku Dokladnishe Lyambda chislennya Zameshenie Zameshenie ce vidobrazhennya s V T vid zminnih do viraziv poznachennya x1 t1 xk tk oznachaye pidstanovku sho zaminyaye kozhnu zminnu xi to the term ti for i 1 k ta kozhnoyi inshoyi zminnoyi dlya sebe Zastosuvannya sho zaminyaye do virazat zapisuyetsya yak postfiksnij zapis oskilki t x1 t1 xk tk ce oznachaye odnochasno zaminiti kozhnu zminnu xi na viraz t iti Rezultat ts zastosuvannya zamini s na viraz t nazivayetsya ekzemplyar cogo viraza t Yak priklad pershogo poryadku zastosuyemo zamishennya x h a y z b do viraza f x a g z y peretvorimo f h a y a g b y Uzagalnennya specializaciya Yaksho viraz t maye ekzemplyar ekvivalentnij virazu u tobto yaksho ts u dlya deyakoyi zamini s to t nazivayetsya bilsh zagalnim nizh u i u nazivayetsya bilsh specialnim abo pidkoryayetsya t Napriklad x a zagalnishij nizh a b yaksho komutativne z togo chasu x a x b b a a b Yaksho sintaksichnij identichnist terminiv viraz mozhlivo ye yak zagalnishij tak i bilshe specialnij nizh inshij tilki yaksho obidva viirazi vidriznyayutsya tilki yih imenami zminnoyi ne v yih sintaksichnij strukturi taki virazi zvani perejmenuvannya odin odnogo Napriklad f x1 a g z1 y1 variant f x2 a g z2 y2 oskilki f x1 a g z1 y1 x1 x2 y1 y2 z1 z2 f x2 a g z2 y2 i f x2 a g z2 y2 x2 x1 y2 y1 z2 z1 f x1 a g z1 y1 Prote f x1 a g z1 y1 ne ye variantom f x2 a g x2 x2 oskilki zhodna zamina ne mozhe peretvoriti ostannij chlen na pershij Otzhe ostannij viraz ye nabagato bilsh specialnim nizh pershij Dlya dovilnogo viraz mozhe buti yak zagalnim tak i bilsh specialnim nizh strukturno inshij viraz Napriklad yaksho ye idempotentnim tobto yaksho zavzhdi x x x todi viraz x y ye bilsh zagalnim nizh x y x z y z z z z i navpaki z ye bilsh zagalnim nizh z z x y x y hocha x y and z mayut riznu strukturu Zamina s ye bilsh specialnoyu chi pidporyadkovanij nizh zamina t u ts ye bilsh specialnim nizh tt dlya kozhnogo viraza t Mi takozh govorimo sho t ye bilsh zagalnim nizh s Napriklad x a y a ye bilsh specialnim nizh t x y ale s x a ni oskilki f x y s f a y ne bilsh osoblivij nizh f x y t f y y Primitkiv comu vipadku vse she isnuye povni nabori zamishennya napriklad nabir usih rishen vzagali odnak kozhen takij nabir mistit rezervni chleni Napriklad a b f x a f x b b f x a f x b aSpisok literaturiFages Francois Huet Gerard 1986 Complete Sets of Unifiers and Matchers in Equational Theories Theoretical Computer Science 43 189 200 doi 10 1016 0304 3975 86 90175 1 Martelli Alberto Montanari Ugo Apr 1982 An Efficient Unification Algorithm ACM Trans Program Lang Syst 4 2 258 282 doi 10 1145 357162 357169 J A Robinson Jan 1965 A Machine Oriented Logic Based on the Resolution Principle Journal of the ACM 12 1 23 41 doi 10 1145 321250 321253 Here sect 5 8 p 32 J A Robinson 1971 Computational logic The unification computation PDF Machine Intelligence 6 63 72 1977 Model Theory Studies in Logic and the Foundation of Mathematics T 73 North Holland here Sect 1 3 K R Apt From Logic Programming to Prolog p 24 Prentice Hall 1997