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