Jedes Mal, wenn ich denke, ich verstehe, was der Satz von Rice bedeutet, finde ich ein Gegenbeispiel, um mich selbst zu verwirren. Vielleicht kann mir jemand sagen, wo ich falsch denke.
Nehmen wir eine nicht triviale Eigenschaft der Menge berechenbarer Funktionen, zum Beispiel. Offensichtlich, ist zählbar unendlich und es gibt auch eine zählbar unendliche Anzahl berechenbarer Funktionen, die nicht vorhanden sind .
Betrachten wir nun eine vollständige Programmiersprache über einen endlichen Satz von Anweisungen und die Menge der syntaktisch korrekten Programme mit . Wenn ich die Semantik meiner Sprache nach Belieben auswählen kann, kann ich die Programme auch nach Belieben nummerieren. Daher sollte es möglich sein, eine Programmiersprache zu entwerfen, in der eine Teilmenge der Programme genau eine beliebige Teilmenge der berechenbaren Funktionen berechnet solange die Kardinalität übereinstimmt. Zum Beispiel lassenund jedes Programm Berechnen Sie eine Gesamtfunktion. Schon seitsollte eine solche Sprache existieren.
Jedoch, ist offensichtlich turing-berechenbar und seitdem Wir hätten also ein Programm, das über die nicht triviale Eigenschaft entscheidet , was nach dem Satz von Rice nicht möglich ist.
Wo ist der Fehler in meinem Abzug? Bedeutet dies, dass es keine Programmiersprache gibt, in der jedes palindromische Programm (oder vielmehr eine berechenbare Struktur) genau die Gesamtfunktionen (oder vielmehr einen Satz berechenbarer Funktionen) berechnet ? Das verwirrt mich wirklich.