• Keine Ergebnisse gefunden

Induktive Beweise und rekursive Definitionen

N/A
N/A
Protected

Academic year: 2022

Aktie "Induktive Beweise und rekursive Definitionen"

Copied!
24
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Induktive Beweise und rekursive Definitionen

Ubung¨ Logik in der Informatik HU Berlin

2. ¨Ubungsstunde

(2)

Programm f¨ ur heute

Rekursive Definition von Mengen

Rekursive Definition von Funktionen

Induktion ¨uberN

Koinzidenzlemma f¨ur AL

(3)

Programm f¨ ur heute

Rekursive Definition von Mengen

Rekursive Definition von Funktionen

Induktion ¨uberN

Koinzidenzlemma f¨ur AL

(4)

Rekursive Definition von Mengen

Eine rekursive Definition einer MengeM besteht aus:

Basisregeln der Form “m∈M”

Rekursiven Regelnder Form

“Sindm1, . . . ,mk ∈M, dann ist auchm∈M”, wobeim vonm1, . . . ,mk abh¨angt.

(5)

Rekursive Definition von Mengen (Beispiel)

Die MengeLaller Zeichenketten ¨uber dem Alphabet A := {x,:=,+,−,6=,;,while,do,end} ∪N,

die syntaktisch korrekteWHILE-Programmesind, ist wie folgt definiert:

Basisregeln:

(B1) F¨ur Zahleni,j,c∈Ngilt: xi:=xj+c ∈L.

(B2) F¨ur Zahleni,j,c∈Ngilt: xi:=xj−c ∈L.

Rekursive Regeln:

(R1) Sindw1∈Lundw2∈L, so ist auchw1;w2 ∈L.

(R2) Istw ∈Lundi∈N, so ist while xi6=0 dowend ∈L.

(6)

Rekursive Definition von Mengen

Zur Erinnerung: Die Menge L aller syntaktisch korrekten WHILE-Programme ist rekursiv wie folgt definiert:

Basisregeln:

(B1)ur Zahlen i,j,cNgilt: xi:=xj+c L.

(B2)ur Zahlen i,j,cNgilt: xi:=xjc L.

Rekursive Regeln:

(R1)Sind w1L und w2L, so ist auchw1;w2 L.

(R2)Ist wL und iN, so ist while xi6=0 dowend L.

Aufgabe 1:

Welche der folgenden Zeichenketten geh¨ort zur MengeLaller syntaktisch korrekten WHILE-Programme, welche nicht?

(1) x3:= x7−2

(2) x3:=1; x2:= x3+5

(3) while x16=0do x0:= x0+1; x1:= x1−1 end (4) x1:= x1+42; while x16=0 do x1:= x1−1

(7)

Programm f¨ ur heute

Rekursive Definition von Mengen

Rekursive Definition von Funktionen

Induktion ¨uberN

Koinzidenzlemma f¨ur AL

(8)

Rekursive Definition von Funktionen

SeiM einerekursiv definierteMenge und seiP eine beliebige Menge.

Die rekursive Definition einer Funktionf:M →P sieht folgendermaßen aus:

Rekursionsanfang:

F¨ur jede Basisregel der Form “m∈M” in der Definition vonM, definieref(m)∈P.

Rekursionsschritt:

F¨ur jede rekursive Regel der Form

“Sindm1, . . . ,mk ∈M, dann ist auch m∈M”

in der Definition vonM, definiere f(m)∈P ausf(m1), . . . ,f(mk).

(9)

Rekursive Definition von Funktionen, Beispiel (1)

Zur Erinnerung: Die Menge L aller syntaktisch korrekten WHILE-Programme ist rekursiv wie folgt definiert:

Basisregeln:

(B1)ur Zahlen i,j,cNgilt: xi:=xj+c L.

(B2)ur Zahlen i,j,cNgilt: xi:=xjc L.

Rekursive Regeln:

(R1)Sind w1L und w2L, so ist auchw1;w2 L.

(R2)Ist wL und iN, so ist while xi6=0 dowend L.

Aufgabe 2:

Definiere Funktionenf: L→Nundg:L→Nrekursiv, so dass f¨ur alle w ∈Lgilt:

