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) Semantic Labeling Processor: dimension: 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: [b] = 1, [f](x0, x1) = x0 + 1, [a] = 1 labeled: a b usable (for model): a b argument filtering: pi(a) = [] pi(f) = 0 pi(b) = [] pi(f#) = 0 precedence: a > f# ~ b ~ 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=3 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) = [1 0 0]x0 + [1 0 0]x1, [0] [b] = [0] [0], [1 0 0] [1 0 0] [f](x0, x1) = [0 0 0]x0 + [0 0 0]x1 [0 0 0] [0 0 0] , [1] [a] = [0] [0] orientation: f#(f(a(),a()),x) = [1 0 0]x + [2] >= [1 0 0]x + [1] = f#(a(),x) f#(f(a(),a()),x) = [1 0 0]x + [2] >= [1 0 0]x + [2] = f#(a(),f(b(),f(a(),x))) f#(x,f(y,z)) = [1 0 0]x + [1 0 0]y + [1 0 0]z >= [1 0 0]x + [1 0 0]y = f#(x,y) f#(x,f(y,z)) = [1 0 0]x + [1 0 0]y + [1 0 0]z >= [1 0 0]x + [1 0 0]y + [1 0 0]z = f#(f(x,y),z) [1 0 0] [2] [1 0 0] [2] f(f(a(),a()),x) = [0 0 0]x + [0] >= [0 0 0]x + [0] = f(a(),f(b(),f(a(),x))) [0 0 0] [0] [0 0 0] [0] [1 0 0] [1 0 0] [1 0 0] [1 0 0] [1 0 0] [1 0 0] f(x,f(y,z)) = [0 0 0]x + [0 0 0]y + [0 0 0]z >= [0 0 0]x + [0 0 0]y + [0 0 0]z = f(f(x,y),z) [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0] 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: f220() -> 2* f{#,0}(3,5) -> 1* f{#,0}(24,2) -> 1* f{#,0}(19,4) -> 1* f{#,0}(24,6) -> 1* f{#,0}(24,20) -> 1* f{#,0}(3,6) -> 1* f{#,0}(19,3) -> 1* f{#,0}(3,20) -> 1* f{#,0}(24,5) -> 1* f{#,0}(19,19) -> 1* a0() -> 3* f0(3,5) -> 19* f0(24,2) -> 24* f0(19,4) -> 24* f0(24,6) -> 24,4 f0(4,2) -> 4* f0(24,20) -> 24,4 f0(20,5) -> 5* f0(5,3) -> 6,20 f0(5,19) -> 5* f0(6,2) -> 6* f0(6,6) -> 6* f0(6,20) -> 6* f0(3,2) -> 4* f0(3,6) -> 24* f0(19,3) -> 24* f0(3,20) -> 24* f0(24,5) -> 19* f0(19,19) -> 19* f0(20,2) -> 6* f0(20,6) -> 6* f0(5,4) -> 6* f0(20,20) -> 6* f0(6,5) -> 5* 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