YES Time: 0.024938 TRS: { merge(x, nil()) -> x, merge(nil(), y) -> y, merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v()))), merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v()))} DP: DP: {merge#(++(x, y), ++(u(), v())) -> merge#(y, ++(u(), v())), merge#(++(x, y), ++(u(), v())) -> merge#(++(x, y), v())} TRS: { merge(x, nil()) -> x, merge(nil(), y) -> y, merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v()))), merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v()))} UR: {} EDG: {(merge#(++(x, y), ++(u(), v())) -> merge#(y, ++(u(), v())), merge#(++(x, y), ++(u(), v())) -> merge#(y, ++(u(), v()))) (merge#(++(x, y), ++(u(), v())) -> merge#(y, ++(u(), v())), merge#(++(x, y), ++(u(), v())) -> merge#(++(x, y), v()))} STATUS: arrows: 0.500000 SCCS (1): Scc: {merge#(++(x, y), ++(u(), v())) -> merge#(y, ++(u(), v()))} SCC (1): Strict: {merge#(++(x, y), ++(u(), v())) -> merge#(y, ++(u(), v()))} Weak: { merge(x, nil()) -> x, merge(nil(), y) -> y, merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v()))), merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v()))} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [merge](x0, x1) = x0 + x1 + 1, [++](x0, x1) = x0 + 1, [nil] = 1, [u] = 0, [v] = 0, [merge#](x0, x1) = x0 + 1 Strict: merge#(++(x, y), ++(u(), v())) -> merge#(y, ++(u(), v())) 2 + 0x + 1y >= 1 + 1y Weak: merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v())) 3 + 0x + 1y >= 3 + 0x + 1y merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v()))) 3 + 0x + 1y >= 3 + 0x + 1y merge(nil(), y) -> y 2 + 1y >= 1y merge(x, nil()) -> x 2 + 1x >= 1x Qed