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