MAYBE

Problem:
 active(from(X)) -> mark(cons(X,from(s(X))))
 active(sel(0(),cons(X,XS))) -> mark(X)
 active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
 active(minus(X,0())) -> mark(0())
 active(minus(s(X),s(Y))) -> mark(minus(X,Y))
 active(quot(0(),s(Y))) -> mark(0())
 active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
 active(zWquot(XS,nil())) -> mark(nil())
 active(zWquot(nil(),XS)) -> mark(nil())
 active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
 active(from(X)) -> from(active(X))
 active(cons(X1,X2)) -> cons(active(X1),X2)
 active(s(X)) -> s(active(X))
 active(sel(X1,X2)) -> sel(active(X1),X2)
 active(sel(X1,X2)) -> sel(X1,active(X2))
 active(minus(X1,X2)) -> minus(active(X1),X2)
 active(minus(X1,X2)) -> minus(X1,active(X2))
 active(quot(X1,X2)) -> quot(active(X1),X2)
 active(quot(X1,X2)) -> quot(X1,active(X2))
 active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
 active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
 from(mark(X)) -> mark(from(X))
 cons(mark(X1),X2) -> mark(cons(X1,X2))
 s(mark(X)) -> mark(s(X))
 sel(mark(X1),X2) -> mark(sel(X1,X2))
 sel(X1,mark(X2)) -> mark(sel(X1,X2))
 minus(mark(X1),X2) -> mark(minus(X1,X2))
 minus(X1,mark(X2)) -> mark(minus(X1,X2))
 quot(mark(X1),X2) -> mark(quot(X1,X2))
 quot(X1,mark(X2)) -> mark(quot(X1,X2))
 zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
 zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
 proper(from(X)) -> from(proper(X))
 proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
 proper(s(X)) -> s(proper(X))
 proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
 proper(0()) -> ok(0())
 proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
 proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
 proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
 proper(nil()) -> ok(nil())
 from(ok(X)) -> ok(from(X))
 cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
 s(ok(X)) -> ok(s(X))
 sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
 minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
 quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
 zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
 top(mark(X)) -> top(proper(X))
 top(ok(X)) -> top(active(X))

