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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

dann alle Reduktionen der Länge 2, etc. Die führt man solange durch, bis entweder keine<br />

weiteren Reduktionen mehr möglich sind (in diesem Fall terminiert das TES) oder bis man<br />

einen Termtmit r i → + R tgef<strong>und</strong>en hat,der r i alsTeilterm enthält (indiesem Fallterminiert<br />

das TES nicht). Im Unterschied zu einem entsprechenden Verfahren für die Terminierung<br />

allgemeiner TESe (ähnlich zu dem Suchbaumverfahren aus dem Beweis von Satz 4.2.1) hat<br />

man hier also zwei Einschränkungen:<br />

1. Man muss nicht für alle Terme t einen Suchbaum mit den durch Reduktionen erhältlichen<br />

Termen konstruieren, sondern nur für die (endlich vielen) rechten Seiten der<br />

Regeln des TES.<br />

2. Man kann die Konstruktion der (potentiell unendlichen) Suchbäume abbrechen, sobald<br />

man im Suchbaum von r i einen Term t findet, der r i als Teilterm enthält. Es ist<br />

aufgr<strong>und</strong> von Lemma 4.2.3 sicher gestellt, dass dies stets für ein r i der Fall ist, wenn<br />

R nicht terminiert.<br />

Algorithmus RIGHT-GROUND-TERMINIERUNG(R)<br />

Eingabe: Ein TES R ohne Variablen auf rechten Seiten.<br />

Ausgabe: “True”, falls R terminiert <strong>und</strong> sonst “False”.<br />

1. Für R = {l 1 → r 1 ,...,l n → r n } sei T i = {r i }, 1 ≤ i ≤ n.<br />

2. Für alle i setze T i = {t | s ∈ T i ,s → R t}.<br />

3. Falls T i = ∅ für alle i, dann gib “True” aus <strong>und</strong> breche ab.<br />

4. Falls es ein i <strong>und</strong> ein t ∈ T i gibt, so dass t☎r i , dann gib “False” aus <strong>und</strong> breche ab.<br />

5. Gehe zu Schritt 2.<br />

Beispiel 4.2.4 Wir betrachten wieder das TES aus Bsp. 4.2.2. In Schritt 1 setzen wir<br />

T 1 = {true},T 2 = {false},T 3 = {and(true,not(true))},T 4 = {true},T 5 = {and(false,false)}.<br />

In Schritt 2 ersetzt man die Terme in diesen Mengen durch diejenigen Terme, die<br />

man durch einen Ersetzungsschritt erhält. So ergibt sich T 1 = T 2 = T 4 = ∅, T 3 =<br />

{and(true,and(false,false))}, T 5 = {false,and(true,not(true))}.<br />

InSchritt4stelltmanfest,dassand(true,and(false,false))̸☎and(true,not(true))<strong>und</strong>dass<br />

sowohl false ̸☎and(false,false) als auch and(true,not(true)) ̸☎ and(false,false) gilt.<br />

Somit erreicht man Schritt 5 <strong>und</strong> springt zurück zu Schritt 2. Im Folgenden bleiben T 1 ,<br />

T 2 <strong>und</strong> T 4 leer <strong>und</strong> man erhält T 3 = {and(true,false),and(true,and(true,not(true)))} <strong>und</strong><br />

T 5 = {and(true,and(false,false))}.<br />

In Schritt 4 bemerkt man nun, dass der Term and(true,and(true,not(true))) aus T 3 die<br />

ursprüngliche rechte Seite and(true,not(true))alsTeilterm enthält. Ebenso enthält der Term<br />

and(true,and(false,false)) aus T 5 die zugehörige rechte Seite and(false,false). Somit gibt der<br />

Algorithmus “False” aus <strong>und</strong> terminiert.<br />

Satz 4.2.5 (Entscheidbarkeit der Terminierung) Sei R ein TES, wobei V(r) = ∅<br />

für alle l → r ∈ R. Dann ist entscheidbar, ob R terminiert <strong>und</strong> der Algorithmus RIGHT-<br />

GROUND-TERMINIERUNG ist ein Entscheidungsverfahren.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!