Ich habe drei verwandte Unterfragen, die unten durch Aufzählungszeichen hervorgehoben sind (nein, sie konnten nicht geteilt werden, wenn Sie sich fragen). Andrej Bauer schrieb hier , dass einige Funktionen durch eine Turing-Maschine realisierbar sind, aber nicht durch eine Lambda-Rechnung. Ein wichtiger Schritt seiner Überlegungen ist:
Wenn wir jedoch den Lambda-Kalkül verwenden, soll [das Programm] c aus einem Lambda-Term, der eine Funktion f darstellt, eine Ziffer berechnen, die eine Turing-Maschine darstellt. Dies ist nicht möglich (ich kann erklären, warum, wenn Sie es als separate Frage stellen).
- Ich würde gerne eine Erklärung / einen informellen Beweis sehen.
Ich verstehe nicht, wie ich den Satz von Rice hier anwenden soll. es würde auf das Problem zutreffen "Sind diese Drehmaschine T und dieser Lambda-Term L äquivalent?", weil das Anwenden dieses Prädikats auf äquivalente Terme das gleiche Ergebnis ergibt. Die erforderliche Funktion kann jedoch unterschiedliche, aber äquivalente TMs für unterschiedliche, aber äquivalente Lambda-Terme berechnen.
- Wenn das Problem in der Introspektion eines Lambda-Terms besteht, denke ich, dass es auch akzeptabel wäre, eine Gödel-Codierung eines Lambda-Terms zu übergeben, oder?
Einerseits bin ich nicht sehr überrascht, da sein Beispiel die Berechnung der Anzahl von Schritten in der Lambda-Rechnung beinhaltet, die eine Turing-Maschine benötigt, um eine gegebene Aufgabe zu erfüllen.
- Aber da hier die Lambda-Rechnung ein Problem mit der Turingmaschine nicht lösen kann, frage ich mich, ob man ein ähnliches Problem für die Lambda-Rechnung definieren und es für Turingmaschinen als unlösbar beweisen kann, oder ob es tatsächlich einen Unterschied in der Leistung zugunsten von gibt Turing Machines (was mich überraschen würde).