Mathematik und Logik - f[Please insert PrerenderUnicode{ü} into

Werbung
Math & Logik
2008W
Listen
Länge
Induktion
Rekursion
Anhängen
Spiegeln
Verkettung
Mathematik und Logik
für WIN
Assoziativität
Neutrales Element
Homomorphismus
Kürzungsregeln
2008W
Franz Binder
Institut für Algebra
Johannes Kepler Universität Linz
Vorlesung im 2008W
http://www.algebra.uni-linz.ac.at/Students/Win/ml
Math & Logik
2008W
Inhalt
Listen
Länge
Induktion
Rekursion
Anhängen
Spiegeln
Verkettung
Assoziativität
Neutrales Element
Homomorphismus
Kürzungsregeln
Listen
Länge
Induktion
Rekursion
Anhängen
Spiegeln
Verkettung
Assoziativität
Neutrales Element
Homomorphismus
Kürzungsregeln
Math & Logik
2008W
Listen
Listen
Länge
I
Durch Hintereinanderreihung von Objekten entsteht eine Liste.
I
Ist Σ eine Menge, dann bezeichne Σ∗ die Menge der Listen über
dem Grunddatentyp Σ.
I
Die einfachste Liste ist die leere Liste: ∈ Σ.
I
Ist α ∈ Σ und u ∈ Σ∗ , dann ist auch αu ∈ Σ∗ .
Induktion
Rekursion
Anhängen
Spiegeln
Verkettung
Assoziativität
Neutrales Element
Homomorphismus
Kürzungsregeln
Beispiel
Seien a, b, c, d ∈ Σ.
, a, a(b), a(b(c(d))), d(c), b(c(c(a(b)))) sind Listen.
Notation
Rechts-assoziative Klammerung: αβu = α(βu).
Das Zeichen für die leere Liste ist oft entbehrlich.
Beispiel
, a, ab, abcd, dc, bccab.
Oder noch einfacher: , a, ab, abcd, dc, bccab.
Math & Logik
2008W
Länge einer Liste
Listen
Länge
I
Durch die Länge wird jeder Liste eine Zahl zugeordnet.
I
Notation: |u|.
I
Die leere Liste hat Länge 0.
I
Fügt man einer Liste ein Element hinzu, dann wird sie um 1
länger.
I
Es gelten daher die Gleichungen:
Induktion
Rekursion
Anhängen
Spiegeln
Verkettung
Assoziativität
Neutrales Element
Homomorphismus
Kürzungsregeln
|| = 0
∀
∀
α∈Σ u∈Σ∗
I
I
|αu| = 1 + |u|
(len-nil),
(len-pre).
Frage: Ist die Länge damit ordentlich definiert?
Beispiel:
|abcc| = |a(b(c(c)))| = 1 + |b(c(c))| = 1 + (1 + |c(c)|) =
1+(1+(1+|c|)) = 1+(1+(1+(1+||))) = 1+(1+(1+(1+0))) = 4
Math & Logik
2008W
Listen-Induktion
Listen
Länge
I
Induktion
Rekursion
I
Anhängen
Spiegeln
Verkettung
Assoziativität
I
Neutrales Element
Homomorphismus
Kürzungsregeln
I
I
Die Länge ist für die leere Liste definiert.
Ist die Länge für eine Liste u definiert, dann auch für jede Liste
der Form αu.
Jede Liste läßt sich aus der leeren Liste durch Hinzufügen von
Elementen konstruieren.
Daher ist die Länge für jede Liste definiert.
Die Schlußfolgerung erfolgte nach folgendem Schema:
P()
∀
∀ P(u) =⇒ P(au)
a∈Σ u∈Σ∗
∀ P(w)
List E
w∈Σ∗
I
I
Dabei ist P eine beliebige Eigenschaft für Listen.
Dieses Induktionsprinzip bedeutet gerade, daß jede Liste durch
die beiden Konstruktoren, leere Liste und Voranstellen,
konstruiert werden kann.
Es schließt insbesondere aus, daß Listen unendlich lange sein
könnten.
Math & Logik
2008W
Listen-Rekursion
Listen
Länge
I
|abcc| = 4, |abc| = 3.
Wenn abcc = abc, dann ist 4 = 3.
I
Dann wäre die Länge nicht wohldefiniert.
I
Listen sollten nur dann gleich sein, wenn sie gleich konstruiert
wurden.
I
Dies wird durch das folgende Rekursionsprinzip garantiert:
Für jede Menge X , jedes x ∈ X und jedes
ϕ : Σ → Σ∗ → X → X definiert das Gleichungssystem
I
Induktion
Rekursion
Anhängen
Spiegeln
Verkettung
Assoziativität
Neutrales Element
Homomorphismus
Kürzungsregeln
f () = x
∀
∀
α∈Σ u∈Σ∗
(f -nil),
f (αu) = α ϕ f (u)
u
I
genau eine Funktion f : Σ∗ → X .
− x.
f (u) = u ←
ϕ
I
− x = a ϕ b ϕ c ϕ x.
f (abc) = abc ←
ϕ
bc
c
(f -pre).
Math & Logik
2008W
Listen
Länge
Induktion
Rekursion
Anhängen
Spiegeln
Verkettung
Assoziativität
Neutrales Element
Homomorphismus
Append – Hinten anhängen
Definition
Satz
Analog zum Voranstellen
definieren wir eine Funktion die
ein Element hinten anhängt,
z.B. (abcd)b = abcdb. Sie sollte
erfüllen:
Es gilt ∀
Kürzungsregeln
I
I
Es sei β ∈ Σ.
Wir müssen zeigen:
∀ |wβ| = 1 + |w|.
w∈Σ∗
β∈Σ
(app-nil),
I
Dies erledigen wir gemäß
dem Induktionsprinzip:
I
∀
∀
β∈Σ α∈Σ
∀
u∈Σ∗
(αu)β = α(uβ)
I
(app-pre).
Bemerkung
In αuβ brauchen wir keine
Klammern.
|wβ| = 1 + |w| .
Beweis.
β = β
∀
∀
β∈Σ w∈Σ∗
Wir zeigen, daß diese
Eigenschaft hat.
Und wir zeigen, daß
wenn ein u ∈ Σ∗ diese
Eigenschaft hat, dann
auch jedes αu.
Math & Logik
2008W
Induktionsbeweis: ∀ |wβ| = 1 + |w|
∗
w∈Σ
Listen
Länge
Induktion
I
Rekursion
Anhängen
Induktionsanfang:
Wir zeigen |β| = 1 + ||:
Spiegeln
Verkettung
|β| = |β|
Assoziativität
Neutrales Element
= 1 + ||
Homomorphismus
(app-nil)
(len-pre).
Kürzungsregeln
I
Induktionsschritt:
Wir nehmen nun für ein u ∈ Σ∗ die Induktionshypothese
|uβ| = 1 + |u| an.
Für jedes α ∈ Σ zeigen wir nun |(αu)β| = 1 + |αu|:
|(αu)β| = |α(uβ)|
(app-pre)
= 1 + |uβ|
= 1 + (1 + |u|)
(len-pre)
(IH)
= 1 + |αu|
(len-pre-R).
Math & Logik
2008W
Listen
Länge
Induktion
Rekursion
Anhängen
Spiegeln
reversion - Spiegelung
Definition
Beweis.
Die Spiegelung (reversion)
e ∈ Σ∗ → Σ∗ läßt sich rekursiv
definieren durch
I
e
=
(rev-nil),
=e
β
= β
αu
f =u
eα
(rev-pre).
= β
(app-nil)
= βe
(rev-nil-R);
Verkettung
Assoziativität
Neutrales Element
Homomorphismus
Kürzungsregeln
f = βe
IA: Zu zeigen β
:
f
f
β = β
(app-nil)
Satz
Für α ∈ Σ, u ∈ Σ∗ gilt
f = βe
uβ
u
(rev-app).
I
(rev-pre)
(rev-nil)
f = βe
IS mit IH: uβ
u;
^
Zu zeigen: (αu)β = βe(αu):
^ = α(uβ)
^ (app-pre)
(αu)β
Satz
f
= uβα
e
u
e = u (rev-inv).
= (βe
u )α (IH)
= β(e
u α) (app-pre)
Satz
|e
u | = |u| (len-rev).
= β αu
f
(rev-pre)
(rev-pre-R).
Math & Logik
2008W
Listen
Länge
Induktion
Spiegelung und Allaussagen
Satz
Sei P eine Eigenschaft für Listen. Dann gilt
Rekursion
Anhängen
∀ P(u) ⇐⇒
Spiegeln
Verkettung
Assoziativität
Neutrales Element
Homomorphismus
u∈Σ∗
Beweis.
I
Kürzungsregeln
I
Von links nach rechts:
Annahme: ∀ P(u); zu zeigen:
u ).
∀ P(e
u∈Σ∗
u ).
∀ P(e
u∈Σ∗
u∈Σ∗
u∈Σ
u∈Σ
Weitere Anname: u ∈ Σ∗ ; nur noch zu zeigen: P(e
u ).
Es gilt u
e ∈ Σ∗ ; wir wenden daher die erste Annahme auf u
e an
und erhalten somit P(e
u ), was zu zeigen war.
Von rechts nach links:
Annahme: ∀ P(e
u ); zu zeigen: ∀ P(u).
∗
∗
Weitere Annahme: u ∈ Σ∗ ; nur noch zu zeigen: P(u).
Es gilt u
e ∈ Σ∗ ; wir wenden daher die erste Annahme auf u
e an
e
und erhalten somit P(u
e).
e
e
Da u
e = u, ist auch P(u
e) ⇐⇒ P(u), insbesondere somit
e
P(u
e) =⇒ P(u), woraus unser Beweisziel unmittelbar folgt.
Math & Logik
2008W
Listen
Länge
Induktion
Rekursion
Induktion von hinten
Satz
Sei P ∈ Σ∗ → P eine Eigenschaft. Dann gilt das Induktionsprinzip
Anhängen
P()
Spiegeln
Verkettung
∀
Assoziativität
∀ P(w)
Neutrales Element
Homomorphismus
Kürzungsregeln
∀ P(w) =⇒ P(wβ)
β∈Σ w∈Σ∗
w∈Σ∗
Beweis.
Wir setzen die beiden Prämissen voraus. Statt der Konklusion zeigen
wir die dazu äquivalente Aussage ∀ P(e
w ). Mit der Eigenschaft
w∈Σ∗
∼
P (w) : ⇐⇒ P(e
w)
∀ P ∼ (w) schreiben und mit Induktion beweisen.
IA: Wir zeigen P (). Gemäß obiger Definition, P ∼ () ⇐⇒ P(e
),
und wegen e
= , auch P(e
) ⇐⇒ P(). Letzteres ist in der
Voraussetzung.
IS mit IH: P ∼ (u) (äquivalent zu P(e
u )). Zu zeigen haben wir
P ∼ (αu), das ist P(αu),
f also P(e
u α). Die Voraussetzung liefert (wir
setzen u
e für w ein): P(e
u ) =⇒ P(e
u α). Mit IH sind wir fertig.
läßt sich dies als
w∈Σ∗
∼
Math & Logik
2008W
Palindrom
Listen
Länge
Induktion
Rekursion
Anhängen
Spiegeln
Verkettung
Assoziativität
Definition
Eine Liste ist ein Palindrom, kurz PD(u), wenn sie von vorne und
hinten gelesen gleich erscheint. Dies läßt sich induktiv durch die
folgenden Introduktionsregeln ausdrücken:
Neutrales Element
Homomorphismus
Kürzungsregeln
PD()
α∈Σ
PD(α)
u ∈ Σ∗
PD(u) α ∈ Σ
PD(αuα)
Die zugehörige Eliminationsregel lautet dann
P()
∀ P(α)
α∈Σ
∀
u∈Σ∗
PD(u)
∀
∀ P(αuα)
u∈Σ∗ α∈Σ
P(u)
P(u)
für eine beliebige Eigenschaft P ∈ Σ∗ → P.
Satz
∀
u∈Σ∗
PD(u) ⇐⇒ u = u
e.
Math & Logik
2008W
Verkettung
Listen
Länge
I
Wir definieren die Verkettung von Listen, eine binäre
Verknüpfung von Listen, welche die Elemente einfach
aneinanderreiht, z.B. (ab)(cbb) = abcbb.
I
Sie sollte für alle u, v ∈ Σ∗ und α ∈ Σ diese beiden Gleichungen
erfüllen:
Induktion
Rekursion
Anhängen
Spiegeln
Verkettung
Assoziativität
Neutrales Element
Homomorphismus
Kürzungsregeln
v = v
(αu)v = α(uv)
I
(cat-nil),
(cat-pre).
Gemäß Rekursionsprinzip gibt es genau eine Funktion mit
diesen Eigenschaften.
Beispiel
(abc)(cbb)
c(b(b)) = a( b(c) c(b(b)) ) =
= a(b(c))
a(b( c c(b(b)) )) = a(b(c( c(b(b)) ))) = a(b(c(c(b(b))))) =
abcbb.
Math & Logik
2008W
Assoziativität
Listen
Länge
Induktion
Rekursion
Anhängen
Satz
Die Listenverkettung ist assoziativ, d.h.
Spiegeln
Verkettung
∀
Assoziativität
u,v,w∈Σ∗
Neutrales Element
(uv)w = u(vw).
Homomorphismus
Kürzungsregeln
Beweis.
I
Es seien v, w ∈ Σ∗ .
I
Wir müssen zeigen, daß
∀ (uv)w = u(vw).
u∈Σ∗
I
Dies erledigen wir gemäß dem Induktionsprinzip:
I
I
Wir zeigen, daß diese Eigenschaft hat.
Und wir zeigen, daß wenn ein u ∈ Σ∗ diese Eigenschaft hat,
dann auch jedes αu.
Math & Logik
2008W
Induktionsbeweis: ∀ (uv)w = u(vw)
∗
u∈Σ
Listen
Länge
Induktion
I
Rekursion
Anhängen
Induktionsanfang:
Wir zeigen (v)w = (vw):
Spiegeln
Verkettung
(v)w = vw
Assoziativität
Neutrales Element
= (vw)
Homomorphismus
(cat-nil)
(cat-nil-R).
Kürzungsregeln
I
Induktionsschritt:
Wir nehmen nun für ein u ∈ Σ∗ die Induktionshypothese
(uv)w = u(vw) an.
Für jedes α ∈ Σ zeigen wir nun ((αu)v)w = (αu)(vw):
((αu)v)w = (α(uv))w
= α((uv)w)
(cat-pre)
(cat-pre)
= α(u(vw))
(IH)
= (αu)(vw)
(cat-pre-R).
Math & Logik
2008W
ist ein neutrales Element
Listen
Länge
Induktion
Rekursion
Anhängen
Lemma
Die leere Liste verhält sich bei Listenverkettung neutral, d.h.
Spiegeln
Verkettung
∀ u = u = u.
Assoziativität
u∈Σ∗
Neutrales Element
Homomorphismus
Kürzungsregeln
Beweis.
Der Teil u = u ist Bestandteil der Definition. Wir zeigen noch
u = u mittels Listeninduktion:
= (cat-nil);
(αu) = α(u)
= αu
(cat-pre)
(IH).
Math & Logik
2008W
Länge als Homomorphismus
Listen
Länge
Induktion
Rekursion
Anhängen
Spiegeln
Lemma
Die Länge ist ein Homomorphismus in die Halbgruppe der
natürlichen Zahlen mit Addition, d.h.:
Verkettung
Assoziativität
|uv| = |u| + |v|
Neutrales Element
Homomorphismus
Kürzungsregeln
Satz
Die Spiegelung ist ein Anti-Homomorphismus: u
fv = e
vu
e.
Math & Logik
2008W
Kürzungsregeln
Listen
Länge
Induktion
Rekursion
Anhängen
Satz
Für Listen u, v, w ∈ Σ∗ gelten die Kürzungsregeln:
Spiegeln
Verkettung
uv = uw =⇒ v = w,
Assoziativität
Neutrales Element
uw = vw =⇒ u = v.
Homomorphismus
Kürzungsregeln
Beweis.
I
IA: Es sei v = w, dann ist v = w (cat-nil);
I
IS mit IH uv = uw =⇒ v = w:
Zu zeigen: (αu)v = (αu)w =⇒ v = w
Annahme: (αu)v = (αu)w;
Nur noch zu zeigen v = w.
Mit (cat-pre) erhalten wir aus der Annahme α(uv) = α(uw). Da
Listen nur dann gleich sind, wenn sie gleich konstruiert sind, ist
somit uv = uw. Die (IH) liefert nun u = w.
Herunterladen