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))) Usable Rule 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: reverse(nil()) -> nil() reverse(add(n,x)) -> app(reverse(x),add(n,nil())) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) Matrix Interpretation Processor: dim=1 usable rules: reverse(nil()) -> nil() reverse(add(n,x)) -> app(reverse(x),add(n,nil())) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) interpretation: [shuffle#](x0) = x0, [reverse#](x0) = x0 + 3, [app#](x0, x1) = x0 + 4, [reverse](x0) = x0, [add](x0, x1) = x1 + 4, [app](x0, x1) = x0 + x1, [nil] = 0 orientation: app#(add(n,x),y) = x + 8 >= x + 4 = app#(x,y) reverse#(add(n,x)) = x + 7 >= x + 3 = reverse#(x) reverse#(add(n,x)) = x + 7 >= x + 4 = app#(reverse(x),add(n,nil())) shuffle#(add(n,x)) = x + 4 >= x + 3 = reverse#(x) shuffle#(add(n,x)) = x + 4 >= x = shuffle#(reverse(x)) reverse(nil()) = 0 >= 0 = nil() reverse(add(n,x)) = x + 4 >= x + 4 = app(reverse(x),add(n,nil())) app(nil(),y) = y >= y = y app(add(n,x),y) = x + y + 4 >= x + y + 4 = add(n,app(x,y)) problem: DPs: TRS: reverse(nil()) -> nil() reverse(add(n,x)) -> app(reverse(x),add(n,nil())) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) Qed