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))) TDG 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))) graph: shuffle#(add(n,x)) -> shuffle#(reverse(x)) -> shuffle#(add(n,x)) -> shuffle#(reverse(x)) shuffle#(add(n,x)) -> shuffle#(reverse(x)) -> shuffle#(add(n,x)) -> reverse#(x) shuffle#(add(n,x)) -> reverse#(x) -> reverse#(add(n,x)) -> app#(reverse(x),add(n,nil())) shuffle#(add(n,x)) -> reverse#(x) -> reverse#(add(n,x)) -> reverse#(x) reverse#(add(n,x)) -> reverse#(x) -> reverse#(add(n,x)) -> app#(reverse(x),add(n,nil())) reverse#(add(n,x)) -> reverse#(x) -> reverse#(add(n,x)) -> reverse#(x) reverse#(add(n,x)) -> app#(reverse(x),add(n,nil())) -> app#(add(n,x),y) -> app#(x,y) app#(add(n,x),y) -> app#(x,y) -> app#(add(n,x),y) -> app#(x,y) CDG 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))) graph: shuffle#(add(n,x)) -> shuffle#(reverse(x)) -> shuffle#(add(n,x)) -> reverse#(x) shuffle#(add(n,x)) -> shuffle#(reverse(x)) -> shuffle#(add(n,x)) -> shuffle#(reverse(x)) reverse#(add(n,x)) -> app#(reverse(x),add(n,nil())) -> app#(add(n,x),y) -> app#(x,y) SCC Processor: #sccs: 1 #rules: 1 #arcs: 3/25 DPs: 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, [shuffle](x0) = 5x0 + 3, [reverse](x0) = x0, [add](x0, x1) = x1 + 1, [app](x0, x1) = x0 + x1, [nil] = 0 orientation: shuffle#(add(n,x)) = x + 1 >= x = shuffle#(reverse(x)) app(nil(),y) = y >= y = y app(add(n,x),y) = x + y + 1 >= x + y + 1 = add(n,app(x,y)) reverse(nil()) = 0 >= 0 = nil() reverse(add(n,x)) = x + 1 >= x + 1 = app(reverse(x),add(n,nil())) shuffle(nil()) = 3 >= 0 = nil() shuffle(add(n,x)) = 5x + 8 >= 5x + 4 = 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