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.

1. Sei S = Subterms(E)∪Subterms(s)∪Subterms(t).<br />

2. Sei L = {{s,t} | s ≡ t ∈ E}∪{{s} | s ∈ S}.<br />

3. Vereinige alle Mengen M 1 ,M 2 ∈ L mit M 1 ∩M 2 ≠ ∅.<br />

4. Sei K = L∪{{f(s 1 ,...,s n ),f(t 1 ,...,t n )} | f ∈ Σ, es ex. M i ∈ L mit s i ,t i ∈ M i ,<br />

f(s 1 ,...,s n ),f(t 1 ,...,t n ) ∈ S}.<br />

5. Vereinige alle Mengen M 1 ,M 2 ∈ K mit M 1 ∩M 2 ≠ ∅.<br />

6. Falls K ≠ L dann setze L = K <strong>und</strong> gehe zu 4.<br />

7. Falls es ein M ∈ L gibt mit s ∈ M <strong>und</strong> t ∈ M, dann gib “True” aus.<br />

Sonst gib “False” aus.<br />

Der obige Algorithmus lässt sich natürlich noch etwas verbessern, indem man bereits<br />

vor der “Kongruenz–Bildung” in Schritt 4 jeweils überprüft, ob bereits s <strong>und</strong> t zusammen<br />

in einer Menge M ∈ L auftreten. In diesem Fall kann man sofort “True” ausgeben <strong>und</strong> den<br />

Algorithmus beenden.<br />

Satz 3.2.15 (Korrektheit des Algorithmus)<br />

Der Algorithmus KONGRUENZABSCHLUSS terminiert immer <strong>und</strong> ist korrekt.<br />

Beweisskizze.DieTerminierungfolgtanalogzuLemma3.2.11,denndaS endlichist<strong>und</strong>L<br />

injedemSchleifendurchlauf wächst, gilt irgendwann K = L. DieKorrektheit gilt ausfolgendem<br />

Gr<strong>und</strong>: Nach Schritt 3 ist L = S 0 , d.h., es gilt s,t ∈ M für ein M ∈ L gdw. s ⇔ ∗ E t <strong>und</strong><br />

s,t ∈ S. Mit anderen Worten, man hat E0 S′ = {s ≡ t | es existiert ein M ∈ L mit s,t ∈ M}.<br />

(Die Vereinigung aller nicht-disjunkten Mengen erzeugt gerade den transitiv-reflexiv-symmetrischen<br />

Abschluss.) Nach Schritt 5 gilt im i-ten Schleifendurchlauf K = S i , d.h., es<br />

gilt s,t ∈ M für ein M ∈ K gdw. s ⇔ ∗ t <strong>und</strong> s,t ∈ S. Man hat somit<br />

Ei−1 S′ ∪C(ES′ i−1 )<br />

Ei S′ = {s ≡ t | es existiert ein M ∈ K mit s,t ∈ M} (dies zeigt man durch Induktion über<br />

i). In Schritt 7 gilt somit L = S/ ⇒CC S (E)<br />

, d.h., es existiert ein M ∈ L mit s,t ∈ M gdw.<br />

s ≡ t ∈ CC S (E). Aufgr<strong>und</strong> der Korrektheit <strong>und</strong> Vollständigkeit des Kongruenzabschlusses<br />

bzgl. S (Satz 3.2.12) ist dies gleichbedeutend zu s ≡ E t.<br />

✷<br />

Beispiel 3.2.16 Der obige Algorithmus arbeitet wie folgt in unserem Beispiel. Hierbei ist<br />

wieder E = {i ≡ j,k ≡ l,f(i) ≡ g(k),j ≡ f(j),m ≡ g(l)}, s = f(m) <strong>und</strong> t = g(k).<br />

• Im ersten Schritt erzeugt man S = {i,j,k,l,m,f(i),f(j),f(m),g(k),g(l)}.<br />

• Im zweiten Schritt setzt man L auf die Menge, die {i,j},{k,l},{f(i),g(k)},{j,f(j)},<br />

{m,g(l)},{f(m)} sowie {q} für alle q ∈ S enthält.<br />

• Im dritten Schritt vereinigt man alle nicht-disjunkten Mengen von L wie z.B. {i,j}<br />

<strong>und</strong> {j,f(j)}. Es ergibt sich L = {{i,j,f(j)},{k,l},{f(i),g(k)},{m,g(l)},{f(m)}}. Dies<br />

ist die Quotientenmenge zur Relation ⇔ ∗ E , bei der zwei Terme gleich sind, wenn dies<br />

aufgr<strong>und</strong> der (wiederholten) Reflexivität, Transitivität <strong>und</strong> Symmetrie aus E folgt.<br />

• Nun setzt man K auf L <strong>und</strong> erweitert es um Mengen {f(t 1 ),f(t 2 )} <strong>und</strong> {g(t 1 ),g(t 2 )},<br />

wobei t 1 <strong>und</strong>t 2 jeweils ausdenselben Mengen von Lstammen müssen. Es werden aber<br />

nur solche Terme betrachtet, die in S enthalten sind. Neben einelementigen Mengen<br />

(bei denen also t 1 = t 2 ist) enthält K dann die zusätzlichen Mengen {f(i),f(j)} <strong>und</strong><br />

{g(k),g(l)}.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!