YES Problem: app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) reverse(nil()) -> nil() reverse(add(n,x)) -> app(reverse(x),add(n,nil())) shuffle(nil()) -> nil() shuffle(add(n,x)) -> add(n,shuffle(reverse(x))) Proof: DP Processor: DPs: app#(add(n,x),y) -> app#(x,y) reverse#(add(n,x)) -> reverse#(x) reverse#(add(n,x)) -> app#(reverse(x),add(n,nil())) shuffle#(add(n,x)) -> reverse#(x) shuffle#(add(n,x)) -> shuffle#(reverse(x)) TRS: app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) reverse(nil()) -> nil() reverse(add(n,x)) -> app(reverse(x),add(n,nil())) shuffle(nil()) -> nil() shuffle(add(n,x)) -> add(n,shuffle(reverse(x))) Matrix Interpretation Processor: dim=1 interpretation: [shuffle#](x0) = x0 + 2, [reverse#](x0) = x0 + 2, [app#](x0, x1) = x0 + x1 + 1, [shuffle](x0) = 4x0 + 7, [reverse](x0) = x0, [add](x0, x1) = 2x0 + x1 + 1, [app](x0, x1) = x0 + x1, [nil] = 0 orientation: app#(add(n,x),y) = 2n + x + y + 2 >= x + y + 1 = app#(x,y) reverse#(add(n,x)) = 2n + x + 3 >= x + 2 = reverse#(x) reverse#(add(n,x)) = 2n + x + 3 >= 2n + x + 2 = app#(reverse(x),add(n,nil())) shuffle#(add(n,x)) = 2n + x + 3 >= x + 2 = reverse#(x) shuffle#(add(n,x)) = 2n + x + 3 >= x + 2 = shuffle#(reverse(x)) app(nil(),y) = y >= y = y app(add(n,x),y) = 2n + x + y + 1 >= 2n + x + y + 1 = add(n,app(x,y)) reverse(nil()) = 0 >= 0 = nil() reverse(add(n,x)) = 2n + x + 1 >= 2n + x + 1 = app(reverse(x),add(n,nil())) shuffle(nil()) = 7 >= 0 = nil() shuffle(add(n,x)) = 8n + 4x + 11 >= 2n + 4x + 8 = add(n,shuffle(reverse(x))) problem: DPs: TRS: app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) reverse(nil()) -> nil() reverse(add(n,x)) -> app(reverse(x),add(n,nil())) shuffle(nil()) -> nil() shuffle(add(n,x)) -> add(n,shuffle(reverse(x))) Qed