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