Skript (Fassung vom 4.4.2011) - Lehr- und Forschungsgebiet ...
Skript (Fassung vom 4.4.2011) - Lehr- und Forschungsgebiet ...
Skript (Fassung vom 4.4.2011) - Lehr- und Forschungsgebiet ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Beispiel 2.1.6 Sei Σ wieder die Signatur aus Bsp. 2.1.2. Die Gleichungen<br />
plus(O,y) ≡ y<br />
plus(succ(x),y) ≡ succ(plus(x,y))<br />
axiomatisieren die Additionsfunktion auf natürlichen Zahlen, wenn succ als die Nachfolgerfunktion<br />
aufgefasst wird. Man erkennt bereits den Zusammenhang zur funktionalen Programmierung,<br />
denn diese beiden Gleichungen sind im Prinzip ein funktionales Programm.<br />
In der Sprache haskell könnte man dieses Programm bereits direkt ausführen. Welche<br />
Aussagen aus diesen Axiomen folgen <strong>und</strong> inwieweit solche Programme ausführbar sind,<br />
wird im Folgenden noch deutlich werden.<br />
Beispiel 2.1.7 Sei Σ 0 = {e}, Σ 1 = {i}, Σ 2 = {f} <strong>und</strong> V = {x,y,z,...}. Wir betrachten<br />
die folgenden Termgleichungen:<br />
f(x,f(y,z)) ≡ f(f(x,y),z) (2.1)<br />
f(x,e) ≡ x (2.2)<br />
f(x,i(x)) ≡ e (2.3)<br />
f(x,y) ≡ f(y,x) (2.4)<br />
Dann axiomatisiert {(2.1)} alle Halbgruppen (d.h., alle Mengen mit einer assoziativen<br />
binären Operation), {(2.1),(2.2),(2.3)}axiomatisiert alle Gruppen <strong>und</strong> {(2.1)−(2.4)} axiomatisiert<br />
alle abelschen Gruppen.<br />
2.2 Semantik von Gleichungssystemen<br />
Eine Axiomatisierung “definiert” in gewisser Weise ein Programm oder eine mathematische<br />
Struktur (z.B. eine Gruppe). Man interessiert sich nun für Aussagen über dieses Programm<br />
bzw. Aussagen, die in dieser Struktur gelten. Aussagen werden ebenfalls durch Termgleichungen<br />
dargestellt. Beispielsweise kann man fragen, ob die Aussage<br />
plus(succ(succ(O)),x) ≡ plus(succ(O),succ(x))<br />
für das Additionsprogramm aus Bsp. 2.1.6 gilt. Ebenso kann man in Bsp. 2.1.7 fragen, ob<br />
die Aussage<br />
i(i(n)) ≡ n<br />
in jeder Gruppe gilt (d.h., ob die inverse Funktion immer selbstinvers ist).<br />
Vor Beantwortung solcher Fragen müssen wir festlegen, was es bedeutet, dass eine Aussage<br />
aus bestimmten Axiomen folgt. Bislang haben wir nur erläutert, wie Gleichungen<br />
gebildet werden. Wir haben jedoch noch nicht definiert, was solche Gleichungen eigentlich<br />
aussagen. Dazu muss man den Gleichungen eine Semantik, d.h. eine Bedeutung, zuordnen.<br />
Wir werden zunächst die Semantik von Termen definieren. Hierzu verwendet man sogenannte<br />
Interpretationen, die eine Menge von Objekten A festlegen <strong>und</strong> jedem (syntaktischen)<br />
Funktionssymbol f eine Funktion α f <strong>und</strong> jeder Variablen x ∈ V ein Objekt aus A<br />
zuordnen.