 Die Aussage 1-1-2 kam dann auf Seite 379 irgendwann. Aber es wurde respektiert, es war eine wichtige Arbeit. Und hat auch vieles gesorgt damals. Jetzt der Nektaraktör von Probühne ist Hilbert. Und damit Hilbert ist irgendwie seltsam. Es ist eine der größten Mathematiker des Ansichts der Hunderts. Aber meistens, wenn man von ihm hört, stellt er nur Fragen. Also, wenn ihr irgendwie bekannt werdet, wolltet die Mathematiker, dann verwendet kein Zeit in Antworten. Es reicht, wo gute Fragen zu stellen. Wer und was Hilbert eben gefragt hat ist, oder wollte, in seinem sogenannten Hilbert-Programm, er wollte eine Sprache haben, um die Mathrophik zu formalisieren, in der jede mathematische Aussage hinschreibbar ist. Diese Sprache, dieses Verkür, sollte vollständig und widerspreis sein. Das heisst, jede wahre Aussage kann ich beweisen. Also, beweise sind die folgenden Regeln, die Programmquote zu sagen. Und ob eine Aussage wahr ist, ist was, das kann man, ja, es ist ja so, das nicht. Aber es muss nicht jede wahre Aussage nur beweisbar sein. Wenn man nicht nur die Beweisschritte erlaube, wenn man Programm nicht genug, wenn man Library nicht genug zu tun enthält, dann kann ich manche Sachen nicht machen, aber wo es eigentlich gehen müssten. Und er will halt eine Logik haben, die vollständig ist. Also, alles was wahr ist, kann man beweisen. Und widerspruchsfrei, alles was nicht wahr ist, kann ich nicht beweisen. So, da ist gesagt, ich kann mich eine Aussage und ihr Gegenteil beweisen. Das war der zweite Wunsch. Der dritte Wunsch in seinem Programm ist, er will eine Entheidung zu tun. Das heißt, ein mentalisches Vorgehen, striktes Regeln folgen, um für eine beliebige Aussage zu entscheiden, ist sie wahr oder falsch. Heute würde man sagen, ein Algorithmus. Algorithmus, den man eine beliebige mathematische Aussage geben kann und er sagt, ja, die ist wahr oder falsch. Und auch noch richtig, natürlich. Das war das Hilbert Programm. Das hat viele Leute inspiriert und daran arbeiten lassen. Allerdings, naja, das waren uns drei heftige Wünsche und die Welt ist nicht gut genug für diese Wünsche, denn irgendwann kam Gürtel. Wir sehen das jung und frisch und hat sich wohl nicht geschreut, die Sachen in Frage zu stellen. Und als er halt bewiesen hat, 1931 ist, das geht nicht. Zumindest der zweite Wunsch geht nicht. Es gibt keine logik, die, also es gibt keine starke logik, starke im Sinne von, wir hätten gerne natürliche Zahlen und so, Sachen, die man erst in das Land, die möchte man schon auch haben. Und keine logik, die starke logik ist, um von höhlichen Zahlen zu reden, ist sowohl widerspruchsfrei als auch vollständig. Es gibt immer irgendeine Aussage, also wenn wir mal davon ausgehen, sie ist widerspruchsfrei, wenn es nicht wäre, wäre sie blöd. Dann gibt es irgendwelche Aussagen, von denen wir wissen, sie sind wahr. Aber wir können sie nicht innerhalb dieser Logik beweisen. Die Idee ist im Grunde, wir formalisieren die Aussage, diese Aussage ist nicht beweisbar. Wenn ich sie beweise, dann war es falsch, dann war mein Logik inkonsistent. Also kann ich sie nicht beweisen. Und es ist ein bisschen schwieriger, das auch für uns zu kriegen, was es klappt, aber das hat Gürtel gemacht. Und das war dann eine Enttäuschung verhilbert und ein Schock für die Mathematiker, weil man halt irgendwie gesehen hat, okay, wir können uns noch so anstrengen, wir kommen nicht in dieses Paradies, wo man alles beweisen kann, was wahr ist. Okay, da war es noch der dritte Wunsch. Also Hilbert wollte ja noch eine Entscheidungsmethode haben. Na gut, wir können wahr und falsch wahrscheinlich nicht mehr machen, aber gibt es noch eine Methode, die sagen kann, diese Aussage ist beweisbar. Das wäre noch denkbar. Ja, und leider nicht. Oder auch zum Glück, sonst könnte ich jetzt hier keinen Vortrag halten. Es kam nämlich dann Church. Und Church hat Lambda-Kalkül erfunden. Eigentlich wollte Lambda-Kalkül einfach als Logik vorschlagen. Das ging schief, die war nicht widerspruchsfrei, aber es hat zumindest dann später geholfen, um zu zeigen, dass das entscheidendes Problem nicht löstbar ist. Das heißt, es gibt nicht mal eine Algorithmus, die mir sagen kann, ob eine mathematische Aussage beweisbar ist oder nicht. Das war 1935. Kurz drauf kam dann noch Touring ins Spiel. Kurz noch zur Lebensspanne von Touring. Zwei Sachen zu beachten, die ist ziemlich kurz. Das ist traurig, weil da war eine falsche Zeit ein Homosexuelle und wurde staatlich gemobbt, würde man heute sagen, musste sich zwangskastrieren lassen, war dann depressiv und wurde umgebracht. Ich hoffe, dass sowas heute nicht mehr passiert. Hätte er weiter gelebt, hätte er gestern zu nur letzten Geburtstag feiern dürfen. Und deswegen ist jetzt auch das 100. Jahr, also das Ellen Touring, 100. Geburtstagsjahr mit vielen Vorträgen und so. Daher auch dieser Vortrag. Touring hat 36, was veröffentlicht, was es wahrscheinlich hier mehr Leute kennen. Und zwar ist eine Ergebnis jetzt zum Halteproblem. Wer weiß, was das Halteproblem ist? Alle informatisch netten Strecken. Was er gesagt hat, ist, naja gut, wir haben hier so Touring-Maschinen. Die hat ja nicht Touring-Maschinen genannt. Das wurde später an sich, wurde später von anderen gemacht. Und es gibt keine Touring-Maschine, die entscheiden kann, ob eine andere Touring-Maschine anhält oder nicht. Und dieses Ergebnis hatte er 36 auch benutzt, um zu zeigen, dass ein Scheinungsproblem ist nicht lösbar. Halt ein Jahr zu spät, da wusste man schon. Aber die haben sich trotzdem gut verstanden, Church und Touring. Und Touring hat dann gezeigt, dass seine Touring-Maschinen so gut sind wie die Slamdachalkyl und andersrum. Und Church hat gesagt, ich war zuerst dran, aber ich bestätige, dass das eigene Ideen sind von ihm. Was jetzt hier haben sie praktisch den rumgeteilt. Soweit so diesen Ergebnissen. Allerdings, und das ist vielen nicht so ganz bewusst, beide Ergebnisse, das von Church als auch das von Touring, basieren auf einer unbewiesenen Hypothese. Nämlich, Hilbert wollte ein Entscheidungsverfahren. Und natürlich, das war, wann war das, 1920 rum, da gab es keine Computer. Seine Idee war, wir schreiben ein paar Regeln auf, setzen eine Mathematiker an den Tisch und der befolgt diese Regeln. Um dann irgendwie zu entscheiden, ob eine Formel war oder falsch ist. Aber jetzt sind Mathematiker noch nicht formalisiert. Zum Glück. Das heißt, ich kann eigentlich keinen mathematischen Beweis darüber führen, dass es nicht ein Mathematiker geben kann, der, wenn er solche Regeln hat, die sich befolgt, beweist, als es stimmt. Das Problem ist halt, man hatte so Begriffe benutzt, wie effektiv berechenbar. Das war halt so eine Idee, jeder wusste, was gemeint ist. Es sind so Sachen, die man halt nach strikten Regeln ausführen kann und so weiter. Aber Church hat ja nur gezeigt, na ja, mit Slamdachalkyl geht es nicht. Und Touren hat nur gezeigt, mit seinen Tourenmaschinen geht es nicht. Das heißt, die haben beide nur argumentiert, dass alles, was effektiv berechenbar ist, also was wir als berechenbar intuitiv verstehen, kann auch vom Slamdachalkyl oder von Tourenmaschinen gelöst werden. Damit es ein bisschen plausibler wird, hat Church gezeigt, dass sein Slamdachalkyl zu stark ist, wie was man damals als allgemein rekursive numerische Funktionen debattiert hat. Unter anderem mit Gödel. Hat halt gezeigt, was diese Funktionen können, kann man Slamdachalkyl auch und andersrum. Und deswegen glaubt mir doch bitte, dass das alles ist, was man als berechenbar bezeichnen darf. Und da zitiere ich mal seinen Paper. Er schreibt nämlich, if this interpretation or some similar one is not allowed, it is difficult to see how the notion of an algorithm can be given any exact meaning at all. Also klingt doch schon irgendwie nicht sehr überzeugend. Und Gödel hat es auch dann eigentlich bezweifelt, dass das gilt, nur weil das Slamdachalkyl nicht toll genug ist. Heißt nicht, dass man trotzdem nicht Mathematiker hinsetzen kann mit gewissen Regeln, die ja strikt befolgt. Als ein Touring kam und seine Tourenmaschine vorgestellt hat, war dann Gödel irgendwie dann noch zufrieden. Irgendwie waren die Tourenmaschinen wahrscheinlich plausibler. Und seitdem spricht man von der Church Touring Thesis, wie gesagt, dass eben alles, was berechenbar ist, kann von der Tourenmaschine berechnet werden oder kann von Slamdachalkyl berechnet werden. Aber eigentlich ist es keine These. Eigentlich ist es eine Hypothese, die wir halt glauben. Ja, soweit zum historischen Einschätzung. Jetzt geht es zur Tafel, weil jetzt kommt der Matheteil. Wir schauen uns an, was das Slamdachalkyl ist und warum daraus folgt, dass das Entscheidungsproblem nicht lösbar ist. Wie viele Fragen soweit? Okay, Slamdachalkyl heißt, wir haben eine Menge von Lambda ausdrücken. Und die sind definiert wie folgt. Ich habe irgendeine Menge von Variablen. Wie die genau heißen, ist uns das Wurscht, das wir ganz X und Z nennen, ich glaube mehr brauchen wir gar nicht, ich glaube F noch, aber es soll eine ziemlich lange große Menge sein mit ganz vielen Variablen. Und jede Variable, für die ist die Variable selbst vernünftig gelandert her. Das ist ein großes Lambda, für die die Grieche schon nicht so gut können und bezeichnet jetzt die Menge aller Lambda-Ausdrücke, die ich jetzt gerade hier mal definieren möchte. Also jede Variable ist schon ein Lambda-Ausdrück für sich allein. Dann kann ich, wenn ich zwei Lambda-Ausdrücke habe, die hintereinander schreiben und das sind auch ein Lambda-Ausdruck. Und das heißt die Anwendung. Also man sagt, das ist der Lambda-Ausdrück M, angewendet auf den Lambda-Ausdrück N und die, wo jetzt ganz hinten hocken und sich denken, was schreibt. Hier vorne ist noch ganz viel Platz frei, traut sich keiner. Und dann gibt es noch eine dritte Art und Weise, wie ich meine Lambda-Ausdrücke zusammenbauen darf und das ist die Lambda-Abstraktion. Sei also M, ein Lambda-Ausdruck, V eine Variable so, dass V frei in M ist. Sag ich gleich, was es ist. Und wenn das gilt, dann darf ich schreiben Lambda V, den Punkt mache ich nur zu für die Optik, LambdaVM. Freie heißt jetzt, dass die Variable vorkommt, also irgendwo ist so ein V da drin und dann wird sie insgesamt gebaut und es ist nicht schon mal innen drin durch so ein Lambda gebunden und worden. Ja, so baue ich Lambda-Ausdrücke zusammen und dann mache ich mal ein paar Beispiele. Zum Beispiel ist das ein Lambda-Ausdruck X, ist eine Variable und dann darf ich die Lambda abstreichern. Sei es Lambda X davor schreiben. Und diesen Ausdruck nenne ich jetzt einfach mal I, ob wir das später vielleicht nochmal brauchen. Bisschen größerer Ausdruck wäre jetzt zum Beispiel, ich habe X ist ein Lambda-Ausdruck, dann wende ich X nochmal auf X an, also schreibe ich XX und abstreichiere das X nochmal und das nenne ich klein Omega. Und dann noch ein drittes Beispiel wäre Lambda-F Lambda-X F von F von X also wenn ich sage F von dann meine ich auch diese Abstraktion. Ihr merkt schon das klingt so ein bisschen wie Funktionsanwendung oder Methodenaufruf aber an der Stelle sollte man versuchen sich erstmal zu lösen von diesen ganzen Interpretationen die man da vielleicht reinstecken kann und das macht auch nur eine Menge von Ausdrücken ohne irgendeine Bedeutung und das nenne ich mal C3. Okay, jetzt haben wir so eine Menge von Lambda-Ausdrücken, davon gibt es ziemlich viele aber damit spannend wird, möchte ich damit auch noch irgendwas machen dürfen. Und was ich damit machen darf ist die sogenannte Beta-Reduktion und das kann man so schreiben wenn ich irgendwo ins Lambda-Ausdruck eine Lambda-Abstraktion hab Lambda X M wird angewandt auf irgendwas auf N zum Beispiel und dann darf ich diesen Lambda-Ausdruck umformen indem ich M schreibe und überall in M die Variable X ersetze durch N. Also das heißt jetzt hier in dem Ausdruck M wird jedes Vorkommen der Variable X ersetzt durch N und das war es auch schon. Gut, da brauchen wir auch ein Beispiel ein paar Begrifflichkeiten dazu okay das ist ein Schritt der Beta-Reduktion wenn ich jetzt mehrfach diese Regel anwenden kann und auf diese Weise von M in mehreren Schritten zu N komm dann schreibe ich auch M-Stich mit so einem Stannchen obendran N und sag, dass sich M zu N reduzieren lässt die Begrifflichkeit, die wir vielleicht mal nachher brauchen und der weiteren Begriff der dann nachher entscheidende Rolle spielen wird ist die der Normalform ein Lambda-Ausdruck N ist in Normalform das schreibe ich nochmal so mit einem Pfeil den ich durchstreich wenn ich diese Regel nicht mehr anwenden kann also wenn nirgendwo in dem Lambda-Ausdruck das könnte ziemlich lang sein eine Kombination vorkommt von einem Lambda-Abstraktion die auf irgendeinem Term angewandt wird das heißt so was heißt Redex wenn sowas nicht mehr vorkommt dann ist der Lambda-Ausdruck in Normalform und dann kann ich noch sagen was es heißt, dass ein Lambda-Ausdruck eine Normalform hat nämlich wenn ich M reduzieren lassen kann mit mehreren Schritten bis zu irgendeinem anderen Ausdruck N und den nicht weiter reduzieren lassen kann dann sage ich, dass M die Normalform N hat die Normalform ist eindeutig das ist nicht offensichtlich das muss man erst beweisen und das liegt einfach daran dass die Reihenfolge wie ich hier so Sachen reduziere wuscht es also wenn ich mehr als Auswahl habe dann kommt es gleich heraus so und jetzt möchte ich den Beispiel bringen und zwar diese Lambda-Ausdruck also C3 habe ich ja schon definiert was es ist angewandt auf I und das ganze angewandt auf Z dann schreibe ich erstmal die Definition ab und dann will ich wissen was davon die Normalform ist das ist so die entscheidende Frage das ist C3 I und Z jetzt habe ich hier ein Lambda-Ausdruck eine Lambda-Abstraktion Lambda F geht bis hier und wird angewandt auf diesen Termen hier das heißt, ich kann die Lambda die Beta-Reduktion machen und stecke überall das hier rein wo ein F steht also bleibt übrig Lambda X jetzt habe ich hier ein F das heißt, da muss ich das schreiben so, das ist ziemlich viel angewandt auf nochmal dieses hier angewandt auf nochmal dieses hier und angewandt auf X jetzt die Klammer noch zu und Z Nein, weil was ich hier nicht ausdrücklich geschrieben habe wenn ich mehrere Lambda-Ausdruck in eine Reihe schreibe dass das so rumgeklammert ist das ist nichts gleiche also wenn ich MNO habe und ich klappe das so rum ist das völlig anderes wie MNO und wenn ich die Klammern weglasse meine ich das hier das ist übliche Konvention ist also wichtig sonst kommt was anderes raus und ja nachher gibt es dann, nachher ist dann egal wenn wir Geschachtelte haben, das sehen wir gleich jetzt machen wir erst noch diesen Lambda-Ausdruck hier oder jetzt stimmt an dieser Stelle wäre es egal ich kann mich entweder hier diesen Lambda-Ausdruck auf Z anwenden oder diesen hier auf X oder diesen hier auf dieses oder diesen hier auf diesen Teil fange ich von außen nach innen an das heißt ich mache erst mal dieses löst dieses Z auf das heißt das bleibt übrig Lambda-X-X angewandt auf Lambda-X-X X-X und jetzt habe ich glaube ich noch ein Z vergessen Z und wer jetzt nicht mehr lesen kann das braucht sie nicht wundern aber ihr hört mir alle gut zu deswegen wisst ihr was da steht ja, das haben wir ja aufgelöst wenn du hier diese, lasst ja nochmal anschauen wenn ich den Lambda-Ausdruck anwende genau, das wird damit ausgeführt um jetzt nochmal in eine Interpretation aufzurufen die wir eigentlich nicht haben möchten die Variable verschwindet komplett hier drin verschwindet sie oder hier die ZF verschwindet und der Lambda-Operator verschwindet auch so, jetzt haben wir das hier aufgelöst jetzt können wir hier noch hier innen drin anfangen aufzulösen das heißt es bleibt noch Lambda-X-X angewandt auf Lambda-X-X angewandt auf, wir setzen hier das X durch Z und dann noch einmal und dann sind wir auch schon bald fertig noch einen Schritt und Z und jetzt offensichtlich kann ich diese Regel hier nicht mehr anwenden sagt mir, wenn da meine privaten Bilder kommen war es wichtig? ah ja, das ist aber zu warten gewesen den habe ich geschrieben nicht bekommen ok, wir haben also gerade gesehen wie die Beta-Reduktion funktioniert wir haben gesehen, dass diese Lambda-Term eine Normalform hat und zwar Z hat jetzt jeder Lambda-Term eine Normalform wenn das so wäre, dann wäre das wieder langweilig könnte ich wieder kein Vorderkalk halten weil dann gäbe es nichts zu zeigen aber es gibt Lambda-Ausdrücke, die haben keine Normalform ein einfaches Beispiel passt da noch hin wir haben mal das Omega da schon stehen wenn ich jetzt Omega auf Omega anwende so, als nächstes brauchen wir jetzt Zahlen also wir haben vorhin schon gesagt wie das Lambda-Kalkül so stark ist wie sogenannte numerische Funktion numerische Funktion heißt jetzt hier Funktionen von den natürlichen Zahlen in die natürliche Zahlen also wir machen keine Konvergenz-Kriterien und so was keine Sorge das heißt, wir brauchen erstmal Zahlen wie kann ich jetzt eine Zahl darstellen im Lambda-Kalkül da gibt es die sogenannte Church-Codierung und zwar für jede natürliche Zahl die hier kreativerweise mal i heißt definiere ich mir ein Lambda-Ausdruck C i und C 3 haben wir schon gesehen gehabt das allgemeine Muster ist folgendes Lambda f Lambda x und dann f angewandt auf f und so weiter, angewandt auf x und wir haben genau i viele Anwendungen von f das ist ein Lambda-Ausdruck der unsere Regel entspricht der ist sogar eine Normalform und es sind verschiedene für alle natürlichen Zahlen und man kann sich jetzt nochmal außenweise mal überlegen was es bedeuten würde wenn jetzt f so was wäre wie eine Funktion und x so was wäre wie ein Wert also wenn ich das programmieren kennen würde dann ist der Lambda-Ausdruck der die Zahl 42 darstellt eine Funktion die kriegt ein f und x und wendet f 42 mal auf x an und dann kann man sich schon vorstellen damit kann man irgendwie so rechnen so Addition und so das geht dann vielleicht irgendwie das heißt wir haben jetzt die natürlichen Zahlen als nächstes brauchen wir noch für die rekursiven Funktion dass wir halt irgendwie Funktionen darstellen also wenn f eine Funktion ist von den natürlichen Zahlen in die natürliche Zahlen dann sage ich, dass der Lambda-Ausdruck groß f diese Funktion repräsentiert und ich muss sagen wenn gilt, dass der Lambda-Ausdruck fci sich reduzieren lässt zu cj für alle natürlichen i und j ich glaube da mach ich mal ein ganz anderes Beispiel der Lambda-Ausdruck Lambda c Lambda f Lambda x cf f von x stellt eine Funktion dar nach dieser Definition nämlich die Funktion die eine Zahl um eins hochzählt also es nimmt eine Zahl und was hier folgt hat wieder die Form von so einer Zahl und es wendet f einmal so oft drauf an wie in c steckt aber dann noch einmal mehr also so kann man rechnen will ich auch gar nicht sagen wie man es damit genau mehr rechnet wir werden hier nicht rechnen müssen was wir aber machen müssen und dazu ist langsam ein bisschen verknotet im Kopf wir haben Zahlen dargestellt als Lambda-Ausdrücke jetzt möchten wir noch Lambda-Ausdrücke als Zahlen darstellen und zwar möchten wir einfach alle Lambda-Ausdrücke durchzählen möchten jeder einen Nummer zuweisen da nimmt man dann sowas wie die Gürtelnummerierung die Details sind eigentlich nicht wichtig aber es ist eigentlich ein netter Trick die Gürtelnummerierung ich nenne es jetzt einfach G von Lambda-Ausdrücke zum Beispiel von Lambda x xx also von Omega lässt sich dann definieren als 2 hoch 11 mal 3 hoch 1 mal 5 hoch 17 mal 7 hoch 17 und wir jetzt eigentlich verarschen mal einfach nur komische Zahlen hin es wird gleich ein besseren Billard 1 hoch 17 und 13 hoch 13 also die Idee ist in der Kodierung, wie gesagt, wir brauchen sie nicht ich will jetzt einfach noch mal erwähnen wie es funktioniert weil es eigentlich ganz lustig ist wir möchten hier einfach alle Informationen, die hier drin stecken in einer Zahl drin haben dazu nehmen wir Primzahlen und jeder natürliche Zahl lässt sich ja einen Primfaktor zerlegen das heißt die Potenz von der ersten Primzahl sagt mir was das erste Zeichen ist die Potenz von der zweiten Primzahl sagt mir was das zweite Zeichen ist die Potenz von der dritten Primzahl sagt mir was das dritte Zeichen ist und dann ist halt so Konvention 11 ist die öffnende Klammer 1 ist ein Lambda 17 aufwärts in die Variablen 13 ist die schließende Klammer und so kriege ich zu jedem Lambda Ausdruck eine Zahl und das kann ich auch rückgängig machen ich muss nur Primfaktor Zerlegung machen also Aufwand ist jetzt egal dann sieht man dem bei übrigens noch dass die Menge der Lambda Ausdrücke abzählbar ist weil ich habe offensichtlich eine injektive Funktion in den natürlichen Zahlen aber wie gesagt die Details kann ich so spannend was wir einfach nur wissen müssen ist wir haben so eine Abbildung G von den Lambda Ausdrücken in die natürlichen Zahlen ok jetzt wo wir Lambda Ausdrücke als Zahlen dargestellt haben können können wir ja normale numerische Funktionen definieren die was mit Lambda Ausdrücken machen also sozusagen man könnte sagen ein Interpreter schreiben als mathematische Funktion und es hat ein Church auch irgendwie versucht und mit seinen Leuten und hat ein paar Sachen festgestellt von denen er weiß die kann man machen mit den Lambda Ausdrücken als berechenbare Funktionen berechenbar ist wichtig also Sachen die man dann wirklich auch ausführen kann zum Beispiel ist die Funktion die eine natürliche Zahl nimmt und dann entscheidet ob das die Funktion die eine natürliche Zahl nimmt und entscheidet ob die Zahl einen Lambda term kodiert oder nicht, also nicht alle Zahlen sind ja gültige Lambda Ausdrücke dies berechenbar wie gesagt man muss Primfaktorzerlegung machen man schaut sich die Sachen an schaut ob die Klammern stimmen das ist zwar wahrscheinlich aufwendig zu machen aber es geht um eine ausführbare Funktion definieren ebenso kann ich so etwas machen wie zum Beispiel ich nehme eine natürliche Zahl kodiere sie als Lambda Ausdruck und dann wieder eine Zahl draus machen nach dieser Kodierung das ist auch berechenbar also nochmal zur Verdeutlichung wir konvertieren zwischen natürlichen Zahlen und der Gürtelnummerierung der Church Kodierung diese Zahl alles klar so jetzt kann man noch weitermachen und so belegen die dann berechenbar sind also die man hinbekommt als Funktion zum Beispiel kann ich eine Zahl nehmen die Lambda Ausdruck kodiert und dann schreibe ich hier mal den Lambda Ausdruck so hin und dann mache ich eine einen Schrittreduktion zum Beispiel immer auf dem ersten reduzierbaren Stückchen und dann kommt n raus und das gebe ich zurück natürlich wieder als Zahl also alles hier ist eine Funktion von natürlichen Zahlen in den natürlichen Zahlen ich kann also die Beta-Reduktion implementieren jetzt schauen wir doch ein bisschen arg wieder auf den Bildschirm also die Beta-Reduktion ist auch berechenbar und das muss man alles beweisen, das machen wir uns noch hier nicht das glaubt man jetzt einfach mal wenn ich die Beta-Reduktion berechnen kann dann kann ich sicherlich auch berechnen ob eine kodierte Lambda Ausdruck in normal Form ist da muss ich einfach nur durchschauen ob da irgendwo das reduzierbarer steht ja wenn das geht dann geht doch vielleicht auch das jung ich schreibe es mal so formal hin aber ich glaube besser versteht ihr wenn ihr hört was ich sage und zwar gegeben ein Lambda-Term kodiert als Zahl hat dann der Lambda Ausdruck der davon kodiert wird eine normal Form also lässt es sich reduzieren zu einem N so dass das N in normal Form ist die Frage ist jetzt gibt es so ein N ist diese Funktion auch noch berechenbar und das ist die eben nicht und das ist der drehen Angelpunkt alles vorher konnten wir berechnen also alles von da konnte man eine Funktionen schreiben und dann irgendeinem Schüler geben der mit Zahlen rechnen kann und dann hockt er eine Weile beide sind in das Wortes und dann konnte er aber berechnen was ist in dem Beta-Reduktion von einem Lambda-Term ist der Lambda-Term in normal Form aber wenn wir versuchen so eine Funktion zu definieren die das hier macht berechenbar dann scheitern wir und das es so ist hat eben Church bewiesen das war eigentlich auch die Hauptresultat von seinem Paper deswegen heißt es auch an unsolvable problem of number theory also im Titel hat gar nichts mit Entscheidungsproblem zu tun zwar dann nur so eine Folgerung ja und den Beweis möchte ich jetzt noch skizzieren also wie macht man so ein Beweis als Mathematiker wir möchten sagen wenn was gibt's nicht dann nehmen wir an es gibt's wenn wir rausfinden da ging was schief dann war die Annahme falsch das hat ein Widerspruch beweisen das heißt wir nehmen an diese Funktionen wäre berechenbar und denkt dran was nach Church Touring's These gilt wenn es berechenbar ist gibt es einen Lambda-Ausdruck der das ausführt also der Lambda-Ausdruck richtig der Einwand war wenn ich hier schreibe g-1 von n dann ist es nicht mehr ein Lambda-Ausdruck stimmt, ist korrekt ich wollte es einfach nur die Idee ist halt man kann es erkennen und wenn es noch nicht der Fall ist dann kann ich ja irgendwie 0 ausgeben nee, 0 darf ich nicht 0 ist keine natürliche Zahl damals 0 ist im Zwischen 0 wurde natürlich seitdem kann ich 1 ausgeben das ist so eine Funktion die mir entscheidet ob es für ein Lambda-Ausdruck eine Normalform gibt dann kann ich mir noch etwas abwandeln kann ich sagen es gibt eine Funktion die schaut ob ein Lambda-Ausdruck als Normalform eine von den Church-Codierungen hat also eine von den natürlichen Zahlen die ich jetzt hier weggewischt hab also ein C-I also ich kann überlegen reduziert zum Lambda-Ausdruck M zu C-I für irgendein das ist dann auch berechenbar das klingt plausibel so, was wir jetzt auch noch haben und was man auch beweisen muss was jetzt hier nicht kommt wir haben eine Aufzählung aller Lambda-Ausdrücke mit Normalform also Aufzählung heißt wir haben eine Folge AM zum Beispiel da kommt jeder Lambda-Ausdruck irgendwann vor der eine Normalform hat das ist berechenbar ist nicht ganz offensichtlich warum das so ist also ich alle Folgen von Buchstaben sind aufzählbar das heißt ich kann schon mal eine Normalform aufzählen ich kann ja prüfen ob das eine Normalform ist und dann kann ich einfach eine Normalform praktisch wieder reduzieren und rückwärts machen in allen Möglichkeiten das wird furchtbar viel aber irgendwann kann ich die alle aufzählen das heißt ich kann jeder ich habe eine Numerierung von allen Lambda-Ausdrücken mit Normalform so was ich jetzt machen kann ist ich kann den Enden Lambda-Ausdrücken mit Normalform nehmen ich kann ihn auf C N anwenden ich kann schauen ob nach ein C i rauskommt und dann gebe ich i plus 1 zurück und ansonsten gebe ich 1 zurück und das ist eine berechenbare Funktion die dann ich jetzt e von N also alle Komponenten die ich benutzt habe diese Aufzählung ist berechenbar überlegen ob sowas hier als Normalform hat ist berechenbar das heißt e ist berechenbar weil es berechenbar ist gibt es einen Lambda-Ausdruck e der diese Funktion implementiert und das folgt wieder aus dem technischen Lämmer e hat eine Normalform und weil dem so ist ist e irgendein an wir haben gesagt an enthält alle Lambda-Ausdrücke mit Normalform so was wir jetzt noch machen müssen ist wir wenden e auf C N jetzt wissen wir dass e gleich an ist wir haben e auf C N und weil e so eine Funktion von natürlichen Zahlen zu natürlichen Zahlen ist reduziert es zu irgendeinem C i per Definition was es heißt, dass ein Lambda-Ausdruck eine Funktion darstellt jetzt wissen wir dass e gleich an ist das heißt auch das hier muss gelten und auf C N reduziert zu C i aber da steht auch gerade hier in diesem Definition von der Funktion e also wenn das gilt dann gilt sicherlich e von N gleich i plus 1 und wenn das gilt dann gilt e von C N per Definition das ist so was implementiert gleich C i plus 1 und das ist jetzt ein Widerspruch denn Normalform sind eindeutig C i und C i plus 1 verschiedene Lambda-Ausdrücke das heißt irgendwas kann nicht stimmen und da wenn wir sonst keinen Fehler gemacht haben kein Einzige was nicht stimmen kann ist die Annahme und die Annahme war es gibt eine solche Funktion als berechnenbare Funktion und damit konnte Church zeigen es gibt tatsächlich Probleme die man nicht berechnen kann in dem Fall halt hat ein Lambda-Terminalform was hat das jetzt mit dem Entscheidungsproblem zu tun im Entscheidungsproblem war ja die Frage ob es einen Beweis gibt für den Ausdruck und da möchten wir uns noch schauen warum es dann noch daraus folgt aber dann mach ich erstmal Platz ok, wir möchten zeigen dass jede Logik die starke Logik ist von natürlichen Zahlen zu reden und von rikussiven Funktionen und damit auch stark genug um solche Sachen zu machen dass die nicht oder über solche Sachen zu reden dass es dafür kein Entscheidungsverfahren gibt in so einer Logik kann ich sicherlich so von Aussagen treffen dass eine Zahl ein gültiger Lambda-Term ist ich kann die Beta-Reduktion als Formel darstellen also die halt aussagt zwischen ich kann also als Prädikat eine Zahl Nummer so und so lässt sich zu einem zweiten Zahl also m lässt sich zu m Beta reduzieren als Lambda-Ausdrücke aufgepasst so was kann ich definieren ich rede es gerade nicht ausführen aber vom definieren transitive Hülle kann ich auch definieren das ist einfache Übung also die Stanchen auf dem Pfeil das heißt es gibt eine Formel 4 in unserer Logik und wie die Logik genau aussieht und dieses ist genau dann wahr das ist Zeichen für eine Aussage es wahr wenn das hier gilt also wenn es eine Normalform hat wenn der Gürtel kodierte Ausdruck davon eine Normalform hat so das ist jetzt eine Aussage innerhalb der Logik über eine Zahl jetzt gibt es zwei Fälle ich schreibe es anders G von N also wir haben eine Formel 4 die ich anwenden kann auf die Gürtel Kodierung eines Lambda Ausdrucks und die ist genau dann wahr wenn N eine Normalform hat jetzt gibt es zwei Fälle N hat eine Normalform aber dann kann ich beweisen in der Logik dass V stimmt das ist Zeichen für beweisbar und so ein Beweis das würde halt alle Schritte der Reduktion angeben und zeigen das ist immer ein einfacher Reduktionsschritt dazwischen und das Ergebnis ist eine Normalform das sind alles Sachen die wir formulieren können das heißt in so einem Logik gibt es einen Beweis dafür dass es eine Normalform hat das ist nicht so tief der Gedanke im anderen Fall N hat keine Normalform wenn die Logik konsistent ist dann kann ich auch nicht beweisen weil ich kann keine falschen Sachen beweisen das heißt ich kann nicht beweisen dass N eine Normalform hat so, so weit als Vorbereitung jetzt wollen wir zeigen es gibt kein Entscheidungsmechanismus kein Entscheidungsmethode also kein Algorithmus der für beliebige Formen sagt ob sie entscheidbar sind damit sind wir wahrscheinlich fertig denn angenommenes gäbe wie der Widerspruch beweisen angenommenes gäbe so eine Methode dann kann ich an Lambda Termen hernehmen kann diese Formen hier hinschreiben und stecken die Maschine sagt beweisbar oder nicht beweisbar wegen diesen Implagationen weiß ich dann hat eine Normalform oder keine Normalform dann habt damit doch eine berechenbare Methode um dieses Problem zu lösen also wäre das Entscheidungsproblem lösbar dann gäbe es eine berechenbare Methode um festzustellen ob ein Lambda Ausdruck eine Normalform hat oder nicht weil das geht ja gerade nicht hat der Church gezeigt, wenn es es gäbe dann hätte man einen Widerspruch und das war's auch schon aus diesem Grund braucht man weiter ein Mathematiker weil irgendwann muss die Beweisheit auch noch machen und damit bin ich am Ende meines Vortrags