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.

i(i(n)) x ≡ f(x,e) σ = {x/i(i(n))}<br />

f(i 2 (n),e) e ≡ f(x,i(x)) σ = {x/i 3 (n)}<br />

f(i 2 (n),f(i 3 (n),i 4 (n))) f(x,f(y,z)) ≡ f(f(x,y),z) σ = {x/i 2 (n),y/i 3 (n),z/i 4 (n)}<br />

f(f(i 2 (n),i 3 (n)),i 4 (n)) f(x,i(x)) ≡ e σ = {x/i 2 (n)}<br />

f(e,i 4 (n)) x ≡ f(x,e) σ = {x/e}<br />

f(f(e,e),i 4 (n)) f(f(x,y),z) ≡ f(x,f(y,z)) σ = {x/e,y/e,z/i 4 (n)}<br />

f(e,f(e,i 4 (n))) e ≡ f(x,i(x)) σ = {x/i 2 (n)}<br />

f(e,f(f(i 2 (n),i 3 (n)),i 4 (n))) f(f(x,y),z) ≡ f(x,f(y,z)) σ = {x/i 2 (n),y/i 3 (n),z/i 4 (n)}<br />

f(e,f(i 2 (n),f(i 3 (n),i 4 (n)))) f(x,f(y,z)) ≡ f(f(x,y),z) σ = {x/e,y/i 2 (n),z/f(i 3 (n),i 4 (n))}<br />

f(f(e,i 2 (n)),f(i 3 (n),i 4 (n))) f(x,i(x)) ≡ e σ = {x/i 3 (n)}<br />

f(f(e,i 2 (n)),e) f(x,e) ≡ x σ = {x/f(e,i 2 (n))}<br />

f(e,i 2 (n)) e ≡ f(x,i(x)) σ = {x/n}<br />

f(f(n,i(n)),i 2 (n)) f(f(x,y),z) ≡ f(x,f(y,z)) σ = {x/n,y/i(n),z/i 2 (n)}<br />

f(n,f(i(n),i 2 (n))) f(x,i(x)) ≡ e σ = {x/i(n)}<br />

f(n,e) f(x,e) ≡ x σ = {x/n}<br />

n<br />

Aufgr<strong>und</strong> von Satz 3.1.14 ist man mit der Beweisrelation ↔ ∗ E in der Lage, das Wortproblem<br />

s ≡ E t ohne Rückgriff auf semantische Begriffe zu beweisen. Von Vorteil ist dabei<br />

insbesondere, dass der Nachweis von E |= s ≡ t systematisch geführt werden kann. Anders<br />

gesagt, man kann nach einer Herleitung von s ≡ t so suchen, dass man immer erfolgreich<br />

ist, wenn E |= s ≡ t tatsächlich gilt. Dies gilt, da ↔ ∗ E semi-entscheidbar (oder rekursiv<br />

aufzählbar) ist. Es gibt also ein Verfahren, das bei der Eingabe von s <strong>und</strong> t mit Erfolg<br />

terminiert, wenn s ↔ ∗ E t gilt. Wenn s ↔∗ E t hingegen nicht gilt, so kann es sein, dass das<br />

Verfahren nicht terminiert.<br />

Das Verfahren arbeitet wie folgt bei der Eingabe zweier Terme s <strong>und</strong> t. Falls s = t<br />

gilt, so ist das Problem trivialerweise gelöst. Anderenfalls erzeugt man einen Suchbaum<br />

folgender Art: Der Wurzelknoten n 0 wird mit s markiert. Für jeden Term u mit s ↔ E u<br />

hat n 0 einen direkten Nachfolgerknoten n i , der mit u markiert ist. Genauso erhält man<br />

alle Nachfolgerknoten von n i , etc. Wenn die Variablenbedingung V(t 1 ) = V(t 2 ) für alle<br />

Gleichungen t 1 ≡ t 2 ∈ E gilt, so hat jeder Knoten nur endlich viele Nachfolger. (Denn es<br />

gibt in jedem Term nur endlich viele Teilterme <strong>und</strong> endlich viele Gleichungen, die darauf<br />

passen können. Das Verhalten des Matchers auf den Variablen der Gleichung ist eindeutig<br />

festgelegt, wenn V(t 1 ) = V(t 2 ) gilt, siehe unten.)<br />

Wenn u 1 ,...,u n die Folge der Knotenmarkierungen eines Pfades von der Wurzel zu einem<br />

Knoten ist, so gilt u 1 ↔ E u 2 ↔ E ... ↔ E u n , d.h., u 1 ↔ ∗ E u n. Jeder Pfad des Suchbaums<br />

repräsentiert also eine Herleitung <strong>und</strong> jede Herleitung wird als Pfad des Suchbaums nach<br />

endlich vielen Schritten erzeugt. Das Verfahren endet mit Erfolg, falls ein Knoten mit Markierung<br />

t gebildet wurde. Für E |= s ≡ t terminiert das Verfahren, für E ̸|= s ≡ t dagegen<br />

nicht.<br />

Für endliches E hat jeder Suchbaum endlichen Verzweigungsgrad, denn für jeden Term<br />

s gibt es maximal |Occ(s)| × 2 × |E| Terme t mit s ↔ E t. Dies liegt an der geforderten<br />

Variablenbedingung V(t 1 ) = V(t 2 ) für alle Gleichungen t 1 ≡ t 2 ∈ E. Mit s ↔ E t gilt<br />

t 1 σ = s| π <strong>und</strong> t = s[t 2 σ] π für eine Gleichung t 1 ≡ t 2 oder t 2 ≡ t 1 aus E <strong>und</strong> damit ist σ

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!