Induktives Definieren 4. Induktives Definieren - Themenübersicht Induktives Definieren Natürliche Zahlen Operationen auf natürlichen Zahlen Induktive Algorithmen Induktiv definierte Mengen Binärbäume Boolesche Terme Syntaktische Substitution Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 108 / 140 Induktives Definieren 4.1 Natürliche Zahlen Natürliche Zahlen Definition 4.1 (Peano-Axiome) (4.1) P1 0 ist eine natürliche Zahl: 0 ∈ N. P2 Jede natürliche Zahl n besitzt eine eindeutig bestimmte natürliche Zahl s(n) als Nachfolger: ∀ n ∈ N. ∃ m ∈ N. m = s(n) P3 0 ist nicht Nachfolger einer natürlichen Zahl: @ n ∈ N. 0 = s(n) P4 Verschiedene natürliche Zahlen haben verschiedene Nachfolger: ∀ m, n ∈ N. n 6= m ⇒ s(n) 6= s(m) P5 Induktionsaxiom: Ist M ⊆ N mit 0 ∈ M und der Eigenschaft, dass aus n ∈ M auch s(n) ∈ M folgt, so muss M = N gelten. Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 109 / 140 Induktives Definieren 4.1 Natürliche Zahlen Existenz und Eindeutigkeit des Vorgängers Lemma 4.1 Jede von 0 verschiedene natürliche Zahl n ist Nachfolger einer eindeutig bestimmten anderen natürlichen Zahl. Diese wird auch als Vorgänger von n bezeichnet. Beweis Sei n ∈ N von 0 verschieden. Zunächst zeigen wir, dass n Nachfolger einer natürlichen Zahl m ∈ N ist bzw. in der Menge M 0 liegt, die definiert ist durch: M 0 =df {s(m) | m ∈ N}. Sei weiter M ⇔df M 0 ∪ {0}. Wegen (P2) impliziert m ∈ M auch s(m) ∈ M. Damit liegen die Voraussetzungen des Induktionsaktioms (P5) vor und es folgt M = N. Wegen (P3) gilt außerdem M 0 = N\{0}. Somit gilt n ∈ M 0 . Die Eindeutigkeit des Vorgängers folgt direkt aus Axiom (P4). Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 110 / 140 Induktives Definieren 4.1 Natürliche Zahlen Operationen auf natürlichen Zahlen Definition 4.2 (Addition natürlicher Zahlen) (4.2) Die Addition zweier Zahlen aus N ist induktiv definiert durch 0 + m =df m s(n) + m =df s(n + m) Definition 4.3 (Multiplikation natürlicher Zahlen) (4.2) Die Multiplikation zweier Zahlen aus N ist induktiv definiert durch 0 · m =df s(n) · m =df Prof. Dr. Bernhard Steffen 0 m + (n · m) Mathematik für Informatiker 1 - 2013 111 / 140 Induktives Definieren 4.1 Natürliche Zahlen Beispiele Addition von 2 und 1 s(s(0)) + s(0) (b) = (b) = (a) = s(s(0) + s(0)) s(s(0 + s(0))) s(s(s(0))) Multiplikation von 2 und 3 s(s(0)) · s(s(s(0))) (d) = (d) = (c) = .. . (a) = Prof. Dr. Bernhard Steffen s(s(s(0))) + (s(0) · s(s(s(0)))) s(s(s(0))) + (s(s(s(0))) + (0 · s(s(s(0))))) s(s(s(0))) + (s(s(s(0))) + 0) s(s(s(s(s(s(0)))))) Mathematik für Informatiker 1 - 2013 112 / 140 Induktives Definieren 4.1 Natürliche Zahlen Operationen auf natürlichen Zahlen Definition (Induktiv fortgesetzte Summen und Produkte) k X ni =df 0 k−1 P i=1 ( k Y 1 ni =df i=1 Prof. Dr. Bernhard Steffen ( falls k = 0 ni ) + nk sonst i=1 k−1 Q falls k = 0 ni ) · nk sonst i=1 Mathematik für Informatiker 1 - 2013 113 / 140 Induktives Definieren 4.1 Natürliche Zahlen Operationen auf natürlichen Zahlen Definition 4.1 (Fakultät und Potenzen) (Beispiel 4.1) n! =df n Q i = (. . . (1 · 2) . . .) · n) i=1 mn =df n Q i=1 Prof. Dr. Bernhard Steffen m = (. . . (m · m) . . .) · m) . | {z } n mal Mathematik für Informatiker 1 - 2013 114 / 140 Induktives Definieren 4.1 Natürliche Zahlen Operationen auf natürlichen Zahlen Lemma 4.2 Für alle n ∈ N gilt: n + 1 = s(n). Beweis (1/2) Wir definieren die zu der obigen Gleichheit gehörige Menge M durch: M =df {n ∈ N | n + 1 = s(n)}. Offensichtlich gilt 0 ∈ M, denn: 0 + 1 = 0 + s(0) Prof. Dr. Bernhard Steffen (Def . 4.2.a) = Mathematik für Informatiker 1 - 2013 s(0). 115 / 140 Induktives Definieren 4.1 Natürliche Zahlen Operationen auf natürlichen Zahlen Lemma 4.2 Für alle n ∈ N gilt: n + 1 = s(n). Beweis (2/2) Für n ∈ M folgt weiter auch s(n) ∈ M, denn: s(n) + 1 (Def . 4.2.b) = s(n + 1) (n∈M) = s(s(n)). Also folgt M = N mit dem Induktionsaxiom (P5), womit die Aussage bewiesen ist. Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 116 / 140 Induktives Definieren 4.1 Natürliche Zahlen Türme von Hanoi Für n = 0 ist nichts zu tun. Für n > 0 Verschiebe n − 1 Scheiben von Stapel A nach B, wobei C als Hilfsstapel dient. Verschiebe die n-te Scheibe von Stapel A nach C . Verschiebe n − 1 Scheiben von Stapel B nach C , wobei A als Hilfsstapel dient. Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 117 / 140 Induktives Definieren 4.1 Natürliche Zahlen Induktiv strukturierte Mengen Definition 4.4 (4.4) Sei 1 A eine Menge elementarer oder atomarer Bausteine und 2 O eine Menge von Operatoren (oder Konstruktoren) mit zugehörigen Stelligkeiten k ≥ 1, die es erlauben, kleinere Bausteine zu grösseren Einheiten zusammenzusetzen. Die durch A und O induktiv beschriebene Menge M ist die kleinste Menge, für die gilt: 1 A ⊆ M und 2 Ist o ein Operator der Stelligkeit k und sind m1 , . . . , mk ∈ M, so ist auch o(m1 , . . . , mk ) ∈ M. Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 118 / 140 Induktives Definieren 4.2 Induktiv strukturierte Mengen Induktiv strukturierte Mengen: Binäre Bäume Beispiel 4.5 (4.2) Binäre Bäume sind die kleinste Menge mit 1 Der leere Binärbaum − ist ein atomarer Binärbaum und 2 Falls T1 und T2 Binärbaume sind, so ist auch [T1 , T2 ] ein Binärbaum. T1 ist linker und T2 rechter Teilbaum von diesem. [[[−, −], [[−, −], −]], [−, −]] Prof. Dr. Bernhard Steffen ' Mathematik für Informatiker 1 - 2013 119 / 140 Induktives Definieren 4.2 Induktiv strukturierte Mengen Induktiv strukturierte Mengen: Boolesche Terme Definition 4.6 (4.5) Sei V eine Menge von Booleschen Variablen, z.B. V = {X , Y , Z , ...}. Die Menge BT aller Booleschen Terme über V ist die kleinste Menge mit: 1 2 T, F und Boolesche Variable aus V sind atomare Boolesche Terme. Sind t1 und t2 Boolesche Terme, so sind auch ¬t1 , die Negation von t1 , ( t1 ∧ t2 ), die Konjunktion von t1 und t2 und ( t1 ∨ t2 ), die Disjunktion von t1 und t2 Boolesche Terme. Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 120 / 140 Induktives Definieren 4.2 Induktiv strukturierte Mengen Syntaktische Substitution Definition 4.7 (4.6) Die Substitution ist eine dreistellige Abbildung ·[·/·] : BT × BT × V → BT . t1 [t2 /X ] intuitiv: Der Term, der entsteht, wenn in t1 die Variable X an allen Stellen durch den Term t2 ersetzt wird. Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 121 / 140 Induktives Definieren 4.2 Induktiv strukturierte Mengen Syntaktische Substitution Definition 4.7 Die Substitution ist eine dreistellige Abbildung ·[·/·] : BT × BT × V → BT . t1 [t2 /X ] formal: Induktiv über den Aufbau von t1 T[t/X ] =df T F[t/X ] =df F t falls Y = X Y [t/x] =df Y sonst (¬t1 )[t/x] =df ¬(t1 [t/x]) (t1 ∧ t2 )[t/x] =df (t1 [t/x] ∧ t2 [t/x]) (t1 ∨ t2 )[t/x] =df (t1 [t/x] ∨ t2 [t/x]) Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 122 / 140 Induktives Definieren 4.2 Induktiv strukturierte Mengen Syntaktische Substitution Beispiel 4.8 (4.3) ¬(Y ∧ X )[t/X ] Prof. Dr. Bernhard Steffen = ¬((Y ∧ X )[t/X ]) = ¬(Y [t/X ] ∧ X [t/X ]) = ¬(Y ∧ X [t/X ]) = ¬(Y ∧ t) Mathematik für Informatiker 1 - 2013 123 / 140 Darstellung und deren Bedeutung 5. Darstellung und deren Bedeutung - Übersicht Darstellung und deren Bedeutung Zeichreihen Semantikschemata Backus-Naur-Form Induktive Semantikschemata Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 124 / 140 Darstellung und deren Bedeutung Repräsentation Repräsentanten der natürlichen Zahl ”‘vier”’: Dezimal: 4 Binär: 100 Unär: |||| Römisch: IV Umgekehrt: Unterschiedliche Interpretation der Repräsentation ”‘IV”’: Römische Zahl Akronym (Individualverkehr, Intravenös,..) Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 125 / 140 Darstellung und deren Bedeutung 5.1 Zeichenreihen Zeichenreihen Definition 5.1 (4.7) Sei A eine endliche Menge von Zeichen (auch Alphabet genannt). Eine Zeichenreihe (auch Wort) w der Länge n ∈ N über A ist eine Funktion w : {1, . . . , n} → A. Für n = 0 ist {1, . . . , n} leer. Man bezeichnet die Zeichenreihe als das leere Wort . Die Menge aller Zeichenreihen über A mit Länge n wird mit An bezeichnet (A0 = {}). Kleenesche Hülle A∗ von A: A∗ =df [ An . n∈N Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 126 / 140 Darstellung und deren Bedeutung 5.1 Zeichenreihen Zeichenreihen Definition 5.2 (4.8) Seien w1 und w2 Zeichenreihen der Länge n und m über A. Dann ist die Konkatenation von w1 und w2 definiert durch: w1 w2 : {1, .. . , n + m} → A w1 (i) falls 1 ≤ i ≤ n w1 w2 (i) = w2 (i − n) falls n + 1 ≤ i ≤ n + m Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 127 / 140 Darstellung und deren Bedeutung 5.2 Semantikschemata Semantikschemata Definition 5.3 (4.9) Ein Semantikschema ist ein Tripel (R, I, [[ · ]]) mit R: Menge der Repräsentationen, I: Menge der Informationen, [[ · ]] ⊆ R × I: Semantikrelation oder Interpretation. Statt [[ · ]](r ) schreibt man [[ r ]]. Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 128 / 140 Darstellung und deren Bedeutung 5.2 Semantikschemata Unärdarstellung natürlicher Zahlen Beispiel 5.4 (4.4) Ru =df {|}+ = {|, ||, |||, . . .}, Iu =df N+ = {1, 2, . . . }, [[ · ]]u ist definiert durch [[ || . . . | ]]u =df n. | {z } n Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 129 / 140 Darstellung und deren Bedeutung 5.2 Semantikschemata Dezimaldarstellung natürlicher Zahlen Beispiel 5.5 (4.5) Rd =df {0, . . . , 9}+ , Id =df N =df {0, 1, 2, . . .}, [[ · ]]d ist definiert durch [[ w ]]d =df n X 10n−i · [[ w (i) ]]z i=1 Dabei bezeichnet [[ · ]]z den Wert einer Dezimalziffer, also [[ 0 ]]z =df 0, . . . , [[ 9 ]]z =df 9. Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 130 / 140 Darstellung und deren Bedeutung 5.2 Semantikschemata Binärdarstellung natürlicher Zahlen Beispiel 5.6 (4.6) Rb =df {0} ∪ {1 w | w ∈ {0, 1}∗ } Ib =df N [[ · ]]b ist definiert durch [[ w ]]b =df n X 2n−i · [[ w (i) ]]bz i=1 Dabei bezeichnet [[ · ]]bz den Wert einer Binärziffer, also [[ 0 ]]bz =df 0 und [[ 1 ]]bz =df 1. Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 131 / 140 Darstellung und deren Bedeutung 5.2 Semantikschemata Binärdarstellung endl. Mengen natürlicher Zahlen Beispiel 5.7 (4.7) Rbs =df {0, 1}+ , Ibs =df P(N) und [[ · ]]bs ist definiert durch [[ w ]]bs = {|w | − i | i ∈ {1, . . . , |w |} ∧ w (i) = 1}. Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 132 / 140 Darstellung und deren Bedeutung 5.3 Backus-Naur-Form Backus-Naur-Form Definition (BNF) BNF besteht aus endlich vielen Regeln der Form <N> ::= w . Linke Regelseite: Nichtterminalsymbol Rechte Regelseite: Zeichenreihe (ggf. auch leer), die sowohl Nichtteminalsymbole als auch Terminalsymbole enthalten kann. Notation: Statt <N> ::= w1 ... <N> ::= wn schreibt man kurz Prof. Dr. Bernhard Steffen <N> ::= w1 | . . . | wn Mathematik für Informatiker 1 - 2013 133 / 140 Darstellung und deren Bedeutung 5.3 Backus-Naur-Form Beispiel zur Backus-Naur-Form Beispiel 5.8 (BNF für natürliche Zahlen) Die natürlichen Zahlen sind durch die folgende BNF definiert: <Nat> ::= 0 | s(<Nat>) Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 134 / 140 Darstellung und deren Bedeutung 5.3 Backus-Naur-Form BNF als Generator Definition (Ableitungsrelation) Seien T die Terminalzeichen, N die Nichtterminalzeichen und R die Regeln einer BNF, so ist die Ableitungsrelation ⇒ ⊆ (N ∪ T)∗ × (N ∪ T)∗ wie folgt definiert: w ⇒ w 0 ⇔df ∃ w1 , w2 ∈ (N ∪ T)∗ , A ::= w̃ ∈ R. w = w1 A w2 ∧ w 0 = w1 w̃ w2 ⇒k : Ableitungsfolge in k Schritten (k ∈ N) S ⇒∗ =df ⇒k : Beliebige Ableitungsfolge k∈N Von Nichtterminal A erzeugte Sprache: L(A) =df {w ∈ T∗ | A ⇒∗ w }. Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 135 / 140 Darstellung und deren Bedeutung 5.3 Backus-Naur-Form BNF als Generator Beispiel (Ableitungsfolge) <Nat> Prof. Dr. Bernhard Steffen ⇒ s(<Nat>) ⇒ s(s(<Nat>)) ⇒ s(s(s(<Nat>))) ⇒ s(s(s(0))) Mathematik für Informatiker 1 - 2013 136 / 140 Darstellung und deren Bedeutung 5.3 Backus-Naur-Form Beispiele zur Backus-Naur-Form Beispiel 5.9 (BNF für Dezimalzahlen) (4.9) <DezimalZahl> ::= <DezimalZahl><Ziffer> | <Ziffer> <Ziffer> ::= 0| . . . |9 Beispiel 5.10 (BNF für Boolesche Terme) (4.10) <BT>::= T|F| <V > | ¬ <BT> | ( <BT> ∧ <BT> ) | ( <BT> ∨ <BT> ) <V >::= X0 | X1 | . . . Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 137 / 140 Darstellung und deren Bedeutung 5.4 Induktive Semantikschemata Dezimaldarstellung natürlicher Zahlen Beispiel 5.11 (4.11) Rd =df {0, . . . , 9}+ , Id =df N =df {0, 1, 2, . . .}: Natürliche Zahlen (als Informationen, nicht als ihre Notation im Dezimalsystem!) und [[ · ]]d ist induktiv definiert durch Prof. Dr. Bernhard Steffen [[ z ]]d =df [[ z ]]z [[ w z ]]d =df 10 · [[ w ]]d + [[ z ]]d Mathematik für Informatiker 1 - 2013 138 / 140 Darstellung und deren Bedeutung 5.4 Induktive Semantikschemata Induktive Semantikschemata Definition 5.12 (Semantikfunktion (1/2)) (4.10) Die Semantikfunktion für Boolesche Terme ist eine Funktion [[ · ]] : BT → (BV → {w , f }), die einem Booleschen Term unter Zuhilfenahme einer Belegung einen Wahrheitswert zuordnet. Sie ist wie folgt induktiv definiert: [[ T ]]B (β) =df w [[ F ]]B (β) =df f [[ X ]]B (β) =df β(X ) für alle X ∈ V [[ (¬t1 ) ]]B (β) =df ¬([[ ˙ t1 ]]B (β)) [[ (t1 ∧ t2 ) ]]B (β) =df ([[ t1 ]]B (β) ∧˙ [[ t2 ]]B (β)) [[ (t1 ∨ t2 ) ]]B (β) =df ([[ t1 ]]B (β) ∨˙ [[ t2 ]]B (β)) Prof. Dr. Bernhard Steffen Mathematik für Informatiker 1 - 2013 139 / 140 Darstellung und deren Bedeutung 5.4 Induktive Semantikschemata Induktive Semantikschemata Definition 5.12 (Semantikfunktion (2/2)) (4.10) ˙ ∨˙ semantische Operationen auf den Wahrheitswerten Dabei sind ¬, ˙ ∧, {w , f }, die durch folgende Wahrheitstafel beschrieben sind: b1 f f w w b2 f w f w Prof. Dr. Bernhard Steffen ¬b ˙ 1 w w f f b1 ∨˙ b2 f w w w b1 ∧˙ b2 f f f w Mathematik für Informatiker 1 - 2013 140 / 140