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