YES Problem: f(a(),f(f(a(),a()),x)) -> f(f(a(),a()),f(a(),f(a(),x))) Proof: DP Processor: DPs: f#(a(),f(f(a(),a()),x)) -> f#(a(),x) f#(a(),f(f(a(),a()),x)) -> f#(a(),f(a(),x)) f#(a(),f(f(a(),a()),x)) -> f#(f(a(),a()),f(a(),f(a(),x))) TRS: f(a(),f(f(a(),a()),x)) -> f(f(a(),a()),f(a(),f(a(),x))) Matrix Interpretation Processor: dim=2 usable rules: f(a(),f(f(a(),a()),x)) -> f(f(a(),a()),f(a(),f(a(),x))) interpretation: [f#](x0, x1) = [2 0]x1 + [2], [0 1] [1 0] [f](x0, x1) = [0 0]x0 + [1 0]x1, [1] [a] = [0] orientation: f#(a(),f(f(a(),a()),x)) = [2 0]x + [4] >= [2 0]x + [2] = f#(a(),x) f#(a(),f(f(a(),a()),x)) = [2 0]x + [4] >= [2 0]x + [2] = f#(a(),f(a(),x)) f#(a(),f(f(a(),a()),x)) = [2 0]x + [4] >= [2 0]x + [2] = f#(f(a(),a()),f(a(),f(a(),x))) [1 0] [1] [1 0] [1] f(a(),f(f(a(),a()),x)) = [1 0]x + [1] >= [1 0]x + [0] = f(f(a(),a()),f(a(),f(a(),x))) problem: DPs: TRS: f(a(),f(f(a(),a()),x)) -> f(f(a(),a()),f(a(),f(a(),x))) Qed