Gut, dann beginnen wir. Heutiges Thema,
natürliche Zahlen, Sie sehen nicht nur heute,
sondern auch noch morgen früh werden wir über die natürlichen Zahlen sprechen.
Und wir werden sie definieren, wir werden Aussagen übernatürliche Zahlen erstmal zeigen,
ohne dass wir weitere Definitionen von irgendwelchen Funktionen machen oder keinen
Großen und dann soll es um Additionen gehen.
Das ist also hier nochmal ein eigenständiges Kapitel und um Ordnung und
das Ganze ist einfach nur mal so ein erster Eindruck,
damit sie lernen mit natürlichen Zahlen
umzugehen in Cock
Und der ganze Rest, deswegen sind es anderthalb Sitzungen,
anderthalb Tage, die wir auf die natürlichen Zahlen verwenden,
der ganze Rest ist dann eigenständige Übung.
Denn das, was sie hier lernen können, können sie
am besten lernen, dadurch, dass sie selbst damit umgehen.
Aber vielleicht erst mal einen Schritt zurück.
Warum beschäftigen wir uns mit natürlichen Zahlen? Wir haben doch
vorher über Datentypen geredet.
Am Montag über Nichtrekursive Datentypen
Und nun reden wir über, oder gestern haben wir
über Datentypen geredet, Listen, also rekrusive Datentypen.
Was haben jetzt natürliche Zahlen damit zu tun?
Das ist jetzt die Frage. Und der Punkt ist,
dass natürliche Zahlen, und das ist vielleicht für sie überraschend,
ich kann mich da nicht hundertprozentig in sie hineinversetzen,
aber natürliche Zahlen sind als induktiver Datentyp auffassbar.
Also, schauen wir uns das an. Frage ist,
vielleicht eine blöde Frage, aber ich frage sie trotzdem,
was ist eine natürliche Zahl
Und wenn ich die Frage so in den Raum stelle und
sie müssten das irgendwie erklären, dann würden sie wahrscheinlich merken,
es ist gar nicht so einfach.
Ich kann jetzt mal einen Test machen. Was ist eine
natürliche Zahl? Was sind alle positiven Zahlen? Und abgesehen
von der Richtigkeit, irgendwie sie benutzen mal mehr Begriffe.
Zahlen? Fast in Zahlen? Natürlich ist alles die bezeichnet
durch einfaches Upsellen ergeben kann,
die man einfach hochzählt
Naja. Anzeige unbedingt, die in der natürlichen Welt existieren, abbilden kann.
Ah, natürlich in Zahlen kommen in der Natur vor.
Interessante philosophische Position kann man vertreten. Es gibt auch Gegner
davon. Ja. Das ist eines die kleinste persönliche Zahl,
dass du sagst, man will nicht oft Plus 1 zurückrechnen kann.
Das kommt jetzt sehr nah dran an dem,
was wir gleich machen. Wahrscheinlich haben sie sowas schon mal
in irgendeiner Vorlesung gehört.
Kann das sein
Ja, weil da kommt man eigentlich eher nicht drauf.
Ich gehe nochmal einen Schritt zurück,
aber es ist komplett, wir kommen da gleich hin.
Einen Schritt zurück. Also, was ist eine natürliche Zahl?
Ich habe es gar nicht definiert. Die Mühe erspare ich
mir. Ich habe jetzt einfach mal nur durch Beispiele,
also wir wollen sie wohl haben, dass 0, 1,
2, 3, 4, 5 und so weiter,
dass das natürliche Zahlen sind.
Das ist natürlich keine Definition, das ist klar.
Und wenn ich das irgendwie vernünftig packen möchte,
und da sind wir im Grunde bei dem,
was sie gesagt haben, nur dass ich chronisch bei der Null anfange.
Also, Null ist eine natürliche Zahl Und wenn er in
eine natürliche Zahl ist, so auch der Nachfolger von innen.
Okay, den Typ, der natürlichen Zahlen,
den schreiben wir jetzt tatsächlich in Abgrenzung zu dem,
was Kork 4 definiert hat, benutzen wir jetzt tatsächlich dieses Zeichen,
dass wir eingeben durch Backslash Not.
Dass ihnen vertraut ist und die Definition sieht nun so aus,
also induktive Definition. Hier wird ein Datentyp definiert,
in dem Fall der Datentyp der natürlichen Zahlen
Und wir definieren ihn wie folgt. Wir sagen,
null ist eine natürliche Zahl und wir können eine Kette bilden.
Ich mache das hier einmal kurz drüber,
wenn ich die Tafel benutzen kann und ihnen das zeugen kann.
Können Sie das hier durchsehen sogar? Das wäre jetzt
ganz praktisch. Also ich schreibe da drunter,
wir haben also null ist eine natürliche Zahl
Dann haben wir Suck von Zero. Dann haben wir Suck
von Suck von Zero. Ja, und so weiter.
Also hier ist wieder das rekursive Element.
Wenn wir eine natürliche Zahl bereits haben, die Null,
dann haben wir auch Suck von der natürlichen Zahl.
Ist wieder eine natürliche Zahl. Also deswegen ist das hier
auch eine natürliche Zahl. Jetzt können wir das
hier wieder reinstecken an der Stelle. Zack,
von diesem Ding ist wieder eine natürliche Zahl und wir haben
diese Zahl
So, und dann soll natürlich die Null das Zero sein,
also was wir als Zero bezeichnen, soll die Null werden.
Das eins entsprechend zack von Zero. Und hier,
wenn ich das Spielchen weitertreibe, so oft,
wie ich es sage, habe,
dass es dann entspricht dann der Zahl, die ich ausdrücken möchte.
Also wir können jetzt, das ist jetzt eine philosophische Fragestellung,
ob sie sagen, das sind die natürlichen Zahlen.
Wirklich, können die so auffassen oder ob sie sagen,
so kann ich die natürlichen Zahlen repräsentieren
Also wenigstens das zweite schaffen wir,
ob sie das erste annehmen oder nicht, bleibt ihnen überlassen.
Noch ein Beispiel. Und sie merken, das immer so aufzuschreiben,
also wie es rechts steht, ist ziemlich unpraktisch.
Man kann sich also erst mal Notationen einführen. Das heißt,
dass wir jetzt in Cock dann tatsächlich auch die Zahlen 0,
1, 2, 3, 4, 5,
6, 7, 8, 9 wenigstens benutzen können.
Kommen die Beispiele hier? Ja,
also was ist dann mit 10 und 11 nun?
Ich kann Ihnen das soweit schon mal zeigen im Cock
Also hier definieren wir die natürlichen Zahlen. Und jetzt kommt
diese Notationsgeschichte. Und jetzt prüfen wir als erstes mal,
was hat neun für einen Typ? Und er sagt uns,
ah, neun hat den Typ, was wir auch haben wollen,
von den natürlichen Zahlen, so wie wir sie jetzt definiert haben.
Weil wir oben geschrieben haben, neun ist Sack von acht
und das kringelt sich hier so durch bis zur Null.
Wenn ich jetzt mache, Check von zehn,
schreibt er es vom Typen nut ausgeschrieben. Warum? Naja,
weil Wir es nicht definiert haben sehen und er dann auf die Ford-Interpretation zurückgreift,
die eben das Nut-Benutz verwendet, was in Cock drin ist.
Wie die das jetzt intern geregelt haben,
dass er die ganzen Zahlen erkennt, weiß ich nicht,
ich nehme mal an mit irgendwelchen Makros.
Ich glaube nicht, dass man das so schön innerhalb,
also anders, ja, aber nicht so schön,
ohne irgendwelche anderen Zeichen in Cock regeln kann.
Aber also innerhalb der Mitte, die Cock-Alben selbst bereitstellt.
Aber ich mag mich irren
Gut, also was ist jetzt also mit höheren Zahlen?
Naja, wenn ich so eine Zahl habe,
wie 12034, dann ist das eigentlich eine Rechnung.
Es ist eine Rechnung, die sagt,
dass es einmal 10 hoch 3, muss man natürlich alles definieren,
Multiplikation, dass man Potenzen bilden kann und so weiter.
Zehn kennen wir, sagt vor neun. Also das kriegen
wir in den Griff, das können wir ausdrücken,
plus zweimal 10 hoch 2 plus 3 mal 10 hoch 1 plus 4.
Das heißt, eigentlich ist 1234
eine Rechenaufgabe
Und die Zahl, die da rauskommt,
wollen wir durch diese Rechenaufgabe halt beschreiben.
So. Schauen wir uns mal einen ersten Satz an.
Also wir wollen beweisen, dass Sack injektiv ist,
dass also aus Sack-N gleich Sack-M volkt, das N gleich M ist.
Was machen wir in Cock? Hier oben rechts sehen Sie
die Aussage und wir beweisen die jetzt.
Gut, wie gehen wir da ran
Jo. Im Zweifelsfall immer mit indoktivsten. Ja, können
wir jetzt denken. Aber es bringt nicht wirklich viel.
Also wir kommen hier tatsächlich mit Proof All schon durch.
Weil wir durch, also okay, wir haben hier in
die Struktur mit Zack, N und Zack M.
Und da können wir, da haben wir keinen Vorteil,
ob wir da jetzt die Null drin haben oder irgendwie wieder was mit Zack.
Das können wir ja nicht auswerten, das können wir nicht
ausrechnen.
Wir haben darüber
keine Definition
Bereitgestellt, die das irgendwie ausrechnen könnte.
Da wird nicht durch Simplify irgendwas geändert. Also,
wenn ich Sack habe und da Sack von,
Sack von Sack von irgendwas einsetze, dann macht das nichts.
Dadurch kriege ich, kann ich nichts Neues ausrechnen. Ja,
das Einzige ist, er könnte mir vielleicht eine Fünf- oder eine Sechs stattdessen schreiben,
weil das ist kein Ausrechnen, das ist nur eine andere Schreibweise.
Also, Proof by Induction ist diesmal,
deswegen war die Frage ein bisschen gemein, nicht die richtige Antwort.
Sondern wir kommen hier tatsächlich aus mit Proof All Proof All
Und Proof Imp. Und was wir stattdessen dieses Mal an
dieser Stelle benutzen müssen, ist, was sie bereits kennen,
wenn sie irgendwie arbeiten mit Konstruktoren in den Hypothesen.
Dass sie nämlich folgenden Satz benutzen. Fact,
wie heißt der, Equality Function, glaube ich.
Dass sie aus einer Gleichheit auch bekommen, dass sie,
wenn sie irgendwas darauf anwenden, wieder das Gleiche herauskommt.
Also wenn du mit gleichem Gleiches machen, kommt Gleiches heraus.
Also ich gebe zu, was jetzt kommt, das ist
ein bisschen gecheatet, ich will es ihnen aber trotzdem einmal zeigen.
Sie werden die entsprechende Stelle gleich sehen. Also wir machen Use
All H0 und ich sage gleich, wie viele Argumente.
Wir wollen natürliche Zahlen. Ich muss das erst aktivieren.
Wir wollen natürliche Zahlen, in natürliche Zahlen abbilden in dem Fall.
Und zwar wollen wir einmal das Suck N und einmal das Suck M,
ich bin jetzt hier an der Stelle,
also ob es die beiden hier, möchte ich einsetzen.
Und ich arbeite mit folgender Funktion. So,
und jetzt erkläre ich gleich, inwiefern das gemogelt ist.
Ich nehme mal an darin Bezeichner. Also Lamda 11 und
Typen N. So. Und in Funktionen wissen sie bereits,
das Film mit Pattern Matching arbeiten können.
Okay. Und deswegen können wir folgendes machen,
dass wir sagen, Match Wiz.
Und wenn das irgendwas ist vom Typen,
Dann bilden wir es auf L ab.
Und ich mache es mal ein bisschen sauberer.
Und ansonsten... Ist eigentlich wurscht, sagen wir mal,
auf die Null. Wir müssen es nur irgendwo hin abbilden.
Dann können wir diese anonyme Funktion hier verwenden.
Machen wir erst mal so was... Ach so,
ich muss ihm jetzt sagen, wie viele Eingaben ich gemacht habe.
Das habe ich jetzt vergessen. Das sind hier
die beiden natürlichen Zahlen,
die hier
Und die Funktion, das sind fünf Eingaben.
Schwupp. Und jetzt sehen Sie, dass die Aussage,
die ich erhalte, ist, dass aus Sack N,
gleich Sack M, folgt N, gleich M.
So, nochmal, warum war das ein bisschen gemogelt?
Bisschen ist gut. Es ist deswegen gemogelt, weil die,
weil diese Aussage, dass auf Sack N,
gleich Sack, das aus Sack N, gleich Sack M,
folgt N, gleich M,
so ein bisschen in dem Petter-Matching drin steckt,
was Cork bereits in seinen Funktionen benutzt
Deswegen wirkt das jetzt ein bisschen komisch vielleicht,
aber wir müssen das eben einmal benutzen,
dann können wir diesen Satz konkret,
also haben wir ihn dann in der Hand.
Und wir können jetzt weiterarbeiten mit Proof, eben H1H,
hups. Was habe ich falsch gemacht?
Äh, nicht Proof im Huse, meine Güte.
Huse int natürlich, H1H. Und das ist jetzt genau das,
was wir haben wollen.
Wir haben jetzt erst mal eine Sache bewiesen,
dass es noch nicht ganz typisch, wie die Beweise folgen.
Wobei man manchmal diese Geschichte mit Equality Function benutzen muss.
Das ist so ein Asth im Ärmel, was man nie vergessen sollte.
Aber wir werden gleich auch noch andere Sachen sehen.
Machen wir erst mal weiter in den Folien.
Jetzt haben wir auch noch die Möglichkeit,
den Vorgänger einer natürlichen Zahl zu bilden, anstatt dem Nachfolger.
Und die Frage ist erst mal,
gibt es auch immer
einen Vorgänger
Gut, der Vorgänger von sechs, möge fünf sein,
von 3.423, 3.422. Vorgänger von 1 soll null sein,
und der Vorgänger von null.
So, und jetzt haben wir zwei Möglichkeiten.
Die erste ist, wir machen wieder was mit Option.
Das will ich aber an der Stelle nicht. Und stattdessen
können wir sagen, wir legen das jetzt einfach fest.
Und wir sagen, per Definition soll der Vorgänger von null null sein.
Ja, der Nachfolger von 0-0 oder 1
Nee, das hängt dann mit den Sätzen zusammen, wie die,
inwiefern die invers sind. Die sind dann natürlich etwas differenzierter,
ja. Also der Nachfolger von Null ist immer eins.
Ja. Aber es ist halt nicht so,
dass wenn sie den Vorgänger, es ist nicht immer so,
dass wenn sie dir den Vorgänger bilden und dann den Nachfolger sie wieder bei der ursprünglichen Zahl ankommen,
das ist immer so, wenn sie nicht bei Null starten,
aber bei Null eben nicht.
So, und die Frage ist,
ist es auch möglich, ein Cocktailvorgänger zu bilden?
Ja,
allerdings nicht als Konstruktor
Sondern durch eine entsprechende Funktion. Es sieht dann wie folgt
aus. Wir haben... Hier eine rekursive Funktion,
die definiert wird. Pratt, also für Pready Saison.
Dann ist, haben wir einen Parameter. Das heißt,
hierüber definieren wir rekursiv die Funktion über dieses N.
Und wir landen wieder in den natürlichen Zahlen. Und was wir tun,
ist, wir sagen, dass wir das N matchen mit Okay,
wenn es null ist, soll es auf null abgebildet werden,
der Vorgänger von null, hatten wir gesagt, soll null sein.
Und wenn wir den Sucks, also wenn wir einen Nachfolger haben hier,
dann können wir auf N abbilden.
Mir fällt gerade übrigens auf, wir brauchen das Fixpoint hier
gar nicht, wir können auch Definition nehmen.
Ja, das muss auch mit Definition gehen.
Weil wir machen ja gar keinen rekursiven Aufruf.
Können wir gleich mal austesten
Es ist gar keine, sie sehen, es ist,
ich habe gerade Unsinn erzählt, weil da Fixpoint stand,
habe ich von der rekursiven Definition geredet.
Das ist gar nicht der Fall. Wir haben hier keine
Rekursion drin, wir haben hier nur Patter Matching drin.
Ja, auf den Seiten. Hier und hier steht nicht
irgendwie wieder irgendetwas mit Brad. Und darum ist es einfach
eine Sache, die wir auch ganz ohne Rekursion bilden können.
Dann kommen wir jetzt zu einem nächsten Beweis. Und zwar
nochmal dem Gleichen. Aber wir werden ihn jetzt etwas anders beweisen.
Indem wir zwar auch wieder Proof All machen, Proof All, Proof
Im, also der Anfang ist noch gleich.
Aber jetzt können wir die Pre-Decesser-Funktion gleich benutzen.
Perfekt, die Quality Function ist auch
noch gleich
So, und jetzt kann ich,
anstatt dass ich das hier so schreibe,
wie ich sie oben geschrieben habe, ich kopiere das nochmal runter.
Anstatt dass ich jetzt also mit dieser Funktion arbeite,
arbeite ich mit Freddy Sasser, Freddy Sasser.
So. Und dann kriege ich diesen Ausdruck hier. Also wir beweisen nochmal,
wir beweisen jetzt nochmal das Gleiche mithilfe von der Pre-Decessor-Funktion,
um zu sehen,
wie sie
uns helfen kann
So. Und jetzt kann ich Folgendes machen. Ich kann sagen
, simple in H1. Denn Pretty Sasser von Suck N. Sie
sehen, dass hier war definiert. Das muss also,
muss also ausrechnen können. Und das tut er auch.
Und der Rest ist dann wieder analog zu oben.
Kommen wir jetzt? So Addition. Die Addition ist ja
ein wichtiger, wichtige Funktion oder Operation in den natürlichen Zahlen.
Wir sehen hier ein Beispiel, 0 plus 4 soll 4 sein,
es kommen, glaube ich, ein paar.
Ops 1 plus 4 ist 5. Und wir könnten das auch so ausdrücken,
dass eins, das ist ja zack von 0 plus 4,
gleich 5 ist.
Und statt zack von 0 plus 4 kann ich auch schreiben,
zack,
von 0 plus
Und 0 plus 4 weiß ich hier oben,
ist 4. Und dann kann ich Sack von 4,
habe ich zack von 4 und das wiederum ist
5. Machen wir das hier jetzt auch noch mal?
Also hier fehlt immer ein Schritt. Also das erste ist 1 plus,
also 2 plus 4, ist Sack von 1 plus 4.
Da ist das Sack erstmal noch vor der 1 und die
Klammerung ist anders. Hier eine Klammer, da eine Klammer,
plus 4, okay? Und dann kann ich das,
zack, einmal rausziehen, ist die Überlegung,
habe ich Sack von 1
plus 4
Und jetzt kann ich hier das wieder rausziehen, wie ich
es hier oben schon gemacht habe. Und er halte Sack von vier,
also Sack von, also hier steht vier, Entschuldigung,
dann steht das Sack von vier, das ist fünf,
aber ich sack von diesem fünf und es ist wiederum sechs.
Machen wir es mal allgemein. Da ist es fast besser
zu sehen. Also, wenn ich Endplus eben ausrechnen möchte
und ich möchte das rekrusiv erklären, wie das funktioniert.
Dann habe ich als Basisfall, dass das N
vorne Null ist
Also, ich kann erklären, was 0 plus M ist.
Und 0 plus M ist M. Das definiere ich so.
Und jetzt muss ich klären, was ist N plus M,
wenn das N sich zusammen gegeben ist durch einen Zack von Endstrich,
das muss ich eine rekursive Definition finden dafür.
Und das tut man, indem man sagt, okay,
das ist zack von, und jetzt kommt Endstrich plus M.
Das Endstrich hat eine kleinere Struktur, als das Zack-Endstrich.
Deswegen können wir Endstrich plus M bereits ausrechnen. Okay.
Das ist ein wichtiger Punkt. Hier ist die Rekursion,
die wir anwenden, Endstrich plus M wird hier bereits benutzt,
was wir nur deswegen können,
weil das Endstrich die geringere Struktur hat und wir uns
im Zweifel bei N gleich Null abstützen können.
Wie sieht das in Cork aus
Diesmal tatsächlich berechtigterweise Fixpoint, wir kommen nicht drum rum,
denn wir haben hier wirklich eine rekursive Definition.
Von der Addition, die ein Parameter bekommt,
nämlich das erste Argument, das zweite Argument,
nehmen wir an der Stelle rein und wir kriegen dann wieder eine natürliche Zahl raus.
So, wir holen uns erstmal das zweite Argument,
das wir es zur Verfügung haben.
Das ist hier Lamna M aus den natürlichen Zahlen und
nun matchen wir unser N. Wenn es Null ist,
geben wir M zurück
Das ist hier diese Zeile.
Und wenn unser Ähn sich aus einen Zack entbildet,
die haben wir Zack in Strich genannt, Zack N,
dann machen wir daraus Zack von Addition NM.
Das ist hier Addition NM sozusagen und hier der Sack davon.
Und die Multiplikation kann man ganz analog definieren,
das machen sie dann in der Übung
Um was für einen Cock bereitgestellt haben. Wir können leider
das normale Plus nicht verwenden. Das konnte ich nicht überschreiben.
Stattdessen nehmen wir ein anderes Zeichen. Sie kriegen dieses Zeichen hin,
indem sie in Cock eingehen, backslash at, also ADD.
So, dann schauen wir uns jetzt mal Theorem an.
Und jetzt kommt das erste wirklich ganz typische Theorie,
nämlich durch vollständige Induktion.
Also sie sehen, hier wird die Definition von den natürlichen Zahlen
noch gemacht in Cock
Und die Notation, dass wir dieses Plus benutzen können.
Und hier als Beispiel, wir können das ausrechnen,
dass zum Beispiel jetzt 5 plus 3 gleich 8 ist.
So, kommen wir jetzt zum Theorien.
Das ist das Assoziativgesetz für die natürlichen Zahlen.
Also denken Sie an die implizite Klammerung N plus,
in Klammern M plus K
ist stets N plus M plus
So, und jetzt,
wie angekündigt, wir beweisen das jetzt über vollständige Induktionen.
Haben wir zwei Teilziele, nämlich erstmal den Induktionsanfang.
Gut. Schauen wir uns das erstmal als Menschen an,
bevor wir irgendwie rumtütteln am Computer.
Das hier, hier steht eine Klammer, null plus,
irgendetwas ist irgendetwas. Heißt, dieses hier muss er
ausrechnen können zu M plus
Und wenn wir uns die Geschichte ja ansehen,
dann haben wir das ja dieses hier ausgerechnen muss zu M
und das deswegen auf beiden Seiten M Plus K stehen muss. Heißt,
wir sollten keine Probleme kriegen und ziehen jetzt einfach nur die beiden anderen Variablen herein,
dass wir sie fest, aber beliebig in der Hand haben, rechnen aus,
was auszurechnen ist und können an der Stelle unseren Beweis,
unseren ersten unser erstes Unterziel bei ihnen, natürlich nur nicht dem Beweis.
Das ist eine Frage, ja? Ja, nee,
kurze Zwischenfrage, Innovation läuft immer über die erste Frage,
ja, wird das boardig? Ja. Wenn sie das jetzt anders haben wollen,
und sie wollen irgendwie eine Induktion über K führen zum Beispiel,
naja, dann machen sie sich einen Cut, ja,
wo sie sagen, für alle K in N,
für alle N in N, für alle M oder so,
gilt diese Aussage, und dann erklären sie, wieso Also dann machen sie das erst mal.
Dann machen sie erst mal einen lieberen Ass hört.
Dann machen sie das erst mal. Und dann erklären sie
noch mal, wieso sie diese All-Quantifikation verwechseln können.
Also umtauschen können die Reihenfolge. So,
dann muss man ja zu so einer Freundin,
einmal im Fußball gab es ihnen oder immer das.
Ja, man kann auch zweimal Poof-Binduction machen.
Das geht natürlich auch. Also da hat man die ganzen Kombinationen.
Man muss eben immer gucken,
was ist sinnvoll und man sieht das immer daran,
also als ersten Hinweis, wie sind die Funktionen definiert?
Also worüber sind sie rekursiv definiert
Denn damit müssen wir letztendlich arbeiten. Gut, dann schauen wir mal an,
uns mal an, was wir jetzt tun können.
Versuchen wir, ob wir auskommen, ohne auf weitere Induktionen zu machen.
Das heißt, wir wählen M und K,
beliebe ich aber fest und versuchen diese Aussage zu zeigen.
Was steht hier? Hier steht Zack von N,
Fluss, Entschuldigung, doch, Zack von N plus irgendetwas.
Also das ist so geklammert, ja
Und nach Definition können wir das zack herausziehen. Das heißt,
was hier steht, ist zack von N plus, Klammer auf,
M plus K, kommen wir zu, klammer zu.
Und was hier passiert, ist auch,
dass wir das zack vorziehen können.
Dieser Teil hier erstmal ist zack von N plus M.
Dann haben wir zack von irgendetwas plus K. Das heißt,
es ist zack von irgendetwas plus K.
Und all das rechnet uns cock aus mit Simple
Und wir sehen, aha, das ist also, was rauskommt. Gut,
und jetzt haben wir ja zum Glück eine Induktionshypothese,
die uns sagt,
dass wir N plus M plus K für M und K
sogar beliebig umändern können in N plus M plus K.
Ja, dann machen wir das doch mal genau mit diesen
Werten, denn die kommen hier unten vor.
Also use All 2, IHN mit M und K.
Das ist übrigens typisch, dass man genau die Variable nimmt,
die dann in der Allquantifikationsschule stehen.
Das ist jetzt nicht immer so, aber oft kommt das vor.
Und jetzt können wir unsere Gleichheit benutzen, IHN0. Schwupp.
Und damit steht es links und rechts das Gleiche.
Vielleicht eine kurze Anmerkung noch
Ich könnte mir vorstellen, wenn sie selbst so ähnliche Aufgaben lösen,
dass hier eine kleine psychische Barriere entstehen könnte,
weil sie sich denken, ich muss irgendwie erst das Sack wegbekommen.
Um dann N plus N plus K gleich N plus M
plus Kanu noch zeigen zu müssen, was ich habe.
Das ist aber nicht der Fall. Stören sie sich nicht
daran, dass außen noch ein Sack steht.
Wenn innen dann genau das Gleiche widersteht,
ist das völlig ausreichend, um die Aussage zu zeigen.
Gut, das haben wir gemacht.
Dann kommen wir zur Komutativität
Und sie werden sehen, die hat es durchaus in sich,
aber ich verrate es, wir werden es gleich sehen.
Also, wir wollen zeigen,
dass N plus M stets M plus N ist.
Gut, was tun wir? Proof by Induction. So,
jetzt, ich mache mal, ich spiele jetzt mal den naiven,
wir machen Proof all,
wir machen simpel und dann sollte doch alles
sich in Wohlgefallen auflösen
Ja, aber das muss er doch sehen,
das muss er doch sehen, dann muss er nicht.
Also, M plus 0 löst er nicht auf. Nicht,
weil er dumm ist, sondern weil nirgendwo steht,
dass M plus 0 M sein soll.
Wir haben nur gesagt, dass 0 plus etwas, das etwas ist.
Nicht, dass etwas plus 0 etwas ist, dass wir
das beliebig austauschen können, versuchen wir gerade erst zu beweisen.
Also brauchen wir hier irgendwie ein Lämmer,
was uns
genau das sagt
Lämmer, äh, N at Zero. Also,
wir müssen nachweisen, dass für alle natürlichen Zahlen gilt,
dass N plus 0 gleich N ist.
Gut, wie zeigen wir das? Ja,
nicht proof all, dann haben wir das gleiche Problem.
Proof by induction, genau
So. 0 plus 0 können wir jetzt aber wieder ausrechnen.
0 plus 0 hat die Form 0 plus irgendetwas.
Okay. Das heißt, er kann 0 plus 0
zu 0 ausrechnen, wenn wir ihm hier simpel sollen.
Schupp. Deswegen ist der Induktionsanfang einfach. Gut,
und jetzt müssen wir noch die Geschichte zeigen.
Wir wissen aber, dass Zack N, plus irgendetwas,
unabhängig davon, dass das jetzt die Null ist,
Zack von N
plus etwas ist
Dann nutzen wir das einmal aus. Dann kriegen wir also
statt Sack N plus 0, King is Sack von N plus 0.
Und nach Induktionshypothese wissen wir nun, das N plus 0
gleich eng ist, das wenden wir an.
Also use, equality, IHN und haben jetzt zack
N gleich Sack N. Was dann offenbar wahr ist.
Also haben wir jetzt diese Geschichte zur Verfügung
Und können sie verwenden? Ja, bauen wir sie meinetwegen
erst an der Stelle ein. Fact, and at null
. So, und jetzt müssen wir das anwenden auf,
in dem Fall M, ja?
Schupf. Gut, dann machen wir Use Equality,
Hanuel. Und können jetzt
unseren Induktionsanfang abschließen
Gut, machen wir also weiter. Wieder voller Hoffnung,
Proof All. Wir machen simpel, also wir rechnen aus.
Dieses Suck-N plus M hier vorne. Und genau das kann er auch ausrechnen,
dass er das insofern, dass er das Suck vorzieht.
Und N plus M hier übrig bleibt.
Aber mit der rechten Seite kann er wieder nichts anfangen.
M plus Suck N. Weiß ja nicht, was zu tun ist.
Okay. Hier, diese Stelle. Das kann er nicht
weiter vereinfachen.
Weil wir nur über die Struktur vorne die Addition definiert haben.
Also brauchen wir ein weiteres Lämmer. So. N-A-Z-Sack-M. Für alle
N-M. Natürliche Zahlen gilt N-A-Z-Sack von M gleich, zack,
von, ups, in A-M. Was ist noch in
die Zeile,
so gerade so
Ja, und das zeigen wir jetzt,
wieder über vollständige Nutionen. Proof by induction, Induktionsanfang,
ziehen das innen rein und jetzt null plus Suck M
keine ausrechnen und null plus M kann er ausrechnen,
sodass sich alles in Wohlgefallen auflöst und wir
nur noch Proof Equality sagen müssen
Und im Induktionsschritt gucken wir uns das auch an.
Wir haben also, wir ziehen das eben rein.
Sei eben beliebig aber fest. Jetzt haben wir hier
die Struktur, zack, N plus zack, M.
Das heißt, wir können hier dieses Zack,
das andere nicht, aber dieses Sack können wir rausziehen.
Genauso können wir an der Stelle das Zack hier rausziehen.
Das sollte sein, was passiert.
Also wir haben dieses Zack hier rausgezogen, links
Und rechts wurde dieses Zack innerhalb der Klammern rausgezogen.
Deswegen sind jetzt hier so eine doppelte Klammerung mit Ziel. So,
und damit wir jetzt hier wieder die Gleichheit insgesamt haben,
reicht es N plus Suck M gleich Suck N plus M zu haben.
Das ist aber genau das, was hier steht.
Oben in unserer Induktionshypothese. Also machen wir Use all EHN
mit M.
Was habe ich
jetzt gemacht
Achso, ich bin im Tepp,
bin nicht gesprungen aus Versehen, sorry.
So, also wir machen Use all eHN mit M.
Und jetzt sehen wir die gleichen, die wir benutzen können.
Use equality eHN0 schwupp. Und jetzt steht das Gleiche da
. Wir können den Beweis abschließen.
So, also jetzt haben wir unseren zweiten Hilfssatz bewiesen.
Schauen wir mal, ob wir beim eigentlichen Satz weitermachen können.
Wir hatten diese Situation erreicht, können jetzt benutzen,
dass NAZAKM und müssen jetzt die konkreten Werte einsetzen.
Was ist das in dem Fall? Dieses N0 ist
dieses M und dieses M0 ist dieses N. Okay.
Das heißt also, für N0 setze ich M ein und
für M0 setze ich N ein
Und ich sollte ihm auch sagen, dass ich zwei Sachen einsetze.
Dann steht die M plus Suck N,
lässt sich ersetzen durchs Sack von M plus N. Machen wir das?
Use Equality Hanull. Und jetzt sehen wir das hier in
den Klammern N plus M steht und hier steht M plus N.
Und jetzt können wir unsere Induktionshypothese benutzen. Ja? Denn
für einen wissen wir bereits, dass wir tauschen können.
Also use all eHN mit
Und jetzt machen wir Use, Equality, IHN0,
also N plus M, gleich N plus N.
Und damit haben wir jetzt auf beiden Seiten das Gleiche.
Wir können unseren Beweis abschließen. Gut,
also Sie haben gesehen, um die Kommentativität zu beweisen,
muss man schon ein paar Hilfssätze benutzen, also erstmal herleiten.
Und ein bisschen genauer hingucken,
was hat man eigentlich gerade zur Verfügung,
was braucht man noch und wie kann man das kombinieren,
um zum gewünschten Ergebnis
zu kommen
Gut, dann will ich auch nochmal über Ordnung kurz sprechen.
Und zwar kennen Sie das N-Kleiner gleich M und das haben Sie wahrscheinlich Ihr Leben lang immer irgendwie benutzt,
ohne sich Gedanken darüber zu machen,
wie man es konkret definieren kann und wie es definiert wird,
ist, dass man sagt,
es gibt ein K mit Endfluss K gleich M.
Das heißt, Blairs Eagle, das wird dann später so geschrieben werden,
Ist definiert als eine Eigenschaft, die zwei Zahlen bekommt und sagt,
also wenn diese beiden Zahlen reinbekommt,
es gibt ein K mit N plus K gleich M.
Und dann können wir Endkleiner gleich M durch eine Notation festlegen,
beziehungsweise Endgrößer gleich M ebenso.
Ja. Dann schauen wir uns dazu auch ein Theorie an.
Also Sie sehen hier nochmal die Definition, Und wie Sie sehen,
sind Sie hier gerade nichts, das muss ich ändern.
Ach, komm schon nach links. Nach links,
so. Hier sehen Sie Notation, eng größer gleich.
Elm wird festgelegt und in kleiner gleich M. Und hier kommt jetzt
der Satz. Also zu zeigen ist, jetzt beispielsweise,
dass Zack N, kleiner Gleichsack M ist,
genau dann, wenn N,
kleiner gleich M ist
So. Wie zeigen wir das? Ist ja jetzt eine Entscheidung.
Wie geht man da ran? Also wir haben zwei Möglichkeiten
. Ja, da sind wir uns einig. Entweder proof
all oder proof by induction. Eine andere sinnvolle Möglichkeit,
um den Al-Quanto hier zu behandeln, haben wir nicht.
Benutzen wir eine rekursiv definierte Funktion
Kleiner gleich ist keine rekursiv definierte Funktion. Also können wir
ja mal probieren, ob wir ohne Induktion durchkommen.
Also proof all, proof all. Und jetzt,
wie ging das nochmal? Proof if, ne?
Haben also zwei Dinge zu zeigen. Gut,
wir haben eine Implikation zu zeigen, lösen wir das
erstmal auf
Wir haben jetzt also Suck and, kleiner,
gleich Suck, M und N, kleiner, gleich M.
Und so üblicherweise, wenn man irgendwelche Abgaben bekommt von Studenten,
dann ist es ganz häufig,
dass irgendwie an dieser Stelle dann die Probleme entstehen.
Da gibt es aber keinen Grund zu.
Wir können jetzt einfach unsere Definition für kleiner gleich benutzen,
die wir haben. Heißt, wir sagen, Unfold.
Das ist übrigens LEQ als Abkürzung in
Sagt uns, wir können die Aussage, zack,
en, kleiner, gleich Suck, M,
Auflösen in, es gibt ein K mit zack,
N plus K gleich Suck M.
Also machen wir use Existence H. Sie wissen das,
dann wird K angenommen mit dieser entsprechenden Eigenschaft, zack,
N plus K gleich Suck M.
Und jetzt haben wir N-Kleiner gleich eben zu zeigen.
Naja, auch dort können wir jetzt erstmal sagen,
bitte löst doch mal das Kleiner gleich auf
Heißt, wir haben auch einen Kanul zu filmen mit Anne
Plus K0 gleich M. Haben Sie einen Vorschlag für dieses K0
? Jemand anders, ich habe es registriert. Jo.
K, genau. Proof Existence with K. Das heißt,
wir haben jetzt zu zeigen, dass N plus K
gleich M ist
Gut, wie kriegen wir das hin?
Jo. Ihr müsst euch doch noch in Harper einfacken können.
Ja. Simple in Har machen wir das mal.
Und da haben wir diese Geschichte.
So. Ja
Also sie haben gestern bei dem einen Theorien in den Übungen
Probleme gehabt, als sie Vorjährige bewiesene Sätze benutzen mussten.
Dieser Sätze sollten sie sich bewusst sein, damit sie sie immer wieder abrufen können.
In dem Fall wäre jetzt meine Hoffnung gewesen, dass wenn sie sehen,
zack, von etwas gleich sack, von etwas,
sofort die Alarmglocken angehen oder die Freudensglocken in dem Fall,
die ihnen sagen, ah, das haben wir doch,
da hatten wir doch,
da hatten wir,
wo hatten wir denn
Zum Beispiel hier. Also, Facts, Pratts,
App, holen wir uns rein. Und müssen jetzt
zwei Werte einsetzen, nämlich hier konkret, welche Werte?
Naja, dieses Zack in Null muss diesem Zack N plus
K entspringen. Das heißt N-0 muss N plus K sein
Und M.0 muss dieses M sein. Und ich muss natürlich
noch sagen, dass ich das in Hannull machen möchte.
Jetzt können wir sagen, Proof Implication,
H1 und H. Wir werden also Modus Polens an.
Ach, Use Implication natürlich. So. Und jetzt haben wir
genau das herausgefiltert, was wir zeigen wollten.
Also Use
Damit ist die eine Richtung gezeigt. Wie sieht es mit
der anderen Richtung aus? Proof Implication natürlich wieder. Joa,
was einmal funktioniert, funktioniert wahrscheinlich auch noch einmal.
Also machen wir Unfold. Ness Equal. Achten Sie übrigens
auf die Anführungsstrichen. Ich kann stattdessen auch machen Unfold,
Less Equal. In H, das geht auch.
Oder ich mache es, wenn ich das Zeichen benutzen möchte,
kann ich nicht einfach so machen.
Das will ja nicht, sondern da muss ich es
in Anführungsstrichen machen.
Dann wählen wir, also wählen wir nicht,
sondern dann wissen wir, okay, es reicht K
als beliebig aber fest anzunehmen mit N plus K gleich M.
Machen wir das also? Use, existence H. Dann haben wir
N plus K gleich M. Ja, und dann gehen wir
wieder unten in das Ziel hinein und lösen da auch nochmal.
Das Less Equal Ups, das lässt Equal auf.
Und die Existenz zeigen wir jetzt natürlich wieder mit dem
Und müssen jetzt die Geschichte hier zeigen.
Das ist im Grunde einfach, was können wir tun?
Die man mal von hier... Was tun wir?
Ja. Simpel. Use quality, ja?
Genau. Also Usy quality, ha, und jetzt sind
wir fertig,
Sehr schön. Proof, equality. So,
Sie haben uns also hier beispielhaft an diesem Satz einmal gesehen,
wie man mit diesen Stellen,
mit diesen Definitionen von kleiner gleich und größer gleich,
also hier nur kleiner gleich umgehen kann.
Sie haben auch gesehen, dass der Umgang oder
das Beweisen von denen über natürlichen Zahlen durchaus vielfältig ist.
Wir haben es sehr unterschiedliche Ansätze gehabt,
um Dinge zu beweisen
Erstens, die Geschichte, dass wir wie so ein Pattern-Matching benutzt haben.
Dann hatten wir Proof by Induction. Und dann hatten wir
einfach mit Proof All zu arbeiten und dürfen auflösen von Definitionen
benutzen von irgendwelchen Eigenschaften, die wir schon haben.
Das bleibt auch so vielfältig. Welche Wahl sie treffen,
da kriegen sie nach und nach ein Gespür für.
Sie haben, wie gesagt, den heutigen Tag und auch morgen
Vormittag eine ganze Reihe von im großen Teil Beweisaufgaben durchzuführen.
Und dort werden sie mit diesen verschiedenen Strategien vertraut werden.
Weil ich jetzt die Abschlussrede halte, ja, es ist
die letzte Früh, okay. Heute, organisatorisch nochmal,
für diejenigen, die die Mail nicht bekommen haben,
gehen wir nicht den Computerraum runter, der steht uns heute leider nicht zur Verfügung.
Das heißt, sie müssen heute an ihren eigenen Laptops arbeiten und
sich gegebenenfalls so zusammentun, dass sie daran arbeiten können.
Ich sage noch ein Wort zum Übungsblatt,
bevor es losgeht, das ist die andere Datei.
Nein, das ist sie auch nicht, habe ich
die beide jetzt? Doch, da ist sie.
Schau gleich, ob ich es schon hochgeladen habe
Dort steht oft, wollen wir es beispielsweise, führen Sie hierfür zu,
ja, hier steht sogar zunächst ein natürlich sprachlichen Beweisender Nacheinbeweisenden Kork.
Später kommt aber auch sowas wie beweisen Sie in Cock und
innatürlicher Sprache. Aufgrund der Beobachtung, die wir vorgestern,
auch vor allen Dingen gestern auch gemacht haben,
empfehle ich Ihnen stark, fangen Sie an,
ein natürlich sprachlichen Beweis zu führen.
Machen Sie also erst einen Beweis in natürlicher Sprache,
komplett fertig und erst,
wenn Sie das getan haben,
widmen Sie sich Cock bei diesen Aufgaben
Also kleine Aufgaben, Änderungen.
Gut. Also die Vorlesung ist dann
damit erstmal beendet