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)
concat2 > [CONCAT2, cons2] > lessleaves > [false, true]
leaf > [false, true]
CONCAT2: [2,1]
cons2: [2,1]
concat2: [2,1]
leaf: multiset
lessleaves: multiset
false: multiset
true: multiset
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))