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