0 QTRS
↳1 QTRSToCSRProof (⇔, 0 ms)
↳2 CSR
↳3 CSDependencyPairsProof (⇔, 3 ms)
↳4 QCSDP
↳5 QCSDPForwardInstantiationProcessor (⇔, 0 ms)
↳6 QCSDP
↳7 PIsEmptyProof (⇔, 0 ms)
↳8 YES
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(active(X1), X2, X3)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(mark(X1), X2, X3) → mark(f(X1, X2, X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(active(X1), X2, X3)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(mark(X1), X2, X3) → mark(f(X1, X2, X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
f: {1, 3}
a: empty set
b: empty set
c: empty set
The QTRS contained all rules created by the complete Giesl-Middeldorp transformation. Therefore, the inverse transformation is complete (and sound).
f(a, b, X) → f(X, X, X)
c → a
c → b
f: {1, 3}
a: empty set
b: empty set
c: empty set
F(a, b, X) → F(X, X, X)
f(a, b, X) → f(X, X, X)
c → a
c → b
F(a, b, b) → F(b, b, b)
f(a, b, X) → f(X, X, X)
c → a
c → b