0 QTRS
↳1 AAECC Innermost (⇔)
↳2 QTRS
↳3 DependencyPairsProof (⇔)
↳4 QDP
↳5 DependencyGraphProof (⇔)
↳6 AND
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 PisEmptyProof (⇔)
↳11 TRUE
↳12 QDP
concat(leaf, Y) → Y
concat(cons(U, V), Y) → cons(U, concat(V, Y))
lessleaves(X, leaf) → false
lessleaves(leaf, cons(W, Z)) → true
lessleaves(cons(U, V), cons(W, Z)) → lessleaves(concat(U, V), concat(W, Z))
concat(leaf, Y) → Y
concat(cons(U, V), Y) → cons(U, concat(V, Y))
lessleaves(X, leaf) → false
lessleaves(leaf, cons(W, Z)) → true
lessleaves(cons(U, V), cons(W, Z)) → lessleaves(concat(U, V), concat(W, Z))
concat(leaf, Y) → Y
concat(cons(U, V), Y) → cons(U, concat(V, Y))
lessleaves(X, leaf) → false
lessleaves(leaf, cons(W, Z)) → true
lessleaves(cons(U, V), cons(W, Z)) → lessleaves(concat(U, V), concat(W, Z))
concat(leaf, x0)
concat(cons(x0, x1), x2)
lessleaves(x0, leaf)
lessleaves(leaf, cons(x0, x1))
lessleaves(cons(x0, x1), cons(x2, x3))
CONCAT(cons(U, V), Y) → CONCAT(V, Y)
LESSLEAVES(cons(U, V), cons(W, Z)) → LESSLEAVES(concat(U, V), concat(W, Z))
LESSLEAVES(cons(U, V), cons(W, Z)) → CONCAT(U, V)
LESSLEAVES(cons(U, V), cons(W, Z)) → CONCAT(W, Z)
concat(leaf, Y) → Y
concat(cons(U, V), Y) → cons(U, concat(V, Y))
lessleaves(X, leaf) → false
lessleaves(leaf, cons(W, Z)) → true
lessleaves(cons(U, V), cons(W, Z)) → lessleaves(concat(U, V), concat(W, Z))
concat(leaf, x0)
concat(cons(x0, x1), x2)
lessleaves(x0, leaf)
lessleaves(leaf, cons(x0, x1))
lessleaves(cons(x0, x1), cons(x2, x3))
CONCAT(cons(U, V), Y) → CONCAT(V, Y)
concat(leaf, Y) → Y
concat(cons(U, V), Y) → cons(U, concat(V, Y))
lessleaves(X, leaf) → false
lessleaves(leaf, cons(W, Z)) → true
lessleaves(cons(U, V), cons(W, Z)) → lessleaves(concat(U, V), concat(W, Z))
concat(leaf, x0)
concat(cons(x0, x1), x2)
lessleaves(x0, leaf)
lessleaves(leaf, cons(x0, x1))
lessleaves(cons(x0, x1), cons(x2, x3))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
CONCAT(cons(U, V), Y) → CONCAT(V, Y)
leaf > true > [CONCAT1, cons2]
[lessleaves, false] > concat2 > [CONCAT1, cons2]
[lessleaves, false] > true > [CONCAT1, cons2]
concat(leaf, Y) → Y
concat(cons(U, V), Y) → cons(U, concat(V, Y))
lessleaves(X, leaf) → false
lessleaves(leaf, cons(W, Z)) → true
lessleaves(cons(U, V), cons(W, Z)) → lessleaves(concat(U, V), concat(W, Z))
concat(leaf, Y) → Y
concat(cons(U, V), Y) → cons(U, concat(V, Y))
lessleaves(X, leaf) → false
lessleaves(leaf, cons(W, Z)) → true
lessleaves(cons(U, V), cons(W, Z)) → lessleaves(concat(U, V), concat(W, Z))
concat(leaf, x0)
concat(cons(x0, x1), x2)
lessleaves(x0, leaf)
lessleaves(leaf, cons(x0, x1))
lessleaves(cons(x0, x1), cons(x2, x3))
LESSLEAVES(cons(U, V), cons(W, Z)) → LESSLEAVES(concat(U, V), concat(W, Z))
concat(leaf, Y) → Y
concat(cons(U, V), Y) → cons(U, concat(V, Y))
lessleaves(X, leaf) → false
lessleaves(leaf, cons(W, Z)) → true
lessleaves(cons(U, V), cons(W, Z)) → lessleaves(concat(U, V), concat(W, Z))
concat(leaf, x0)
concat(cons(x0, x1), x2)
lessleaves(x0, leaf)
lessleaves(leaf, cons(x0, x1))
lessleaves(cons(x0, x1), cons(x2, x3))