Proof:
 DP Processor:
  DPs:
   active#(from(X)) -> s#(X)
   active#(from(X)) -> from#(s(X))
   active#(from(X)) -> cons#(X,from(s(X)))
   active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
   active#(minus(s(X),s(Y))) -> minus#(X,Y)
   active#(quot(s(X),s(Y))) -> minus#(X,Y)
   active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
   active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
   active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
   active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
   active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
   active#(from(X)) -> active#(X)
   active#(from(X)) -> from#(active(X))
   active#(cons(X1,X2)) -> active#(X1)
   active#(cons(X1,X2)) -> cons#(active(X1),X2)
   active#(s(X)) -> active#(X)
   active#(s(X)) -> s#(active(X))
   active#(sel(X1,X2)) -> active#(X1)
   active#(sel(X1,X2)) -> sel#(active(X1),X2)
   active#(sel(X1,X2)) -> active#(X2)
   active#(sel(X1,X2)) -> sel#(X1,active(X2))
   active#(minus(X1,X2)) -> active#(X1)
   active#(minus(X1,X2)) -> minus#(active(X1),X2)
   active#(minus(X1,X2)) -> active#(X2)
   active#(minus(X1,X2)) -> minus#(X1,active(X2))
   active#(quot(X1,X2)) -> active#(X1)
   active#(quot(X1,X2)) -> quot#(active(X1),X2)
   active#(quot(X1,X2)) -> active#(X2)
   active#(quot(X1,X2)) -> quot#(X1,active(X2))
   active#(zWquot(X1,X2)) -> active#(X1)
   active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
   active#(zWquot(X1,X2)) -> active#(X2)
   active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
   from#(mark(X)) -> from#(X)
   cons#(mark(X1),X2) -> cons#(X1,X2)
   s#(mark(X)) -> s#(X)
   sel#(mark(X1),X2) -> sel#(X1,X2)
   sel#(X1,mark(X2)) -> sel#(X1,X2)
   minus#(mark(X1),X2) -> minus#(X1,X2)
   minus#(X1,mark(X2)) -> minus#(X1,X2)
   quot#(mark(X1),X2) -> quot#(X1,X2)
   quot#(X1,mark(X2)) -> quot#(X1,X2)
   zWquot#(mark(X1),X2) -> zWquot#(X1,X2)
   zWquot#(X1,mark(X2)) -> zWquot#(X1,X2)
   proper#(from(X)) -> proper#(X)
   proper#(from(X)) -> from#(proper(X))
   proper#(cons(X1,X2)) -> proper#(X2)
   proper#(cons(X1,X2)) -> proper#(X1)
   proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
   proper#(s(X)) -> proper#(X)
   proper#(s(X)) -> s#(proper(X))
   proper#(sel(X1,X2)) -> proper#(X2)
   proper#(sel(X1,X2)) -> proper#(X1)
   proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
   proper#(minus(X1,X2)) -> proper#(X2)
   proper#(minus(X1,X2)) -> proper#(X1)
   proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
   proper#(quot(X1,X2)) -> proper#(X2)
   proper#(quot(X1,X2)) -> proper#(X1)
   proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
   proper#(zWquot(X1,X2)) -> proper#(X2)
   proper#(zWquot(X1,X2)) -> proper#(X1)
   proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
   from#(ok(X)) -> from#(X)
   cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
   s#(ok(X)) -> s#(X)
   sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
   minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
   quot#(ok(X1),ok(X2)) -> quot#(X1,X2)
   zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
   top#(mark(X)) -> proper#(X)
   top#(mark(X)) -> top#(proper(X))
   top#(ok(X)) -> active#(X)
   top#(ok(X)) -> top#(active(X))
  TRS:
   active(from(X)) -> mark(cons(X,from(s(X))))
   active(sel(0(),cons(X,XS))) -> mark(X)
   active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
   active(minus(X,0())) -> mark(0())
   active(minus(s(X),s(Y))) -> mark(minus(X,Y))
   active(quot(0(),s(Y))) -> mark(0())
   active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
   active(zWquot(XS,nil())) -> mark(nil())
   active(zWquot(nil(),XS)) -> mark(nil())
   active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
   active(from(X)) -> from(active(X))
   active(cons(X1,X2)) -> cons(active(X1),X2)
   active(s(X)) -> s(active(X))
   active(sel(X1,X2)) -> sel(active(X1),X2)
   active(sel(X1,X2)) -> sel(X1,active(X2))
   active(minus(X1,X2)) -> minus(active(X1),X2)
   active(minus(X1,X2)) -> minus(X1,active(X2))
   active(quot(X1,X2)) -> quot(active(X1),X2)
   active(quot(X1,X2)) -> quot(X1,active(X2))
   active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
   active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
   from(mark(X)) -> mark(from(X))
   cons(mark(X1),X2) -> mark(cons(X1,X2))
   s(mark(X)) -> mark(s(X))
   sel(mark(X1),X2) -> mark(sel(X1,X2))
   sel(X1,mark(X2)) -> mark(sel(X1,X2))
   minus(mark(X1),X2) -> mark(minus(X1,X2))
   minus(X1,mark(X2)) -> mark(minus(X1,X2))
   quot(mark(X1),X2) -> mark(quot(X1,X2))
   quot(X1,mark(X2)) -> mark(quot(X1,X2))
   zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
   zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
   proper(from(X)) -> from(proper(X))
   proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
   proper(s(X)) -> s(proper(X))
   proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
   proper(0()) -> ok(0())
   proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
   proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
   proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
   proper(nil()) -> ok(nil())
   from(ok(X)) -> ok(from(X))
   cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
   s(ok(X)) -> ok(s(X))
   sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
   minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
   quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
   zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
   top(mark(X)) -> top(proper(X))
   top(ok(X)) -> top(active(X))
  TDG Processor:
   DPs:
    active#(from(X)) -> s#(X)
    active#(from(X)) -> from#(s(X))
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
    active#(minus(s(X),s(Y))) -> minus#(X,Y)
    active#(quot(s(X),s(Y))) -> minus#(X,Y)
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
    active#(from(X)) -> active#(X)
    active#(from(X)) -> from#(active(X))
    active#(cons(X1,X2)) -> active#(X1)
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(s(X)) -> active#(X)
    active#(s(X)) -> s#(active(X))
    active#(sel(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(minus(X1,X2)) -> active#(X1)
    active#(minus(X1,X2)) -> minus#(active(X1),X2)
    active#(minus(X1,X2)) -> active#(X2)
    active#(minus(X1,X2)) -> minus#(X1,active(X2))
    active#(quot(X1,X2)) -> active#(X1)
    active#(quot(X1,X2)) -> quot#(active(X1),X2)
    active#(quot(X1,X2)) -> active#(X2)
    active#(quot(X1,X2)) -> quot#(X1,active(X2))
    active#(zWquot(X1,X2)) -> active#(X1)
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
    active#(zWquot(X1,X2)) -> active#(X2)
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    from#(mark(X)) -> from#(X)
    cons#(mark(X1),X2) -> cons#(X1,X2)
    s#(mark(X)) -> s#(X)
    sel#(mark(X1),X2) -> sel#(X1,X2)
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    minus#(mark(X1),X2) -> minus#(X1,X2)
    minus#(X1,mark(X2)) -> minus#(X1,X2)
    quot#(mark(X1),X2) -> quot#(X1,X2)
    quot#(X1,mark(X2)) -> quot#(X1,X2)
    zWquot#(mark(X1),X2) -> zWquot#(X1,X2)
    zWquot#(X1,mark(X2)) -> zWquot#(X1,X2)
    proper#(from(X)) -> proper#(X)
    proper#(from(X)) -> from#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X)
    proper#(s(X)) -> s#(proper(X))
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(minus(X1,X2)) -> proper#(X2)
    proper#(minus(X1,X2)) -> proper#(X1)
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    proper#(quot(X1,X2)) -> proper#(X2)
    proper#(quot(X1,X2)) -> proper#(X1)
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    proper#(zWquot(X1,X2)) -> proper#(X2)
    proper#(zWquot(X1,X2)) -> proper#(X1)
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    from#(ok(X)) -> from#(X)
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    s#(ok(X)) -> s#(X)
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
    quot#(ok(X1),ok(X2)) -> quot#(X1,X2)
    zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
    top#(mark(X)) -> proper#(X)
    top#(mark(X)) -> top#(proper(X))
    top#(ok(X)) -> active#(X)
    top#(ok(X)) -> top#(active(X))
   TRS:
    active(from(X)) -> mark(cons(X,from(s(X))))
    active(sel(0(),cons(X,XS))) -> mark(X)
    active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
    active(minus(X,0())) -> mark(0())
    active(minus(s(X),s(Y))) -> mark(minus(X,Y))
    active(quot(0(),s(Y))) -> mark(0())
    active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
    active(zWquot(XS,nil())) -> mark(nil())
    active(zWquot(nil(),XS)) -> mark(nil())
    active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
    active(from(X)) -> from(active(X))
    active(cons(X1,X2)) -> cons(active(X1),X2)
    active(s(X)) -> s(active(X))
    active(sel(X1,X2)) -> sel(active(X1),X2)
    active(sel(X1,X2)) -> sel(X1,active(X2))
    active(minus(X1,X2)) -> minus(active(X1),X2)
    active(minus(X1,X2)) -> minus(X1,active(X2))
    active(quot(X1,X2)) -> quot(active(X1),X2)
    active(quot(X1,X2)) -> quot(X1,active(X2))
    active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
    active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
    from(mark(X)) -> mark(from(X))
    cons(mark(X1),X2) -> mark(cons(X1,X2))
    s(mark(X)) -> mark(s(X))
    sel(mark(X1),X2) -> mark(sel(X1,X2))
    sel(X1,mark(X2)) -> mark(sel(X1,X2))
    minus(mark(X1),X2) -> mark(minus(X1,X2))
    minus(X1,mark(X2)) -> mark(minus(X1,X2))
    quot(mark(X1),X2) -> mark(quot(X1,X2))
    quot(X1,mark(X2)) -> mark(quot(X1,X2))
    zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
    zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
    proper(from(X)) -> from(proper(X))
    proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
    proper(s(X)) -> s(proper(X))
    proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
    proper(0()) -> ok(0())
    proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
    proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
    proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
    proper(nil()) -> ok(nil())
    from(ok(X)) -> ok(from(X))
    cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
    s(ok(X)) -> ok(s(X))
    sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
    minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
    quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
    zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
    top(mark(X)) -> top(proper(X))
    top(ok(X)) -> top(active(X))
   graph:
    top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> top#(active(X))
    top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> active#(X)
    top#(ok(X)) -> top#(active(X)) ->
    top#(mark(X)) -> top#(proper(X))
    top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> proper#(X)
    top#(ok(X)) -> active#(X) ->
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    top#(ok(X)) -> active#(X) -> active#(zWquot(X1,X2)) -> active#(X2)
    top#(ok(X)) -> active#(X) ->
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
    top#(ok(X)) -> active#(X) -> active#(zWquot(X1,X2)) -> active#(X1)
    top#(ok(X)) -> active#(X) ->
    active#(quot(X1,X2)) -> quot#(X1,active(X2))
    top#(ok(X)) -> active#(X) -> active#(quot(X1,X2)) -> active#(X2)
    top#(ok(X)) -> active#(X) ->
    active#(quot(X1,X2)) -> quot#(active(X1),X2)
    top#(ok(X)) -> active#(X) -> active#(quot(X1,X2)) -> active#(X1)
    top#(ok(X)) -> active#(X) ->
    active#(minus(X1,X2)) -> minus#(X1,active(X2))
    top#(ok(X)) -> active#(X) -> active#(minus(X1,X2)) -> active#(X2)
    top#(ok(X)) -> active#(X) ->
    active#(minus(X1,X2)) -> minus#(active(X1),X2)
    top#(ok(X)) -> active#(X) -> active#(minus(X1,X2)) -> active#(X1)
    top#(ok(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    top#(ok(X)) -> active#(X) -> active#(sel(X1,X2)) -> active#(X2)
    top#(ok(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    top#(ok(X)) -> active#(X) -> active#(sel(X1,X2)) -> active#(X1)
    top#(ok(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    top#(ok(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    top#(ok(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    top#(ok(X)) -> active#(X) -> active#(cons(X1,X2)) -> active#(X1)
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> from#(active(X))
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> active#(X)
    top#(ok(X)) -> active#(X) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
    top#(ok(X)) -> active#(X) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
    top#(ok(X)) -> active#(X) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
    top#(ok(X)) -> active#(X) ->
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
    top#(ok(X)) -> active#(X) ->
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
    top#(ok(X)) -> active#(X) -> active#(quot(s(X),s(Y))) -> minus#(X,Y)
    top#(ok(X)) -> active#(X) -> active#(minus(s(X),s(Y))) -> minus#(X,Y)
    top#(ok(X)) -> active#(X) ->
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> cons#(X,from(s(X)))
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> from#(s(X))
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> s#(X)
    top#(mark(X)) -> top#(proper(X)) ->
    top#(ok(X)) -> top#(active(X))
    top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> active#(X)
    top#(mark(X)) -> top#(proper(X)) ->
    top#(mark(X)) -> top#(proper(X))
    top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) ->
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    top#(mark(X)) -> proper#(X) -> proper#(zWquot(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) -> proper#(zWquot(X1,X2)) -> proper#(X2)
    top#(mark(X)) -> proper#(X) ->
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    top#(mark(X)) -> proper#(X) -> proper#(quot(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) -> proper#(quot(X1,X2)) -> proper#(X2)
    top#(mark(X)) -> proper#(X) ->
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    top#(mark(X)) -> proper#(X) -> proper#(minus(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) -> proper#(minus(X1,X2)) -> proper#(X2)
    top#(mark(X)) -> proper#(X) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    top#(mark(X)) -> proper#(X) -> proper#(sel(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) -> proper#(sel(X1,X2)) -> proper#(X2)
    top#(mark(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    top#(mark(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    top#(mark(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X2)
    top#(mark(X)) -> proper#(X) -> proper#(from(X)) -> from#(proper(X))
    top#(mark(X)) -> proper#(X) ->
    proper#(from(X)) -> proper#(X)
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> proper#(X1)
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> proper#(X2)
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> proper#(X1)
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> proper#(X2)
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> proper#(X1)
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> proper#(X2)
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(zWquot(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> proper#(X)
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> proper#(X1)
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> proper#(X2)
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> proper#(X1)
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> proper#(X2)
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> proper#(X1)
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> proper#(X2)
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(zWquot(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> proper#(X)
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2)) ->
    zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2)) ->
    zWquot#(X1,mark(X2)) -> zWquot#(X1,X2)
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2)) ->
    zWquot#(mark(X1),X2) -> zWquot#(X1,X2)
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> proper#(X1)
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> proper#(X2)
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> proper#(X1)
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> proper#(X2)
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> proper#(X1)
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> proper#(X2)
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(quot(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> proper#(X)
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> proper#(X1)
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> proper#(X2)
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> proper#(X1)
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> proper#(X2)
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> proper#(X1)
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> proper#(X2)
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(quot(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> proper#(X)
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2)) ->
    quot#(ok(X1),ok(X2)) -> quot#(X1,X2)
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2)) ->
    quot#(X1,mark(X2)) -> quot#(X1,X2)
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2)) ->
    quot#(mark(X1),X2) -> quot#(X1,X2)
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> proper#(X1)
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> proper#(X2)
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> proper#(X1)
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> proper#(X2)
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> proper#(X1)
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> proper#(X2)
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(minus(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> proper#(X)
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> proper#(X1)
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> proper#(X2)
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> proper#(X1)
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> proper#(X2)
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> proper#(X1)
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> proper#(X2)
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(minus(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> proper#(X)
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2)) ->
    minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2)) ->
    minus#(X1,mark(X2)) -> minus#(X1,X2)
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2)) ->
    minus#(mark(X1),X2) -> minus#(X1,X2)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> proper#(X)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> proper#(X)
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2)) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2)) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2)) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(zWquot(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(quot(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(minus(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(zWquot(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(quot(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(minus(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    proper#(s(X)) -> proper#(X) ->
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X) -> proper#(zWquot(X1,X2)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) -> proper#(zWquot(X1,X2)) -> proper#(X2)
    proper#(s(X)) -> proper#(X) ->
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X) -> proper#(quot(X1,X2)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) -> proper#(quot(X1,X2)) -> proper#(X2)
    proper#(s(X)) -> proper#(X) ->
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X) -> proper#(minus(X1,X2)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) -> proper#(minus(X1,X2)) -> proper#(X2)
    proper#(s(X)) -> proper#(X) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X) -> proper#(sel(X1,X2)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) -> proper#(sel(X1,X2)) -> proper#(X2)
    proper#(s(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    proper#(s(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    proper#(s(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X2)
    proper#(s(X)) -> proper#(X) -> proper#(from(X)) -> from#(proper(X))
    proper#(s(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X)
    proper#(s(X)) -> s#(proper(X)) -> s#(ok(X)) -> s#(X)
    proper#(s(X)) -> s#(proper(X)) -> s#(mark(X)) -> s#(X)
    proper#(from(X)) -> proper#(X) ->
    proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
    proper#(from(X)) -> proper#(X) ->
    proper#(zWquot(X1,X2)) -> proper#(X1)
    proper#(from(X)) -> proper#(X) ->
    proper#(zWquot(X1,X2)) -> proper#(X2)
    proper#(from(X)) -> proper#(X) ->
    proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
    proper#(from(X)) -> proper#(X) ->
    proper#(quot(X1,X2)) -> proper#(X1)
    proper#(from(X)) -> proper#(X) ->
    proper#(quot(X1,X2)) -> proper#(X2)
    proper#(from(X)) -> proper#(X) ->
    proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
    proper#(from(X)) -> proper#(X) ->
    proper#(minus(X1,X2)) -> proper#(X1)
    proper#(from(X)) -> proper#(X) ->
    proper#(minus(X1,X2)) -> proper#(X2)
    proper#(from(X)) -> proper#(X) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(from(X)) -> proper#(X) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(from(X)) -> proper#(X) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(from(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    proper#(from(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    proper#(from(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(from(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(from(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(from(X)) -> proper#(X) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(from(X)) -> proper#(X) ->
    proper#(from(X)) -> proper#(X)
    proper#(from(X)) -> from#(proper(X)) ->
    from#(ok(X)) -> from#(X)
    proper#(from(X)) -> from#(proper(X)) ->
    from#(mark(X)) -> from#(X)
    zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2) ->
    zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
    zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2) ->
    zWquot#(X1,mark(X2)) -> zWquot#(X1,X2)
    zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2) ->
    zWquot#(mark(X1),X2) -> zWquot#(X1,X2)
    zWquot#(mark(X1),X2) -> zWquot#(X1,X2) ->
    zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
    zWquot#(mark(X1),X2) -> zWquot#(X1,X2) ->
    zWquot#(X1,mark(X2)) -> zWquot#(X1,X2)
    zWquot#(mark(X1),X2) -> zWquot#(X1,X2) ->
    zWquot#(mark(X1),X2) -> zWquot#(X1,X2)
    zWquot#(X1,mark(X2)) -> zWquot#(X1,X2) ->
    zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
    zWquot#(X1,mark(X2)) -> zWquot#(X1,X2) ->
    zWquot#(X1,mark(X2)) -> zWquot#(X1,X2)
    zWquot#(X1,mark(X2)) -> zWquot#(X1,X2) ->
    zWquot#(mark(X1),X2) -> zWquot#(X1,X2)
    quot#(ok(X1),ok(X2)) -> quot#(X1,X2) ->
    quot#(ok(X1),ok(X2)) -> quot#(X1,X2)
    quot#(ok(X1),ok(X2)) -> quot#(X1,X2) ->
    quot#(X1,mark(X2)) -> quot#(X1,X2)
    quot#(ok(X1),ok(X2)) -> quot#(X1,X2) ->
    quot#(mark(X1),X2) -> quot#(X1,X2)
    quot#(mark(X1),X2) -> quot#(X1,X2) ->
    quot#(ok(X1),ok(X2)) -> quot#(X1,X2)
    quot#(mark(X1),X2) -> quot#(X1,X2) ->
    quot#(X1,mark(X2)) -> quot#(X1,X2)
    quot#(mark(X1),X2) -> quot#(X1,X2) ->
    quot#(mark(X1),X2) -> quot#(X1,X2)
    quot#(X1,mark(X2)) -> quot#(X1,X2) ->
    quot#(ok(X1),ok(X2)) -> quot#(X1,X2)
    quot#(X1,mark(X2)) -> quot#(X1,X2) ->
    quot#(X1,mark(X2)) -> quot#(X1,X2)
    quot#(X1,mark(X2)) -> quot#(X1,X2) ->
    quot#(mark(X1),X2) -> quot#(X1,X2)
    minus#(ok(X1),ok(X2)) -> minus#(X1,X2) ->
    minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
    minus#(ok(X1),ok(X2)) -> minus#(X1,X2) ->
    minus#(X1,mark(X2)) -> minus#(X1,X2)
    minus#(ok(X1),ok(X2)) -> minus#(X1,X2) ->
    minus#(mark(X1),X2) -> minus#(X1,X2)
    minus#(mark(X1),X2) -> minus#(X1,X2) ->
    minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
    minus#(mark(X1),X2) -> minus#(X1,X2) ->
    minus#(X1,mark(X2)) -> minus#(X1,X2)
    minus#(mark(X1),X2) -> minus#(X1,X2) ->
    minus#(mark(X1),X2) -> minus#(X1,X2)
    minus#(X1,mark(X2)) -> minus#(X1,X2) ->
    minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
    minus#(X1,mark(X2)) -> minus#(X1,X2) ->
    minus#(X1,mark(X2)) -> minus#(X1,X2)
    minus#(X1,mark(X2)) -> minus#(X1,X2) ->
    minus#(mark(X1),X2) -> minus#(X1,X2)
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    sel#(mark(X1),X2) -> sel#(X1,X2) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    sel#(mark(X1),X2) -> sel#(X1,X2) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    sel#(mark(X1),X2) -> sel#(X1,X2) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    sel#(X1,mark(X2)) -> sel#(X1,X2) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    sel#(X1,mark(X2)) -> sel#(X1,X2) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    sel#(X1,mark(X2)) -> sel#(X1,X2) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    cons#(mark(X1),X2) -> cons#(X1,X2) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    cons#(mark(X1),X2) -> cons#(X1,X2) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    from#(ok(X)) -> from#(X) -> from#(ok(X)) -> from#(X)
    from#(ok(X)) -> from#(X) -> from#(mark(X)) -> from#(X)
    from#(mark(X)) -> from#(X) -> from#(ok(X)) -> from#(X)
    from#(mark(X)) -> from#(X) -> from#(mark(X)) -> from#(X)
    s#(ok(X)) -> s#(X) -> s#(ok(X)) -> s#(X)
    s#(ok(X)) -> s#(X) -> s#(mark(X)) -> s#(X)
    s#(mark(X)) -> s#(X) -> s#(ok(X)) -> s#(X)
    s#(mark(X)) -> s#(X) ->
    s#(mark(X)) -> s#(X)
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS) ->
    zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS) ->
    zWquot#(X1,mark(X2)) -> zWquot#(X1,X2)
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS) ->
    zWquot#(mark(X1),X2) -> zWquot#(X1,X2)
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y) ->
    quot#(ok(X1),ok(X2)) -> quot#(X1,X2)
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y) ->
    quot#(X1,mark(X2)) -> quot#(X1,X2)
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y) ->
    quot#(mark(X1),X2) -> quot#(X1,X2)
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS)) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS)) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2) ->
    zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2) ->
    zWquot#(X1,mark(X2)) -> zWquot#(X1,X2)
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2) ->
    zWquot#(mark(X1),X2) -> zWquot#(X1,X2)
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2)) ->
    zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2)) ->
    zWquot#(X1,mark(X2)) -> zWquot#(X1,X2)
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2)) ->
    zWquot#(mark(X1),X2) -> zWquot#(X1,X2)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> active#(X2)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> active#(X1)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> quot#(X1,active(X2))
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> active#(X2)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> quot#(active(X1),X2)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> active#(X1)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> minus#(X1,active(X2))
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> active#(X2)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> minus#(active(X1),X2)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> active#(X1)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> s#(active(X))
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> active#(X)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(active(X))
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> active#(X)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(quot(s(X),s(Y))) -> minus#(X,Y)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(minus(s(X),s(Y))) -> minus#(X,Y)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(s(X))
    active#(zWquot(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> s#(X)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> active#(X2)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> active#(X1)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> quot#(X1,active(X2))
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> active#(X2)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> quot#(active(X1),X2)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> active#(X1)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> minus#(X1,active(X2))
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> active#(X2)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> minus#(active(X1),X2)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> active#(X1)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(active(X))
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> active#(X)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> minus#(X,Y)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(minus(s(X),s(Y))) -> minus#(X,Y)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(s(X))
    active#(zWquot(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> s#(X)
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y)) ->
    quot#(ok(X1),ok(X2)) -> quot#(X1,X2)
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y)) ->
    quot#(X1,mark(X2)) -> quot#(X1,X2)
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y)) ->
    quot#(mark(X1),X2) -> quot#(X1,X2)
    active#(quot(s(X),s(Y))) -> minus#(X,Y) ->
    minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
    active#(quot(s(X),s(Y))) -> minus#(X,Y) ->
    minus#(X1,mark(X2)) -> minus#(X1,X2)
    active#(quot(s(X),s(Y))) -> minus#(X,Y) ->
    minus#(mark(X1),X2) -> minus#(X1,X2)
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y))) ->
    s#(ok(X)) -> s#(X)
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y))) ->
    s#(mark(X)) -> s#(X)
    active#(quot(X1,X2)) -> quot#(active(X1),X2) ->
    quot#(ok(X1),ok(X2)) -> quot#(X1,X2)
    active#(quot(X1,X2)) -> quot#(active(X1),X2) ->
    quot#(X1,mark(X2)) -> quot#(X1,X2)
    active#(quot(X1,X2)) -> quot#(active(X1),X2) ->
    quot#(mark(X1),X2) -> quot#(X1,X2)
    active#(quot(X1,X2)) -> quot#(X1,active(X2)) ->
    quot#(ok(X1),ok(X2)) -> quot#(X1,X2)
    active#(quot(X1,X2)) -> quot#(X1,active(X2)) ->
    quot#(X1,mark(X2)) -> quot#(X1,X2)
    active#(quot(X1,X2)) -> quot#(X1,active(X2)) ->
    quot#(mark(X1),X2) -> quot#(X1,X2)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> active#(X2)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> active#(X1)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> quot#(X1,active(X2))
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> active#(X2)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> quot#(active(X1),X2)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> active#(X1)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> minus#(X1,active(X2))
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> active#(X2)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> minus#(active(X1),X2)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> active#(X1)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> s#(active(X))
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> active#(X)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(active(X))
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> active#(X)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(quot(s(X),s(Y))) -> minus#(X,Y)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(minus(s(X),s(Y))) -> minus#(X,Y)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(s(X))
    active#(quot(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> s#(X)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> active#(X2)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> active#(X1)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> quot#(X1,active(X2))
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> active#(X2)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> quot#(active(X1),X2)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> active#(X1)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> minus#(X1,active(X2))
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> active#(X2)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> minus#(active(X1),X2)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> active#(X1)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(active(X))
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> active#(X)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> minus#(X,Y)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(minus(s(X),s(Y))) -> minus#(X,Y)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(s(X))
    active#(quot(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> s#(X)
    active#(minus(s(X),s(Y))) -> minus#(X,Y) ->
    minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
    active#(minus(s(X),s(Y))) -> minus#(X,Y) ->
    minus#(X1,mark(X2)) -> minus#(X1,X2)
    active#(minus(s(X),s(Y))) -> minus#(X,Y) ->
    minus#(mark(X1),X2) -> minus#(X1,X2)
    active#(minus(X1,X2)) -> minus#(active(X1),X2) ->
    minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
    active#(minus(X1,X2)) -> minus#(active(X1),X2) ->
    minus#(X1,mark(X2)) -> minus#(X1,X2)
    active#(minus(X1,X2)) -> minus#(active(X1),X2) ->
    minus#(mark(X1),X2) -> minus#(X1,X2)
    active#(minus(X1,X2)) -> minus#(X1,active(X2)) ->
    minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
    active#(minus(X1,X2)) -> minus#(X1,active(X2)) ->
    minus#(X1,mark(X2)) -> minus#(X1,X2)
    active#(minus(X1,X2)) -> minus#(X1,active(X2)) ->
    minus#(mark(X1),X2) -> minus#(X1,X2)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> active#(X2)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> active#(X1)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> quot#(X1,active(X2))
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> active#(X2)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> quot#(active(X1),X2)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> active#(X1)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> minus#(X1,active(X2))
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> active#(X2)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> minus#(active(X1),X2)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> active#(X1)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> s#(active(X))
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> active#(X)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(active(X))
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> active#(X)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(quot(s(X),s(Y))) -> minus#(X,Y)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(minus(s(X),s(Y))) -> minus#(X,Y)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(s(X))
    active#(minus(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> s#(X)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> active#(X2)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> active#(X1)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> quot#(X1,active(X2))
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> active#(X2)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> quot#(active(X1),X2)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> active#(X1)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> minus#(X1,active(X2))
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> active#(X2)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> minus#(active(X1),X2)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> active#(X1)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(active(X))
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> active#(X)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> minus#(X,Y)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(minus(s(X),s(Y))) -> minus#(X,Y)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(s(X))
    active#(minus(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> s#(X)
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> sel#(active(X1),X2) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> sel#(active(X1),X2) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> sel#(active(X1),X2) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> sel#(X1,active(X2)) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> sel#(X1,active(X2)) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> sel#(X1,active(X2)) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(zWquot(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> quot#(X1,active(X2))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> quot#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(quot(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> minus#(X1,active(X2))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> minus#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(minus(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> s#(active(X))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> active#(X)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(active(X))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> active#(X)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(quot(s(X),s(Y))) -> minus#(X,Y)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(minus(s(X),s(Y))) -> minus#(X,Y)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(s(X))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> s#(X)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> quot#(X1,active(X2))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> quot#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> minus#(X1,active(X2))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> minus#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(active(X))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> active#(X)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> minus#(X,Y)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(minus(s(X),s(Y))) -> minus#(X,Y)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(s(X))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> s#(X)
    active#(cons(X1,X2)) -> cons#(active(X1),X2) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    active#(cons(X1,X2)) -> cons#(active(X1),X2) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> active#(X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(zWquot(X1,X2)) -> active#(X1)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> quot#(X1,active(X2))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> active#(X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> quot#(active(X1),X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(quot(X1,X2)) -> active#(X1)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> minus#(X1,active(X2))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> active#(X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> minus#(active(X1),X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(minus(X1,X2)) -> active#(X1)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(active(X))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> active#(X)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(quot(s(X),s(Y))) -> minus#(X,Y)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(minus(s(X),s(Y))) -> minus#(X,Y)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(s(X))
    active#(cons(X1,X2)) -> active#(X1) -> active#(from(X)) -> s#(X)
    active#(s(X)) -> s#(active(X)) -> s#(ok(X)) -> s#(X)
    active#(s(X)) -> s#(active(X)) -> s#(mark(X)) -> s#(X)
    active#(s(X)) -> active#(X) ->
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    active#(s(X)) -> active#(X) -> active#(zWquot(X1,X2)) -> active#(X2)
    active#(s(X)) -> active#(X) ->
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
    active#(s(X)) -> active#(X) -> active#(zWquot(X1,X2)) -> active#(X1)
    active#(s(X)) -> active#(X) ->
    active#(quot(X1,X2)) -> quot#(X1,active(X2))
    active#(s(X)) -> active#(X) -> active#(quot(X1,X2)) -> active#(X2)
    active#(s(X)) -> active#(X) ->
    active#(quot(X1,X2)) -> quot#(active(X1),X2)
    active#(s(X)) -> active#(X) -> active#(quot(X1,X2)) -> active#(X1)
    active#(s(X)) -> active#(X) ->
    active#(minus(X1,X2)) -> minus#(X1,active(X2))
    active#(s(X)) -> active#(X) -> active#(minus(X1,X2)) -> active#(X2)
    active#(s(X)) -> active#(X) ->
    active#(minus(X1,X2)) -> minus#(active(X1),X2)
    active#(s(X)) -> active#(X) -> active#(minus(X1,X2)) -> active#(X1)
    active#(s(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(s(X)) -> active#(X) -> active#(sel(X1,X2)) -> active#(X2)
    active#(s(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(s(X)) -> active#(X) -> active#(sel(X1,X2)) -> active#(X1)
    active#(s(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    active#(s(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    active#(s(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(s(X)) -> active#(X) -> active#(cons(X1,X2)) -> active#(X1)
    active#(s(X)) -> active#(X) -> active#(from(X)) -> from#(active(X))
    active#(s(X)) -> active#(X) -> active#(from(X)) -> active#(X)
    active#(s(X)) -> active#(X) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
    active#(s(X)) -> active#(X) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
    active#(s(X)) -> active#(X) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
    active#(s(X)) -> active#(X) ->
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
    active#(s(X)) -> active#(X) ->
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
    active#(s(X)) -> active#(X) ->
    active#(quot(s(X),s(Y))) -> minus#(X,Y)
    active#(s(X)) -> active#(X) ->
    active#(minus(s(X),s(Y))) -> minus#(X,Y)
    active#(s(X)) -> active#(X) ->
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
    active#(s(X)) -> active#(X) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(s(X)) -> active#(X) -> active#(from(X)) -> from#(s(X))
    active#(s(X)) -> active#(X) -> active#(from(X)) -> s#(X)
    active#(from(X)) -> cons#(X,from(s(X))) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    active#(from(X)) -> cons#(X,from(s(X))) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    active#(from(X)) -> from#(s(X)) -> from#(ok(X)) -> from#(X)
    active#(from(X)) -> from#(s(X)) ->
    from#(mark(X)) -> from#(X)
    active#(from(X)) -> from#(active(X)) ->
    from#(ok(X)) -> from#(X)
    active#(from(X)) -> from#(active(X)) -> from#(mark(X)) -> from#(X)
    active#(from(X)) -> s#(X) -> s#(ok(X)) -> s#(X)
    active#(from(X)) -> s#(X) -> s#(mark(X)) -> s#(X)
    active#(from(X)) -> active#(X) ->
    active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    active#(from(X)) -> active#(X) ->
    active#(zWquot(X1,X2)) -> active#(X2)
    active#(from(X)) -> active#(X) ->
    active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
    active#(from(X)) -> active#(X) ->
    active#(zWquot(X1,X2)) -> active#(X1)
    active#(from(X)) -> active#(X) ->
    active#(quot(X1,X2)) -> quot#(X1,active(X2))
    active#(from(X)) -> active#(X) ->
    active#(quot(X1,X2)) -> active#(X2)
    active#(from(X)) -> active#(X) ->
    active#(quot(X1,X2)) -> quot#(active(X1),X2)
    active#(from(X)) -> active#(X) ->
    active#(quot(X1,X2)) -> active#(X1)
    active#(from(X)) -> active#(X) ->
    active#(minus(X1,X2)) -> minus#(X1,active(X2))
    active#(from(X)) -> active#(X) ->
    active#(minus(X1,X2)) -> active#(X2)
    active#(from(X)) -> active#(X) ->
    active#(minus(X1,X2)) -> minus#(active(X1),X2)
    active#(from(X)) -> active#(X) ->
    active#(minus(X1,X2)) -> active#(X1)
    active#(from(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(from(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(from(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(from(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(from(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    active#(from(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    active#(from(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(from(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(from(X)) -> active#(X) ->
    active#(from(X)) -> from#(active(X))
    active#(from(X)) -> active#(X) -> active#(from(X)) -> active#(X)
    active#(from(X)) -> active#(X) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS))
    active#(from(X)) -> active#(X) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
    active#(from(X)) -> active#(X) ->
    active#(zWquot(cons(X,XS),cons(Y,YS))) -> zWquot#(XS,YS)
    active#(from(X)) -> active#(X) ->
    active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y)))
    active#(from(X)) -> active#(X) ->
    active#(quot(s(X),s(Y))) -> quot#(minus(X,Y),s(Y))
    active#(from(X)) -> active#(X) ->
    active#(quot(s(X),s(Y))) -> minus#(X,Y)
    active#(from(X)) -> active#(X) ->
    active#(minus(s(X),s(Y))) -> minus#(X,Y)
    active#(from(X)) -> active#(X) ->
    active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
    active#(from(X)) -> active#(X) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(from(X)) -> active#(X) -> active#(from(X)) -> from#(s(X))
    active#(from(X)) -> active#(X) -> active#(from(X)) -> s#(X)
   SCC Processor:
    #sccs: 10
    #rules: 43
    #arcs: 775/5476
    DPs:
     top#(ok(X)) -> top#(active(X))
     top#(mark(X)) -> top#(proper(X))
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(sel(0(),cons(X,XS))) -> mark(X)
     active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
     active(minus(X,0())) -> mark(0())
     active(minus(s(X),s(Y))) -> mark(minus(X,Y))
     active(quot(0(),s(Y))) -> mark(0())
     active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
     active(zWquot(XS,nil())) -> mark(nil())
     active(zWquot(nil(),XS)) -> mark(nil())
     active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     active(minus(X1,X2)) -> minus(active(X1),X2)
     active(minus(X1,X2)) -> minus(X1,active(X2))
     active(quot(X1,X2)) -> quot(active(X1),X2)
     active(quot(X1,X2)) -> quot(X1,active(X2))
     active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
     active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     minus(mark(X1),X2) -> mark(minus(X1,X2))
     minus(X1,mark(X2)) -> mark(minus(X1,X2))
     quot(mark(X1),X2) -> mark(quot(X1,X2))
     quot(X1,mark(X2)) -> mark(quot(X1,X2))
     zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
     zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
     proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
     proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
     proper(nil()) -> ok(nil())
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
     quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
     zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Open
    
    DPs:
     active#(from(X)) -> active#(X)
     active#(cons(X1,X2)) -> active#(X1)
     active#(s(X)) -> active#(X)
     active#(sel(X1,X2)) -> active#(X1)
     active#(sel(X1,X2)) -> active#(X2)
     active#(minus(X1,X2)) -> active#(X1)
     active#(minus(X1,X2)) -> active#(X2)
     active#(quot(X1,X2)) -> active#(X1)
     active#(quot(X1,X2)) -> active#(X2)
     active#(zWquot(X1,X2)) -> active#(X1)
     active#(zWquot(X1,X2)) -> active#(X2)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(sel(0(),cons(X,XS))) -> mark(X)
     active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
     active(minus(X,0())) -> mark(0())
     active(minus(s(X),s(Y))) -> mark(minus(X,Y))
     active(quot(0(),s(Y))) -> mark(0())
     active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
     active(zWquot(XS,nil())) -> mark(nil())
     active(zWquot(nil(),XS)) -> mark(nil())
     active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     active(minus(X1,X2)) -> minus(active(X1),X2)
     active(minus(X1,X2)) -> minus(X1,active(X2))
     active(quot(X1,X2)) -> quot(active(X1),X2)
     active(quot(X1,X2)) -> quot(X1,active(X2))
     active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
     active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     minus(mark(X1),X2) -> mark(minus(X1,X2))
     minus(X1,mark(X2)) -> mark(minus(X1,X2))
     quot(mark(X1),X2) -> mark(quot(X1,X2))
     quot(X1,mark(X2)) -> mark(quot(X1,X2))
     zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
     zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
     proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
     proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
     proper(nil()) -> ok(nil())
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
     quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
     zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(active#) = 0
     problem:
      DPs:
       
      TRS:
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(sel(0(),cons(X,XS))) -> mark(X)
       active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
       active(minus(X,0())) -> mark(0())
       active(minus(s(X),s(Y))) -> mark(minus(X,Y))
       active(quot(0(),s(Y))) -> mark(0())
       active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
       active(zWquot(XS,nil())) -> mark(nil())
       active(zWquot(nil(),XS)) -> mark(nil())
       active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
       active(from(X)) -> from(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(sel(X1,X2)) -> sel(active(X1),X2)
       active(sel(X1,X2)) -> sel(X1,active(X2))
       active(minus(X1,X2)) -> minus(active(X1),X2)
       active(minus(X1,X2)) -> minus(X1,active(X2))
       active(quot(X1,X2)) -> quot(active(X1),X2)
       active(quot(X1,X2)) -> quot(X1,active(X2))
       active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
       active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
       from(mark(X)) -> mark(from(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       sel(mark(X1),X2) -> mark(sel(X1,X2))
       sel(X1,mark(X2)) -> mark(sel(X1,X2))
       minus(mark(X1),X2) -> mark(minus(X1,X2))
       minus(X1,mark(X2)) -> mark(minus(X1,X2))
       quot(mark(X1),X2) -> mark(quot(X1,X2))
       quot(X1,mark(X2)) -> mark(quot(X1,X2))
       zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
       zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
       proper(from(X)) -> from(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
       proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
       proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
       proper(nil()) -> ok(nil())
       from(ok(X)) -> ok(from(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
       minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
       quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
       zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     proper#(from(X)) -> proper#(X)
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(s(X)) -> proper#(X)
     proper#(sel(X1,X2)) -> proper#(X2)
     proper#(sel(X1,X2)) -> proper#(X1)
     proper#(minus(X1,X2)) -> proper#(X2)
     proper#(minus(X1,X2)) -> proper#(X1)
     proper#(quot(X1,X2)) -> proper#(X2)
     proper#(quot(X1,X2)) -> proper#(X1)
     proper#(zWquot(X1,X2)) -> proper#(X2)
     proper#(zWquot(X1,X2)) -> proper#(X1)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(sel(0(),cons(X,XS))) -> mark(X)
     active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
     active(minus(X,0())) -> mark(0())
     active(minus(s(X),s(Y))) -> mark(minus(X,Y))
     active(quot(0(),s(Y))) -> mark(0())
     active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
     active(zWquot(XS,nil())) -> mark(nil())
     active(zWquot(nil(),XS)) -> mark(nil())
     active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     active(minus(X1,X2)) -> minus(active(X1),X2)
     active(minus(X1,X2)) -> minus(X1,active(X2))
     active(quot(X1,X2)) -> quot(active(X1),X2)
     active(quot(X1,X2)) -> quot(X1,active(X2))
     active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
     active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     minus(mark(X1),X2) -> mark(minus(X1,X2))
     minus(X1,mark(X2)) -> mark(minus(X1,X2))
     quot(mark(X1),X2) -> mark(quot(X1,X2))
     quot(X1,mark(X2)) -> mark(quot(X1,X2))
     zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
     zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
     proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
     proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
     proper(nil()) -> ok(nil())
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
     quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
     zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(proper#) = 0
     problem:
      DPs:
       
      TRS:
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(sel(0(),cons(X,XS))) -> mark(X)
       active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
       active(minus(X,0())) -> mark(0())
       active(minus(s(X),s(Y))) -> mark(minus(X,Y))
       active(quot(0(),s(Y))) -> mark(0())
       active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
       active(zWquot(XS,nil())) -> mark(nil())
       active(zWquot(nil(),XS)) -> mark(nil())
       active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
       active(from(X)) -> from(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(sel(X1,X2)) -> sel(active(X1),X2)
       active(sel(X1,X2)) -> sel(X1,active(X2))
       active(minus(X1,X2)) -> minus(active(X1),X2)
       active(minus(X1,X2)) -> minus(X1,active(X2))
       active(quot(X1,X2)) -> quot(active(X1),X2)
       active(quot(X1,X2)) -> quot(X1,active(X2))
       active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
       active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
       from(mark(X)) -> mark(from(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       sel(mark(X1),X2) -> mark(sel(X1,X2))
       sel(X1,mark(X2)) -> mark(sel(X1,X2))
       minus(mark(X1),X2) -> mark(minus(X1,X2))
       minus(X1,mark(X2)) -> mark(minus(X1,X2))
       quot(mark(X1),X2) -> mark(quot(X1,X2))
       quot(X1,mark(X2)) -> mark(quot(X1,X2))
       zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
       zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
       proper(from(X)) -> from(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
       proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
       proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
       proper(nil()) -> ok(nil())
       from(ok(X)) -> ok(from(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
       minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
       quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
       zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     zWquot#(mark(X1),X2) -> zWquot#(X1,X2)
     zWquot#(X1,mark(X2)) -> zWquot#(X1,X2)
     zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(sel(0(),cons(X,XS))) -> mark(X)
     active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
     active(minus(X,0())) -> mark(0())
     active(minus(s(X),s(Y))) -> mark(minus(X,Y))
     active(quot(0(),s(Y))) -> mark(0())
     active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
     active(zWquot(XS,nil())) -> mark(nil())
     active(zWquot(nil(),XS)) -> mark(nil())
     active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     active(minus(X1,X2)) -> minus(active(X1),X2)
     active(minus(X1,X2)) -> minus(X1,active(X2))
     active(quot(X1,X2)) -> quot(active(X1),X2)
     active(quot(X1,X2)) -> quot(X1,active(X2))
     active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
     active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     minus(mark(X1),X2) -> mark(minus(X1,X2))
     minus(X1,mark(X2)) -> mark(minus(X1,X2))
     quot(mark(X1),X2) -> mark(quot(X1,X2))
     quot(X1,mark(X2)) -> mark(quot(X1,X2))
     zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
     zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
     proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
     proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
     proper(nil()) -> ok(nil())
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
     quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
     zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(zWquot#) = 1
     problem:
      DPs:
       zWquot#(mark(X1),X2) -> zWquot#(X1,X2)
      TRS:
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(sel(0(),cons(X,XS))) -> mark(X)
       active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
       active(minus(X,0())) -> mark(0())
       active(minus(s(X),s(Y))) -> mark(minus(X,Y))
       active(quot(0(),s(Y))) -> mark(0())
       active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
       active(zWquot(XS,nil())) -> mark(nil())
       active(zWquot(nil(),XS)) -> mark(nil())
       active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
       active(from(X)) -> from(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(sel(X1,X2)) -> sel(active(X1),X2)
       active(sel(X1,X2)) -> sel(X1,active(X2))
       active(minus(X1,X2)) -> minus(active(X1),X2)
       active(minus(X1,X2)) -> minus(X1,active(X2))
       active(quot(X1,X2)) -> quot(active(X1),X2)
       active(quot(X1,X2)) -> quot(X1,active(X2))
       active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
       active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
       from(mark(X)) -> mark(from(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       sel(mark(X1),X2) -> mark(sel(X1,X2))
       sel(X1,mark(X2)) -> mark(sel(X1,X2))
       minus(mark(X1),X2) -> mark(minus(X1,X2))
       minus(X1,mark(X2)) -> mark(minus(X1,X2))
       quot(mark(X1),X2) -> mark(quot(X1,X2))
       quot(X1,mark(X2)) -> mark(quot(X1,X2))
       zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
       zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
       proper(from(X)) -> from(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
       proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
       proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
       proper(nil()) -> ok(nil())
       from(ok(X)) -> ok(from(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
       minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
       quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
       zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Subterm Criterion Processor:
      simple projection:
       pi(zWquot#) = 0
      problem:
       DPs:
        
       TRS:
        active(from(X)) -> mark(cons(X,from(s(X))))
        active(sel(0(),cons(X,XS))) -> mark(X)
        active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
        active(minus(X,0())) -> mark(0())
        active(minus(s(X),s(Y))) -> mark(minus(X,Y))
        active(quot(0(),s(Y))) -> mark(0())
        active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
        active(zWquot(XS,nil())) -> mark(nil())
        active(zWquot(nil(),XS)) -> mark(nil())
        active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
        active(from(X)) -> from(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(s(X)) -> s(active(X))
        active(sel(X1,X2)) -> sel(active(X1),X2)
        active(sel(X1,X2)) -> sel(X1,active(X2))
        active(minus(X1,X2)) -> minus(active(X1),X2)
        active(minus(X1,X2)) -> minus(X1,active(X2))
        active(quot(X1,X2)) -> quot(active(X1),X2)
        active(quot(X1,X2)) -> quot(X1,active(X2))
        active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
        active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
        from(mark(X)) -> mark(from(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        s(mark(X)) -> mark(s(X))
        sel(mark(X1),X2) -> mark(sel(X1,X2))
        sel(X1,mark(X2)) -> mark(sel(X1,X2))
        minus(mark(X1),X2) -> mark(minus(X1,X2))
        minus(X1,mark(X2)) -> mark(minus(X1,X2))
        quot(mark(X1),X2) -> mark(quot(X1,X2))
        quot(X1,mark(X2)) -> mark(quot(X1,X2))
        zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
        zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
        proper(from(X)) -> from(proper(X))
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(s(X)) -> s(proper(X))
        proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
        proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
        proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
        proper(nil()) -> ok(nil())
        from(ok(X)) -> ok(from(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        s(ok(X)) -> ok(s(X))
        sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
        minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
        quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
        zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     quot#(mark(X1),X2) -> quot#(X1,X2)
     quot#(X1,mark(X2)) -> quot#(X1,X2)
     quot#(ok(X1),ok(X2)) -> quot#(X1,X2)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(sel(0(),cons(X,XS))) -> mark(X)
     active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
     active(minus(X,0())) -> mark(0())
     active(minus(s(X),s(Y))) -> mark(minus(X,Y))
     active(quot(0(),s(Y))) -> mark(0())
     active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
     active(zWquot(XS,nil())) -> mark(nil())
     active(zWquot(nil(),XS)) -> mark(nil())
     active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     active(minus(X1,X2)) -> minus(active(X1),X2)
     active(minus(X1,X2)) -> minus(X1,active(X2))
     active(quot(X1,X2)) -> quot(active(X1),X2)
     active(quot(X1,X2)) -> quot(X1,active(X2))
     active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
     active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     minus(mark(X1),X2) -> mark(minus(X1,X2))
     minus(X1,mark(X2)) -> mark(minus(X1,X2))
     quot(mark(X1),X2) -> mark(quot(X1,X2))
     quot(X1,mark(X2)) -> mark(quot(X1,X2))
     zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
     zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
     proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
     proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
     proper(nil()) -> ok(nil())
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
     quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
     zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(quot#) = 1
     problem:
      DPs:
       quot#(mark(X1),X2) -> quot#(X1,X2)
      TRS:
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(sel(0(),cons(X,XS))) -> mark(X)
       active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
       active(minus(X,0())) -> mark(0())
       active(minus(s(X),s(Y))) -> mark(minus(X,Y))
       active(quot(0(),s(Y))) -> mark(0())
       active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
       active(zWquot(XS,nil())) -> mark(nil())
       active(zWquot(nil(),XS)) -> mark(nil())
       active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
       active(from(X)) -> from(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(sel(X1,X2)) -> sel(active(X1),X2)
       active(sel(X1,X2)) -> sel(X1,active(X2))
       active(minus(X1,X2)) -> minus(active(X1),X2)
       active(minus(X1,X2)) -> minus(X1,active(X2))
       active(quot(X1,X2)) -> quot(active(X1),X2)
       active(quot(X1,X2)) -> quot(X1,active(X2))
       active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
       active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
       from(mark(X)) -> mark(from(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       sel(mark(X1),X2) -> mark(sel(X1,X2))
       sel(X1,mark(X2)) -> mark(sel(X1,X2))
       minus(mark(X1),X2) -> mark(minus(X1,X2))
       minus(X1,mark(X2)) -> mark(minus(X1,X2))
       quot(mark(X1),X2) -> mark(quot(X1,X2))
       quot(X1,mark(X2)) -> mark(quot(X1,X2))
       zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
       zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
       proper(from(X)) -> from(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
       proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
       proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
       proper(nil()) -> ok(nil())
       from(ok(X)) -> ok(from(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
       minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
       quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
       zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Subterm Criterion Processor:
      simple projection:
       pi(quot#) = 0
      problem:
       DPs:
        
       TRS:
        active(from(X)) -> mark(cons(X,from(s(X))))
        active(sel(0(),cons(X,XS))) -> mark(X)
        active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
        active(minus(X,0())) -> mark(0())
        active(minus(s(X),s(Y))) -> mark(minus(X,Y))
        active(quot(0(),s(Y))) -> mark(0())
        active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
        active(zWquot(XS,nil())) -> mark(nil())
        active(zWquot(nil(),XS)) -> mark(nil())
        active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
        active(from(X)) -> from(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(s(X)) -> s(active(X))
        active(sel(X1,X2)) -> sel(active(X1),X2)
        active(sel(X1,X2)) -> sel(X1,active(X2))
        active(minus(X1,X2)) -> minus(active(X1),X2)
        active(minus(X1,X2)) -> minus(X1,active(X2))
        active(quot(X1,X2)) -> quot(active(X1),X2)
        active(quot(X1,X2)) -> quot(X1,active(X2))
        active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
        active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
        from(mark(X)) -> mark(from(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        s(mark(X)) -> mark(s(X))
        sel(mark(X1),X2) -> mark(sel(X1,X2))
        sel(X1,mark(X2)) -> mark(sel(X1,X2))
        minus(mark(X1),X2) -> mark(minus(X1,X2))
        minus(X1,mark(X2)) -> mark(minus(X1,X2))
        quot(mark(X1),X2) -> mark(quot(X1,X2))
        quot(X1,mark(X2)) -> mark(quot(X1,X2))
        zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
        zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
        proper(from(X)) -> from(proper(X))
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(s(X)) -> s(proper(X))
        proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
        proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
        proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
        proper(nil()) -> ok(nil())
        from(ok(X)) -> ok(from(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        s(ok(X)) -> ok(s(X))
        sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
        minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
        quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
        zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     minus#(mark(X1),X2) -> minus#(X1,X2)
     minus#(X1,mark(X2)) -> minus#(X1,X2)
     minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(sel(0(),cons(X,XS))) -> mark(X)
     active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
     active(minus(X,0())) -> mark(0())
     active(minus(s(X),s(Y))) -> mark(minus(X,Y))
     active(quot(0(),s(Y))) -> mark(0())
     active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
     active(zWquot(XS,nil())) -> mark(nil())
     active(zWquot(nil(),XS)) -> mark(nil())
     active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     active(minus(X1,X2)) -> minus(active(X1),X2)
     active(minus(X1,X2)) -> minus(X1,active(X2))
     active(quot(X1,X2)) -> quot(active(X1),X2)
     active(quot(X1,X2)) -> quot(X1,active(X2))
     active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
     active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     minus(mark(X1),X2) -> mark(minus(X1,X2))
     minus(X1,mark(X2)) -> mark(minus(X1,X2))
     quot(mark(X1),X2) -> mark(quot(X1,X2))
     quot(X1,mark(X2)) -> mark(quot(X1,X2))
     zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
     zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
     proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
     proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
     proper(nil()) -> ok(nil())
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
     quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
     zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(minus#) = 1
     problem:
      DPs:
       minus#(mark(X1),X2) -> minus#(X1,X2)
      TRS:
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(sel(0(),cons(X,XS))) -> mark(X)
       active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
       active(minus(X,0())) -> mark(0())
       active(minus(s(X),s(Y))) -> mark(minus(X,Y))
       active(quot(0(),s(Y))) -> mark(0())
       active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
       active(zWquot(XS,nil())) -> mark(nil())
       active(zWquot(nil(),XS)) -> mark(nil())
       active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
       active(from(X)) -> from(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(sel(X1,X2)) -> sel(active(X1),X2)
       active(sel(X1,X2)) -> sel(X1,active(X2))
       active(minus(X1,X2)) -> minus(active(X1),X2)
       active(minus(X1,X2)) -> minus(X1,active(X2))
       active(quot(X1,X2)) -> quot(active(X1),X2)
       active(quot(X1,X2)) -> quot(X1,active(X2))
       active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
       active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
       from(mark(X)) -> mark(from(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       sel(mark(X1),X2) -> mark(sel(X1,X2))
       sel(X1,mark(X2)) -> mark(sel(X1,X2))
       minus(mark(X1),X2) -> mark(minus(X1,X2))
       minus(X1,mark(X2)) -> mark(minus(X1,X2))
       quot(mark(X1),X2) -> mark(quot(X1,X2))
       quot(X1,mark(X2)) -> mark(quot(X1,X2))
       zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
       zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
       proper(from(X)) -> from(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
       proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
       proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
       proper(nil()) -> ok(nil())
       from(ok(X)) -> ok(from(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
       minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
       quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
       zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Subterm Criterion Processor:
      simple projection:
       pi(minus#) = 0
      problem:
       DPs:
        
       TRS:
        active(from(X)) -> mark(cons(X,from(s(X))))
        active(sel(0(),cons(X,XS))) -> mark(X)
        active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
        active(minus(X,0())) -> mark(0())
        active(minus(s(X),s(Y))) -> mark(minus(X,Y))
        active(quot(0(),s(Y))) -> mark(0())
        active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
        active(zWquot(XS,nil())) -> mark(nil())
        active(zWquot(nil(),XS)) -> mark(nil())
        active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
        active(from(X)) -> from(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(s(X)) -> s(active(X))
        active(sel(X1,X2)) -> sel(active(X1),X2)
        active(sel(X1,X2)) -> sel(X1,active(X2))
        active(minus(X1,X2)) -> minus(active(X1),X2)
        active(minus(X1,X2)) -> minus(X1,active(X2))
        active(quot(X1,X2)) -> quot(active(X1),X2)
        active(quot(X1,X2)) -> quot(X1,active(X2))
        active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
        active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
        from(mark(X)) -> mark(from(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        s(mark(X)) -> mark(s(X))
        sel(mark(X1),X2) -> mark(sel(X1,X2))
        sel(X1,mark(X2)) -> mark(sel(X1,X2))
        minus(mark(X1),X2) -> mark(minus(X1,X2))
        minus(X1,mark(X2)) -> mark(minus(X1,X2))
        quot(mark(X1),X2) -> mark(quot(X1,X2))
        quot(X1,mark(X2)) -> mark(quot(X1,X2))
        zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
        zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
        proper(from(X)) -> from(proper(X))
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(s(X)) -> s(proper(X))
        proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
        proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
        proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
        proper(nil()) -> ok(nil())
        from(ok(X)) -> ok(from(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        s(ok(X)) -> ok(s(X))
        sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
        minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
        quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
        zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     sel#(mark(X1),X2) -> sel#(X1,X2)
     sel#(X1,mark(X2)) -> sel#(X1,X2)
     sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(sel(0(),cons(X,XS))) -> mark(X)
     active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
     active(minus(X,0())) -> mark(0())
     active(minus(s(X),s(Y))) -> mark(minus(X,Y))
     active(quot(0(),s(Y))) -> mark(0())
     active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
     active(zWquot(XS,nil())) -> mark(nil())
     active(zWquot(nil(),XS)) -> mark(nil())
     active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     active(minus(X1,X2)) -> minus(active(X1),X2)
     active(minus(X1,X2)) -> minus(X1,active(X2))
     active(quot(X1,X2)) -> quot(active(X1),X2)
     active(quot(X1,X2)) -> quot(X1,active(X2))
     active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
     active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     minus(mark(X1),X2) -> mark(minus(X1,X2))
     minus(X1,mark(X2)) -> mark(minus(X1,X2))
     quot(mark(X1),X2) -> mark(quot(X1,X2))
     quot(X1,mark(X2)) -> mark(quot(X1,X2))
     zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
     zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
     proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
     proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
     proper(nil()) -> ok(nil())
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
     quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
     zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(sel#) = 1
     problem:
      DPs:
       sel#(mark(X1),X2) -> sel#(X1,X2)
      TRS:
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(sel(0(),cons(X,XS))) -> mark(X)
       active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
       active(minus(X,0())) -> mark(0())
       active(minus(s(X),s(Y))) -> mark(minus(X,Y))
       active(quot(0(),s(Y))) -> mark(0())
       active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
       active(zWquot(XS,nil())) -> mark(nil())
       active(zWquot(nil(),XS)) -> mark(nil())
       active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
       active(from(X)) -> from(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(sel(X1,X2)) -> sel(active(X1),X2)
       active(sel(X1,X2)) -> sel(X1,active(X2))
       active(minus(X1,X2)) -> minus(active(X1),X2)
       active(minus(X1,X2)) -> minus(X1,active(X2))
       active(quot(X1,X2)) -> quot(active(X1),X2)
       active(quot(X1,X2)) -> quot(X1,active(X2))
       active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
       active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
       from(mark(X)) -> mark(from(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       sel(mark(X1),X2) -> mark(sel(X1,X2))
       sel(X1,mark(X2)) -> mark(sel(X1,X2))
       minus(mark(X1),X2) -> mark(minus(X1,X2))
       minus(X1,mark(X2)) -> mark(minus(X1,X2))
       quot(mark(X1),X2) -> mark(quot(X1,X2))
       quot(X1,mark(X2)) -> mark(quot(X1,X2))
       zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
       zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
       proper(from(X)) -> from(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
       proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
       proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
       proper(nil()) -> ok(nil())
       from(ok(X)) -> ok(from(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
       minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
       quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
       zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Subterm Criterion Processor:
      simple projection:
       pi(sel#) = 0
      problem:
       DPs:
        
       TRS:
        active(from(X)) -> mark(cons(X,from(s(X))))
        active(sel(0(),cons(X,XS))) -> mark(X)
        active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
        active(minus(X,0())) -> mark(0())
        active(minus(s(X),s(Y))) -> mark(minus(X,Y))
        active(quot(0(),s(Y))) -> mark(0())
        active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
        active(zWquot(XS,nil())) -> mark(nil())
        active(zWquot(nil(),XS)) -> mark(nil())
        active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
        active(from(X)) -> from(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(s(X)) -> s(active(X))
        active(sel(X1,X2)) -> sel(active(X1),X2)
        active(sel(X1,X2)) -> sel(X1,active(X2))
        active(minus(X1,X2)) -> minus(active(X1),X2)
        active(minus(X1,X2)) -> minus(X1,active(X2))
        active(quot(X1,X2)) -> quot(active(X1),X2)
        active(quot(X1,X2)) -> quot(X1,active(X2))
        active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
        active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
        from(mark(X)) -> mark(from(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        s(mark(X)) -> mark(s(X))
        sel(mark(X1),X2) -> mark(sel(X1,X2))
        sel(X1,mark(X2)) -> mark(sel(X1,X2))
        minus(mark(X1),X2) -> mark(minus(X1,X2))
        minus(X1,mark(X2)) -> mark(minus(X1,X2))
        quot(mark(X1),X2) -> mark(quot(X1,X2))
        quot(X1,mark(X2)) -> mark(quot(X1,X2))
        zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
        zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
        proper(from(X)) -> from(proper(X))
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(s(X)) -> s(proper(X))
        proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
        proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
        proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
        proper(nil()) -> ok(nil())
        from(ok(X)) -> ok(from(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        s(ok(X)) -> ok(s(X))
        sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
        minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
        quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
        zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     s#(mark(X)) -> s#(X)
     s#(ok(X)) -> s#(X)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(sel(0(),cons(X,XS))) -> mark(X)
     active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
     active(minus(X,0())) -> mark(0())
     active(minus(s(X),s(Y))) -> mark(minus(X,Y))
     active(quot(0(),s(Y))) -> mark(0())
     active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
     active(zWquot(XS,nil())) -> mark(nil())
     active(zWquot(nil(),XS)) -> mark(nil())
     active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     active(minus(X1,X2)) -> minus(active(X1),X2)
     active(minus(X1,X2)) -> minus(X1,active(X2))
     active(quot(X1,X2)) -> quot(active(X1),X2)
     active(quot(X1,X2)) -> quot(X1,active(X2))
     active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
     active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     minus(mark(X1),X2) -> mark(minus(X1,X2))
     minus(X1,mark(X2)) -> mark(minus(X1,X2))
     quot(mark(X1),X2) -> mark(quot(X1,X2))
     quot(X1,mark(X2)) -> mark(quot(X1,X2))
     zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
     zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
     proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
     proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
     proper(nil()) -> ok(nil())
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
     quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
     zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(s#) = 0
     problem:
      DPs:
       
      TRS:
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(sel(0(),cons(X,XS))) -> mark(X)
       active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
       active(minus(X,0())) -> mark(0())
       active(minus(s(X),s(Y))) -> mark(minus(X,Y))
       active(quot(0(),s(Y))) -> mark(0())
       active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
       active(zWquot(XS,nil())) -> mark(nil())
       active(zWquot(nil(),XS)) -> mark(nil())
       active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
       active(from(X)) -> from(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(sel(X1,X2)) -> sel(active(X1),X2)
       active(sel(X1,X2)) -> sel(X1,active(X2))
       active(minus(X1,X2)) -> minus(active(X1),X2)
       active(minus(X1,X2)) -> minus(X1,active(X2))
       active(quot(X1,X2)) -> quot(active(X1),X2)
       active(quot(X1,X2)) -> quot(X1,active(X2))
       active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
       active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
       from(mark(X)) -> mark(from(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       sel(mark(X1),X2) -> mark(sel(X1,X2))
       sel(X1,mark(X2)) -> mark(sel(X1,X2))
       minus(mark(X1),X2) -> mark(minus(X1,X2))
       minus(X1,mark(X2)) -> mark(minus(X1,X2))
       quot(mark(X1),X2) -> mark(quot(X1,X2))
       quot(X1,mark(X2)) -> mark(quot(X1,X2))
       zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
       zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
       proper(from(X)) -> from(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
       proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
       proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
       proper(nil()) -> ok(nil())
       from(ok(X)) -> ok(from(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
       minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
       quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
       zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     cons#(mark(X1),X2) -> cons#(X1,X2)
     cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(sel(0(),cons(X,XS))) -> mark(X)
     active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
     active(minus(X,0())) -> mark(0())
     active(minus(s(X),s(Y))) -> mark(minus(X,Y))
     active(quot(0(),s(Y))) -> mark(0())
     active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
     active(zWquot(XS,nil())) -> mark(nil())
     active(zWquot(nil(),XS)) -> mark(nil())
     active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     active(minus(X1,X2)) -> minus(active(X1),X2)
     active(minus(X1,X2)) -> minus(X1,active(X2))
     active(quot(X1,X2)) -> quot(active(X1),X2)
     active(quot(X1,X2)) -> quot(X1,active(X2))
     active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
     active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     minus(mark(X1),X2) -> mark(minus(X1,X2))
     minus(X1,mark(X2)) -> mark(minus(X1,X2))
     quot(mark(X1),X2) -> mark(quot(X1,X2))
     quot(X1,mark(X2)) -> mark(quot(X1,X2))
     zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
     zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
     proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
     proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
     proper(nil()) -> ok(nil())
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
     quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
     zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(cons#) = 1
     problem:
      DPs:
       cons#(mark(X1),X2) -> cons#(X1,X2)
      TRS:
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(sel(0(),cons(X,XS))) -> mark(X)
       active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
       active(minus(X,0())) -> mark(0())
       active(minus(s(X),s(Y))) -> mark(minus(X,Y))
       active(quot(0(),s(Y))) -> mark(0())
       active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
       active(zWquot(XS,nil())) -> mark(nil())
       active(zWquot(nil(),XS)) -> mark(nil())
       active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
       active(from(X)) -> from(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(sel(X1,X2)) -> sel(active(X1),X2)
       active(sel(X1,X2)) -> sel(X1,active(X2))
       active(minus(X1,X2)) -> minus(active(X1),X2)
       active(minus(X1,X2)) -> minus(X1,active(X2))
       active(quot(X1,X2)) -> quot(active(X1),X2)
       active(quot(X1,X2)) -> quot(X1,active(X2))
       active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
       active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
       from(mark(X)) -> mark(from(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       sel(mark(X1),X2) -> mark(sel(X1,X2))
       sel(X1,mark(X2)) -> mark(sel(X1,X2))
       minus(mark(X1),X2) -> mark(minus(X1,X2))
       minus(X1,mark(X2)) -> mark(minus(X1,X2))
       quot(mark(X1),X2) -> mark(quot(X1,X2))
       quot(X1,mark(X2)) -> mark(quot(X1,X2))
       zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
       zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
       proper(from(X)) -> from(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
       proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
       proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
       proper(nil()) -> ok(nil())
       from(ok(X)) -> ok(from(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
       minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
       quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
       zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Subterm Criterion Processor:
      simple projection:
       pi(cons#) = 0
      problem:
       DPs:
        
       TRS:
        active(from(X)) -> mark(cons(X,from(s(X))))
        active(sel(0(),cons(X,XS))) -> mark(X)
        active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
        active(minus(X,0())) -> mark(0())
        active(minus(s(X),s(Y))) -> mark(minus(X,Y))
        active(quot(0(),s(Y))) -> mark(0())
        active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
        active(zWquot(XS,nil())) -> mark(nil())
        active(zWquot(nil(),XS)) -> mark(nil())
        active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
        active(from(X)) -> from(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(s(X)) -> s(active(X))
        active(sel(X1,X2)) -> sel(active(X1),X2)
        active(sel(X1,X2)) -> sel(X1,active(X2))
        active(minus(X1,X2)) -> minus(active(X1),X2)
        active(minus(X1,X2)) -> minus(X1,active(X2))
        active(quot(X1,X2)) -> quot(active(X1),X2)
        active(quot(X1,X2)) -> quot(X1,active(X2))
        active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
        active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
        from(mark(X)) -> mark(from(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        s(mark(X)) -> mark(s(X))
        sel(mark(X1),X2) -> mark(sel(X1,X2))
        sel(X1,mark(X2)) -> mark(sel(X1,X2))
        minus(mark(X1),X2) -> mark(minus(X1,X2))
        minus(X1,mark(X2)) -> mark(minus(X1,X2))
        quot(mark(X1),X2) -> mark(quot(X1,X2))
        quot(X1,mark(X2)) -> mark(quot(X1,X2))
        zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
        zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
        proper(from(X)) -> from(proper(X))
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(s(X)) -> s(proper(X))
        proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
        proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
        proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
        proper(nil()) -> ok(nil())
        from(ok(X)) -> ok(from(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        s(ok(X)) -> ok(s(X))
        sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
        minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
        quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
        zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     from#(mark(X)) -> from#(X)
     from#(ok(X)) -> from#(X)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(sel(0(),cons(X,XS))) -> mark(X)
     active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
     active(minus(X,0())) -> mark(0())
     active(minus(s(X),s(Y))) -> mark(minus(X,Y))
     active(quot(0(),s(Y))) -> mark(0())
     active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
     active(zWquot(XS,nil())) -> mark(nil())
     active(zWquot(nil(),XS)) -> mark(nil())
     active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     active(minus(X1,X2)) -> minus(active(X1),X2)
     active(minus(X1,X2)) -> minus(X1,active(X2))
     active(quot(X1,X2)) -> quot(active(X1),X2)
     active(quot(X1,X2)) -> quot(X1,active(X2))
     active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
     active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     minus(mark(X1),X2) -> mark(minus(X1,X2))
     minus(X1,mark(X2)) -> mark(minus(X1,X2))
     quot(mark(X1),X2) -> mark(quot(X1,X2))
     quot(X1,mark(X2)) -> mark(quot(X1,X2))
     zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
     zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
     proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
     proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
     proper(nil()) -> ok(nil())
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
     quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
     zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(from#) = 0
     problem:
      DPs:
       
      TRS:
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(sel(0(),cons(X,XS))) -> mark(X)
       active(sel(s(N),cons(X,XS))) -> mark(sel(N,XS))
       active(minus(X,0())) -> mark(0())
       active(minus(s(X),s(Y))) -> mark(minus(X,Y))
       active(quot(0(),s(Y))) -> mark(0())
       active(quot(s(X),s(Y))) -> mark(s(quot(minus(X,Y),s(Y))))
       active(zWquot(XS,nil())) -> mark(nil())
       active(zWquot(nil(),XS)) -> mark(nil())
       active(zWquot(cons(X,XS),cons(Y,YS))) -> mark(cons(quot(X,Y),zWquot(XS,YS)))
       active(from(X)) -> from(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(sel(X1,X2)) -> sel(active(X1),X2)
       active(sel(X1,X2)) -> sel(X1,active(X2))
       active(minus(X1,X2)) -> minus(active(X1),X2)
       active(minus(X1,X2)) -> minus(X1,active(X2))
       active(quot(X1,X2)) -> quot(active(X1),X2)
       active(quot(X1,X2)) -> quot(X1,active(X2))
       active(zWquot(X1,X2)) -> zWquot(active(X1),X2)
       active(zWquot(X1,X2)) -> zWquot(X1,active(X2))
       from(mark(X)) -> mark(from(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       sel(mark(X1),X2) -> mark(sel(X1,X2))
       sel(X1,mark(X2)) -> mark(sel(X1,X2))
       minus(mark(X1),X2) -> mark(minus(X1,X2))
       minus(X1,mark(X2)) -> mark(minus(X1,X2))
       quot(mark(X1),X2) -> mark(quot(X1,X2))
       quot(X1,mark(X2)) -> mark(quot(X1,X2))
       zWquot(mark(X1),X2) -> mark(zWquot(X1,X2))
       zWquot(X1,mark(X2)) -> mark(zWquot(X1,X2))
       proper(from(X)) -> from(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(minus(X1,X2)) -> minus(proper(X1),proper(X2))
       proper(quot(X1,X2)) -> quot(proper(X1),proper(X2))
       proper(zWquot(X1,X2)) -> zWquot(proper(X1),proper(X2))
       proper(nil()) -> ok(nil())
       from(ok(X)) -> ok(from(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
       minus(ok(X1),ok(X2)) -> ok(minus(X1,X2))
       quot(ok(X1),ok(X2)) -> ok(quot(X1,X2))
       zWquot(ok(X1),ok(X2)) -> ok(zWquot(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed