YES Problem: c(c(z,y,a()),a(),a()) -> b(z,y) f(c(x,y,z)) -> c(z,f(b(y,z)),a()) b(z,b(c(a(),y,a()),f(f(x)))) -> c(c(y,a(),z),z,x) Proof: DP Processor: DPs: c#(c(z,y,a()),a(),a()) -> b#(z,y) f#(c(x,y,z)) -> b#(y,z) f#(c(x,y,z)) -> f#(b(y,z)) f#(c(x,y,z)) -> c#(z,f(b(y,z)),a()) b#(z,b(c(a(),y,a()),f(f(x)))) -> c#(y,a(),z) b#(z,b(c(a(),y,a()),f(f(x)))) -> c#(c(y,a(),z),z,x) TRS: c(c(z,y,a()),a(),a()) -> b(z,y) f(c(x,y,z)) -> c(z,f(b(y,z)),a()) b(z,b(c(a(),y,a()),f(f(x)))) -> c(c(y,a(),z),z,x) Matrix Interpretation Processor: dim=2 interpretation: [f#](x0) = [0 1]x0, [b#](x0, x1) = [1 0]x1, [c#](x0, x1, x2) = [2 0]x0 + [1], [0 2] [1] [f](x0) = [2 1]x0 + [1], [2 0] [1 0] [b](x0, x1) = [0 0]x0 + [1 0]x1, [2 0] [2 0] [0 0] [0] [c](x0, x1, x2) = [2 0]x0 + [0 0]x1 + [3 1]x2 + [3], [0] [a] = [0] orientation: c#(c(z,y,a()),a(),a()) = [4 0]y + [4 0]z + [1] >= [1 0]y = b#(z,y) f#(c(x,y,z)) = [2 0]x + [3 1]z + [3] >= [1 0]z = b#(y,z) f#(c(x,y,z)) = [2 0]x + [3 1]z + [3] >= [1 0]z = f#(b(y,z)) f#(c(x,y,z)) = [2 0]x + [3 1]z + [3] >= [2 0]z + [1] = c#(z,f(b(y,z)),a()) b#(z,b(c(a(),y,a()),f(f(x)))) = [4 2]x + [4 0]y + [3] >= [2 0]y + [1] = c#(y,a(),z) b#(z,b(c(a(),y,a()),f(f(x)))) = [4 2]x + [4 0]y + [3] >= [4 0]y + [1] = c#(c(y,a(),z),z,x) [4 0] [4 0] [0] [1 0] [2 0] c(c(z,y,a()),a(),a()) = [4 0]y + [4 0]z + [3] >= [1 0]y + [0 0]z = b(z,y) [4 0] [0 0] [6 2] [7] [6 0] [2] f(c(x,y,z)) = [6 0]x + [4 0]y + [3 1]z + [4] >= [2 0]z + [3] = c(z,f(b(y,z)),a()) [4 2] [4 0] [2 0] [3] [0 0] [4 0] [2 0] [0] b(z,b(c(a(),y,a()),f(f(x)))) = [4 2]x + [4 0]y + [0 0]z + [3] >= [3 1]x + [4 0]y + [0 0]z + [3] = c(c(y,a(),z),z,x) problem: DPs: TRS: c(c(z,y,a()),a(),a()) -> b(z,y) f(c(x,y,z)) -> c(z,f(b(y,z)),a()) b(z,b(c(a(),y,a()),f(f(x)))) -> c(c(y,a(),z),z,x) Qed