YES Problem: f(f(a(),a()),x) -> f(a(),f(b(),f(a(),x))) f(x,f(y,z)) -> f(f(x,y),z) Proof: DP Processor: DPs: f#(f(a(),a()),x) -> f#(a(),x) f#(f(a(),a()),x) -> f#(b(),f(a(),x)) f#(f(a(),a()),x) -> f#(a(),f(b(),f(a(),x))) f#(x,f(y,z)) -> f#(x,y) f#(x,f(y,z)) -> f#(f(x,y),z) TRS: f(f(a(),a()),x) -> f(a(),f(b(),f(a(),x))) f(x,f(y,z)) -> f(f(x,y),z) EDG Processor: DPs: f#(f(a(),a()),x) -> f#(a(),x) f#(f(a(),a()),x) -> f#(b(),f(a(),x)) f#(f(a(),a()),x) -> f#(a(),f(b(),f(a(),x))) f#(x,f(y,z)) -> f#(x,y) f#(x,f(y,z)) -> f#(f(x,y),z) TRS: f(f(a(),a()),x) -> f(a(),f(b(),f(a(),x))) f(x,f(y,z)) -> f(f(x,y),z) graph: f#(f(a(),a()),x) -> f#(b(),f(a(),x)) -> f#(x,f(y,z)) -> f#(x,y) f#(f(a(),a()),x) -> f#(b(),f(a(),x)) -> f#(x,f(y,z)) -> f#(f(x,y),z) f#(f(a(),a()),x) -> f#(a(),f(b(),f(a(),x))) -> f#(x,f(y,z)) -> f#(x,y) f#(f(a(),a()),x) -> f#(a(),f(b(),f(a(),x))) -> f#(x,f(y,z)) -> f#(f(x,y),z) f#(f(a(),a()),x) -> f#(a(),x) -> f#(x,f(y,z)) -> f#(x,y) f#(f(a(),a()),x) -> f#(a(),x) -> f#(x,f(y,z)) -> f#(f(x,y),z) f#(x,f(y,z)) -> f#(f(x,y),z) -> f#(f(a(),a()),x) -> f#(a(),x) f#(x,f(y,z)) -> f#(f(x,y),z) -> f#(f(a(),a()),x) -> f#(b(),f(a(),x)) f#(x,f(y,z)) -> f#(f(x,y),z) -> f#(f(a(),a()),x) -> f#(a(),f(b(),f(a(),x))) f#(x,f(y,z)) -> f#(f(x,y),z) -> f#(x,f(y,z)) -> f#(x,y) f#(x,f(y,z)) -> f#(f(x,y),z) -> f#(x,f(y,z)) -> f#(f(x,y),z) f#(x,f(y,z)) -> f#(x,y) -> f#(f(a(),a()),x) -> f#(a(),x) f#(x,f(y,z)) -> f#(x,y) -> f#(f(a(),a()),x) -> f#(b(),f(a(),x)) f#(x,f(y,z)) -> f#(x,y) -> f#(f(a(),a()),x) -> f#(a(),f(b(),f(a(),x))) f#(x,f(y,z)) -> f#(x,y) -> f#(x,f(y,z)) -> f#(x,y) f#(x,f(y,z)) -> f#(x,y) -> f#(x,f(y,z)) -> f#(f(x,y),z) KBO Processor: argument filtering: pi(a) = [] pi(f) = 0 pi(b) = [] pi(f#) = [0] usable rules: f(f(a(),a()),x) -> f(a(),f(b(),f(a(),x))) f(x,f(y,z)) -> f(f(x,y),z) weight function: w0 = 1 w(f#) = w(b) = w(f) = w(a) = 1 precedence: a > b > f > f# problem: DPs: f#(f(a(),a()),x) -> f#(a(),x) f#(f(a(),a()),x) -> f#(a(),f(b(),f(a(),x))) f#(x,f(y,z)) -> f#(x,y) f#(x,f(y,z)) -> f#(f(x,y),z) TRS: f(f(a(),a()),x) -> f(a(),f(b(),f(a(),x))) f(x,f(y,z)) -> f(f(x,y),z) Restore Modifier: DPs: f#(f(a(),a()),x) -> f#(a(),x) f#(f(a(),a()),x) -> f#(a(),f(b(),f(a(),x))) f#(x,f(y,z)) -> f#(x,y) f#(x,f(y,z)) -> f#(f(x,y),z) TRS: f(f(a(),a()),x) -> f(a(),f(b(),f(a(),x))) f(x,f(y,z)) -> f(f(x,y),z) Matrix Interpretation Processor: dim=1 usable rules: f(f(a(),a()),x) -> f(a(),f(b(),f(a(),x))) f(x,f(y,z)) -> f(f(x,y),z) interpretation: [f](x0, x1) = x0 + x1, [f#](x0, x1) = x0 + x1, [a] = 4, [b] = 0 orientation: f#(f(a(),a()),x) = x + 8 >= x + 4 = f#(a(),x) f#(f(a(),a()),x) = x + 8 >= x + 8 = f#(a(),f(b(),f(a(),x))) f#(x,f(y,z)) = x + y + z >= x + y = f#(x,y) f#(x,f(y,z)) = x + y + z >= x + y + z = f#(f(x,y),z) f(f(a(),a()),x) = x + 8 >= x + 8 = f(a(),f(b(),f(a(),x))) f(x,f(y,z)) = x + y + z >= x + y + z = f(f(x,y),z) problem: DPs: f#(f(a(),a()),x) -> f#(a(),f(b(),f(a(),x))) f#(x,f(y,z)) -> f#(x,y) f#(x,f(y,z)) -> f#(f(x,y),z) TRS: f(f(a(),a()),x) -> f(a(),f(b(),f(a(),x))) f(x,f(y,z)) -> f(f(x,y),z) Restore Modifier: DPs: f#(f(a(),a()),x) -> f#(a(),f(b(),f(a(),x))) f#(x,f(y,z)) -> f#(x,y) f#(x,f(y,z)) -> f#(f(x,y),z) TRS: f(f(a(),a()),x) -> f(a(),f(b(),f(a(),x))) f(x,f(y,z)) -> f(f(x,y),z) Bounds Processor: bound: 0 enrichment: match-dp automaton: final states: {1} transitions: f{#,0}(3,5) -> 1* f{#,0}(24,2) -> 1* f{#,0}(24,6) -> 1* f{#,0}(19,3) -> 1* f{#,0}(24,5) -> 1* f{#,0}(3,6) -> 1* f{#,0}(19,4) -> 1* f{#,0}(19,19) -> 1* f{#,0}(24,20) -> 1* f{#,0}(3,20) -> 1* f0(3,6) -> 24* f0(20,20) -> 6* f0(6,6) -> 6* f0(6,20) -> 6* f0(20,6) -> 6* f0(24,5) -> 19* f0(3,20) -> 24* f0(4,2) -> 4* f0(6,2) -> 6* f0(3,5) -> 19* f0(24,2) -> 24* f0(5,19) -> 5* f0(20,2) -> 6* f0(20,5) -> 5* f0(19,4) -> 24* f0(24,20) -> 24,4 f0(3,2) -> 4* f0(5,3) -> 6,20 f0(19,3) -> 24* f0(19,19) -> 19* f0(24,6) -> 24,4 f0(6,5) -> 5* f0(5,4) -> 6* a0() -> 3* f40() -> 2* b0() -> 5* 24 -> 4* problem: DPs: f#(x,f(y,z)) -> f#(x,y) f#(x,f(y,z)) -> f#(f(x,y),z) TRS: f(f(a(),a()),x) -> f(a(),f(b(),f(a(),x))) f(x,f(y,z)) -> f(f(x,y),z) Size-Change Termination Processor: DPs: TRS: f(f(a(),a()),x) -> f(a(),f(b(),f(a(),x))) f(x,f(y,z)) -> f(f(x,y),z) The DP: f#(x,f(y,z)) -> f#(x,y) has the edges: 0 >= 0 1 > 1 The DP: f#(x,f(y,z)) -> f#(f(x,y),z) has the edges: 1 > 1 Qed