Table Of ContentAllgemeine Algebra fu(cid:127)r Informatiker
Prof. Dr. Thomas Strei
her
WS 2001/2002
Einfu(cid:127)hrung
Im Verlauf dieser Vorlesung soll gekl(cid:127)art werden, was eine algebrais
he Struktur\
"
ist, wie man neue algebrais
he Strukturen aus vorgegebenen konstruiert, und wie
man sie dur
h Homomorphismen\ miteinander in Bezug setzt.
"
Au(cid:25)erdem diskutieren wir, wie man Klassen algebrais
her Strukturen axioma-
tis
h bes
hreiben kann und wel
he Eigens
haften sol
he axiomatis
h de(cid:12)nierten
Strukturklassen besitzen.WenndieAxiomeausrei
hendeinfa
hsind,z.B.nuraus
Glei
hungen bestehen, dann gibt es in sol
hen Klassen ausgezei
hnete Struktu-
ren, so genannte initiale Strukturen, die bis auf Isomorphie\ eindeutig bestimmt
"
sind. Die meisten Datenstrukturen k(cid:127)onnen als sol
he initiale Strukturen fu(cid:127)r eine
geeignete Glei
hungstheorie bes
hrieben werden. Diese Herangehensweise ist in
der Informatik als Theorie der abstrakten Datentypen\ bekannt.
"
Weiters behandeln wir die Veri(cid:12)kationen von Programmen, die auf sol
hen ab-
strakten Datentypen operieren. Programme werden als Funktionen aufgefasst,
die dur
h de(cid:12)nierende Glei
hungen bes
hrieben werden. Unter Verwendung die-
ser wird mit Hilfe von Induktionsprinzipien der Na
hweis erbra
ht, dass die Pro-
grammebestimmteerwu(cid:127)ns
hte Eigens
haften erfu(cid:127)llen,d.h. ganzeinfa
hdastun,
"
was man von ihnen erwartet\. Eine sol
he Veri(cid:12)kation ist natu(cid:127)rli
h nur relativ zu
einer formalen Spezi(cid:12)kation der Anforderungen an das Programm m(cid:127)ogli
h.
Des weiteren soll au
h ganz allgemein in die Grundbegri(cid:11)e abstrakter Struk-
turmathematik eingefu(cid:127)hrt werden, sofern diese fu(cid:127)r die (theoretis
he) Informatik
relevant sind. Dies beinhaltet insbesondere eine Einfu(cid:127)hrung in die axiomatis
h-
deduktive Methode und die Te
hnik des mathematis
hen Beweisens. Au(cid:25)erdem
geben wir eine Einfu(cid:127)hrung in die Theorie der induktiven De(cid:12)nitionen, wel
he in
fast allen Berei
hen der (theoretis
hen) Informatik ein unerl(cid:127)assli
hes Werkzeug
darstellen.
1
I Beispiele und Grundbegri(cid:11)e
IndiesemersteneinleitendenTeilsollenbeispielhafteinigemathematis
heGrund-
strukturen wie die natu(cid:127)rli
hen Zahlen, Monoide und Gruppen, Automaten, par-
tielle Ordnungen, Verb(cid:127)ande et
. vorgestellt werden. Aus dem Studium der Eigen-
s
haften dieser Strukturen sollen allgemeine Begri(cid:11)e und Methoden destilliert\
"
werden wie z.B.
(cid:15) A(cid:127)quivalenz- und Kongruenzrelationen
(cid:15) Faktorisierung bezu(cid:127)gli
h Kongruenzrelationen
(cid:15) Homomorphismen
(cid:15) induktive De(cid:12)nitionen von Teilmengen einer gegebenen Menge
(cid:15) Repr(cid:127)asentation abstrakter Strukturen in konkreten Strukturen
um nur die Wi
htigsten zu nennen.
Die De(cid:12)nition und Betra
htung allgemeiner algebrais
her Strukturen und ver-
wandter Begri(cid:11)e erfolgt in Teil 2.
I.1 Der Datentyp\ der natu(cid:127)rli
hen Zahlen
"
Wir werden nun einige Axiome angeben, die die natu(cid:127)rli
hen Zahlen eindeutig
harakterisieren. Diese Axiome gehen auf den Mathematiker Giuseppe Peano
zuru(cid:127)
k und werden deshalb Peano-Axiome genannt. Sp(cid:127)ater werden wir Algorith-
men bzw. algorithmis
he Funktionen auf den natu(cid:127)rli
hen Zahlen betra
hten und
mit Hilfe der Axiome Eigens
haften von ihnen na
hweisen.
De(cid:12)nition 1.1 (Peano-Axiome)
Sei N eine Menge, zero 2 N ein festes Element daraus und su
: N ! N eine
Funktion. Das Tripel (N;zero;su
) hei(cid:25)t Peano-Struktur genau dann, wenn die
folgenden drei Bedingungen gelten:
(1) zero 6= su
(x) f(cid:127)ur alle x 2 N;
(2) su
(x) = su
(y) impliziert x = y f(cid:127)ur alle x;y 2 N;
(3) f(cid:127)ur jede Teilmenge P (cid:18) N mit
a) zero 2 P und
b) su
(P) (cid:18) P, d.h. 8x 2 N: x 2 P ) su
(x) 2 P
gilt P = N, d.h. 8x 2 N: x 2 P. (cid:6)
2
Eine Menge X zusammen mit z 2 X und s : X ! X kann man als Z(cid:127)ahlstruktur
betra
hten. Mit z 2 X f(cid:127)angt man an zu z(cid:127)ahlen, und mit s z(cid:127)ahlt man weiter. Man
kann dann folgende Au(cid:13)istung betra
hten
n
z; s(z); s(s(z)); s(s(s(z))); :::; s (z);::: :
Intuitiv sind fu(cid:127)r den Fall X = N (Menge der natu(cid:127)rli
hen Zahlen), z = 0 und
s(n) = n+1 die Peano-Axiome aus De(cid:12)nition 1.1 erfu(cid:127)llt, denn
(1) dur
h Weiterz(cid:127)ahlen kann man niemals 0 errei
hen;
(2) aus n+1 = m+1 folgt n = m;
(3) jede natu(cid:127)rli
he Zahl l(cid:127)asst si
h von 0 aus errei
hen, indem man endli
h oft
um 1 weiterz(cid:127)ahlt; wenn nun P (cid:18) N und
(a) 0 2 P und
(b) 8n 2 N:n 2 P ) n+1 2 P,
dann gilt fu(cid:127)r jedes n 2 N, dass n 2 P:
P(0) ) P(1) ) ::: ) P(n(cid:0)1) ) P(n) :
(a) (b) (b) (b) (b)
Sp(cid:127)ater werden wir sehen, dass es bis auf Isomorphie\ nur eine Peano-Struktur
"
gibt.Sei also (N;zero;su
) imWeiteren eine (cid:12)xe, aber beliebigePeano-Struktur,
derenElementewirimLi
hteobigerBetra
htung als natu(cid:127)rli
heZahlen\ bezei
h-
"
nen werden. Wir werden nun | unter auss
hlie(cid:25)li
her Verwendung der Peano-
Axiome | einige Eigens
haften von natu(cid:127)rli
hen Zahlen, d.h. Peano-Strukturen,
na
hweisen.
Lemma 1.2 Sei (N;zero;su
) eine Peano-Struktur. Dann gilt
(1) 8x 2 N:x = zero_9y 2 N: x = su
(y)
(2) 8x 2 N: x 6= su
(x):
Das hei(cid:25)t, jedes Element einer Peano-Struktur ist entweder zero oder Na
hfolger
eines anderen Elementes, und jedes Element ist von seinem Na
hfolger vers
hie-
den.
=su
(N)
z }| {
Beweis: (1) Sei P = fzerog [ fsu
(y) j y 2 Ng. D.h., P ist die Menge aller
x, fu(cid:127)r die gilt: x = zero _ 9y 2 N:x = su
(y). Wir zeigen, dass P = N.
Wegen des dritten Peano-Axioms genu(cid:127)gt es zu zeigen, dass (a) zero 2 P und (b)
su
(P) (cid:18) P.
3
(a)giltaufgrundderDe(cid:12)nitionvon P.Na
hDe(cid:12)nitionvonP giltau
hsu
(N) (cid:18)
P und somit su
(P) (cid:18) su
(N) (cid:18) P, also (b).
(2) U(cid:127)berlassen wir dem geneigten Leser als U(cid:127)bung. 2
Im weiteren identi(cid:12)zieren wir Eigens
haften natu(cid:127)rli
her Zahlen mit Teilmengen
von N. Wenn P also eine Eigens
haft natu(cid:127)rli
her Zahlen ist, so identi(cid:12)zieren wir
P mit der Menge aller natu(cid:127)rli
hen Zahlen, die diese Eigens
haft haben.
P = fn 2 N j P(n)g (cid:18) N
Das dritte Peano-Axiom versteht si
h dann als Induktionsprinzip fu(cid:127)r die natu(cid:127)rli-
hen Zahlen, n(cid:127)amli
h
P(zero)^(8x 2 N: P(x) ) P(su
(x))) ) 8x 2 N: P(x)
Wir betra
hten nun einige Algorithmen auf natu(cid:127)rli
hen Zahlen und weisen einige
ihrer wohlvertrauten Eigens
haften rein formal na
h.
De(cid:12)nition 1.3 Seien pred : N ! N und add;mult : N (cid:2)N ! N Funktionen,
die folgenden Glei
hungen gen(cid:127)ugen
(pred1) pred(zero) = zero
(pred2) pred(su
(n)) = n
(add1) add(n;zero) = n
(add2) add(n;su
(m)) = su
(add(n;m))
(mult1) mult(n;zero) = zero
(mult2) mult(n;su
(m)) = add(mult(n;m);n) (cid:6)
Diese Glei
hungen lassen si
h operational au
h als Auswertungsregeln verstehen
(und in funktionalen Programmierspra
hen wie LISP, ML, et
. au
h in dieser
Form hins
hreiben).
Bevor wir Eigens
haften obiger Funktionen na
hweisen, betra
hten wir folgendes
De(cid:12)nitionsprinzip.
De(cid:12)nition 1.4 (Primitive Rekursion)
k k+2 k+1
F(cid:127)ur Funktionen g : N ! N und h : N ! N sei f = R[g;h℄ : N ! N
folgenderma(cid:25)en de(cid:12)niert:
(PR1) f(~x;zero) = g(~x)
(PR2) f(~x;su
(n)) = h(~x;f(~x;n);n) (cid:6)
Bemerkung:MitTheorem1.10kannbewiesenwerden,dasseinsol
hesf tats(cid:127)a
hli
h
existiert und au
h eindeutig ist.
U(cid:127)bung. Wie kann man pred, add und mult mithilfe primitiver Rekursion de(cid:12)-
nieren?
Jetzt zu den Eigens
haften:
4
Lemma 1.5 Es gilt
add(add(x;y);z) = add(x;add(y;z))
f(cid:127)ur alle x;y;z 2 N.
Beweis: Seien x;y 2 N fest, aber beliebig. Wir zeigen dur
h Induktion u(cid:127)ber
z 2 N, dass die Eigens
haft
P(z) (cid:17) add(add(x;y);z) = add(x;add(y;z))
fu(cid:127)r alle z 2 N gilt. Wir zeigen zuerst, dass P(zero)
add(add(x;y);zero) (add1)
= add(x;y) (add1)
= add(x;add(y;zero))
Als n(cid:127)a
hstes zeigen wir fu(cid:127)r alle z 2 N, dass P(su
(z)) aus P(z) folgt. Sei z 2 N
beliebig, aber fest. Wir nehmen an, dass P(z) gilt (als so genannte Induktions-
hypothese), und folgern daraus, dass P(su
(z)) ebenfalls gilt.
add(add(x;y);su
(z)) (add2)
= su
(add(add(x;y);z)) (I.H. P(z))
= su
(add(x;add(y;z))) (add2)
= add(x;su
(add(y;z)) (add2)
= add(x;add(y;su
(z)))
Also folgt na
h dem dritten Peano-Axiom, dass P(z) fu(cid:127)r alle z 2 N. Weil dies
fu(cid:127)r beliebige x;y 2 N der Fall ist, folgt die Aussage des Lemmas. 2
Als n(cid:127)a
hstes zeigen wir die Kommutativit(cid:127)at von add, d.h. add(x;y) = add(y;x).
Dies geht jedo
h ni
ht direkt, sondern erfordert folgenden Hilfssatz
Lemma 1.6 Es gilt f(cid:127)ur alle x;y 2 N, dass
(1) add(zero;x) = x
(2) add(su
(x);y) = add(x;su
(y)).
Beweis: (1) Beweis dur
h Induktion u(cid:127)ber x. Wegen (add1) ist add(zero;zero) =
zero. Sei nun x 2 N fest aber beliebig, und es gelte add(zero;x) = x. Dann
add(zero;su
(x)) (add2)
= su
(add(zero;x)) (I.H. add(zero;x) = x)
= su
(x):
5
(2) Sei x 2 N (cid:12)x, aber beliebig. Wir de(cid:12)nieren die Eigens
haft P(y) dur
h
P(y) (cid:17) add(su
(x);y) = add(x;su
(y))
und zeigen 8y 2 N: P(y) mit Induktion. Es gilt P(zero) wegen
add(su
(x);zero) (add1)
= su
(x) (add1)
= su
(add(x;zero)) (add2)
= add(x;su
(zero))
Wir zeigen nun 8y 2 N: P(y) ) P(su
(y)). Sei y 2 N (cid:12)x, aber beliebig, und
es gelte die Induktionshypothese
(I.H.) P(y) (cid:17) add(su
(x);y) = add(x;su
(y))
Dann gilt au
h P(su
(y)) wegen
add(su
(x);su
(y)) (add2)
= su
(add(su
(x);y)) (I.H.)
= su
(add(x;su
(y))) (add2)
= add(x;su
(su
(y))) 2
Nun k(cid:127)onnen wir die Kommutativit(cid:127)at von add zeigen.
Lemma 1.7 F(cid:127)ur alle x;y 2 N gilt add(x;y) = add(y;x):
Beweis:Seix 2 N beliebig,aber(cid:12)x.SeiP(y) (cid:17) add(x;y) = add(y;x).Wirzeigen
8y 2 N: P(y) mit Induktion. Die Aussage P(zero) gilt wegen
add(x;zero) (add1)
= x (Lemma 1.6(1))
= add(zero;x)
Wir zeigen nun 8y 2 N: P(y) ) P(su
(y)). Sei y 2 N (cid:12)x aber beliebig, und es
gelte die I.H. P(y). Wir zeigen unter dieser Annahme, dass P(su
(y))
add(x;su
(y)) (add2)
= su
(add(x;y)) (I.H.)
= su
(add(y;x)) (add2)
= add(y;su
(x)) (Lemma 1.6(2))
= add(su
(y);x) 2
Die folgenden vertrauten Eigens
haften der Multiplikation lassen si
h (cid:127)ahnli
h
beweisen.
6
Lemma 1.8 F(cid:127)ur alle x;y;z 2 N gilt:
(1) mult(x;add(y;z)) = add(mult(x;y);mult(x;z)) (Distributivit(cid:127)at)
(2) mult(add(x;y);z) = add(mult(x;z);mult(y;z)) (Distributivit(cid:127)at)
(3) mult(mult(x;y);z) = mult(x;mult(y;z)) (Assoziativit(cid:127)at)
(4) mult(x;y) = mult(y;x) (Kommutativit(cid:127)at)
Beweis: U(cid:127)bung! (mit Induktion). 2
Wir haben gesehen, dass der Na
hweis der u(cid:127)bli
hen Eigens
haften der Addition
und Multiplikation aus den Peano-Axiomen und den de(cid:12)nierenden Glei
hungen
fu(cid:127)r add und mult einer gewissen Organisation bedarf. Die Einzels
hritte jedo
h
sind alle eher trivial. Ein Vorteil dieser strengen Vorgangsweise, wo nur logis
he
S
hlussfolgerungen aus den Axiomen zugelassen sind, ist, dass man si
her sein
kann, dass alle Annahmen in die Axiome konzentriert sind.
Als n(cid:127)a
hstes weisen wir na
h, dass alle Peano-Strukturen bis auf Isomorphie
glei
h sind.
De(cid:12)nition 1.9 Ein Orbit ist ein Tripel (A;a;t), das aus einer Menge A, einem
ausgezei
hneten Element a 2 A und einer Funktion t : A ! A besteht.
Seien (A1;a1;t1);(A2;a2;t2) Orbits. Ein Orbit-Homomorphismus von (A1;a1;t1)
na
h (A2;a2;t2) ist eine Funktion h : A1 ! A2 so dass
(i) h(a1) = a2
(ii) h(t1(x)) = t2(h(x)) f(cid:127)ur alle x 2 A1.
wie in folgendem Diagramm verans
hauli
ht:
t1
- A1 - A1
a1
1 h h
a2 - ? ?
-
A2 A2
t2
Wir s
hreiben h : (A1;a1;t1) ! (A2;a2;t2) um auszudr(cid:127)u
ken, dass h ein Orbit-
Homomorphismus von (A1;a1;t1) na
h (A2;a2;t2) ist. (cid:6)
U(cid:127)bung: Zeige die folgenden, sp(cid:127)ater immer wieder verwendete Aussagen:
7
(1) Fu(cid:127)r jeden Orbit (A;a;t) ist die Identit(cid:127)atsfunktion idA(x) = x au
h ein
Orbit-Homomorphismus idA : (A;a;t) ! (A;a;t).
(2) Wenn h1 : (A1;a1;t1) ! (A2;a2;t2) und h2 : (A2;a2;t2) ! (A3;a3;t3)
zwei Orbit-Homomorphismen sind, dann ist au
h deren Hintereinander-
ausfu(cid:127)hrung, die dur
h (h2 Æ h1)(x) = h2(h1(x)) de(cid:12)niert ist, ein Orbit-
Homomorphismus h2 Æh1 : (A1;a1;t1) ! (A3;a3;t3).
Theorem 1.10 Sei (N;zero;su
) eine Peano-Struktur und (A;a;t) ein Orbit.
Dann gibt es genau einen Orbit-Homomorphismus h : (N;zero;su
) ! (A;a;t).
Beweis:
(cid:15) Wir beweisen zuerst die Eindeutigkeit.
Seien h;k : (N;zero;su
) ! (A;a;t) Orbit-Homomorphismen. Wir de(cid:12)-
nieren die Eigens
haft P = fx 2 N j h(x) = k(x)g und zeigen wie u(cid:127)bli
h
P = N unter Verwendung des 3. Peano-Axioms, d.h. mit Induktion:
Einerseits ist zero 2 P, weil h(zero) = a = k(zero). Andererseits gilt au
h
su
(P) (cid:18) P, also P(x) ) P(su
(x)): Sei x 2 N (cid:12)x, aber beliebig, und es
gelte h(x) = k(x). Dann folgt h(su
(x)) = t(h(x)) = t(k(x)) = k(su
(x)).
(cid:15) Wir wenden uns nun der s
hwierigeren Aufgabe zu, einen sol
hen Orbit-
Homomorphismus zu konstruieren.
Dazu de(cid:12)nieren wir die Menge S aller Relationen R von N na
h A, die der
Homomorphie-Eigens
haft genu(cid:127)gen, also derjenigen R 2 P(N(cid:2)A), so dass
(a) (zero;a) 2 R und
(b) (su
(x);t(y)) 2 R, falls (x;y) 2 R.
Wir setzen
\
H := S = f(x;y) 2 N (cid:2)A j 8R 2 S: (x;y) 2 Rg
und zeigen im folgenden, dass H in der Tat der Graph des gesu
hten Orbit-
Homomorphismus ist.
Man zeigt lei
ht (U(cid:127)bung!), dass
(1) H 2 S
Wir de(cid:12)nieren weiters
0
H := f(zero;a)g[f(su
(x);t(y)) j (x;y) 2 Hg
fu(cid:127)r wel
hes gilt (U(cid:127)bung!), dass
8
0
(2) H (cid:18) H (da ja H 2 S) und
0 0
(3) H 2 S, also H (cid:18) H .
0
Aus (2) und (3) folgt somit H = H . Das bedeutet explizit
(4) (x;y) 2 H genau dann, wenn
0 0 0 0
(x = zero^y = a)_(9(x;y ) 2 H: x = su
(x)^y = t(y )).
Wir beweisen nun dur
h Induktion u(cid:127)ber N, dass H au
h wirkli
h Graph
einer Funktion ist, d.h., dass fu(cid:127)r alle x 2 N genau ein y 2 A existiert mit
(x;y) 2 H, oder formal
(5) 8x 2 N: 9!y 2 A: (x;y) 2 H.
Fu(cid:127)r x = zero gilt auf Grund von (4), dass (zero;a) 2 H. Au(cid:25)erdem ist
a au
h das einzig m(cid:127)ogli
he y mit (zero;y) 2 H, denn wegen des ersten
0
Peano-Axioms kann zero ni
ht von der Form su
(x) sein.
Fu(cid:127)r den Induktions
hritt nehmen wir an, dass fu(cid:127)r ein beliebiges, aber (cid:12)xes
x 2 N als Induktionshypothese gelte, dass es genau ein y 2 A gibt mit
(x;y) 2 H. Dann gilt aber au
h (su
(x);t(y)) 2 H, da H 2 S na
h (1). Sei
nun (su
(x);z) 2 H fu(cid:127)r ein weiteres z. Wenn wir zeigen k(cid:127)onnen t(y) = z,
0 0
sind wir fertig. Wegen (4) gibt es aber ein (x;z ) 2 H mit su
(x) =
0 0
su
(x) und z = t(z ), da der Fall zero = su
(x) ja dur
h das erste Peano-
0
Axiom ausges
hlossen ist. Mit dem zweiten Peano-Axioms folgt x = x,
0
also (x;z ) 2 H, woraus auf Grund der Induktionshypothese folgt, dass
0 0
y = z und somit au
h t(y) = t(z ) = z. Damit ist die Eindeutigkeit von
t(y) gezeigt.
Damit haben wir bewiesen, dass H der Graph einer Funktion h : N ! A
ist, wobei
(6) h(x) = y genau dann, wenn (x;y) 2 H.
Da H 2 S ist, gelten de(cid:12)nitionsgem(cid:127)a(cid:25) die Homomorphie-Bedingungen
h(zero) = a und h(su
(x)) = t(h(x)). Wir haben also tats(cid:127)a
hli
h den
gesu
hten Homomorphismus h : (N;zero;su
) ! (A;a;t) konstruiert. 2
De(cid:12)nition 1.11 Ein Orbit (N;zero;su
) hei(cid:25)t initial genau dann, wenn f(cid:127)ur
jeden Orbit (A;a;t) genau ein Orbit-Homomorphismus
h : (N;zero;su
) ! (A;a;t)
existiert. (cid:6)
Wir k(cid:127)onnen nun Peano-Strukturen als die initialen Orbits
harakterisieren.
9