Злиття бета-розширення


10

Нехай - -редукція у -calculus. Визначити -разложеніі по .ββ β βλ λβ ββ βt β tt β t tβttβt

Чи ? Іншими словами, чи маємо ми, що для будь-якого , якщо l \ to_ \ beta ^ * d \ leftarrow_ \ beta ^ * r , то існує u таке, що l \ leftarrow_ \ beta ^ * u \ to_ \ бета ^ * г ?ββ l , d , r l,d,rl β d β r lβdβru ul β u β rlβuβr

Ключові слова: вгору впадання, перевернуте властивість CR


Я почав з перегляду слабшого властивості: локального злиття (тобто якщо l β d β rlβdβr , то l β u β rlβuβr ). Навіть якби це було правдою, це не означало б злиття, оскільки ββ розширення не припиняється, але я думав, що це допоможе мені зрозуміти перешкоди.

(Вгору) У випадку, коли обидва скорочення знаходяться на верхньому рівні, гіпотеза стає ( Λ х 1 . Б 1 ) 1B 1 [ 1 / х 1 ] = Ь 2 [ 2 / х 2 ] ( λ х 2 . Б 2 ) 2(λx1.b1)a1b1[a1/x1]=b2[a2/x2](λx2.b2)a2 . До αα -перейменування можна вважати, що x 1x 2x1x2 , і що ні х 1x1 ні х 2x2 є вільними в цих умовах.

(Киньте) Якщо х 1x1 не є вільним у б 1b1 , у нас b 1 = b 2 [ a 2 / x 2 ]b1=b2[a2/x2] і тому маємо ( Λ х 1 . Б 1 ) 1 = ( λ х 1 . Б 2 [ 2 / х 2 ] ) 1( λ х 1 . ( Λ х 2 . Б 2 ) 2 ) 1( λ х 2 . б 2 ) 2(λx1.b1)a1=(λx1.b2[a2/x2])a1(λx1.(λx2.b2)a2)a1(λx2.b2)a2 .

Наївним доказом за допомогою індукції (на б 1b1 та b 2b2 ) для справи (вгорі) було б таке:

  • Якщо б 1b1 є змінною y 1y1 ,

    • Якщо , гіпотеза стає , і у нас справді є .у 1 = х 1y1=x1 ( Л х 1 . х 1 ) а 1A 1 = B 2 [ а 2 / х 2 ] ( λ х 2 . б 2 ) а 2(λx1.x1)a1a1=b2[a2/x2](λx2.b2)a2 ( Л х 1 . х 1 ) а 1 = ( λ х 1 . х 1 ) ( б 2[ 2 / х 2 ] ) ( λ х 1 . Х 1 ) ( ( λ х 2 . Б 2 ) 2 ) ( λ х 2 . Б 2 ) 2(λx1.x1)a1=(λx1.x1)(b2[a2/x2])(λx1.x1)((λx2.b2)a2)(λx2.b2)a2

    • Якщо , то ми можемо просто використовувати (Throw).y 1x 1y1x1

  • Ті ж докази, що і - змінна.b 2b2

  • Для і гіпотеза стає і гіпотеза індукції дає таку, що що означає що . На жаль, у нас немає . (Це змушує мене думати про -reduction.)b 1 = λ y . c 1 b1=λy.c1b 2 = λ y . з 2b2=λy.c2 ( А , х 1 . А , у . з 1 ) 1А , у . c 1 [ a 1 / x 1 ] = λ y . c 2 [ a 2 / x 2 ] ( λ x 2 .λ у . з 2 ) 2(λx1.λy.c1)a1λy.c1[a1/x1]=λy.c2[a2/x2](λx2.λy.c2)a2 d d( λ х 1 . з 1 ) 1д ( λ х 2 . з 2 ) 2(λx1.c1)a1d(λx2.c2)a2 λ у . ( А , х 1 . З 1 ) 1 Будь-яка станція ← А , у . d λ y . ( Λ х 2 . З 2) a 2λy.(λx1.c1)a1λy.dλy.(λx2.c2)a2 λ y . ( Λ х 2 . З 2 ) 2( λ х 2 . Λ у . З 2 ) 2λy.(λx2.c2)a2(λx2.λy.c2)a2 σσ

  • Аналогічна проблема виникає і для програм: не там, де вони повинні бути.λλ


1
@chi Якщо я не помиляюся, працює. ( λ b . y b ) y ( λ a . ( λ b . a b ) y ) y ( λ a . a y ) y(λb.yb)y(λa.(λb.ab)y)y(λa.ay)y
xavierm02

1
Я дещо погоджуюся з @chi, що він здається сплутаним після того, як ви подумаєте про це і побачите пару зустрічних прикладів. Але насправді, що з ? ( λ x . xxy)yyyy(λx.yxx)y(λx.xxy)yyyy(λx.yxx)y
Родольф Лепігр

2
Хоча мені було б зручно, якби це було правдою, я трохи песимістичніший. Мій колега зробив наступне зауваження, яке робить малоймовірним: це означатиме, що будь-які дві довільні програми, які обчислюють одне ціле (церковне) ціле число, можуть поєднуватися.
xavierm02

2
Відповідь - ні. Вправа 3.5.11 у Barendregt дає зустрічний приклад, приписаний Плоткіну, але без посилання: і . Я збираюся шукати доказ. (λx.bx(bc))c(λx.bx(bc))c(λx.xx)(bc)(λx.xx)(bc)
Жил "ТАК - перестань бути злим"

