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