ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Унификация. 
БимволичСский искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚: матСматичСскиС основы прСдставлСния Π·Π½Π°Π½ΠΈΠΉ

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Ѐункция IsSubst (А', Π’', t, v) провСряСт, ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π»ΠΈ пСрвая ΠΏΠ°Ρ€Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² А' ΠΈ Π’' Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡƒΡŽ подстановку, Ρ‚. Π΅. являСтся Π»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚ΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ v, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ — Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΎΠΉ t, Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰Π΅ΠΉ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ v. НапримСр, Ссли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π²Π½Ρ‹ Ρ… ΠΈ g (b) соотвСтствСнно, Ρ‚ΠΎ Ρ„ункция Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ t ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ g… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Унификация. БимволичСский искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚: матСматичСскиС основы прСдставлСния Π·Π½Π°Π½ΠΈΠΉ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅Π·ΠΎΠ»ΡŽΡ†ΠΈΠΉ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°Ρ€Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ исчислСния высказываний Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅Ρ‚. Π›ΡŽΠ±Π°Ρ пСрСмСнная ΠΈ Ρ‚Π° ΠΆΠ΅ пСрСмСнная с ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅ΠΌ — это ΠΈ Π΅ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π° ΠΊΠΎΠ½Ρ‚Ρ€Π°Ρ€Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ². Π’ ΡΠ»ΡƒΡ‡Π°Π΅ исчислСния ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ порядка это ΡƒΠΆΠ΅ Π½Π΅ Ρ‚Π°ΠΊ просто. Π”Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π°ΡˆΠ»ΠΈ Π΄Π²Π° вхоТдСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π°, ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈ Ρ ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅ΠΌ, это Π΅Ρ‰Π΅ Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π° контрарная ΠΏΠ°Ρ€Π°. Π Π°Π·Π½Ρ‹Π΅ вхоТдСния ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚Π΅Ρ€ΠΌΠ°ΠΌΠΈ, Π² Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΊΠ°ΠΊ для ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ€Π΅Π·ΠΎΠ»ΡŽΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡ… ΡΠΈΠ½Ρ‚аксичСскоС равСнство (посимвольноС совпадСниС (см. ΠΏ. 4.1.2)). Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€Ρ‹ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ (ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ), Π½ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях этого ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСльзя. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ (Π² Ρ‡Π°ΡΡ‚ности, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ 4.1), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°, ΠΈ Π½Π°Ρ…одят Π½Π°Π±ΠΎΡ€ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… подстановок, Ссли унификация Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°.

Π£Ρ‚ΠΎΡ‡Π½ΠΈΠΌ опрСдСлСния.

ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° — это ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€ Π²ΠΈΠ΄Π° [t/vx, …, tn/vn], Π³Π΄Π΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Π΅ tj/Vj Vj — пСрСмСнная, ti — Ρ‚Π΅Ρ€ΠΌ, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ vv ΠΈ Π²ΡΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹. ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ°, которая Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ элСмСнтов, называСтся пустой ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ся 8.

