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