YES Problem: f(c(s(x),y)) -> f(c(x,s(y))) f(c(s(x),s(y))) -> g(c(x,y)) g(c(x,s(y))) -> g(c(s(x),y)) g(c(s(x),s(y))) -> f(c(x,y)) Proof: DP Processor: DPs: f#(c(s(x),y)) -> f#(c(x,s(y))) f#(c(s(x),s(y))) -> g#(c(x,y)) g#(c(x,s(y))) -> g#(c(s(x),y)) g#(c(s(x),s(y))) -> f#(c(x,y)) TRS: f(c(s(x),y)) -> f(c(x,s(y))) f(c(s(x),s(y))) -> g(c(x,y)) g(c(x,s(y))) -> g(c(s(x),y)) g(c(s(x),s(y))) -> f(c(x,y)) Usable Rule Processor: DPs: f#(c(s(x),y)) -> f#(c(x,s(y))) f#(c(s(x),s(y))) -> g#(c(x,y)) g#(c(x,s(y))) -> g#(c(s(x),y)) g#(c(s(x),s(y))) -> f#(c(x,y)) TRS: CDG Processor: DPs: f#(c(s(x),y)) -> f#(c(x,s(y))) f#(c(s(x),s(y))) -> g#(c(x,y)) g#(c(x,s(y))) -> g#(c(s(x),y)) g#(c(s(x),s(y))) -> f#(c(x,y)) TRS: graph: g#(c(s(x),s(y))) -> f#(c(x,y)) -> f#(c(s(x),y)) -> f#(c(x,s(y))) g#(c(s(x),s(y))) -> f#(c(x,y)) -> f#(c(s(x),s(y))) -> g#(c(x,y)) g#(c(x,s(y))) -> g#(c(s(x),y)) -> g#(c(x,s(y))) -> g#(c(s(x),y)) g#(c(x,s(y))) -> g#(c(s(x),y)) -> g#(c(s(x),s(y))) -> f#(c(x,y)) f#(c(s(x),s(y))) -> g#(c(x,y)) -> g#(c(x,s(y))) -> g#(c(s(x),y)) f#(c(s(x),s(y))) -> g#(c(x,y)) -> g#(c(s(x),s(y))) -> f#(c(x,y)) f#(c(s(x),y)) -> f#(c(x,s(y))) -> f#(c(s(x),y)) -> f#(c(x,s(y))) f#(c(s(x),y)) -> f#(c(x,s(y))) -> f#(c(s(x),s(y))) -> g#(c(x,y)) Restore Modifier: DPs: f#(c(s(x),y)) -> f#(c(x,s(y))) f#(c(s(x),s(y))) -> g#(c(x,y)) g#(c(x,s(y))) -> g#(c(s(x),y)) g#(c(s(x),s(y))) -> f#(c(x,y)) TRS: f(c(s(x),y)) -> f(c(x,s(y))) f(c(s(x),s(y))) -> g(c(x,y)) g(c(x,s(y))) -> g(c(s(x),y)) g(c(s(x),s(y))) -> f(c(x,y)) SCC Processor: #sccs: 1 #rules: 4 #arcs: 8/16 DPs: g#(c(s(x),s(y))) -> f#(c(x,y)) f#(c(s(x),s(y))) -> g#(c(x,y)) g#(c(x,s(y))) -> g#(c(s(x),y)) f#(c(s(x),y)) -> f#(c(x,s(y))) TRS: f(c(s(x),y)) -> f(c(x,s(y))) f(c(s(x),s(y))) -> g(c(x,y)) g(c(x,s(y))) -> g(c(s(x),y)) g(c(s(x),s(y))) -> f(c(x,y)) Matrix Interpretation Processor: dimension: 1 interpretation: [g#](x0) = x0, [f#](x0) = x0, [g](x0) = 0, [f](x0) = 0, [c](x0, x1) = x0 + x1, [s](x0) = x0 + 1 orientation: g#(c(s(x),s(y))) = x + y + 2 >= x + y = f#(c(x,y)) f#(c(s(x),s(y))) = x + y + 2 >= x + y = g#(c(x,y)) g#(c(x,s(y))) = x + y + 1 >= x + y + 1 = g#(c(s(x),y)) f#(c(s(x),y)) = x + y + 1 >= x + y + 1 = f#(c(x,s(y))) f(c(s(x),y)) = 0 >= 0 = f(c(x,s(y))) f(c(s(x),s(y))) = 0 >= 0 = g(c(x,y)) g(c(x,s(y))) = 0 >= 0 = g(c(s(x),y)) g(c(s(x),s(y))) = 0 >= 0 = f(c(x,y)) problem: DPs: g#(c(x,s(y))) -> g#(c(s(x),y)) f#(c(s(x),y)) -> f#(c(x,s(y))) TRS: f(c(s(x),y)) -> f(c(x,s(y))) f(c(s(x),s(y))) -> g(c(x,y)) g(c(x,s(y))) -> g(c(s(x),y)) g(c(s(x),s(y))) -> f(c(x,y)) Matrix Interpretation Processor: dimension: 1 interpretation: [g#](x0) = 0, [f#](x0) = x0 + 1, [g](x0) = 0, [f](x0) = 0, [c](x0, x1) = x0 + 1, [s](x0) = x0 + 1 orientation: g#(c(x,s(y))) = 0 >= 0 = g#(c(s(x),y)) f#(c(s(x),y)) = x + 3 >= x + 2 = f#(c(x,s(y))) f(c(s(x),y)) = 0 >= 0 = f(c(x,s(y))) f(c(s(x),s(y))) = 0 >= 0 = g(c(x,y)) g(c(x,s(y))) = 0 >= 0 = g(c(s(x),y)) g(c(s(x),s(y))) = 0 >= 0 = f(c(x,y)) problem: DPs: g#(c(x,s(y))) -> g#(c(s(x),y)) TRS: f(c(s(x),y)) -> f(c(x,s(y))) f(c(s(x),s(y))) -> g(c(x,y)) g(c(x,s(y))) -> g(c(s(x),y)) g(c(s(x),s(y))) -> f(c(x,y)) Matrix Interpretation Processor: dimension: 1 interpretation: [g#](x0) = x0, [g](x0) = 0, [f](x0) = 0, [c](x0, x1) = x1, [s](x0) = x0 + 1 orientation: g#(c(x,s(y))) = y + 1 >= y = g#(c(s(x),y)) f(c(s(x),y)) = 0 >= 0 = f(c(x,s(y))) f(c(s(x),s(y))) = 0 >= 0 = g(c(x,y)) g(c(x,s(y))) = 0 >= 0 = g(c(s(x),y)) g(c(s(x),s(y))) = 0 >= 0 = f(c(x,y)) problem: DPs: TRS: f(c(s(x),y)) -> f(c(x,s(y))) f(c(s(x),s(y))) -> g(c(x,y)) g(c(x,s(y))) -> g(c(s(x),y)) g(c(s(x),s(y))) -> f(c(x,y)) Qed