YES Problem: from(X) -> cons(X,n__from(s(X))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) minus(X,0()) -> 0() minus(s(X),s(Y)) -> minus(X,Y) quot(0(),s(Y)) -> 0() quot(s(X),s(Y)) -> s(quot(minus(X,Y),s(Y))) zWquot(XS,nil()) -> nil() zWquot(nil(),XS) -> nil() zWquot(cons(X,XS),cons(Y,YS)) -> cons(quot(X,Y),n__zWquot(activate(XS),activate(YS))) from(X) -> n__from(X) zWquot(X1,X2) -> n__zWquot(X1,X2) activate(n__from(X)) -> from(X) activate(n__zWquot(X1,X2)) -> zWquot(X1,X2) activate(X) -> X Proof: DP Processor: DPs: sel#(s(N),cons(X,XS)) -> activate#(XS) sel#(s(N),cons(X,XS)) -> sel#(N,activate(XS)) minus#(s(X),s(Y)) -> minus#(X,Y) quot#(s(X),s(Y)) -> minus#(X,Y) quot#(s(X),s(Y)) -> quot#(minus(X,Y),s(Y)) zWquot#(cons(X,XS),cons(Y,YS)) -> activate#(YS) zWquot#(cons(X,XS),cons(Y,YS)) -> activate#(XS) zWquot#(cons(X,XS),cons(Y,YS)) -> quot#(X,Y) activate#(n__from(X)) -> from#(X) activate#(n__zWquot(X1,X2)) -> zWquot#(X1,X2) TRS: from(X) -> cons(X,n__from(s(X))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) minus(X,0()) -> 0() minus(s(X),s(Y)) -> minus(X,Y) quot(0(),s(Y)) -> 0() quot(s(X),s(Y)) -> s(quot(minus(X,Y),s(Y))) zWquot(XS,nil()) -> nil() zWquot(nil(),XS) -> nil() zWquot(cons(X,XS),cons(Y,YS)) -> cons(quot(X,Y),n__zWquot(activate(XS),activate(YS))) from(X) -> n__from(X) zWquot(X1,X2) -> n__zWquot(X1,X2) activate(n__from(X)) -> from(X) activate(n__zWquot(X1,X2)) -> zWquot(X1,X2) activate(X) -> X TDG Processor: DPs: sel#(s(N),cons(X,XS)) -> activate#(XS) sel#(s(N),cons(X,XS)) -> sel#(N,activate(XS)) minus#(s(X),s(Y)) -> minus#(X,Y) quot#(s(X),s(Y)) -> minus#(X,Y) quot#(s(X),s(Y)) -> quot#(minus(X,Y),s(Y)) zWquot#(cons(X,XS),cons(Y,YS)) -> activate#(YS) zWquot#(cons(X,XS),cons(Y,YS)) -> activate#(XS) zWquot#(cons(X,XS),cons(Y,YS)) -> quot#(X,Y) activate#(n__from(X)) -> from#(X) activate#(n__zWquot(X1,X2)) -> zWquot#(X1,X2) TRS: from(X) -> cons(X,n__from(s(X))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) minus(X,0()) -> 0() minus(s(X),s(Y)) -> minus(X,Y) quot(0(),s(Y)) -> 0() quot(s(X),s(Y)) -> s(quot(minus(X,Y),s(Y))) zWquot(XS,nil()) -> nil() zWquot(nil(),XS) -> nil() zWquot(cons(X,XS),cons(Y,YS)) -> cons(quot(X,Y),n__zWquot(activate(XS),activate(YS))) from(X) -> n__from(X) zWquot(X1,X2) -> n__zWquot(X1,X2) activate(n__from(X)) -> from(X) activate(n__zWquot(X1,X2)) -> zWquot(X1,X2) activate(X) -> X graph: zWquot#(cons(X,XS),cons(Y,YS)) -> quot#(X,Y) -> quot#(s(X),s(Y)) -> quot#(minus(X,Y),s(Y)) zWquot#(cons(X,XS),cons(Y,YS)) -> quot#(X,Y) -> quot#(s(X),s(Y)) -> minus#(X,Y) zWquot#(cons(X,XS),cons(Y,YS)) -> activate#(YS) -> activate#(n__zWquot(X1,X2)) -> zWquot#(X1,X2) zWquot#(cons(X,XS),cons(Y,YS)) -> activate#(YS) -> activate#(n__from(X)) -> from#(X) zWquot#(cons(X,XS),cons(Y,YS)) -> activate#(XS) -> activate#(n__zWquot(X1,X2)) -> zWquot#(X1,X2) zWquot#(cons(X,XS),cons(Y,YS)) -> activate#(XS) -> activate#(n__from(X)) -> from#(X) quot#(s(X),s(Y)) -> quot#(minus(X,Y),s(Y)) -> quot#(s(X),s(Y)) -> quot#(minus(X,Y),s(Y)) quot#(s(X),s(Y)) -> quot#(minus(X,Y),s(Y)) -> quot#(s(X),s(Y)) -> minus#(X,Y) quot#(s(X),s(Y)) -> minus#(X,Y) -> minus#(s(X),s(Y)) -> minus#(X,Y) minus#(s(X),s(Y)) -> minus#(X,Y) -> minus#(s(X),s(Y)) -> minus#(X,Y) activate#(n__zWquot(X1,X2)) -> zWquot#(X1,X2) -> zWquot#(cons(X,XS),cons(Y,YS)) -> quot#(X,Y) activate#(n__zWquot(X1,X2)) -> zWquot#(X1,X2) -> zWquot#(cons(X,XS),cons(Y,YS)) -> activate#(XS) activate#(n__zWquot(X1,X2)) -> zWquot#(X1,X2) -> zWquot#(cons(X,XS),cons(Y,YS)) -> activate#(YS) sel#(s(N),cons(X,XS)) -> activate#(XS) -> activate#(n__zWquot(X1,X2)) -> zWquot#(X1,X2) sel#(s(N),cons(X,XS)) -> activate#(XS) -> activate#(n__from(X)) -> from#(X) sel#(s(N),cons(X,XS)) -> sel#(N,activate(XS)) -> sel#(s(N),cons(X,XS)) -> sel#(N,activate(XS)) sel#(s(N),cons(X,XS)) -> sel#(N,activate(XS)) -> sel#(s(N),cons(X,XS)) -> activate#(XS) SCC Processor: #sccs: 4 #rules: 6 #arcs: 17/100 DPs: sel#(s(N),cons(X,XS)) -> sel#(N,activate(XS)) TRS: from(X) -> cons(X,n__from(s(X))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) minus(X,0()) -> 0() minus(s(X),s(Y)) -> minus(X,Y) quot(0(),s(Y)) -> 0() quot(s(X),s(Y)) -> s(quot(minus(X,Y),s(Y))) zWquot(XS,nil()) -> nil() zWquot(nil(),XS) -> nil() zWquot(cons(X,XS),cons(Y,YS)) -> cons(quot(X,Y),n__zWquot(activate(XS),activate(YS))) from(X) -> n__from(X) zWquot(X1,X2) -> n__zWquot(X1,X2) activate(n__from(X)) -> from(X) activate(n__zWquot(X1,X2)) -> zWquot(X1,X2) activate(X) -> X Subterm Criterion Processor: simple projection: pi(sel#) = 0 problem: DPs: TRS: from(X) -> cons(X,n__from(s(X))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) minus(X,0()) -> 0() minus(s(X),s(Y)) -> minus(X,Y) quot(0(),s(Y)) -> 0() quot(s(X),s(Y)) -> s(quot(minus(X,Y),s(Y))) zWquot(XS,nil()) -> nil() zWquot(nil(),XS) -> nil() zWquot(cons(X,XS),cons(Y,YS)) -> cons(quot(X,Y),n__zWquot(activate(XS),activate(YS))) from(X) -> n__from(X) zWquot(X1,X2) -> n__zWquot(X1,X2) activate(n__from(X)) -> from(X) activate(n__zWquot(X1,X2)) -> zWquot(X1,X2) activate(X) -> X Qed DPs: zWquot#(cons(X,XS),cons(Y,YS)) -> activate#(YS) activate#(n__zWquot(X1,X2)) -> zWquot#(X1,X2) zWquot#(cons(X,XS),cons(Y,YS)) -> activate#(XS) TRS: from(X) -> cons(X,n__from(s(X))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) minus(X,0()) -> 0() minus(s(X),s(Y)) -> minus(X,Y) quot(0(),s(Y)) -> 0() quot(s(X),s(Y)) -> s(quot(minus(X,Y),s(Y))) zWquot(XS,nil()) -> nil() zWquot(nil(),XS) -> nil() zWquot(cons(X,XS),cons(Y,YS)) -> cons(quot(X,Y),n__zWquot(activate(XS),activate(YS))) from(X) -> n__from(X) zWquot(X1,X2) -> n__zWquot(X1,X2) activate(n__from(X)) -> from(X) activate(n__zWquot(X1,X2)) -> zWquot(X1,X2) activate(X) -> X Arctic Interpretation Processor: dimension: 1 interpretation: [zWquot#](x0, x1) = 7x0 + x1 + 0, [activate#](x0) = x0, [n__zWquot](x0, x1) = 7x0 + x1 + 0, [zWquot](x0, x1) = 7x0 + x1 + 0, [nil] = 0, [quot](x0, x1) = x1 + 0, [minus](x0, x1) = 4x0 + x1, [activate](x0) = x0 + 0, [sel](x0, x1) = x1, [0] = 0, [cons](x0, x1) = x0 + x1 + 0, [n__from](x0) = x0, [s](x0) = x0 + 0, [from](x0) = x0 + 0 orientation: zWquot#(cons(X,XS),cons(Y,YS)) = 7X + 7XS + Y + YS + 7 >= YS = activate#(YS) activate#(n__zWquot(X1,X2)) = 7X1 + X2 + 0 >= 7X1 + X2 + 0 = zWquot#(X1,X2) zWquot#(cons(X,XS),cons(Y,YS)) = 7X + 7XS + Y + YS + 7 >= XS = activate#(XS) from(X) = X + 0 >= X + 0 = cons(X,n__from(s(X))) sel(0(),cons(X,XS)) = X + XS + 0 >= X = X sel(s(N),cons(X,XS)) = X + XS + 0 >= XS + 0 = sel(N,activate(XS)) minus(X,0()) = 4X + 0 >= 0 = 0() minus(s(X),s(Y)) = 4X + Y + 4 >= 4X + Y = minus(X,Y) quot(0(),s(Y)) = Y + 0 >= 0 = 0() quot(s(X),s(Y)) = Y + 0 >= Y + 0 = s(quot(minus(X,Y),s(Y))) zWquot(XS,nil()) = 7XS + 0 >= 0 = nil() zWquot(nil(),XS) = XS + 7 >= 0 = nil() zWquot(cons(X,XS),cons(Y,YS)) = 7X + 7XS + Y + YS + 7 >= 7XS + Y + YS + 7 = cons(quot(X,Y),n__zWquot(activate(XS),activate(YS))) from(X) = X + 0 >= X = n__from(X) zWquot(X1,X2) = 7X1 + X2 + 0 >= 7X1 + X2 + 0 = n__zWquot(X1,X2) activate(n__from(X)) = X + 0 >= X + 0 = from(X) activate(n__zWquot(X1,X2)) = 7X1 + X2 + 0 >= 7X1 + X2 + 0 = zWquot(X1,X2) activate(X) = X + 0 >= X = X problem: DPs: zWquot#(cons(X,XS),cons(Y,YS)) -> activate#(YS) activate#(n__zWquot(X1,X2)) -> zWquot#(X1,X2) TRS: from(X) -> cons(X,n__from(s(X))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) minus(X,0()) -> 0() minus(s(X),s(Y)) -> minus(X,Y) quot(0(),s(Y)) -> 0() quot(s(X),s(Y)) -> s(quot(minus(X,Y),s(Y))) zWquot(XS,nil()) -> nil() zWquot(nil(),XS) -> nil() zWquot(cons(X,XS),cons(Y,YS)) -> cons(quot(X,Y),n__zWquot(activate(XS),activate(YS))) from(X) -> n__from(X) zWquot(X1,X2) -> n__zWquot(X1,X2) activate(n__from(X)) -> from(X) activate(n__zWquot(X1,X2)) -> zWquot(X1,X2) activate(X) -> X Subterm Criterion Processor: simple projection: pi(activate#) = 0 pi(zWquot#) = 1 problem: DPs: TRS: from(X) -> cons(X,n__from(s(X))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) minus(X,0()) -> 0() minus(s(X),s(Y)) -> minus(X,Y) quot(0(),s(Y)) -> 0() quot(s(X),s(Y)) -> s(quot(minus(X,Y),s(Y))) zWquot(XS,nil()) -> nil() zWquot(nil(),XS) -> nil() zWquot(cons(X,XS),cons(Y,YS)) -> cons(quot(X,Y),n__zWquot(activate(XS),activate(YS))) from(X) -> n__from(X) zWquot(X1,X2) -> n__zWquot(X1,X2) activate(n__from(X)) -> from(X) activate(n__zWquot(X1,X2)) -> zWquot(X1,X2) activate(X) -> X Qed DPs: quot#(s(X),s(Y)) -> quot#(minus(X,Y),s(Y)) TRS: from(X) -> cons(X,n__from(s(X))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) minus(X,0()) -> 0() minus(s(X),s(Y)) -> minus(X,Y) quot(0(),s(Y)) -> 0() quot(s(X),s(Y)) -> s(quot(minus(X,Y),s(Y))) zWquot(XS,nil()) -> nil() zWquot(nil(),XS) -> nil() zWquot(cons(X,XS),cons(Y,YS)) -> cons(quot(X,Y),n__zWquot(activate(XS),activate(YS))) from(X) -> n__from(X) zWquot(X1,X2) -> n__zWquot(X1,X2) activate(n__from(X)) -> from(X) activate(n__zWquot(X1,X2)) -> zWquot(X1,X2) activate(X) -> X CDG Processor: DPs: quot#(s(X),s(Y)) -> quot#(minus(X,Y),s(Y)) TRS: from(X) -> cons(X,n__from(s(X))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) minus(X,0()) -> 0() minus(s(X),s(Y)) -> minus(X,Y) quot(0(),s(Y)) -> 0() quot(s(X),s(Y)) -> s(quot(minus(X,Y),s(Y))) zWquot(XS,nil()) -> nil() zWquot(nil(),XS) -> nil() zWquot(cons(X,XS),cons(Y,YS)) -> cons(quot(X,Y),n__zWquot(activate(XS),activate(YS))) from(X) -> n__from(X) zWquot(X1,X2) -> n__zWquot(X1,X2) activate(n__from(X)) -> from(X) activate(n__zWquot(X1,X2)) -> zWquot(X1,X2) activate(X) -> X graph: Qed DPs: minus#(s(X),s(Y)) -> minus#(X,Y) TRS: from(X) -> cons(X,n__from(s(X))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) minus(X,0()) -> 0() minus(s(X),s(Y)) -> minus(X,Y) quot(0(),s(Y)) -> 0() quot(s(X),s(Y)) -> s(quot(minus(X,Y),s(Y))) zWquot(XS,nil()) -> nil() zWquot(nil(),XS) -> nil() zWquot(cons(X,XS),cons(Y,YS)) -> cons(quot(X,Y),n__zWquot(activate(XS),activate(YS))) from(X) -> n__from(X) zWquot(X1,X2) -> n__zWquot(X1,X2) activate(n__from(X)) -> from(X) activate(n__zWquot(X1,X2)) -> zWquot(X1,X2) activate(X) -> X Subterm Criterion Processor: simple projection: pi(minus#) = 1 problem: DPs: TRS: from(X) -> cons(X,n__from(s(X))) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) minus(X,0()) -> 0() minus(s(X),s(Y)) -> minus(X,Y) quot(0(),s(Y)) -> 0() quot(s(X),s(Y)) -> s(quot(minus(X,Y),s(Y))) zWquot(XS,nil()) -> nil() zWquot(nil(),XS) -> nil() zWquot(cons(X,XS),cons(Y,YS)) -> cons(quot(X,Y),n__zWquot(activate(XS),activate(YS))) from(X) -> n__from(X) zWquot(X1,X2) -> n__zWquot(X1,X2) activate(n__from(X)) -> from(X) activate(n__zWquot(X1,X2)) -> zWquot(X1,X2) activate(X) -> X Qed