YES Problem: merge(nil(),y) -> y merge(x,nil()) -> x merge(.(x,y),.(u,v)) -> if(<(x,u),.(x,merge(y,.(u,v))),.(u,merge(.(x,y),v))) ++(nil(),y) -> y ++(.(x,y),z) -> .(x,++(y,z)) if(true(),x,y) -> x if(false(),x,y) -> x Proof: DP Processor: DPs: merge#(.(x,y),.(u,v)) -> merge#(.(x,y),v) merge#(.(x,y),.(u,v)) -> merge#(y,.(u,v)) merge#(.(x,y),.(u,v)) -> if#(<(x,u),.(x,merge(y,.(u,v))),.(u,merge(.(x,y),v))) ++#(.(x,y),z) -> ++#(y,z) TRS: merge(nil(),y) -> y merge(x,nil()) -> x merge(.(x,y),.(u,v)) -> if(<(x,u),.(x,merge(y,.(u,v))),.(u,merge(.(x,y),v))) ++(nil(),y) -> y ++(.(x,y),z) -> .(x,++(y,z)) if(true(),x,y) -> x if(false(),x,y) -> x Usable Rule Processor: DPs: merge#(.(x,y),.(u,v)) -> merge#(.(x,y),v) merge#(.(x,y),.(u,v)) -> merge#(y,.(u,v)) merge#(.(x,y),.(u,v)) -> if#(<(x,u),.(x,merge(y,.(u,v))),.(u,merge(.(x,y),v))) ++#(.(x,y),z) -> ++#(y,z) TRS: merge(x,nil()) -> x merge(.(x,y),.(u,v)) -> if(<(x,u),.(x,merge(y,.(u,v))),.(u,merge(.(x,y),v))) merge(nil(),y) -> y Matrix Interpretation Processor: dim=1 usable rules: merge(x,nil()) -> x merge(.(x,y),.(u,v)) -> if(<(x,u),.(x,merge(y,.(u,v))),.(u,merge(.(x,y),v))) merge(nil(),y) -> y interpretation: [++#](x0, x1) = 4x0 + 4, [if#](x0, x1, x2) = x0 + x1, [merge#](x0, x1) = 3x0 + 4x1 + 3, [if](x0, x1, x2) = 4, [<](x0, x1) = 3x0 + 4, [.](x0, x1) = 5x0 + x1 + 1, [merge](x0, x1) = 2x0 + 4x1, [nil] = 7 orientation: merge#(.(x,y),.(u,v)) = 20u + 4v + 15x + 3y + 10 >= 4v + 15x + 3y + 6 = merge#(.(x,y),v) merge#(.(x,y),.(u,v)) = 20u + 4v + 15x + 3y + 10 >= 20u + 4v + 3y + 7 = merge#(y,.(u,v)) merge#(.(x,y),.(u,v)) = 20u + 4v + 15x + 3y + 10 >= 20u + 4v + 8x + 2y + 9 = if#(<(x,u),.(x,merge(y,.(u,v))),.(u,merge(.(x,y),v))) ++#(.(x,y),z) = 20x + 4y + 8 >= 4y + 4 = ++#(y,z) merge(x,nil()) = 2x + 28 >= x = x merge(.(x,y),.(u,v)) = 20u + 4v + 10x + 2y + 6 >= 4 = if(<(x,u),.(x,merge(y,.(u,v))),.(u,merge(.(x,y),v))) merge(nil(),y) = 4y + 14 >= y = y problem: DPs: TRS: merge(x,nil()) -> x merge(.(x,y),.(u,v)) -> if(<(x,u),.(x,merge(y,.(u,v))),.(u,merge(.(x,y),v))) merge(nil(),y) -> y Qed