YES Problem: 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)) Proof: DP Processor: DPs: concat#(cons(U,V),Y) -> concat#(V,Y) lessleaves#(cons(U,V),cons(W,Z)) -> concat#(W,Z) lessleaves#(cons(U,V),cons(W,Z)) -> concat#(U,V) lessleaves#(cons(U,V),cons(W,Z)) -> lessleaves#(concat(U,V),concat(W,Z)) TRS: 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)) Matrix Interpretation Processor: dim=1 interpretation: [lessleaves#](x0, x1) = 2x0 + 2x1 + 5/2, [concat#](x0, x1) = 3x0 + 2x1, [true] = 0, [false] = 0, [lessleaves](x0, x1) = 0, [cons](x0, x1) = 3/2x0 + x1 + 3/2, [concat](x0, x1) = x0 + x1, [leaf] = 0 orientation: concat#(cons(U,V),Y) = 9/2U + 3V + 2Y + 9/2 >= 3V + 2Y = concat#(V,Y) lessleaves#(cons(U,V),cons(W,Z)) = 3U + 2V + 3W + 2Z + 17/2 >= 3W + 2Z = concat#(W,Z) lessleaves#(cons(U,V),cons(W,Z)) = 3U + 2V + 3W + 2Z + 17/2 >= 3U + 2V = concat#(U,V) lessleaves#(cons(U,V),cons(W,Z)) = 3U + 2V + 3W + 2Z + 17/2 >= 2U + 2V + 2W + 2Z + 5/2 = lessleaves#(concat(U,V),concat(W,Z)) concat(leaf(),Y) = Y >= Y = Y concat(cons(U,V),Y) = 3/2U + V + Y + 3/2 >= 3/2U + V + Y + 3/2 = cons(U,concat(V,Y)) lessleaves(X,leaf()) = 0 >= 0 = false() lessleaves(leaf(),cons(W,Z)) = 0 >= 0 = true() lessleaves(cons(U,V),cons(W,Z)) = 0 >= 0 = lessleaves(concat(U,V),concat(W,Z)) problem: DPs: TRS: 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)) Qed