f(x, f(y, z)) → f(f(x, y), z) (G1)
f(x, e) → x (G2)
f(x, i(x)) → e (G3)
Kritische Paare:
f(x,f(y,e))
(G1) (G2)
f(f(x, y),e)
(G2)
f(x, y) f(x, y)
f(x, f(y,i(y)))
(G1) (G3)
f(f(x, y),i(y)) f(x, e)
(G2)
x
f(x0,f(x, f(y, z)))
(G1) (G1)
f(f(x0, x),f(y, z))
(G1)
f(x0,f(f(x, y), z))
∗ (G1)
f(f(f(x0, x), y), z) f(f(f(x0, x), y), z)
Algorithmus CONFLUENCE(R)
Eingabe: Ein terminierendes TES R.
Ausgabe: “True”, falls R konfluent ist und “False” sonst.
1. Berechne alle kritischen Paare CP(R) von R.
2. Falls CP(R) = ∅, dann gib “True” aus und breche ab.
3. W¨ahle hs, ti ∈ CP(R).
4. Reduziere s und t so lange wie m¨oglich.
Auf diese Weise entstehen die Normalformen s0 und t0. 5. Falls s0 6= t0, dann gib “False” aus und breche ab.
6. Setze CP(R) = CP(R) \ {hs, ti}. 7. Gehe zu Schritt 2.