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)) EDG 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)) graph: lessleaves#(cons(U,V),cons(W,Z)) -> lessleaves#(concat(U,V),concat(W,Z)) -> lessleaves#(cons(U,V),cons(W,Z)) -> concat#(W,Z) 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)) -> lessleaves#(concat(U,V),concat(W,Z)) -> lessleaves#(cons(U,V),cons(W,Z)) -> lessleaves#(concat(U,V),concat(W,Z)) lessleaves#(cons(U,V),cons(W,Z)) -> concat#(W,Z) -> concat#(cons(U,V),Y) -> concat#(V,Y) lessleaves#(cons(U,V),cons(W,Z)) -> concat#(U,V) -> concat#(cons(U,V),Y) -> concat#(V,Y) concat#(cons(U,V),Y) -> concat#(V,Y) -> concat#(cons(U,V),Y) -> concat#(V,Y) SCC Processor: #sccs: 2 #rules: 2 #arcs: 6/16 DPs: 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: dimension: 1 interpretation: [lessleaves#](x0, x1) = x1, [true] = 0, [false] = 0, [lessleaves](x0, x1) = 0, [cons](x0, x1) = x0 + x1 + 1, [concat](x0, x1) = x0 + x1, [leaf] = 0 orientation: lessleaves#(cons(U,V),cons(W,Z)) = W + Z + 1 >= W + Z = lessleaves#(concat(U,V),concat(W,Z)) concat(leaf(),Y) = Y >= Y = Y concat(cons(U,V),Y) = U + V + Y + 1 >= U + V + Y + 1 = 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 DPs: concat#(cons(U,V),Y) -> concat#(V,Y) 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)) Subterm Criterion Processor: simple projection: pi(concat#) = 0 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