YES Problem: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(0(),y) -> y +(s(x),y) -> s(+(x,y)) +(x,+(y,z)) -> +(+(x,y),z) f(g(f(x))) -> f(h(s(0()),x)) f(g(h(x,y))) -> f(h(s(x),y)) f(h(x,h(y,z))) -> f(h(+(x,y),z)) Proof: DP Processor: DPs: +#(x,s(y)) -> +#(x,y) +#(s(x),y) -> +#(x,y) +#(x,+(y,z)) -> +#(x,y) +#(x,+(y,z)) -> +#(+(x,y),z) f#(g(f(x))) -> f#(h(s(0()),x)) f#(g(h(x,y))) -> f#(h(s(x),y)) f#(h(x,h(y,z))) -> +#(x,y) f#(h(x,h(y,z))) -> f#(h(+(x,y),z)) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(0(),y) -> y +(s(x),y) -> s(+(x,y)) +(x,+(y,z)) -> +(+(x,y),z) f(g(f(x))) -> f(h(s(0()),x)) f(g(h(x,y))) -> f(h(s(x),y)) f(h(x,h(y,z))) -> f(h(+(x,y),z)) Usable Rule Processor: DPs: +#(x,s(y)) -> +#(x,y) +#(s(x),y) -> +#(x,y) +#(x,+(y,z)) -> +#(x,y) +#(x,+(y,z)) -> +#(+(x,y),z) f#(g(f(x))) -> f#(h(s(0()),x)) f#(g(h(x,y))) -> f#(h(s(x),y)) f#(h(x,h(y,z))) -> +#(x,y) f#(h(x,h(y,z))) -> f#(h(+(x,y),z)) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(0(),y) -> y +(s(x),y) -> s(+(x,y)) +(x,+(y,z)) -> +(+(x,y),z) CDG Processor: DPs: +#(x,s(y)) -> +#(x,y) +#(s(x),y) -> +#(x,y) +#(x,+(y,z)) -> +#(x,y) +#(x,+(y,z)) -> +#(+(x,y),z) f#(g(f(x))) -> f#(h(s(0()),x)) f#(g(h(x,y))) -> f#(h(s(x),y)) f#(h(x,h(y,z))) -> +#(x,y) f#(h(x,h(y,z))) -> f#(h(+(x,y),z)) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(0(),y) -> y +(s(x),y) -> s(+(x,y)) +(x,+(y,z)) -> +(+(x,y),z) graph: f#(h(x,h(y,z))) -> f#(h(+(x,y),z)) -> f#(h(x,h(y,z))) -> +#(x,y) f#(h(x,h(y,z))) -> f#(h(+(x,y),z)) -> f#(h(x,h(y,z))) -> f#(h(+(x,y),z)) f#(h(x,h(y,z))) -> +#(x,y) -> +#(x,s(y)) -> +#(x,y) f#(h(x,h(y,z))) -> +#(x,y) -> +#(s(x),y) -> +#(x,y) f#(h(x,h(y,z))) -> +#(x,y) -> +#(x,+(y,z)) -> +#(x,y) f#(h(x,h(y,z))) -> +#(x,y) -> +#(x,+(y,z)) -> +#(+(x,y),z) f#(g(h(x,y))) -> f#(h(s(x),y)) -> f#(h(x,h(y,z))) -> +#(x,y) f#(g(h(x,y))) -> f#(h(s(x),y)) -> f#(h(x,h(y,z))) -> f#(h(+(x,y),z)) f#(g(f(x))) -> f#(h(s(0()),x)) -> f#(h(x,h(y,z))) -> +#(x,y) f#(g(f(x))) -> f#(h(s(0()),x)) -> f#(h(x,h(y,z))) -> f#(h(+(x,y),z)) +#(s(x),y) -> +#(x,y) -> +#(x,s(y)) -> +#(x,y) +#(s(x),y) -> +#(x,y) -> +#(s(x),y) -> +#(x,y) +#(s(x),y) -> +#(x,y) -> +#(x,+(y,z)) -> +#(x,y) +#(s(x),y) -> +#(x,y) -> +#(x,+(y,z)) -> +#(+(x,y),z) +#(x,s(y)) -> +#(x,y) -> +#(x,s(y)) -> +#(x,y) +#(x,s(y)) -> +#(x,y) -> +#(s(x),y) -> +#(x,y) +#(x,s(y)) -> +#(x,y) -> +#(x,+(y,z)) -> +#(x,y) +#(x,s(y)) -> +#(x,y) -> +#(x,+(y,z)) -> +#(+(x,y),z) +#(x,+(y,z)) -> +#(+(x,y),z) -> +#(x,s(y)) -> +#(x,y) +#(x,+(y,z)) -> +#(+(x,y),z) -> +#(s(x),y) -> +#(x,y) +#(x,+(y,z)) -> +#(+(x,y),z) -> +#(x,+(y,z)) -> +#(x,y) +#(x,+(y,z)) -> +#(+(x,y),z) -> +#(x,+(y,z)) -> +#(+(x,y),z) +#(x,+(y,z)) -> +#(x,y) -> +#(x,s(y)) -> +#(x,y) +#(x,+(y,z)) -> +#(x,y) -> +#(s(x),y) -> +#(x,y) +#(x,+(y,z)) -> +#(x,y) -> +#(x,+(y,z)) -> +#(x,y) +#(x,+(y,z)) -> +#(x,y) -> +#(x,+(y,z)) -> +#(+(x,y),z) Restore Modifier: DPs: +#(x,s(y)) -> +#(x,y) +#(s(x),y) -> +#(x,y) +#(x,+(y,z)) -> +#(x,y) +#(x,+(y,z)) -> +#(+(x,y),z) f#(g(f(x))) -> f#(h(s(0()),x)) f#(g(h(x,y))) -> f#(h(s(x),y)) f#(h(x,h(y,z))) -> +#(x,y) f#(h(x,h(y,z))) -> f#(h(+(x,y),z)) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(0(),y) -> y +(s(x),y) -> s(+(x,y)) +(x,+(y,z)) -> +(+(x,y),z) f(g(f(x))) -> f(h(s(0()),x)) f(g(h(x,y))) -> f(h(s(x),y)) f(h(x,h(y,z))) -> f(h(+(x,y),z)) SCC Processor: #sccs: 2 #rules: 5 #arcs: 26/64 DPs: f#(h(x,h(y,z))) -> f#(h(+(x,y),z)) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(0(),y) -> y +(s(x),y) -> s(+(x,y)) +(x,+(y,z)) -> +(+(x,y),z) f(g(f(x))) -> f(h(s(0()),x)) f(g(h(x,y))) -> f(h(s(x),y)) f(h(x,h(y,z))) -> f(h(+(x,y),z)) Matrix Interpretation Processor: dimension: 1 interpretation: [f#](x0) = x0, [h](x0, x1) = x1 + 1, [g](x0) = x0 + 1, [f](x0) = x0, [s](x0) = 0, [+](x0, x1) = x0 + x1, [0] = 0 orientation: f#(h(x,h(y,z))) = z + 2 >= z + 1 = f#(h(+(x,y),z)) +(x,0()) = x >= x = x +(x,s(y)) = x >= 0 = s(+(x,y)) +(0(),y) = y >= y = y +(s(x),y) = y >= 0 = s(+(x,y)) +(x,+(y,z)) = x + y + z >= x + y + z = +(+(x,y),z) f(g(f(x))) = x + 1 >= x + 1 = f(h(s(0()),x)) f(g(h(x,y))) = y + 2 >= y + 1 = f(h(s(x),y)) f(h(x,h(y,z))) = z + 2 >= z + 1 = f(h(+(x,y),z)) problem: DPs: TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(0(),y) -> y +(s(x),y) -> s(+(x,y)) +(x,+(y,z)) -> +(+(x,y),z) f(g(f(x))) -> f(h(s(0()),x)) f(g(h(x,y))) -> f(h(s(x),y)) f(h(x,h(y,z))) -> f(h(+(x,y),z)) Qed DPs: +#(x,+(y,z)) -> +#(+(x,y),z) +#(x,+(y,z)) -> +#(x,y) +#(s(x),y) -> +#(x,y) +#(x,s(y)) -> +#(x,y) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(0(),y) -> y +(s(x),y) -> s(+(x,y)) +(x,+(y,z)) -> +(+(x,y),z) f(g(f(x))) -> f(h(s(0()),x)) f(g(h(x,y))) -> f(h(s(x),y)) f(h(x,h(y,z))) -> f(h(+(x,y),z)) Matrix Interpretation Processor: dimension: 1 interpretation: [+#](x0, x1) = x1, [h](x0, x1) = 1, [g](x0) = 0, [f](x0) = 0, [s](x0) = x0 + 1, [+](x0, x1) = x0 + x1, [0] = 0 orientation: +#(x,+(y,z)) = y + z >= z = +#(+(x,y),z) +#(x,+(y,z)) = y + z >= y = +#(x,y) +#(s(x),y) = y >= y = +#(x,y) +#(x,s(y)) = y + 1 >= y = +#(x,y) +(x,0()) = x >= x = x +(x,s(y)) = x + y + 1 >= x + y + 1 = s(+(x,y)) +(0(),y) = y >= y = y +(s(x),y) = x + y + 1 >= x + y + 1 = s(+(x,y)) +(x,+(y,z)) = x + y + z >= x + y + z = +(+(x,y),z) f(g(f(x))) = 0 >= 0 = f(h(s(0()),x)) f(g(h(x,y))) = 0 >= 0 = f(h(s(x),y)) f(h(x,h(y,z))) = 0 >= 0 = f(h(+(x,y),z)) problem: DPs: +#(x,+(y,z)) -> +#(+(x,y),z) +#(x,+(y,z)) -> +#(x,y) +#(s(x),y) -> +#(x,y) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(0(),y) -> y +(s(x),y) -> s(+(x,y)) +(x,+(y,z)) -> +(+(x,y),z) f(g(f(x))) -> f(h(s(0()),x)) f(g(h(x,y))) -> f(h(s(x),y)) f(h(x,h(y,z))) -> f(h(+(x,y),z)) Matrix Interpretation Processor: dimension: 1 interpretation: [+#](x0, x1) = x0 + x1, [h](x0, x1) = 1, [g](x0) = 1, [f](x0) = x0 + 1, [s](x0) = x0 + 1, [+](x0, x1) = x0 + x1, [0] = 0 orientation: +#(x,+(y,z)) = x + y + z >= x + y + z = +#(+(x,y),z) +#(x,+(y,z)) = x + y + z >= x + y = +#(x,y) +#(s(x),y) = x + y + 1 >= x + y = +#(x,y) +(x,0()) = x >= x = x +(x,s(y)) = x + y + 1 >= x + y + 1 = s(+(x,y)) +(0(),y) = y >= y = y +(s(x),y) = x + y + 1 >= x + y + 1 = s(+(x,y)) +(x,+(y,z)) = x + y + z >= x + y + z = +(+(x,y),z) f(g(f(x))) = 2 >= 2 = f(h(s(0()),x)) f(g(h(x,y))) = 2 >= 2 = f(h(s(x),y)) f(h(x,h(y,z))) = 2 >= 2 = f(h(+(x,y),z)) problem: DPs: +#(x,+(y,z)) -> +#(+(x,y),z) +#(x,+(y,z)) -> +#(x,y) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(0(),y) -> y +(s(x),y) -> s(+(x,y)) +(x,+(y,z)) -> +(+(x,y),z) f(g(f(x))) -> f(h(s(0()),x)) f(g(h(x,y))) -> f(h(s(x),y)) f(h(x,h(y,z))) -> f(h(+(x,y),z)) Matrix Interpretation Processor: dimension: 1 interpretation: [+#](x0, x1) = x0 + x1, [h](x0, x1) = x1 + 1, [g](x0) = x0, [f](x0) = x0 + 1, [s](x0) = x0 + 1, [+](x0, x1) = x0 + x1 + 1, [0] = 0 orientation: +#(x,+(y,z)) = x + y + z + 1 >= x + y + z + 1 = +#(+(x,y),z) +#(x,+(y,z)) = x + y + z + 1 >= x + y = +#(x,y) +(x,0()) = x + 1 >= x = x +(x,s(y)) = x + y + 2 >= x + y + 2 = s(+(x,y)) +(0(),y) = y + 1 >= y = y +(s(x),y) = x + y + 2 >= x + y + 2 = s(+(x,y)) +(x,+(y,z)) = x + y + z + 2 >= x + y + z + 2 = +(+(x,y),z) f(g(f(x))) = x + 2 >= x + 2 = f(h(s(0()),x)) f(g(h(x,y))) = y + 2 >= y + 2 = f(h(s(x),y)) f(h(x,h(y,z))) = z + 3 >= z + 2 = f(h(+(x,y),z)) problem: DPs: +#(x,+(y,z)) -> +#(+(x,y),z) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(0(),y) -> y +(s(x),y) -> s(+(x,y)) +(x,+(y,z)) -> +(+(x,y),z) f(g(f(x))) -> f(h(s(0()),x)) f(g(h(x,y))) -> f(h(s(x),y)) f(h(x,h(y,z))) -> f(h(+(x,y),z)) Matrix Interpretation Processor: dimension: 1 interpretation: [+#](x0, x1) = x1, [h](x0, x1) = 0, [g](x0) = 0, [f](x0) = 0, [s](x0) = x0, [+](x0, x1) = x0 + x1 + 1, [0] = 0 orientation: +#(x,+(y,z)) = y + z + 1 >= z = +#(+(x,y),z) +(x,0()) = x + 1 >= x = x +(x,s(y)) = x + y + 1 >= x + y + 1 = s(+(x,y)) +(0(),y) = y + 1 >= y = y +(s(x),y) = x + y + 1 >= x + y + 1 = s(+(x,y)) +(x,+(y,z)) = x + y + z + 2 >= x + y + z + 2 = +(+(x,y),z) f(g(f(x))) = 0 >= 0 = f(h(s(0()),x)) f(g(h(x,y))) = 0 >= 0 = f(h(s(x),y)) f(h(x,h(y,z))) = 0 >= 0 = f(h(+(x,y),z)) problem: DPs: TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(0(),y) -> y +(s(x),y) -> s(+(x,y)) +(x,+(y,z)) -> +(+(x,y),z) f(g(f(x))) -> f(h(s(0()),x)) f(g(h(x,y))) -> f(h(s(x),y)) f(h(x,h(y,z))) -> f(h(+(x,y),z)) Qed