f(w) := Anzahl der “:=” inw, g(w) := Anzahl der “;” inw.

(10)

Rekursive Definition von Funktionen, Beispiel (2)

Zur Erinnerung: Die Menge L aller syntaktisch korrekten WHILE-Programme ist rekursiv wie folgt definiert:

Basisregeln:

(B1)ur Zahlen i,j,cNgilt: xi:=xj+c L.

(B2)ur Zahlen i,j,cNgilt: xi:=xjc L.

Rekursive Regeln:

(R1)Sind w1L und w2L, so ist auchw1;w2 L.

(R2)Ist wL und iN, so ist while xi6=0 dowend L.

Aufgabe 3:

Zeige, dass f¨ur allew ∈Lgilt:

f(w) ≥ g(w) + 1.

(11)

Programm f¨ ur heute

Rekursive Definition von Mengen

Rekursive Definition von Funktionen

Induktion ¨uberN

Koinzidenzlemma f¨ur AL

(12)

Beweis durch vollst¨ andige Induktion ¨ uber N : Grundidee

F¨urn∈NseiA(n)eine Aussage ¨uber die Zahln.

Ziel: Zeige, dass f¨ur jedesn∈Ndie AussageA(n)gilt.

Ansatz: Nutze dasInduktionsprinzip:

Induktionsanfang:

Zeige, dassA(n)f¨ur die Zahl n= 0 gilt.

Induktionsschritt:

Zeige, dass f¨ur jede Zahln∈Ngilt:

FallsA(0), . . . ,A(n)

| {z }

Induktionsannahme

gelten, so auchA(n+ 1).

(13)

Beweis durch vollst¨ andige Induktion ¨ uber N : Grundidee

Induktionsanfang:

Zeige, dassA(n)f¨ur die Zahl n= 0 gilt.

Induktionsschritt:

Zeige, dass f¨ur jede Zahln∈Ngilt:

FallsA(0), . . . ,A(n)gelten, so auchA(n+ 1).

Dann gilt:

A(0) ist wahr gem¨aßInduktionsanfang.

A(1) ist wahr da A(0)gilt und wegen demInduktionsschritt f¨urn= 0. A(2) ist wahr da A(0)undA(1)gelten

und wegen demInduktionsschritt f¨urn= 1. A(3) ist wahr da A(0),A(1) undA(2)gelten

und wegen demInduktionsschritt f¨urn= 2.

A(4) . . . und so weiter.

F¨ur allen∈Ngilt also:

A(n+ 1) ist wahr da A(0), . . . ,A(n)gelten und wegen demInduktionsschritt f¨urn.

(14)

Beweis durch vollst¨ andige Induktion ¨ uber N : Grundidee

Induktionsanfang:

Zeige, dassA(n)f¨ur die Zahl n= 0 gilt.

Induktionsschritt:

Zeige, dass f¨ur jede Zahln∈Ngilt:

FallsA(0), . . . ,A(n)gelten, so auchA(n+ 1).

Dann gilt:

A(0) ist wahr gem¨aßInduktionsanfang.

A(1) ist wahr da A(0)gilt und wegen demInduktionsschritt f¨urn= 0. A(2) ist wahr da A(0)undA(1)gelten

und wegen demInduktionsschritt f¨urn= 1. A(3) ist wahr da A(0),A(1) undA(2)gelten

und wegen demInduktionsschritt f¨urn= 2.

A(4) . . . und so weiter.

F¨ur allen∈Ngilt also:

A(n+ 1) ist wahr da A(0), . . . ,A(n)gelten und wegen demInduktionsschritt f¨urn.

(15)

Beweis durch vollst¨ andige Induktion ¨ uber N : Grundidee

Induktionsanfang:

Zeige, dassA(n)f¨ur die Zahl n= 0 gilt.

Induktionsschritt:

Zeige, dass f¨ur jede Zahln∈Ngilt:

FallsA(0), . . . ,A(n)gelten, so auchA(n+ 1).

Dann gilt:

A(0) ist wahr gem¨aßInduktionsanfang.

A(1) ist wahr da A(0)gilt und wegen demInduktionsschritt f¨urn= 0.

A(2) ist wahr da A(0)undA(1)gelten

