Mam trzy powiązane pytania, które są zaznaczone punktorami poniżej (nie, nie można ich podzielić, jeśli się zastanawiasz). Andrej Bauer napisał tutaj , że niektóre funkcje można realizować za pomocą maszyny Turinga, ale nie za pomocą rachunku lambda. Kluczowym krokiem jego rozumowania jest:
Jeśli jednak użyjemy rachunku lambda, wówczas [program] c ma obliczyć liczbę reprezentującą maszynę Turinga na podstawie terminu lambda reprezentującego funkcję f. Tego nie da się zrobić (wyjaśnię dlaczego, jeśli zadacie to jako osobne pytanie).
- Chciałbym zobaczyć wyjaśnienie / nieformalny dowód.
Nie widzę tu zastosowania twierdzenia Rice'a; miałoby to zastosowanie do problemu „czy ta maszyna Turinga i ten równoważnik L lambda?”, ponieważ zastosowanie tego predykatu do równoważnych terminów daje ten sam rezultat. Wymagana funkcja może jednak obliczać różne, ale równoważne, bazy TM dla różnych, ale równoważnych terminów lambda.
- Co więcej, jeśli problem dotyczy introspekcji terminu lambda, myślę, że przekazanie kodowania Gödela terminu lambda byłoby również dopuszczalne, prawda?
Z jednej strony, biorąc pod uwagę, że jego przykład dotyczy obliczania, w rachunku lambda, liczby kroków wymaganych przez maszynę Turinga do wykonania danego zadania, nie jestem bardzo zaskoczony.
- Ale ponieważ tutaj rachunek lambda nie może rozwiązać problemu związanego z maszyną Turinga, zastanawiam się, czy można zdefiniować podobny problem dla rachunku lambda i udowodnić, że jest on nierozwiązywalny dla maszyn Turinga, czy faktycznie istnieje różnica w mocy na korzyść Maszyny Turinga (co by mnie zaskoczyło).