20.01.2015 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Beispiel 4.4.10 Wir betrachten die folgende Variante der plus-TES, bei dem die Argumente<br />

im rekursiven Aufruf vertauscht wurden.<br />

plus(O,y) → y<br />

plus(succ(x),y) → succ(plus(y,x))<br />

Für die zweite Regel lässt sich keine lexikographische Pfadordnung angeben, so dass die<br />

linke Seite größer als die rechte Seite wäre. Das Problem ist, dass weder das erste noch<br />

das zweite Argument von plus hierbei kleiner wird. Es gilt succ(x) ⊁ y <strong>und</strong> y ⊁ x für jede<br />

f<strong>und</strong>ierte <strong>und</strong> stabile Relation ≻. Das Problem liegt daran, dass in diesen Ungleichungen<br />

die rechte Seite Variablen enthält, die nicht auf der linken Seite auftreten.<br />

Im obigen Beispiel besteht die Abhilfe darin, dass man die Argumente von plus nicht<br />

als Tupel, sondern als Mengen vergleicht. Dann spielt es keine Rolle mehr, an welcher Argumentposition<br />

ein Argument auftritt. Hierzu führen wir nun neben der lexikographischen<br />

Pfadordnung eine zweite Simplifikationsordnung für automatische Terminierungsbeweise<br />

mit TESen ein.<br />

Im allgemeinen kann ein Funktionssymbol natürlich mehrere Argumente mit demselben<br />

Wert besitzen. Bei der Datenstruktur der Mengen werden jedoch doppelte Vorkommen<br />

eines Elements ignoriert. Es ist daher sinnvoll, statt Mengen sogenannte Multimengen zu<br />

verwenden. Multimengen unterscheiden sich von Mengen dadurch, dass Elemente mehrfach<br />

vorkommen können (wie bei linearen Listen). Im Unterschied zu Listen ist jedoch die Reihenfolge<br />

der Elemente unerheblich. Bei Multimengen gilt also {1,1,4} = {1,4,1} ≠ {1,4}.<br />

Definition 4.4.11 (Multimenge) Sei T eine nicht-leere Menge. Eine ungeordnete endliche<br />

Folge M von Elementen aus T heißt Multimenge über T. Wir bezeichnen die Menge<br />

aller (endlichen) Multimengen über T mit M(T).<br />

Eine solche Multimenge M ist durch ihre charakteristische Funktion # M : T → IN<br />

definiert, wobei # M (t) die Anzahl der Vorkommen des Elements t in der Multimenge M<br />

angibt. Es gilt also t ∈ M gdw. # M (t) > 0. Auf Multimengen M,N werden nun die folgenden<br />

Operationen definiert:<br />

• M = N gdw. # M (t) = # N (t) für alle t ∈ T<br />

• M ⊆ N gdw. # M (t) ≤ # N (t) für alle t ∈ T<br />

• M ⊂ N gdw. M ⊆ N <strong>und</strong> M ≠ N<br />

• M ∪N ist die Multimenge mit # M∪N (t) = # M (t)+# N (t) für alle t ∈ T<br />

• M ∩N ist die Multimenge mit # M∩N (t) = min(# M (t),# N (t)) für alle t ∈ T<br />

• M \N ist die Multimenge mit # M\N (t) = max(0,# M (t)−# N (t)) für alle t ∈ T

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!