und wegen demInduktionsschritt f¨urn= 1. A(3) ist wahr da A(0),A(1) undA(2)gelten

und wegen demInduktionsschritt f¨urn= 2.

A(4) . . . und so weiter.

F¨ur allen∈Ngilt also:

A(n+ 1) ist wahr da A(0), . . . ,A(n)gelten und wegen demInduktionsschritt f¨urn.

(16)

Beweis durch vollst¨ andige Induktion ¨ uber N : Grundidee

Induktionsanfang:

Zeige, dassA(n)f¨ur die Zahl n= 0 gilt.

Induktionsschritt:

Zeige, dass f¨ur jede Zahln∈Ngilt:

FallsA(0), . . . ,A(n)gelten, so auchA(n+ 1).

Dann gilt:

A(0) ist wahr gem¨aßInduktionsanfang.

A(1) ist wahr da A(0)gilt und wegen demInduktionsschritt f¨urn= 0.

A(2) ist wahr da A(0)undA(1)gelten

und wegen demInduktionsschritt f¨urn= 1.

A(3) ist wahr da A(0),A(1) undA(2)gelten und wegen demInduktionsschritt f¨urn= 2.

A(4) . . . und so weiter.

F¨ur allen∈Ngilt also:

A(n+ 1) ist wahr da A(0), . . . ,A(n)gelten und wegen demInduktionsschritt f¨urn.

(17)

Beweis durch vollst¨ andige Induktion ¨ uber N : Grundidee

Induktionsanfang:

Zeige, dassA(n)f¨ur die Zahl n= 0 gilt.

Induktionsschritt:

Zeige, dass f¨ur jede Zahln∈Ngilt:

FallsA(0), . . . ,A(n)gelten, so auchA(n+ 1).

Dann gilt:

A(0) ist wahr gem¨aßInduktionsanfang.

A(1) ist wahr da A(0)gilt und wegen demInduktionsschritt f¨urn= 0.

A(2) ist wahr da A(0)undA(1)gelten

und wegen demInduktionsschritt f¨urn= 1.

A(3) ist wahr da A(0),A(1)und A(2)gelten und wegen demInduktionsschritt f¨urn= 2.

A(4) . . . und so weiter.

F¨ur allen∈Ngilt also:

A(n+ 1) ist wahr da A(0), . . . ,A(n)gelten und wegen demInduktionsschritt f¨urn.

(18)

Beweis durch vollst¨ andige Induktion ¨ uber N : Grundidee

Induktionsanfang:

Zeige, dassA(n)f¨ur die Zahl n= 0 gilt.

Induktionsschritt:

Zeige, dass f¨ur jede Zahln∈Ngilt:

FallsA(0), . . . ,A(n)gelten, so auchA(n+ 1).

Dann gilt:

A(0) ist wahr gem¨aßInduktionsanfang.

A(1) ist wahr da A(0)gilt und wegen demInduktionsschritt f¨urn= 0.

A(2) ist wahr da A(0)undA(1)gelten

und wegen demInduktionsschritt f¨urn= 1.

A(3) ist wahr da A(0),A(1)und A(2)gelten und wegen demInduktionsschritt f¨urn= 2.

A(4) . . . und so weiter.

F¨ur allen∈Ngilt also:

A(n+ 1) ist wahr da A(0), . . . ,A(n)gelten und wegen demInduktionsschritt f¨urn.

(19)

Beweis durch vollst¨ andige Induktion ¨ uber N : Grundidee

Induktionsanfang:

Zeige, dassA(n)f¨ur die Zahl n= 0 gilt.

Induktionsschritt:

Zeige, dass f¨ur jede Zahln∈Ngilt:

FallsA(0), . . . ,A(n)gelten, so auchA(n+ 1).

Dann gilt:

A(0) ist wahr gem¨aßInduktionsanfang.

A(1) ist wahr da A(0)gilt und wegen demInduktionsschritt f¨urn= 0.

A(2) ist wahr da A(0)undA(1)gelten

und wegen demInduktionsschritt f¨urn= 1.

A(3) ist wahr da A(0),A(1)und A(2)gelten und wegen demInduktionsschritt f¨urn= 2.

A(4) . . . und so weiter.

F¨ur allen∈Ngilt also:

