YES Problem: a(b(x1)) -> x1 a(c(x1)) -> b(c(c(a(x1)))) b(c(x1)) -> a(b(x1)) Proof: String Reversal Processor: b(a(x1)) -> x1 c(a(x1)) -> a(c(c(b(x1)))) c(b(x1)) -> b(a(x1)) DP Processor: DPs: c#(a(x1)) -> b#(x1) c#(a(x1)) -> c#(b(x1)) c#(a(x1)) -> c#(c(b(x1))) c#(b(x1)) -> b#(a(x1)) TRS: b(a(x1)) -> x1 c(a(x1)) -> a(c(c(b(x1)))) c(b(x1)) -> b(a(x1)) TDG Processor: DPs: c#(a(x1)) -> b#(x1) c#(a(x1)) -> c#(b(x1)) c#(a(x1)) -> c#(c(b(x1))) c#(b(x1)) -> b#(a(x1)) TRS: b(a(x1)) -> x1 c(a(x1)) -> a(c(c(b(x1)))) c(b(x1)) -> b(a(x1)) graph: c#(a(x1)) -> c#(c(b(x1))) -> c#(b(x1)) -> b#(a(x1)) c#(a(x1)) -> c#(c(b(x1))) -> c#(a(x1)) -> c#(c(b(x1))) c#(a(x1)) -> c#(c(b(x1))) -> c#(a(x1)) -> c#(b(x1)) c#(a(x1)) -> c#(c(b(x1))) -> c#(a(x1)) -> b#(x1) c#(a(x1)) -> c#(b(x1)) -> c#(b(x1)) -> b#(a(x1)) c#(a(x1)) -> c#(b(x1)) -> c#(a(x1)) -> c#(c(b(x1))) c#(a(x1)) -> c#(b(x1)) -> c#(a(x1)) -> c#(b(x1)) c#(a(x1)) -> c#(b(x1)) -> c#(a(x1)) -> b#(x1) SCC Processor: #sccs: 1 #rules: 2 #arcs: 8/16 DPs: c#(a(x1)) -> c#(c(b(x1))) c#(a(x1)) -> c#(b(x1)) TRS: b(a(x1)) -> x1 c(a(x1)) -> a(c(c(b(x1)))) c(b(x1)) -> b(a(x1)) Arctic Interpretation Processor: dimension: 2 usable rules: b(a(x1)) -> x1 c(a(x1)) -> a(c(c(b(x1)))) c(b(x1)) -> b(a(x1)) interpretation: [c#](x0) = [-& 0 ]x0 + [1], [0 1] [2] [c](x0) = [0 0]x0 + [2], [-& 1 ] [3] [a](x0) = [0 0 ]x0 + [2], [-1 0 ] [0] [b](x0) = [-1 -&]x0 + [0] orientation: c#(a(x1)) = [0 0]x1 + [2] >= [-1 0 ]x1 + [2] = c#(c(b(x1))) c#(a(x1)) = [0 0]x1 + [2] >= [-1 -&]x1 + [1] = c#(b(x1)) [0 0 ] [2] b(a(x1)) = [-& 0 ]x1 + [2] >= x1 = x1 [1 1] [3] [1 1] [3] c(a(x1)) = [0 1]x1 + [3] >= [0 1]x1 + [3] = a(c(c(b(x1)))) [0 0 ] [2] [0 0 ] [2] c(b(x1)) = [-1 0 ]x1 + [2] >= [-& 0 ]x1 + [2] = b(a(x1)) problem: DPs: c#(a(x1)) -> c#(c(b(x1))) TRS: b(a(x1)) -> x1 c(a(x1)) -> a(c(c(b(x1)))) c(b(x1)) -> b(a(x1)) Restore Modifier: DPs: c#(a(x1)) -> c#(c(b(x1))) TRS: b(a(x1)) -> x1 c(a(x1)) -> a(c(c(b(x1)))) c(b(x1)) -> b(a(x1)) EDG Processor: DPs: c#(a(x1)) -> c#(c(b(x1))) TRS: b(a(x1)) -> x1 c(a(x1)) -> a(c(c(b(x1)))) c(b(x1)) -> b(a(x1)) graph: c#(a(x1)) -> c#(c(b(x1))) -> c#(a(x1)) -> c#(c(b(x1))) Arctic Interpretation Processor: dimension: 2 usable rules: b(a(x1)) -> x1 c(a(x1)) -> a(c(c(b(x1)))) c(b(x1)) -> b(a(x1)) interpretation: [c#](x0) = [0 -&]x0 + [0], [1 -&] [-4] [c](x0) = [-& 0 ]x0 + [-4], [1 -&] [2 ] [a](x0) = [-& 0 ]x0 + [-3], [-1 -&] [0 ] [b](x0) = [-& 0 ]x0 + [-3] orientation: c#(a(x1)) = [1 -&]x1 + [2] >= [0 -&]x1 + [1] = c#(c(b(x1))) [1 ] b(a(x1)) = x1 + [-3] >= x1 = x1 [2 -&] [3 ] [2 -&] [3 ] c(a(x1)) = [-& 0 ]x1 + [-3] >= [-& 0 ]x1 + [-3] = a(c(c(b(x1)))) [1 ] [1 ] c(b(x1)) = x1 + [-3] >= x1 + [-3] = b(a(x1)) problem: DPs: TRS: b(a(x1)) -> x1 c(a(x1)) -> a(c(c(b(x1)))) c(b(x1)) -> b(a(x1)) Qed