Czy istnieje pełny rachunek lambda na maszynie Turinga?


Odpowiedzi:


37

Tak, oczywiście. Wiele typowanych obliczeń lambda akceptuje z założenia tylko silnie normalizujące terminy, więc nie mogą one wyrażać dowolnych obliczeń. Ale system typów może być dowolny; uczyń go wystarczająco szerokim, abyś mógł wyrazić wszystkie obliczenia deterministyczne.

Trywialny system typów, który obejmuje fragment rachunku różniczkowego lambda zawierający Turinga, to taki, który akceptuje każdy termin równie dobrze wpisany (z najwyższym typem ).

ΓM:

Mówiąc prościej, funkcjonalne języki programowania o statycznym typie mają u podstaw typowy rachunek lambda, który umożliwia także kombinację punktów stałych . Na przykład zacznij od prostego rachunku różniczkowego lambda (lub systemu typu ML, systemu F lub dowolnego innego systemu typów) i dodaj regułę, która tworzy kombinator punktów stałych, taki jak dobrze napisane. Γ f : T TY=λf.(λx.f(xx))(λx.f(xx)) Reguły przedstawione powyżej są raczej niezdarne, ponieważ tworzą terminy takie jakY

Γf:TTΓYf:TΓf:TTΓ(λx.f(xx))(λx.f(xx)):T
dobrze napisane, chociaż ich składniki nie są dobrze napisane - nie są w pełni kompozycyjne. Prostą poprawką jest dodanie kombinacji punktów stałych jako stałej językowej i zapewnienie dla niej reguły delta; wtedy łatwo jest mieć system typów i semantykę redukcji zzachowaniem typu. Uciekasz od czystego rachunku lambda do królestwa rachunku lambda ze stałymi. Yf
Γfix:(TT)Tfixff(fixf)

Interesującym systemem typów jest rachunek różniczkowy lambda z typem przecięcia.

ΓM:T1ΓM:T2ΓM:T1T2(I)ΓM:(I)

Typy skrzyżowań mają interesujące właściwości w odniesieniu do normalizacji:

  • Termin lambda można wpisać bez użycia I
  • Termin lambda przyjmuje typ niezawierający

Zobacz Charakterystyka terminów lambda, które mają typy związków, aby dowiedzieć się, dlaczego typy skrzyżowań mają tak niezwykły zakres.

Masz więc system typów definiujący język Turinga (ponieważ każdy termin jest dobrze napisany) oraz prostą charakterystykę obliczeń kończących. Oczywiście, ponieważ ten typ systemu charakteryzuje normalizację, nie można go rozstrzygać.

(I)(I)I

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.