YES Problem: del(.(x,.(y,z))) -> f(=(x,y),x,y,z) f(true(),x,y,z) -> del(.(y,z)) f(false(),x,y,z) -> .(x,del(.(y,z))) =(nil(),nil()) -> true() =(.(x,y),nil()) -> false() =(nil(),.(y,z)) -> false() =(.(x,y),.(u(),v())) -> and(=(x,u()),=(y,v())) Proof: DP Processor: DPs: del#(.(x,.(y,z))) -> =#(x,y) del#(.(x,.(y,z))) -> f#(=(x,y),x,y,z) f#(true(),x,y,z) -> del#(.(y,z)) f#(false(),x,y,z) -> del#(.(y,z)) =#(.(x,y),.(u(),v())) -> =#(y,v()) =#(.(x,y),.(u(),v())) -> =#(x,u()) TRS: del(.(x,.(y,z))) -> f(=(x,y),x,y,z) f(true(),x,y,z) -> del(.(y,z)) f(false(),x,y,z) -> .(x,del(.(y,z))) =(nil(),nil()) -> true() =(.(x,y),nil()) -> false() =(nil(),.(y,z)) -> false() =(.(x,y),.(u(),v())) -> and(=(x,u()),=(y,v())) Usable Rule Processor: DPs: del#(.(x,.(y,z))) -> =#(x,y) del#(.(x,.(y,z))) -> f#(=(x,y),x,y,z) f#(true(),x,y,z) -> del#(.(y,z)) f#(false(),x,y,z) -> del#(.(y,z)) =#(.(x,y),.(u(),v())) -> =#(y,v()) =#(.(x,y),.(u(),v())) -> =#(x,u()) TRS: =(nil(),nil()) -> true() =(.(x,y),nil()) -> false() =(nil(),.(y,z)) -> false() =(.(x,y),.(u(),v())) -> and(=(x,u()),=(y,v())) Arctic Interpretation Processor: dimension: 1 usable rules: =(nil(),nil()) -> true() =(.(x,y),nil()) -> false() =(nil(),.(y,z)) -> false() =(.(x,y),.(u(),v())) -> and(=(x,u()),=(y,v())) interpretation: [f#](x0, x1, x2, x3) = x0 + 2x1 + 5x2 + 3x3, [=#](x0, x1) = x1, [del#](x0) = x0, [and](x0, x1) = x0 + 0, [v] = 0, [u] = 1, [nil] = 4, [false] = 4, [true] = 0, [=](x0, x1) = 1x0 + 1x1, [.](x0, x1) = 4x0 + 2x1 orientation: del#(.(x,.(y,z))) = 4x + 6y + 4z >= y = =#(x,y) del#(.(x,.(y,z))) = 4x + 6y + 4z >= 2x + 5y + 3z = f#(=(x,y),x,y,z) f#(true(),x,y,z) = 2x + 5y + 3z + 0 >= 4y + 2z = del#(.(y,z)) f#(false(),x,y,z) = 2x + 5y + 3z + 4 >= 4y + 2z = del#(.(y,z)) =#(.(x,y),.(u(),v())) = 5 >= 0 = =#(y,v()) =#(.(x,y),.(u(),v())) = 5 >= 1 = =#(x,u()) =(nil(),nil()) = 5 >= 0 = true() =(.(x,y),nil()) = 5x + 3y + 5 >= 4 = false() =(nil(),.(y,z)) = 5y + 3z + 5 >= 4 = false() =(.(x,y),.(u(),v())) = 5x + 3y + 6 >= 1x + 2 = and(=(x,u()),=(y,v())) problem: DPs: TRS: =(nil(),nil()) -> true() =(.(x,y),nil()) -> false() =(nil(),.(y,z)) -> false() =(.(x,y),.(u(),v())) -> and(=(x,u()),=(y,v())) Qed