1
Я опублікував зразок контрприкладу як відповідь, і я вважав, що це буде доказом, але є крок, який я не можу зрозуміти. Якщо хтось може це зрозуміти, будь ласка, опублікуйте відповідь, і я видалю свою.
Жил "ТАК - перестань бути злим"

Відповіді:


7

Два контрприклади:

  • (λx.bx(bc))c(λx.bx(bc))c і (Плоткін).(λx.xx)(bc)(λx.xx)(bc)
  • (λx.a(bx))(cd)(λx.a(bx))(cd) і (Van Oostrom).a((λy.b(cy))d)a((λy.b(cy))d)

Приклад контрприкладу, детально описаний нижче, наведений у «Обчисленні лямбда: його синтаксис та семантика » HP Barenredgt, перероблене видання (1984), вправа 3.5.11 (vii). Його приписують Плоткіну (немає точної посилання). Я даю незавершене доказ, адаптоване до доказів Вінцента ван Оострома про інший контрприклад, у « Візьміть п'ять: вправа з легким розширенням» (1996) [PDF] .

В основі доказу лежить теорема стандартизації, яка дозволяє розглядати лише бета-розширення певної форми. Інтуїтивно кажучи, стандартне скорочення - це зменшення, яке робить усі його скорочення зліва направо. Точніше, зменшення є нестандартним, якщо є крок , перенаправлення якого є залишком редекса зліва від редекса попереднього кроку ; "Ліворуч" і "праворуч" для редекса визначаються положенням яке усувається при стисненні редексу. Теорема стандартизації свідчить , що там , якщо , то існує стандартне скорочення від до .MiMiMjMjλλMβNMβNMMNN

Нехай і . Обидва терміни бета-зменшити до за один крок.L=(λx.bx(bc))cL=(λx.bx(bc))cR=(λx.xx)(bc)R=(λx.xx)(bc)bc(bc)bc(bc)

Припустимо , що існує загальний предок таке , що . Завдяки теоремі стандартизації можна вважати, що обидва скорочення є стандартними. Не втрачаючи загальності, припустимо, що - це перший крок, коли ці скорочення відрізняються. З цих двох скорочень нехай є тим, де перестановка першого кроку знаходиться ліворуч від іншого, і запишіть де є контекстом цього скорочення і - це перенастроювання. Нехай - інше зменшення.AALβAβRLβAβRAAσσA=C1[(λz.M)N]A=C1[(λz.M)N]C1C1(λz.M)N(λz.M)Nττ

Оскільки є стандартним і його перший крок - праворуч від отвору в , він не може ні в ні ліворуч від нього. Тому кінцевий має форму де частини і зліва від їх отворів однакові, і . Оскільки починається з зменшення на і ніколи не зменшується далі ліворуч, його кінцевий член повинен мати вигляд де частинаττC1C1C1C1ττC2[(λz.M)N]C2[(λz.M)N]C1C1C2C2MβMMβMNβNNβNσσC1C1C3[S]C3[S]C3C3зліва від її отвори ідентична лівій частині і , а .C1C1C2C2M[zN]βSM[zN]βS

Зауважте, що кожен з і містить одну лямбда, що знаходиться зліва від оператора програми на верхньому рівні. Оскільки зберігає лямбда , це лямбда один в залежності від того , з або є остаточним термін , і в цьому плані аргумент застосування виходить за рахунок зменшення . Повторний параметр знаходиться на рівні верхнього рівня, тобто .LLRRττλz.Mλz.MLLRRττNNC1=C2=C3=[]C1=C2=C3=[]

  • Якщо закінчується на , тоді , і . Якщо має нащадок в , цей нащадок повинен також звести до , яка є нормальною формою . Зокрема, ні нащадок не може бути лямбда, так не може скорочуватися подтерм виду , де є нащадком . Оскільки єдина підрядність яка зводиться доττRRMβzzMβzzNβbcNβbcM[zN]β(λx.bx(bc))cM[zN]β(λx.bx(bc))cNNLLbcbcNNNNσσˇNPNˇPˇNNˇNNLLbcbcє , єдиним можливим нащадком в є єдине виникнення самого .bcbcNNLLbcbc

  • Якщо закінчується на , тоді , , і . Якщо має нащадка в то цей нащадок також повинен зменшуватися до шляхом впадання.ττLLMβbz(bc)Mβbz(bc)NβcNβcM[zN]β(λx.xx)(bc)M[zN]β(λx.xx)(bc)NNRRcc

На даний момент, висновок повинен слідувати легко згідно ван Oostrom, але я відсутній що - то: я не розумію , як трасування нащадків дає якусь - яку інформацію про . Вибачте за неповний пост, я подумаю про це протягом ночі.NNMM


0

Зауважте, що -редукція може змусити будь-який термін зникнути. Якщо припустити, що змінна не з’являється вільною у терміні , у вас є та для будь-яких термінів та . Як наслідок, той факт, що зворотне зворотне з'єднання є дещо еквівалентним: для всіх термінів і існує термін такий, що і . Це здається мені дуже помилковим!ββxxvv(λx.v)t1βv(λx.v)t1βv(λx.v)t2βv(λx.v)t2βvt1t1t2t2ββt1t1t2t2uuuβt1uβt1uβt2uβt2


2
Якщо я не помиляюся, ( λ x . V ) t 1( λ x . ( Λ x . V ) t 1 ) t 2( λ x . V ) t 2 працює для цих двох термінів.
xavierm02

Чорт, ти маєш рацію! Спробую придумати щось інше пізніше, зараз не маю часу.
Родольф Лепігр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.