ΠŸΡƒΡΡ‚ΡŒ 0 = x/vXy…, tn/vn — подстановка ΠΈ? Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° ΠΈΠ»ΠΈ Ρ‚Π΅Ρ€ΠΌ (Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅), Ρ‚ΠΎΠ³Π΄Π° ?0 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·? Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ всСх Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΎΠΌ t{ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ i, 1 Π’ ΡΡ‚ΠΎΠΌ случаС ?0 называСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ (ΠΈΠ»ΠΈ частным случаСм) исходного выраТСния ?.

ΠŸΡƒΡΡ‚ΡŒ 0 = [tx/xXy…, tn/xn ΠΈΠ₯ = ΠΈΡ…/Ρƒ{,…, ΠΈΡ‚/ΡƒΡ‚ — Π΄Π²Π΅ подстановки, Ρ‚ΠΎΠ³Π΄Π° композиция подстановок 0 ΠΈ X (обозначаСтся 0ΠΎ? ΠΎ) Π΅ΡΡ‚ΡŒ подстановка, получаСмая ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° [txX/xv …, tnX/xn, ΠΈ{/Ρƒ{Ρƒ…, ΠΈΡ‚/ΡƒΡ‚] Π²Ρ‹Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ всСх элСмСнтов ttX/xiy для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… tiX = xi (синтаксичСски Ρ€Π°Π²Π½ΠΎ), ΠΈ Π²ΡΠ΅Ρ… элСмСнтов Uj/yjy Ρ‚Π°ΠΊΠΈΡ… Ρ‡Ρ‚ΠΎ Ρƒ^ Ρ‚Π΅ΠΊΡΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ совпадаСт с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ…Ρ…,…, Ρ…ΠΏ.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ послСднСС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅.

Рассмотрим 0 = x/xx, t2/x2 = f (y)/x, z/y] iX = ujyx, u2/y2, u3/y3] = = [a/xy b/y, y/z]. Π’ΠΎΠ³Π΄Π° QoX= {X/x{y t2X/x2, Ρ‰/ΡƒΡŒ ΠΈ2/ΡƒΡŠ u3/y3] = [f (b)/xy y/y, a/xy b/yy y/z], ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ t2X = x2 (Ρƒ = y)y Ρ‚ΠΎ ΠΏΠ°Ρ€Π° t2X/x2 Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρƒ{ (ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ…) совпадаСт с Ρ…Ρ… (ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅), Π° Ρƒ2 (ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρƒ) совпадаСт с Ρ…2(Ρƒ), ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ ΠΈ ΠΈΡ…/Ρƒ{Ρƒ ΠΈ2/Ρƒ2. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ 0оА, = |f (b)/xy y/z.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ композиция подстановок ассоциативна, Π° ΠΏΡƒΡΡ‚ая подстановка s ΡΠ²Π»ΡΠ΅Ρ‚ся Π»Π΅Π²ΠΎΠΉ ΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ, Ρ‚. Π΅. (0ΠΎ?ΠΎ)ΠΎ^ = = 0o (^oQ ΠΈ 0ΠΎΠ΅ = 800 = 0.

Напомним, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ€Π΅Π·ΠΎΠ»ΡŽΡ†ΠΈΠΈ Π² ΠΈΡΡ‡ΠΈΡΠ»Π΅Π½ΠΈΠΈ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ порядка сопряТСно с ΡƒΠΌΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°Ρ€Π½Ρ‹Π΅ ΠΏΠ°Ρ€Ρ‹ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π½Ρ‹Ρ… символов, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π΅Ρ€ΠΌΡ‹ (Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹). Π‘Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ), которая ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° Π²ΠΎΠΏΡ€ΠΎΡ «ΠœΠΎΠ³ΡƒΡ‚ Π»ΠΈ Π΄Π²Π° Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ½Ρ‚Ρ€Π°Ρ€Π½ΠΎΠΉ ΠΏΠ°Ρ€ΠΎΠΉ?» ΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅Ρ‚ подстановку, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ свойство контрарности. ΠŸΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½Π΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² ΡΡ‚ΠΎΠΌ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π΅ равСнство (Π·Π½Π°ΠΊ «=») являСтся равСнством синтаксичСским (ΠΏΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ совпадСниСм).

Π’Π²Π΅Π΄Π΅ΠΌ Π΅Ρ‰Π΅ нСсколько Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… понятий.

ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° 0 называСтся ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ для Π½Π°Π±ΠΎΡ€Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ {Π•ΠΈ Π•2, …, Π•ΠΏ) Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π•Ρ…0 = E2Q = Π•ΠΏ0, ΠΏΡ€ΠΈ этом говорят, Ρ‡Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ {fj, Π•2,…, Π•ΠΏ) являСтся ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ нас интСрСсуСт вопрос унифицируСмости ΠΏΠ°Ρ€Ρ‹ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ², Ρ‚ΠΎ Π½Π°Ρˆ «Π½Π°Π±ΠΎΡ€ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ» СстСствСнно ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² «Π΄Π²Π° Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°».

Π£Π½ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π° Π΄Π²ΡƒΡ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² Π { ΠΈ Π 2 называСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΌ ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ (Н.О.Π£.) Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° 0 этой ΠΏΠ°Ρ€Ρ‹ сущСствуСт такая подстановка X, Ρ‡Ρ‚ΠΎ 0 = Π°ΠΎΠ₯.

Π‘Π΄Π΅Π»Π°Π΅ΠΌ Π΄Π²Π° Π²Π°ΠΆΠ½Ρ‹Ρ… замСчания ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌ.

  • β€’ Π’ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ частного случая. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²Π°ΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚.
  • β€’ Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, вмСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌ, содСрТащий эту ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Однако такая подстановка Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, поэтому Π² ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ подстановки Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹.

НапримСр, Π΄Π²Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Π  (Ρ…, f (a)) ΠΈ P (g (b)} Ρƒ) ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹, ΠΈ ΠΈΡ… II.О.Π£. являСтся подстановка Π°= [g (b)/x, f (a)/y][. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ P (x, f (a)) ΠΈ Π  (Ρƒ} g (b)) Π½Π΅ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ f (a) *g (b) ΠΏΡ€ΠΈ Π»ΡŽΠ±Ρ‹Ρ… подстановках Ρ„ΠΎΡ€ΠΌΡƒΠ» вмСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ P (x, f (a)) ΠΈ P (g (b), Ρ…), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ трСбуСтся ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ вмСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ… Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ f (a) ΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ g (b) ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‡Ρ‚ΠΎ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠœΡ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌ классичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ 4.1), ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Робинсоном, Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ΅. Π‘Ρ€Π°Π·Ρƒ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ — Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΡΠ°ΠΌΡ‹ΠΉ эффСктивный ΠΈΠ· ΠΈΠ·Π²Π΅ΡΡ‚Π½Ρ‹Ρ… Π² Π½Π°ΡΡ‚оящСС врСмя. На Π²Ρ…ΠΎΠ΄ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ Π΄Π²Π° выраТСния (Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°) А ΠΈ Π’, Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ получаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, Ссли выраТСния Π½Π΅ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹, ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true ΠΈ Н.О.Π£ Π°.

Алгоритм 4.1. Унификация Π΄Π²ΡƒΡ… Ρ„ΠΎΡ€ΠΌΡƒΠ»

proc Unify (in А, Π’; out Π°): bool, Π° := 0[1]

while АЀВ do.

[A', B'] := FisrtNeqTerms (A, B).

ifi IsSubst (A', B', t, v) then return (false) end if ct := ao[t/v].

A := Subst (A, t, v).

Π’ := Subst (B, t, v) end while return (true) end proc.

Π’ ΡΡ‚ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

  • β€’ функция FisrtNeqTerms сравниваСт свои Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΠΎΠ΄Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сравниваСмыС Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ. НапримСр, сравнивая Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Π  (Ρ…, /(a)) ΠΈ P (g (b), Ρƒ)), функция FisrtNeqTerms Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΏΠ°Ρ€Ρƒ [.Π³, g (6)] — ΠΏΠ°Ρ€Ρƒ рассогласования-,
  • β€’ функция IsSubst (А', Π’', t, v) провСряСт, ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π»ΠΈ пСрвая ΠΏΠ°Ρ€Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² А' ΠΈ Π’' Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡƒΡŽ подстановку, Ρ‚. Π΅. являСтся Π»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚ΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ v, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ — Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΎΠΉ t, Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰Π΅ΠΉ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ v. НапримСр, Ссли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π²Π½Ρ‹ Ρ… ΠΈ g (b) соотвСтствСнно, Ρ‚ΠΎ Ρ„ункция Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ t ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ g (b), Π° Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ v ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ…;
  • β€’ функция Subst (A, t, v) подставляСт Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ, А Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ t Π²ΠΌΠ΅ΡΡ‚ΠΎ всСх Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ v. НапримСр, Ссли Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π²Π½Ρ‹ Π  (Ρ…, /(a)), g (b), Ρ… соотвСтствСнно, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ являСтся Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° P (g (b), f (a)).

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ — ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° 4.1 для ΠΏΠ°Ρ€Ρ‹ Ρ„ΠΎΡ€ΠΌΡƒΠ» Π  (Π°, Ρ…, f (g (y))) ΠΈ P (z, f (z), f (u)). Π’ ΡΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС выписаны Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, А ΠΈ Π’, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ FirstNeqTerms Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹. Π‘ΠΏΡ€Π°Π²Π° выписан построСнный ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€:

Π  (Π°, Ρ…, f (g (y))) P (z, /(z), /(a)) ст = [a/z].

P (a, x, f (g (y))) P (a, /(a), /(a)) ct = [a/z, f (a)/x]

P (a, /(a), f (g (y))) P (a, /(a), /(a)) ct = [a/z, f{a)/x, g (y)/u].

P (a, /(a), f (g (y))) P (a, /(a), f (g (y)))

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ всСго Π·Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ шага Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΉ ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Однако Π½Π΅ ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±ΠΎΠ»ΡŒΡ‰Π°Ρ‚ΡŒΡΡ ΠΈ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡Π° ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ — это простая Π·Π°Π΄Π°Ρ‡Π°. Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ всС «ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½Ρ‹Π΅» ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² ΡΡ‚ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅, — Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄Ρ„ΠΎΡ€ΠΌΡƒΠ», ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° допустимости подстановки, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ подстановки ΠΈ Π΄Π°ΠΆΠ΅ вычислСниС ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ подстановок — Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΡŽΠ΄ΡŒ Π½Π΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½Ρ‹, ΠΈ ΠΈΡ… Ρ„актичСская Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ зависит ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ способа прСдставлСния Ρ„ΠΎΡ€ΠΌΡƒΠ». ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, прСдставлСниС Ρ„ΠΎΡ€ΠΌΡƒΠ» для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° 4.1 Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ.

Рассмотрим Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ структура Ρ„ΠΎΡ€ΠΌΡƒΠ» фиксирована Π±ΠΎΠ»Π΅Π΅ явно. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅ΠΌΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Ρ€Π΅Π·ΠΎΠ»ΡŽΡ†ΠΈΠΉ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΡƒΠ», синтаксис ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… описан Π² ΠΏ. 4.1.3. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Ρ‚ΡƒΠΌΠ°Π½ΠΈΠ²Π°Ρ‚ΡŒ идСю Π°Π» Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΌΡ‹ ΠΎΡΡ‚Π°Π²ΠΈΠΌ Π² ΡΠ·Ρ‹ΠΊΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ символы ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅[2].

Π’ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ 4.2 прСдполагаСтся, Ρ‡Ρ‚ΠΎ функция ΠΎΡ€ ΠΎΡΡƒΡ‰Π΅ΡΡ‚вляСт синтаксичСский Ρ€Π°Π·Π±ΠΎΡ€ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°ΠΊ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (имя ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π°, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ символ ΠΈΠ»ΠΈ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ), функция var провСряСт, являСтся Π»ΠΈ Π΅Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° Ρ„ункция args Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Набор подстановок (ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€) прСдставлСн Π² Π²ΠΈΠ΄Π΅ глобального массива S, значСниями индСкса ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌΠΈ элСмСнтов — Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ вмСсто ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Алгоритм 4.2 основан Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠ΄Π΅Π΅. ΠŸΡ€ΠΈ Π»ΡŽΠ±Ρ‹Ρ… подстановках Ρ„ΠΎΡ€ΠΌΡƒΠ» вмСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… главная опСрация (ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ символ) Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π³Π»Π°Π²Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ» Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹, Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π½Π΅ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, Ρ‚. Π΅. Ссли Π³Π»Π°Π²Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚, Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ всС ΠΏΠΎΠ΄Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚Π° рСкурсия заканчиваСтся, ΠΊΠΎΠ³Π΄Π° сопоставлСниС Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ унифицируСтся с Π»ΡŽΠ±ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΎΠΉ, Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰Π΅ΠΉ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (Π² Ρ‡Π°ΡΡ‚ности, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ), простой подстановкой этой Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ вмСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Но ΠΏΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ для всСх Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ.

Алгоритм 4.2. РСкурсивная унификация Π΄Π²ΡƒΡ… Ρ„ΠΎΡ€ΠΌΡƒΠ»

proc Unify (in А, Π’): bool, Π° := f (А); b := f (Π’).

// ΠΎΠ±Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ ΡΡƒΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ if var (Π°) & var (b) then.

if a = b then return true end if.

if S[a]=0 & S[b]*0 then S[a] := S[b] return true end if if S[b]=0 & S[a]*0 then S[b] := S[a] return true end if if S[a]* 0 & S[b]*0 then Unify (S[a], S [b ]) end if S[a] := b II ΠΈΠ»ΠΈ S (b] := a.

end if.

// ΠΎΠ΄Π½Π° Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° — пСрСмСнная, Π° Π΄Ρ€ΡƒΠ³Π°Ρ — Π½Π΅Ρ‚ if var (a)v var (b) then if var (a) & aeB then return false else.

if S[a] = 0 then S[a] := B; return true else return (S[a] = B) end if end if.

if var (b) & beA then return false else.

if S [b] = 0 then S[b] := A; return true else.

return (S[b] = A) end if end if.

end if.

/ / ΠΎΠ±Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

if a*b then return false end if // Π³Π»Π°Π²Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ for aeargs (A) || beargs (B) do if —I Unify (a, b) then return false end if end for return true end proc.

Π’ Π΄Π°Π½Π½ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ†ΠΈΠΊΠ»Π° for aeargs (А) | | beargs (Π’).

do ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΏΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

  • [1] НапоминаСм, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ латинского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° Π°, Π¬, с … ΠΌΡ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌ константы, послСдними Π±ΡƒΠΊΠ²Π°ΠΌΠΈ Ρ…, Ρƒ, z … ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, для ΠΈΠΌΠ΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±Π΅Ρ€Π΅ΠΌΠ±ΡƒΠΊΠ²Ρ‹ f, g, h…
  • [2] ΠŸΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π½Ρ‹Π΅ символы с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½ΠΈΡ‡Π΅ΠΌ нс ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов, Π° ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹, хотя ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π² ΠΊΠΎΠ΄Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° большого числа ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ…ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ, ΠΏΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²Ρƒ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΌΡƒ простому ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ: константа ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