A(n+ 1) ist wahr da A(0), . . . ,A(n)gelten und wegen demInduktionsschritt f¨urn.

(20)

Beweis durch vollst¨ andige Induktion ¨ uber N

Aufgabe 4:

Zeige, dass f¨ur allen∈Ngilt:

n

X

i=0

2i = 2n+1−1.

Aufgabe 5:

Zeige, dass f¨ur allex∈Rmitx≥ −1 und allen∈Nmitn≥1 gilt: (1 +x)n ≥ 1 +n·x.

(21)

Beweis durch vollst¨ andige Induktion ¨ uber N

Aufgabe 4:

Zeige, dass f¨ur allen∈Ngilt:

n

X

i=0

2i = 2n+1−1.

Aufgabe 5:

Zeige, dass f¨ur allex∈Rmitx≥ −1 und allen∈Nmitn≥1 gilt:

(1 +x)n ≥ 1 +n·x.

(22)

Programm f¨ ur heute

Rekursive Definition von Mengen

Rekursive Definition von Funktionen

Induktion ¨uberN

Koinzidenzlemma f¨ur AL

(23)

Koinzidenzlemma f¨ ur AL

Notation:

ur eine Menge M schreiben wir2M oderP(M)um die Potenzmenge von M zu bezeichnen, d.h. die Menge aller Teilmengen von M.

Aufgabe 6:

Gib die rekursive Definition einer Funktionas: AL→ P(AS) an, so dass f¨ur alleϕ∈AL gilt:

as(ϕ) ={X:X ist ein Aussagensymbol, das inϕvorkommt}.

Aufgabe 7: (“Koinzidenzlemma f¨ur AL”)

Zeige, dass f¨ur alleϕ∈AL gilt:

SindI1,I2: AS→ {0,1}Interpretationen mit

I1(X) = I2(X) f¨ur alleX ∈as(ϕ), dann istJϕK

I1 =JϕK

I2.

(24)

Koinzidenzlemma f¨ ur AL

Notation:

ur eine Menge M schreiben wir2M oderP(M)um die Potenzmenge von M zu bezeichnen, d.h. die Menge aller Teilmengen von M.

Aufgabe 6:

Gib die rekursive Definition einer Funktionas: AL→ P(AS) an, so dass f¨ur alleϕ∈AL gilt:

as(ϕ) ={X:X ist ein Aussagensymbol, das inϕvorkommt}.

Aufgabe 7: (“Koinzidenzlemma f¨ur AL”)

Zeige, dass f¨ur alleϕ∈AL gilt:

SindI1,I2: AS→ {0,1}Interpretationen mit

I1(X) = I2(X) f¨ur alleX ∈as(ϕ), dann istJϕK

I1 =JϕK

I2.

Referenzen

ÄHNLICHE DOKUMENTE

• Weil Objekt-Methoden nur für von null verschiedene Objekte aufgerufen werden können, kann die leere Liste nicht mittels toString() als String dargestellt werden.. •

• Weil Objekt-Methoden nur für von null verschiedene Objekte aufgerufen werden können, kann die leere Liste nicht mittels toString() als String dargestellt werden.. •

der Compiler kennt nur, was er bereits gelesen hat, aber keine anderen Dateien → globale Variablen und alle Funktionen gelten vom Deklarationspunkt bis zum Ende der Datei

Die Funktion getchar() hat das erste Zeichen dem Tastaturpuffer Die Funktion getchar() hat das erste Zeichen dem Tastaturpuffer entnommen.. Es ist der Variablen x

I Mathematisch — unendliche Strukturen (natürliche Zahlen, Listen) I Implementierung — immer endlich (kann unendliche Strukturen repräsentieren) I Berechnung auf unendlichen

Praktische Informatik 3: Funktionale Programmierung Vorlesung 5 vom 13.11.2018: Rekursive und

Wir konstruieren eine 3-Band-Turing-Maschine M 0 , die schrittweise die Arbeit von M simuliert:.. Auf dem ersten Arbeitsband speichern wir im Wesentlichen die Konfiguration der

Praktische Informatik 3: Funktionale Programmierung Vorlesung 3 vom 28.10.2014: Rekursive Datentypen.. Christoph Lüth Universität Bremen