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)
   EDG 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#(mark(X)) -> proper#(X)
     top#(ok(X)) -> top#(active(X)) ->
     top#(mark(X)) -> top#(proper(X))
     top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> active#(X)
     top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> top#(active(X))
     top#(ok(X)) -> active#(X) -> active#(from(X)) -> s#(X)
     top#(ok(X)) -> active#(X) -> active#(from(X)) -> from#(s(X))
     top#(ok(X)) -> active#(X) -> active#(from(X)) -> cons#(X,from(s(X)))
     top#(ok(X)) -> active#(X) ->
     active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
     top#(ok(X)) -> active#(X) -> active#(minus(s(X),s(Y))) -> minus#(X,Y)
     top#(ok(X)) -> active#(X) -> active#(quot(s(X),s(Y))) -> minus#(X,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))) -> s#(quot(minus(X,Y),s(Y)))
     top#(ok(X)) -> active#(X) ->
     active#(zWquot(cons(X,XS),cons(Y,YS))) -> 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))) -> cons#(quot(X,Y),zWquot(XS,YS))
     top#(ok(X)) -> active#(X) -> active#(from(X)) -> active#(X)
     top#(ok(X)) -> active#(X) -> active#(from(X)) -> from#(active(X))
     top#(ok(X)) -> active#(X) -> active#(cons(X1,X2)) -> active#(X1)
     top#(ok(X)) -> active#(X) ->
     active#(cons(X1,X2)) -> cons#(active(X1),X2)
     top#(ok(X)) -> active#(X) -> active#(s(X)) -> active#(X)
     top#(ok(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
     top#(ok(X)) -> active#(X) -> active#(sel(X1,X2)) -> active#(X1)
     top#(ok(X)) -> active#(X) ->
     active#(sel(X1,X2)) -> sel#(active(X1),X2)
     top#(ok(X)) -> active#(X) -> active#(sel(X1,X2)) -> active#(X2)
     top#(ok(X)) -> active#(X) ->
     active#(sel(X1,X2)) -> sel#(X1,active(X2))
     top#(ok(X)) -> active#(X) -> active#(minus(X1,X2)) -> active#(X1)
     top#(ok(X)) -> active#(X) ->
     active#(minus(X1,X2)) -> minus#(active(X1),X2)
     top#(ok(X)) -> active#(X) -> active#(minus(X1,X2)) -> active#(X2)
     top#(ok(X)) -> active#(X) ->
     active#(minus(X1,X2)) -> minus#(X1,active(X2))
     top#(ok(X)) -> active#(X) -> active#(quot(X1,X2)) -> active#(X1)
     top#(ok(X)) -> active#(X) ->
     active#(quot(X1,X2)) -> quot#(active(X1),X2)
     top#(ok(X)) -> active#(X) -> active#(quot(X1,X2)) -> active#(X2)
     top#(ok(X)) -> active#(X) ->
     active#(quot(X1,X2)) -> quot#(X1,active(X2))
     top#(ok(X)) -> active#(X) -> active#(zWquot(X1,X2)) -> active#(X1)
     top#(ok(X)) -> active#(X) ->
     active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
     top#(ok(X)) -> active#(X) -> active#(zWquot(X1,X2)) -> active#(X2)
     top#(ok(X)) -> active#(X) ->
     active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
     top#(mark(X)) -> top#(proper(X)) ->
     top#(mark(X)) -> proper#(X)
     top#(mark(X)) -> top#(proper(X)) ->
     top#(mark(X)) -> top#(proper(X))
     top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> active#(X)
     top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> top#(active(X))
     top#(mark(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X)
     top#(mark(X)) -> proper#(X) -> proper#(from(X)) -> from#(proper(X))
     top#(mark(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X2)
     top#(mark(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X1)
     top#(mark(X)) -> proper#(X) ->
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
     top#(mark(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
     top#(mark(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
     top#(mark(X)) -> proper#(X) -> proper#(sel(X1,X2)) -> proper#(X2)
     top#(mark(X)) -> proper#(X) -> proper#(sel(X1,X2)) -> proper#(X1)
     top#(mark(X)) -> proper#(X) ->
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
     top#(mark(X)) -> proper#(X) -> proper#(minus(X1,X2)) -> proper#(X2)
     top#(mark(X)) -> proper#(X) -> proper#(minus(X1,X2)) -> proper#(X1)
     top#(mark(X)) -> proper#(X) ->
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
     top#(mark(X)) -> proper#(X) -> proper#(quot(X1,X2)) -> proper#(X2)
     top#(mark(X)) -> proper#(X) -> proper#(quot(X1,X2)) -> proper#(X1)
     top#(mark(X)) -> proper#(X) ->
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
     top#(mark(X)) -> proper#(X) ->
     proper#(zWquot(X1,X2)) -> proper#(X2)
     top#(mark(X)) -> proper#(X) ->
     proper#(zWquot(X1,X2)) -> proper#(X1)
     top#(mark(X)) -> proper#(X) ->
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(from(X)) -> proper#(X)
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(from(X)) -> from#(proper(X))
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(s(X)) -> proper#(X)
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(s(X)) -> s#(proper(X))
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> proper#(X2)
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> proper#(X1)
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> proper#(X2)
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> proper#(X1)
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> proper#(X2)
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> proper#(X1)
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> proper#(X2)
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> proper#(X1)
     proper#(zWquot(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(from(X)) -> proper#(X)
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(from(X)) -> from#(proper(X))
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(s(X)) -> proper#(X)
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(s(X)) -> s#(proper(X))
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> proper#(X2)
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> proper#(X1)
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> proper#(X2)
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> proper#(X1)
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> proper#(X2)
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> proper#(X1)
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> proper#(X2)
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> proper#(X1)
     proper#(zWquot(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2)) ->
     zWquot#(mark(X1),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#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(from(X)) -> proper#(X)
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(from(X)) -> from#(proper(X))
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(s(X)) -> proper#(X)
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(s(X)) -> s#(proper(X))
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> proper#(X2)
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> proper#(X1)
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> proper#(X2)
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> proper#(X1)
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> proper#(X2)
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> proper#(X1)
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> proper#(X2)
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> proper#(X1)
     proper#(quot(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(from(X)) -> proper#(X)
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(from(X)) -> from#(proper(X))
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(s(X)) -> proper#(X)
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(s(X)) -> s#(proper(X))
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> proper#(X2)
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> proper#(X1)
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> proper#(X2)
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> proper#(X1)
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> proper#(X2)
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> proper#(X1)
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> proper#(X2)
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> proper#(X1)
     proper#(quot(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2)) ->
     quot#(mark(X1),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#(ok(X1),ok(X2)) -> quot#(X1,X2)
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(from(X)) -> proper#(X)
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(from(X)) -> from#(proper(X))
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(s(X)) -> proper#(X)
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(s(X)) -> s#(proper(X))
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> proper#(X2)
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> proper#(X1)
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> proper#(X2)
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> proper#(X1)
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> proper#(X2)
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> proper#(X1)
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> proper#(X2)
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> proper#(X1)
     proper#(minus(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(from(X)) -> proper#(X)
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(from(X)) -> from#(proper(X))
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(s(X)) -> proper#(X)
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(s(X)) -> s#(proper(X))
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> proper#(X2)
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> proper#(X1)
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> proper#(X2)
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> proper#(X1)
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> proper#(X2)
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> proper#(X1)
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> proper#(X2)
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> proper#(X1)
     proper#(minus(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2)) ->
     minus#(mark(X1),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#(ok(X1),ok(X2)) -> minus#(X1,X2)
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(from(X)) -> proper#(X)
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(from(X)) -> from#(proper(X))
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(s(X)) -> proper#(X)
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(s(X)) -> s#(proper(X))
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> proper#(X2)
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> proper#(X1)
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> proper#(X2)
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> proper#(X1)
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> proper#(X2)
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> proper#(X1)
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> proper#(X2)
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> proper#(X1)
     proper#(sel(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(from(X)) -> proper#(X)
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(from(X)) -> from#(proper(X))
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(s(X)) -> proper#(X)
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(s(X)) -> s#(proper(X))
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> proper#(X2)
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> proper#(X1)
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> proper#(X2)
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> proper#(X1)
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> proper#(X2)
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> proper#(X1)
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> proper#(X2)
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> proper#(X1)
     proper#(sel(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2)) ->
     sel#(mark(X1),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#(ok(X1),ok(X2)) -> sel#(X1,X2)
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(from(X)) -> proper#(X)
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(from(X)) -> from#(proper(X))
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(s(X)) -> proper#(X)
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(s(X)) -> s#(proper(X))
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> proper#(X2)
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> proper#(X1)
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> proper#(X2)
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> proper#(X1)
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> proper#(X2)
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> proper#(X1)
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> proper#(X2)
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> proper#(X1)
     proper#(cons(X1,X2)) -> proper#(X2) ->
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(from(X)) -> proper#(X)
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(from(X)) -> from#(proper(X))
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(s(X)) -> proper#(X)
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(s(X)) -> s#(proper(X))
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> proper#(X2)
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> proper#(X1)
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> proper#(X2)
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> proper#(X1)
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> proper#(X2)
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> proper#(X1)
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> proper#(X2)
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> proper#(X1)
     proper#(cons(X1,X2)) -> proper#(X1) ->
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) ->
     cons#(mark(X1),X2) -> cons#(X1,X2)
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) ->
     cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
     proper#(s(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X)
     proper#(s(X)) -> proper#(X) -> proper#(from(X)) -> from#(proper(X))
     proper#(s(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X2)
     proper#(s(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X1)
     proper#(s(X)) -> proper#(X) ->
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
     proper#(s(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
     proper#(s(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
     proper#(s(X)) -> proper#(X) -> proper#(sel(X1,X2)) -> proper#(X2)
     proper#(s(X)) -> proper#(X) -> proper#(sel(X1,X2)) -> proper#(X1)
     proper#(s(X)) -> proper#(X) ->
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
     proper#(s(X)) -> proper#(X) -> proper#(minus(X1,X2)) -> proper#(X2)
     proper#(s(X)) -> proper#(X) -> proper#(minus(X1,X2)) -> proper#(X1)
     proper#(s(X)) -> proper#(X) ->
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
     proper#(s(X)) -> proper#(X) -> proper#(quot(X1,X2)) -> proper#(X2)
     proper#(s(X)) -> proper#(X) -> proper#(quot(X1,X2)) -> proper#(X1)
     proper#(s(X)) -> proper#(X) ->
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
     proper#(s(X)) -> proper#(X) ->
     proper#(zWquot(X1,X2)) -> proper#(X2)
     proper#(s(X)) -> proper#(X) ->
     proper#(zWquot(X1,X2)) -> proper#(X1)
     proper#(s(X)) -> proper#(X) ->
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
     proper#(s(X)) -> s#(proper(X)) -> s#(mark(X)) -> s#(X)
     proper#(s(X)) -> s#(proper(X)) -> s#(ok(X)) -> s#(X)
     proper#(from(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X)
     proper#(from(X)) -> proper#(X) ->
     proper#(from(X)) -> from#(proper(X))
     proper#(from(X)) -> proper#(X) ->
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(from(X)) -> proper#(X) ->
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(from(X)) -> proper#(X) ->
     proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
     proper#(from(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
     proper#(from(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
     proper#(from(X)) -> proper#(X) ->
     proper#(sel(X1,X2)) -> proper#(X2)
     proper#(from(X)) -> proper#(X) ->
     proper#(sel(X1,X2)) -> proper#(X1)
     proper#(from(X)) -> proper#(X) ->
     proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
     proper#(from(X)) -> proper#(X) ->
     proper#(minus(X1,X2)) -> proper#(X2)
     proper#(from(X)) -> proper#(X) ->
     proper#(minus(X1,X2)) -> proper#(X1)
     proper#(from(X)) -> proper#(X) ->
     proper#(minus(X1,X2)) -> minus#(proper(X1),proper(X2))
     proper#(from(X)) -> proper#(X) ->
     proper#(quot(X1,X2)) -> proper#(X2)
     proper#(from(X)) -> proper#(X) ->
     proper#(quot(X1,X2)) -> proper#(X1)
     proper#(from(X)) -> proper#(X) ->
     proper#(quot(X1,X2)) -> quot#(proper(X1),proper(X2))
     proper#(from(X)) -> proper#(X) ->
     proper#(zWquot(X1,X2)) -> proper#(X2)
     proper#(from(X)) -> proper#(X) ->
     proper#(zWquot(X1,X2)) -> proper#(X1)
     proper#(from(X)) -> proper#(X) ->
     proper#(zWquot(X1,X2)) -> zWquot#(proper(X1),proper(X2))
     proper#(from(X)) -> from#(proper(X)) ->
     from#(mark(X)) -> from#(X)
     proper#(from(X)) -> from#(proper(X)) ->
     from#(ok(X)) -> from#(X)
     zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2) ->
     zWquot#(mark(X1),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#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
     zWquot#(mark(X1),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#(mark(X1),X2) -> zWquot#(X1,X2) ->
     zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
     zWquot#(X1,mark(X2)) -> zWquot#(X1,X2) ->
     zWquot#(mark(X1),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#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
     quot#(ok(X1),ok(X2)) -> quot#(X1,X2) ->
     quot#(mark(X1),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#(ok(X1),ok(X2)) -> quot#(X1,X2)
     quot#(mark(X1),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#(mark(X1),X2) -> quot#(X1,X2) ->
     quot#(ok(X1),ok(X2)) -> quot#(X1,X2)
     quot#(X1,mark(X2)) -> quot#(X1,X2) ->
     quot#(mark(X1),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#(ok(X1),ok(X2)) -> quot#(X1,X2)
     minus#(ok(X1),ok(X2)) -> minus#(X1,X2) ->
     minus#(mark(X1),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#(ok(X1),ok(X2)) -> minus#(X1,X2)
     minus#(mark(X1),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#(mark(X1),X2) -> minus#(X1,X2) ->
     minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
     minus#(X1,mark(X2)) -> minus#(X1,X2) ->
     minus#(mark(X1),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#(ok(X1),ok(X2)) -> minus#(X1,X2)
     sel#(ok(X1),ok(X2)) -> sel#(X1,X2) ->
     sel#(mark(X1),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#(ok(X1),ok(X2)) -> sel#(X1,X2)
     sel#(mark(X1),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#(mark(X1),X2) -> sel#(X1,X2) ->
     sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
     sel#(X1,mark(X2)) -> sel#(X1,X2) ->
     sel#(mark(X1),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#(ok(X1),ok(X2)) -> sel#(X1,X2)
     cons#(ok(X1),ok(X2)) -> cons#(X1,X2) ->
     cons#(mark(X1),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#(mark(X1),X2) -> cons#(X1,X2) ->
     cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
     from#(ok(X)) -> from#(X) -> from#(mark(X)) -> from#(X)
     from#(ok(X)) -> from#(X) -> from#(ok(X)) -> from#(X)
     from#(mark(X)) -> from#(X) -> from#(mark(X)) -> from#(X)
     from#(mark(X)) -> from#(X) -> from#(ok(X)) -> from#(X)
     s#(ok(X)) -> s#(X) -> s#(mark(X)) -> s#(X)
     s#(ok(X)) -> s#(X) -> s#(ok(X)) -> s#(X)
     s#(mark(X)) -> s#(X) -> s#(mark(X)) -> s#(X)
     s#(mark(X)) -> s#(X) ->
     s#(ok(X)) -> s#(X)
     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))) -> zWquot#(XS,YS) ->
     zWquot#(X1,mark(X2)) -> zWquot#(X1,X2)
     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))) -> quot#(X,Y) ->
     quot#(ok(X1),ok(X2)) -> quot#(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(cons(X,XS),cons(Y,YS))) -> cons#(quot(X,Y),zWquot(XS,YS)) ->
     cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
     active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2) ->
     zWquot#(mark(X1),X2) -> zWquot#(X1,X2)
     active#(zWquot(X1,X2)) -> zWquot#(active(X1),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#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> s#(X)
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> from#(s(X))
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> cons#(X,from(s(X)))
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(minus(s(X),s(Y))) -> minus#(X,Y)
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(quot(s(X),s(Y))) -> minus#(X,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))) -> s#(quot(minus(X,Y),s(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#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
     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#(from(X)) -> active#(X)
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> from#(active(X))
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(cons(X1,X2)) -> active#(X1)
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(cons(X1,X2)) -> cons#(active(X1),X2)
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(s(X)) -> active#(X)
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(s(X)) -> s#(active(X))
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(sel(X1,X2)) -> active#(X1)
     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#(X2)
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(sel(X1,X2)) -> sel#(X1,active(X2))
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(minus(X1,X2)) -> active#(X1)
     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#(X2)
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(minus(X1,X2)) -> minus#(X1,active(X2))
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(quot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(quot(X1,X2)) -> quot#(X1,active(X2))
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(zWquot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(zWquot(X1,X2)) -> active#(X2) ->
     active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> s#(X)
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> from#(s(X))
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> cons#(X,from(s(X)))
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(minus(s(X),s(Y))) -> minus#(X,Y)
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(quot(s(X),s(Y))) -> minus#(X,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))) -> s#(quot(minus(X,Y),s(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#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
     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#(from(X)) -> active#(X)
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> from#(active(X))
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(cons(X1,X2)) -> active#(X1)
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(cons(X1,X2)) -> cons#(active(X1),X2)
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(s(X)) -> active#(X)
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(s(X)) -> s#(active(X))
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(sel(X1,X2)) -> active#(X1)
     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#(X2)
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(sel(X1,X2)) -> sel#(X1,active(X2))
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(minus(X1,X2)) -> active#(X1)
     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#(X2)
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(minus(X1,X2)) -> minus#(X1,active(X2))
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(quot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(quot(X1,X2)) -> quot#(X1,active(X2))
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(zWquot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(zWquot(X1,X2)) -> active#(X1) ->
     active#(zWquot(X1,X2)) -> zWquot#(X1,active(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))) -> 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#(ok(X1),ok(X2)) -> quot#(X1,X2)
     active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y))) ->
     s#(mark(X)) -> s#(X)
     active#(quot(s(X),s(Y))) -> s#(quot(minus(X,Y),s(Y))) ->
     s#(ok(X)) -> s#(X)
     active#(quot(X1,X2)) -> quot#(active(X1),X2) ->
     quot#(mark(X1),X2) -> quot#(X1,X2)
     active#(quot(X1,X2)) -> quot#(active(X1),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#(ok(X1),ok(X2)) -> quot#(X1,X2)
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> s#(X)
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> from#(s(X))
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> cons#(X,from(s(X)))
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(minus(s(X),s(Y))) -> minus#(X,Y)
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(quot(s(X),s(Y))) -> minus#(X,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))) -> s#(quot(minus(X,Y),s(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#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
     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#(from(X)) -> active#(X)
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> from#(active(X))
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(cons(X1,X2)) -> active#(X1)
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(cons(X1,X2)) -> cons#(active(X1),X2)
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(s(X)) -> active#(X)
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(s(X)) -> s#(active(X))
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(sel(X1,X2)) -> active#(X1)
     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#(X2)
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(sel(X1,X2)) -> sel#(X1,active(X2))
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(minus(X1,X2)) -> active#(X1)
     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#(X2)
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(minus(X1,X2)) -> minus#(X1,active(X2))
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(quot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(quot(X1,X2)) -> quot#(X1,active(X2))
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(zWquot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(quot(X1,X2)) -> active#(X2) ->
     active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> s#(X)
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> from#(s(X))
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> cons#(X,from(s(X)))
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(minus(s(X),s(Y))) -> minus#(X,Y)
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(quot(s(X),s(Y))) -> minus#(X,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))) -> s#(quot(minus(X,Y),s(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#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
     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#(from(X)) -> active#(X)
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> from#(active(X))
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(cons(X1,X2)) -> active#(X1)
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(cons(X1,X2)) -> cons#(active(X1),X2)
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(s(X)) -> active#(X)
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(s(X)) -> s#(active(X))
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(sel(X1,X2)) -> active#(X1)
     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#(X2)
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(sel(X1,X2)) -> sel#(X1,active(X2))
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(minus(X1,X2)) -> active#(X1)
     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#(X2)
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(minus(X1,X2)) -> minus#(X1,active(X2))
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(quot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(quot(X1,X2)) -> quot#(X1,active(X2))
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(zWquot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(quot(X1,X2)) -> active#(X1) ->
     active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
     active#(minus(X1,X2)) -> minus#(active(X1),X2) ->
     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#(X1,active(X2)) ->
     minus#(X1,mark(X2)) -> minus#(X1,X2)
     active#(minus(X1,X2)) -> minus#(X1,active(X2)) ->
     minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> s#(X)
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> from#(s(X))
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> cons#(X,from(s(X)))
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(minus(s(X),s(Y))) -> minus#(X,Y)
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(quot(s(X),s(Y))) -> minus#(X,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))) -> s#(quot(minus(X,Y),s(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#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
     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#(from(X)) -> active#(X)
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> from#(active(X))
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(cons(X1,X2)) -> active#(X1)
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(cons(X1,X2)) -> cons#(active(X1),X2)
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(s(X)) -> active#(X)
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(s(X)) -> s#(active(X))
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(sel(X1,X2)) -> active#(X1)
     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#(X2)
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(sel(X1,X2)) -> sel#(X1,active(X2))
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(minus(X1,X2)) -> active#(X1)
     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#(X2)
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(minus(X1,X2)) -> minus#(X1,active(X2))
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(quot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(quot(X1,X2)) -> quot#(X1,active(X2))
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(zWquot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(minus(X1,X2)) -> active#(X2) ->
     active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> s#(X)
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> from#(s(X))
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> cons#(X,from(s(X)))
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(minus(s(X),s(Y))) -> minus#(X,Y)
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(quot(s(X),s(Y))) -> minus#(X,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))) -> s#(quot(minus(X,Y),s(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#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
     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#(from(X)) -> active#(X)
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> from#(active(X))
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(cons(X1,X2)) -> active#(X1)
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(cons(X1,X2)) -> cons#(active(X1),X2)
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(s(X)) -> active#(X)
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(s(X)) -> s#(active(X))
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(sel(X1,X2)) -> active#(X1)
     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#(X2)
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(sel(X1,X2)) -> sel#(X1,active(X2))
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(minus(X1,X2)) -> active#(X1)
     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#(X2)
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(minus(X1,X2)) -> minus#(X1,active(X2))
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(quot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(quot(X1,X2)) -> quot#(X1,active(X2))
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(zWquot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(minus(X1,X2)) -> active#(X1) ->
     active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
     active#(sel(s(N),cons(X,XS))) -> sel#(N,XS) ->
     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#(active(X1),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#(ok(X1),ok(X2)) -> sel#(X1,X2)
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> s#(X)
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> from#(s(X))
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> cons#(X,from(s(X)))
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(minus(s(X),s(Y))) -> minus#(X,Y)
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(quot(s(X),s(Y))) -> minus#(X,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))) -> s#(quot(minus(X,Y),s(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#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
     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#(from(X)) -> active#(X)
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(from(X)) -> from#(active(X))
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(cons(X1,X2)) -> active#(X1)
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(cons(X1,X2)) -> cons#(active(X1),X2)
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(s(X)) -> active#(X)
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(s(X)) -> s#(active(X))
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(sel(X1,X2)) -> active#(X1)
     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#(X2)
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(sel(X1,X2)) -> sel#(X1,active(X2))
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(minus(X1,X2)) -> active#(X1)
     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#(X2)
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(minus(X1,X2)) -> minus#(X1,active(X2))
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(quot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(quot(X1,X2)) -> quot#(X1,active(X2))
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(zWquot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(sel(X1,X2)) -> active#(X2) ->
     active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> s#(X)
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> from#(s(X))
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> cons#(X,from(s(X)))
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(minus(s(X),s(Y))) -> minus#(X,Y)
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(quot(s(X),s(Y))) -> minus#(X,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))) -> s#(quot(minus(X,Y),s(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#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
     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#(from(X)) -> active#(X)
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> from#(active(X))
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(cons(X1,X2)) -> active#(X1)
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(cons(X1,X2)) -> cons#(active(X1),X2)
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(s(X)) -> active#(X)
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(s(X)) -> s#(active(X))
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(sel(X1,X2)) -> active#(X1)
     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#(X2)
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(sel(X1,X2)) -> sel#(X1,active(X2))
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(minus(X1,X2)) -> active#(X1)
     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#(X2)
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(minus(X1,X2)) -> minus#(X1,active(X2))
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(quot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(quot(X1,X2)) -> quot#(X1,active(X2))
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(zWquot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(sel(X1,X2)) -> active#(X1) ->
     active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
     active#(cons(X1,X2)) -> cons#(active(X1),X2) ->
     cons#(mark(X1),X2) -> cons#(X1,X2)
     active#(cons(X1,X2)) -> cons#(active(X1),X2) ->
     cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> s#(X)
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> from#(s(X))
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> cons#(X,from(s(X)))
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(minus(s(X),s(Y))) -> minus#(X,Y)
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(quot(s(X),s(Y))) -> minus#(X,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))) -> s#(quot(minus(X,Y),s(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#(zWquot(cons(X,XS),cons(Y,YS))) -> quot#(X,Y)
     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#(from(X)) -> active#(X)
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(from(X)) -> from#(active(X))
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(cons(X1,X2)) -> active#(X1)
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(cons(X1,X2)) -> cons#(active(X1),X2)
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(s(X)) -> active#(X)
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(s(X)) -> s#(active(X))
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(sel(X1,X2)) -> active#(X1)
     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#(X2)
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(sel(X1,X2)) -> sel#(X1,active(X2))
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(minus(X1,X2)) -> active#(X1)
     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#(X2)
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(minus(X1,X2)) -> minus#(X1,active(X2))
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(quot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(quot(X1,X2)) -> quot#(X1,active(X2))
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(zWquot(X1,X2)) -> active#(X1)
     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#(X2)
     active#(cons(X1,X2)) -> active#(X1) ->
     active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
     active#(s(X)) -> s#(active(X)) -> s#(mark(X)) -> s#(X)
     active#(s(X)) -> s#(active(X)) -> s#(ok(X)) -> s#(X)
     active#(s(X)) -> active#(X) -> active#(from(X)) -> s#(X)
     active#(s(X)) -> active#(X) -> active#(from(X)) -> from#(s(X))
     active#(s(X)) -> active#(X) ->
     active#(from(X)) -> cons#(X,from(s(X)))
     active#(s(X)) -> active#(X) ->
     active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
     active#(s(X)) -> active#(X) ->
     active#(minus(s(X),s(Y))) -> minus#(X,Y)
     active#(s(X)) -> active#(X) ->
     active#(quot(s(X),s(Y))) -> minus#(X,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))) -> s#(quot(minus(X,Y),s(Y)))
     active#(s(X)) -> active#(X) ->
     active#(zWquot(cons(X,XS),cons(Y,YS))) -> 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))) -> cons#(quot(X,Y),zWquot(XS,YS))
     active#(s(X)) -> active#(X) -> active#(from(X)) -> active#(X)
     active#(s(X)) -> active#(X) -> active#(from(X)) -> from#(active(X))
     active#(s(X)) -> active#(X) -> active#(cons(X1,X2)) -> active#(X1)
     active#(s(X)) -> active#(X) ->
     active#(cons(X1,X2)) -> cons#(active(X1),X2)
     active#(s(X)) -> active#(X) -> active#(s(X)) -> active#(X)
     active#(s(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
     active#(s(X)) -> active#(X) -> active#(sel(X1,X2)) -> active#(X1)
     active#(s(X)) -> active#(X) ->
     active#(sel(X1,X2)) -> sel#(active(X1),X2)
     active#(s(X)) -> active#(X) -> active#(sel(X1,X2)) -> active#(X2)
     active#(s(X)) -> active#(X) ->
     active#(sel(X1,X2)) -> sel#(X1,active(X2))
     active#(s(X)) -> active#(X) -> active#(minus(X1,X2)) -> active#(X1)
     active#(s(X)) -> active#(X) ->
     active#(minus(X1,X2)) -> minus#(active(X1),X2)
     active#(s(X)) -> active#(X) -> active#(minus(X1,X2)) -> active#(X2)
     active#(s(X)) -> active#(X) ->
     active#(minus(X1,X2)) -> minus#(X1,active(X2))
     active#(s(X)) -> active#(X) -> active#(quot(X1,X2)) -> active#(X1)
     active#(s(X)) -> active#(X) ->
     active#(quot(X1,X2)) -> quot#(active(X1),X2)
     active#(s(X)) -> active#(X) -> active#(quot(X1,X2)) -> active#(X2)
     active#(s(X)) -> active#(X) ->
     active#(quot(X1,X2)) -> quot#(X1,active(X2))
     active#(s(X)) -> active#(X) ->
     active#(zWquot(X1,X2)) -> active#(X1)
     active#(s(X)) -> active#(X) ->
     active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
     active#(s(X)) -> active#(X) ->
     active#(zWquot(X1,X2)) -> active#(X2)
     active#(s(X)) -> active#(X) ->
     active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
     active#(from(X)) -> from#(active(X)) ->
     from#(mark(X)) -> from#(X)
     active#(from(X)) -> from#(active(X)) -> from#(ok(X)) -> from#(X)
     active#(from(X)) -> active#(X) -> active#(from(X)) -> s#(X)
     active#(from(X)) -> active#(X) ->
     active#(from(X)) -> from#(s(X))
     active#(from(X)) -> active#(X) ->
     active#(from(X)) -> cons#(X,from(s(X)))
     active#(from(X)) -> active#(X) ->
     active#(sel(s(N),cons(X,XS))) -> sel#(N,XS)
     active#(from(X)) -> active#(X) ->
     active#(minus(s(X),s(Y))) -> minus#(X,Y)
     active#(from(X)) -> active#(X) ->
     active#(quot(s(X),s(Y))) -> minus#(X,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))) -> s#(quot(minus(X,Y),s(Y)))
     active#(from(X)) -> active#(X) ->
     active#(zWquot(cons(X,XS),cons(Y,YS))) -> 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))) -> cons#(quot(X,Y),zWquot(XS,YS))
     active#(from(X)) -> active#(X) -> active#(from(X)) -> active#(X)
     active#(from(X)) -> active#(X) ->
     active#(from(X)) -> from#(active(X))
     active#(from(X)) -> active#(X) ->
     active#(cons(X1,X2)) -> active#(X1)
     active#(from(X)) -> active#(X) ->
     active#(cons(X1,X2)) -> cons#(active(X1),X2)
     active#(from(X)) -> active#(X) -> active#(s(X)) -> active#(X)
     active#(from(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
     active#(from(X)) -> active#(X) ->
     active#(sel(X1,X2)) -> active#(X1)
     active#(from(X)) -> active#(X) ->
     active#(sel(X1,X2)) -> sel#(active(X1),X2)
     active#(from(X)) -> active#(X) ->
     active#(sel(X1,X2)) -> active#(X2)
     active#(from(X)) -> active#(X) ->
     active#(sel(X1,X2)) -> sel#(X1,active(X2))
     active#(from(X)) -> active#(X) ->
     active#(minus(X1,X2)) -> active#(X1)
     active#(from(X)) -> active#(X) ->
     active#(minus(X1,X2)) -> minus#(active(X1),X2)
     active#(from(X)) -> active#(X) ->
     active#(minus(X1,X2)) -> active#(X2)
     active#(from(X)) -> active#(X) ->
     active#(minus(X1,X2)) -> minus#(X1,active(X2))
     active#(from(X)) -> active#(X) ->
     active#(quot(X1,X2)) -> active#(X1)
     active#(from(X)) -> active#(X) ->
     active#(quot(X1,X2)) -> quot#(active(X1),X2)
     active#(from(X)) -> active#(X) ->
     active#(quot(X1,X2)) -> active#(X2)
     active#(from(X)) -> active#(X) ->
     active#(quot(X1,X2)) -> quot#(X1,active(X2))
     active#(from(X)) -> active#(X) ->
     active#(zWquot(X1,X2)) -> active#(X1)
     active#(from(X)) -> active#(X) ->
     active#(zWquot(X1,X2)) -> zWquot#(active(X1),X2)
     active#(from(X)) -> active#(X) ->
     active#(zWquot(X1,X2)) -> active#(X2)
     active#(from(X)) -> active#(X) -> active#(zWquot(X1,X2)) -> zWquot#(X1,active(X2))
    SCC Processor:
     #sccs: 10
     #rules: 43
     #arcs: 751/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:
      proper#(zWquot(X1,X2)) -> proper#(X1)
      proper#(zWquot(X1,X2)) -> proper#(X2)
      proper#(quot(X1,X2)) -> proper#(X1)
      proper#(quot(X1,X2)) -> proper#(X2)
      proper#(minus(X1,X2)) -> proper#(X1)
      proper#(minus(X1,X2)) -> proper#(X2)
      proper#(sel(X1,X2)) -> proper#(X1)
      proper#(sel(X1,X2)) -> proper#(X2)
      proper#(s(X)) -> proper#(X)
      proper#(cons(X1,X2)) -> proper#(X1)
      proper#(cons(X1,X2)) -> proper#(X2)
      proper#(from(X)) -> 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))
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [proper#](x0) = x0 + 1,
       
       [top](x0) = 0,
       
       [ok](x0) = x0,
       
       [proper](x0) = x0,
       
       [zWquot](x0, x1) = x0 + x1 + 1,
       
       [nil] = 0,
       
       [quot](x0, x1) = x0 + x1 + 1,
       
       [minus](x0, x1) = x0 + x1 + 1,
       
       [sel](x0, x1) = x0 + x1,
       
       [0] = 0,
       
       [mark](x0) = 0,
       
       [cons](x0, x1) = x0 + x1,
       
       [s](x0) = x0,
       
       [active](x0) = x0,
       
       [from](x0) = x0 + 1
      orientation:
       proper#(zWquot(X1,X2)) = X1 + X2 + 2 >= X1 + 1 = proper#(X1)
       
       proper#(zWquot(X1,X2)) = X1 + X2 + 2 >= X2 + 1 = proper#(X2)
       
       proper#(quot(X1,X2)) = X1 + X2 + 2 >= X1 + 1 = proper#(X1)
       
       proper#(quot(X1,X2)) = X1 + X2 + 2 >= X2 + 1 = proper#(X2)
       
       proper#(minus(X1,X2)) = X1 + X2 + 2 >= X1 + 1 = proper#(X1)
       
       proper#(minus(X1,X2)) = X1 + X2 + 2 >= X2 + 1 = proper#(X2)
       
       proper#(sel(X1,X2)) = X1 + X2 + 1 >= X1 + 1 = proper#(X1)
       
       proper#(sel(X1,X2)) = X1 + X2 + 1 >= X2 + 1 = proper#(X2)
       
       proper#(s(X)) = X + 1 >= X + 1 = proper#(X)
       
       proper#(cons(X1,X2)) = X1 + X2 + 1 >= X1 + 1 = proper#(X1)
       
       proper#(cons(X1,X2)) = X1 + X2 + 1 >= X2 + 1 = proper#(X2)
       
       proper#(from(X)) = X + 2 >= X + 1 = proper#(X)
       
       active(from(X)) = X + 1 >= 0 = mark(cons(X,from(s(X))))
       
       active(sel(0(),cons(X,XS))) = X + XS >= 0 = mark(X)
       
       active(sel(s(N),cons(X,XS))) = N + X + XS >= 0 = mark(sel(N,XS))
       
       active(minus(X,0())) = X + 1 >= 0 = mark(0())
       
       active(minus(s(X),s(Y))) = X + Y + 1 >= 0 = mark(minus(X,Y))
       
       active(quot(0(),s(Y))) = Y + 1 >= 0 = mark(0())
       
       active(quot(s(X),s(Y))) = X + Y + 1 >= 0 = mark(s(quot(minus(X,Y),s(Y))))
       
       active(zWquot(XS,nil())) = XS + 1 >= 0 = mark(nil())
       
       active(zWquot(nil(),XS)) = XS + 1 >= 0 = mark(nil())
       
       active(zWquot(cons(X,XS),cons(Y,YS))) = X + XS + Y + YS + 1 >= 0 = mark(cons(quot(X,Y),zWquot(XS,YS)))
       
       active(from(X)) = X + 1 >= X + 1 = from(active(X))
       
       active(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(active(X1),X2)
       
       active(s(X)) = X >= X = s(active(X))
       
       active(sel(X1,X2)) = X1 + X2 >= X1 + X2 = sel(active(X1),X2)
       
       active(sel(X1,X2)) = X1 + X2 >= X1 + X2 = sel(X1,active(X2))
       
       active(minus(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = minus(active(X1),X2)
       
       active(minus(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = minus(X1,active(X2))
       
       active(quot(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = quot(active(X1),X2)
       
       active(quot(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = quot(X1,active(X2))
       
       active(zWquot(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = zWquot(active(X1),X2)
       
       active(zWquot(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = zWquot(X1,active(X2))
       
       from(mark(X)) = 1 >= 0 = mark(from(X))
       
       cons(mark(X1),X2) = X2 >= 0 = mark(cons(X1,X2))
       
       s(mark(X)) = 0 >= 0 = mark(s(X))
       
       sel(mark(X1),X2) = X2 >= 0 = mark(sel(X1,X2))
       
       sel(X1,mark(X2)) = X1 >= 0 = mark(sel(X1,X2))
       
       minus(mark(X1),X2) = X2 + 1 >= 0 = mark(minus(X1,X2))
       
       minus(X1,mark(X2)) = X1 + 1 >= 0 = mark(minus(X1,X2))
       
       quot(mark(X1),X2) = X2 + 1 >= 0 = mark(quot(X1,X2))
       
       quot(X1,mark(X2)) = X1 + 1 >= 0 = mark(quot(X1,X2))
       
       zWquot(mark(X1),X2) = X2 + 1 >= 0 = mark(zWquot(X1,X2))
       
       zWquot(X1,mark(X2)) = X1 + 1 >= 0 = mark(zWquot(X1,X2))
       
       proper(from(X)) = X + 1 >= X + 1 = from(proper(X))
       
       proper(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(proper(X1),proper(X2))
       
       proper(s(X)) = X >= X = s(proper(X))
       
       proper(sel(X1,X2)) = X1 + X2 >= X1 + X2 = sel(proper(X1),proper(X2))
       
       proper(0()) = 0 >= 0 = ok(0())
       
       proper(minus(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = minus(proper(X1),proper(X2))
       
       proper(quot(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = quot(proper(X1),proper(X2))
       
       proper(zWquot(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = zWquot(proper(X1),proper(X2))
       
       proper(nil()) = 0 >= 0 = ok(nil())
       
       from(ok(X)) = X + 1 >= X + 1 = ok(from(X))
       
       cons(ok(X1),ok(X2)) = X1 + X2 >= X1 + X2 = ok(cons(X1,X2))
       
       s(ok(X)) = X >= X = ok(s(X))
       
       sel(ok(X1),ok(X2)) = X1 + X2 >= X1 + X2 = ok(sel(X1,X2))
       
       minus(ok(X1),ok(X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = ok(minus(X1,X2))
       
       quot(ok(X1),ok(X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = ok(quot(X1,X2))
       
       zWquot(ok(X1),ok(X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = ok(zWquot(X1,X2))
       
       top(mark(X)) = 0 >= 0 = top(proper(X))
       
       top(ok(X)) = 0 >= 0 = top(active(X))
      problem:
       DPs:
        proper#(sel(X1,X2)) -> proper#(X1)
        proper#(sel(X1,X2)) -> proper#(X2)
        proper#(s(X)) -> proper#(X)
        proper#(cons(X1,X2)) -> proper#(X1)
        proper#(cons(X1,X2)) -> proper#(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))
      Matrix Interpretation Processor:
       dimension: 1
       interpretation:
        [proper#](x0) = x0 + 1,
        
        [top](x0) = 0,
        
        [ok](x0) = 1,
        
        [proper](x0) = x0,
        
        [zWquot](x0, x1) = x0,
        
        [nil] = 1,
        
        [quot](x0, x1) = x0 + 1,
        
        [minus](x0, x1) = x0 + x1,
        
        [sel](x0, x1) = x0 + x1 + 1,
        
        [0] = 1,
        
        [mark](x0) = 0,
        
        [cons](x0, x1) = x0 + x1,
        
        [s](x0) = x0,
        
        [active](x0) = x0,
        
        [from](x0) = x0
       orientation:
        proper#(sel(X1,X2)) = X1 + X2 + 2 >= X1 + 1 = proper#(X1)
        
        proper#(sel(X1,X2)) = X1 + X2 + 2 >= X2 + 1 = proper#(X2)
        
        proper#(s(X)) = X + 1 >= X + 1 = proper#(X)
        
        proper#(cons(X1,X2)) = X1 + X2 + 1 >= X1 + 1 = proper#(X1)
        
        proper#(cons(X1,X2)) = X1 + X2 + 1 >= X2 + 1 = proper#(X2)
        
        active(from(X)) = X >= 0 = mark(cons(X,from(s(X))))
        
        active(sel(0(),cons(X,XS))) = X + XS + 2 >= 0 = mark(X)
        
        active(sel(s(N),cons(X,XS))) = N + X + XS + 1 >= 0 = mark(sel(N,XS))
        
        active(minus(X,0())) = X + 1 >= 0 = mark(0())
        
        active(minus(s(X),s(Y))) = X + Y >= 0 = mark(minus(X,Y))
        
        active(quot(0(),s(Y))) = 2 >= 0 = mark(0())
        
        active(quot(s(X),s(Y))) = X + 1 >= 0 = mark(s(quot(minus(X,Y),s(Y))))
        
        active(zWquot(XS,nil())) = XS >= 0 = mark(nil())
        
        active(zWquot(nil(),XS)) = 1 >= 0 = mark(nil())
        
        active(zWquot(cons(X,XS),cons(Y,YS))) = X + XS >= 0 = mark(cons(quot(X,Y),zWquot(XS,YS)))
        
        active(from(X)) = X >= X = from(active(X))
        
        active(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(active(X1),X2)
        
        active(s(X)) = X >= X = s(active(X))
        
        active(sel(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = sel(active(X1),X2)
        
        active(sel(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = sel(X1,active(X2))
        
        active(minus(X1,X2)) = X1 + X2 >= X1 + X2 = minus(active(X1),X2)
        
        active(minus(X1,X2)) = X1 + X2 >= X1 + X2 = minus(X1,active(X2))
        
        active(quot(X1,X2)) = X1 + 1 >= X1 + 1 = quot(active(X1),X2)
        
        active(quot(X1,X2)) = X1 + 1 >= X1 + 1 = quot(X1,active(X2))
        
        active(zWquot(X1,X2)) = X1 >= X1 = zWquot(active(X1),X2)
        
        active(zWquot(X1,X2)) = X1 >= X1 = zWquot(X1,active(X2))
        
        from(mark(X)) = 0 >= 0 = mark(from(X))
        
        cons(mark(X1),X2) = X2 >= 0 = mark(cons(X1,X2))
        
        s(mark(X)) = 0 >= 0 = mark(s(X))
        
        sel(mark(X1),X2) = X2 + 1 >= 0 = mark(sel(X1,X2))
        
        sel(X1,mark(X2)) = X1 + 1 >= 0 = mark(sel(X1,X2))
        
        minus(mark(X1),X2) = X2 >= 0 = mark(minus(X1,X2))
        
        minus(X1,mark(X2)) = X1 >= 0 = mark(minus(X1,X2))
        
        quot(mark(X1),X2) = 1 >= 0 = mark(quot(X1,X2))
        
        quot(X1,mark(X2)) = X1 + 1 >= 0 = mark(quot(X1,X2))
        
        zWquot(mark(X1),X2) = 0 >= 0 = mark(zWquot(X1,X2))
        
        zWquot(X1,mark(X2)) = X1 >= 0 = mark(zWquot(X1,X2))
        
        proper(from(X)) = X >= X = from(proper(X))
        
        proper(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(proper(X1),proper(X2))
        
        proper(s(X)) = X >= X = s(proper(X))
        
        proper(sel(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = sel(proper(X1),proper(X2))
        
        proper(0()) = 1 >= 1 = ok(0())
        
        proper(minus(X1,X2)) = X1 + X2 >= X1 + X2 = minus(proper(X1),proper(X2))
        
        proper(quot(X1,X2)) = X1 + 1 >= X1 + 1 = quot(proper(X1),proper(X2))
        
        proper(zWquot(X1,X2)) = X1 >= X1 = zWquot(proper(X1),proper(X2))
        
        proper(nil()) = 1 >= 1 = ok(nil())
        
        from(ok(X)) = 1 >= 1 = ok(from(X))
        
        cons(ok(X1),ok(X2)) = 2 >= 1 = ok(cons(X1,X2))
        
        s(ok(X)) = 1 >= 1 = ok(s(X))
        
        sel(ok(X1),ok(X2)) = 3 >= 1 = ok(sel(X1,X2))
        
        minus(ok(X1),ok(X2)) = 2 >= 1 = ok(minus(X1,X2))
        
        quot(ok(X1),ok(X2)) = 2 >= 1 = ok(quot(X1,X2))
        
        zWquot(ok(X1),ok(X2)) = 1 >= 1 = ok(zWquot(X1,X2))
        
        top(mark(X)) = 0 >= 0 = top(proper(X))
        
        top(ok(X)) = 0 >= 0 = top(active(X))
       problem:
        DPs:
         proper#(s(X)) -> proper#(X)
         proper#(cons(X1,X2)) -> proper#(X1)
         proper#(cons(X1,X2)) -> proper#(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))
       Matrix Interpretation Processor:
        dimension: 1
        interpretation:
         [proper#](x0) = x0,
         
         [top](x0) = 0,
         
         [ok](x0) = x0,
         
         [proper](x0) = x0,
         
         [zWquot](x0, x1) = 0,
         
         [nil] = 0,
         
         [quot](x0, x1) = 1,
         
         [minus](x0, x1) = 1,
         
         [sel](x0, x1) = 0,
         
         [0] = 0,
         
         [mark](x0) = 0,
         
         [cons](x0, x1) = x0 + x1 + 1,
         
         [s](x0) = x0,
         
         [active](x0) = x0,
         
         [from](x0) = 0
        orientation:
         proper#(s(X)) = X >= X = proper#(X)
         
         proper#(cons(X1,X2)) = X1 + X2 + 1 >= X1 = proper#(X1)
         
         proper#(cons(X1,X2)) = X1 + X2 + 1 >= X2 = proper#(X2)
         
         active(from(X)) = 0 >= 0 = mark(cons(X,from(s(X))))
         
         active(sel(0(),cons(X,XS))) = 0 >= 0 = mark(X)
         
         active(sel(s(N),cons(X,XS))) = 0 >= 0 = mark(sel(N,XS))
         
         active(minus(X,0())) = 1 >= 0 = mark(0())
         
         active(minus(s(X),s(Y))) = 1 >= 0 = mark(minus(X,Y))
         
         active(quot(0(),s(Y))) = 1 >= 0 = mark(0())
         
         active(quot(s(X),s(Y))) = 1 >= 0 = mark(s(quot(minus(X,Y),s(Y))))
         
         active(zWquot(XS,nil())) = 0 >= 0 = mark(nil())
         
         active(zWquot(nil(),XS)) = 0 >= 0 = mark(nil())
         
         active(zWquot(cons(X,XS),cons(Y,YS))) = 0 >= 0 = mark(cons(quot(X,Y),zWquot(XS,YS)))
         
         active(from(X)) = 0 >= 0 = from(active(X))
         
         active(cons(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(active(X1),X2)
         
         active(s(X)) = X >= X = s(active(X))
         
         active(sel(X1,X2)) = 0 >= 0 = sel(active(X1),X2)
         
         active(sel(X1,X2)) = 0 >= 0 = sel(X1,active(X2))
         
         active(minus(X1,X2)) = 1 >= 1 = minus(active(X1),X2)
         
         active(minus(X1,X2)) = 1 >= 1 = minus(X1,active(X2))
         
         active(quot(X1,X2)) = 1 >= 1 = quot(active(X1),X2)
         
         active(quot(X1,X2)) = 1 >= 1 = quot(X1,active(X2))
         
         active(zWquot(X1,X2)) = 0 >= 0 = zWquot(active(X1),X2)
         
         active(zWquot(X1,X2)) = 0 >= 0 = zWquot(X1,active(X2))
         
         from(mark(X)) = 0 >= 0 = mark(from(X))
         
         cons(mark(X1),X2) = X2 + 1 >= 0 = mark(cons(X1,X2))
         
         s(mark(X)) = 0 >= 0 = mark(s(X))
         
         sel(mark(X1),X2) = 0 >= 0 = mark(sel(X1,X2))
         
         sel(X1,mark(X2)) = 0 >= 0 = mark(sel(X1,X2))
         
         minus(mark(X1),X2) = 1 >= 0 = mark(minus(X1,X2))
         
         minus(X1,mark(X2)) = 1 >= 0 = mark(minus(X1,X2))
         
         quot(mark(X1),X2) = 1 >= 0 = mark(quot(X1,X2))
         
         quot(X1,mark(X2)) = 1 >= 0 = mark(quot(X1,X2))
         
         zWquot(mark(X1),X2) = 0 >= 0 = mark(zWquot(X1,X2))
         
         zWquot(X1,mark(X2)) = 0 >= 0 = mark(zWquot(X1,X2))
         
         proper(from(X)) = 0 >= 0 = from(proper(X))
         
         proper(cons(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(proper(X1),proper(X2))
         
         proper(s(X)) = X >= X = s(proper(X))
         
         proper(sel(X1,X2)) = 0 >= 0 = sel(proper(X1),proper(X2))
         
         proper(0()) = 0 >= 0 = ok(0())
         
         proper(minus(X1,X2)) = 1 >= 1 = minus(proper(X1),proper(X2))
         
         proper(quot(X1,X2)) = 1 >= 1 = quot(proper(X1),proper(X2))
         
         proper(zWquot(X1,X2)) = 0 >= 0 = zWquot(proper(X1),proper(X2))
         
         proper(nil()) = 0 >= 0 = ok(nil())
         
         from(ok(X)) = 0 >= 0 = ok(from(X))
         
         cons(ok(X1),ok(X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = ok(cons(X1,X2))
         
         s(ok(X)) = X >= X = ok(s(X))
         
         sel(ok(X1),ok(X2)) = 0 >= 0 = ok(sel(X1,X2))
         
         minus(ok(X1),ok(X2)) = 1 >= 1 = ok(minus(X1,X2))
         
         quot(ok(X1),ok(X2)) = 1 >= 1 = ok(quot(X1,X2))
         
         zWquot(ok(X1),ok(X2)) = 0 >= 0 = ok(zWquot(X1,X2))
         
         top(mark(X)) = 0 >= 0 = top(proper(X))
         
         top(ok(X)) = 0 >= 0 = top(active(X))
        problem:
         DPs:
          proper#(s(X)) -> 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))
        Matrix Interpretation Processor:
         dimension: 1
         interpretation:
          [proper#](x0) = x0 + 1,
          
          [top](x0) = 0,
          
          [ok](x0) = x0,
          
          [proper](x0) = x0,
          
          [zWquot](x0, x1) = 0,
          
          [nil] = 0,
          
          [quot](x0, x1) = 0,
          
          [minus](x0, x1) = 0,
          
          [sel](x0, x1) = 0,
          
          [0] = 0,
          
          [mark](x0) = 0,
          
          [cons](x0, x1) = 0,
          
          [s](x0) = x0 + 1,
          
          [active](x0) = x0,
          
          [from](x0) = 0
         orientation:
          proper#(s(X)) = X + 2 >= X + 1 = proper#(X)
          
          active(from(X)) = 0 >= 0 = mark(cons(X,from(s(X))))
          
          active(sel(0(),cons(X,XS))) = 0 >= 0 = mark(X)
          
          active(sel(s(N),cons(X,XS))) = 0 >= 0 = mark(sel(N,XS))
          
          active(minus(X,0())) = 0 >= 0 = mark(0())
          
          active(minus(s(X),s(Y))) = 0 >= 0 = mark(minus(X,Y))
          
          active(quot(0(),s(Y))) = 0 >= 0 = mark(0())
          
          active(quot(s(X),s(Y))) = 0 >= 0 = mark(s(quot(minus(X,Y),s(Y))))
          
          active(zWquot(XS,nil())) = 0 >= 0 = mark(nil())
          
          active(zWquot(nil(),XS)) = 0 >= 0 = mark(nil())
          
          active(zWquot(cons(X,XS),cons(Y,YS))) = 0 >= 0 = mark(cons(quot(X,Y),zWquot(XS,YS)))
          
          active(from(X)) = 0 >= 0 = from(active(X))
          
          active(cons(X1,X2)) = 0 >= 0 = cons(active(X1),X2)
          
          active(s(X)) = X + 1 >= X + 1 = s(active(X))
          
          active(sel(X1,X2)) = 0 >= 0 = sel(active(X1),X2)
          
          active(sel(X1,X2)) = 0 >= 0 = sel(X1,active(X2))
          
          active(minus(X1,X2)) = 0 >= 0 = minus(active(X1),X2)
          
          active(minus(X1,X2)) = 0 >= 0 = minus(X1,active(X2))
          
          active(quot(X1,X2)) = 0 >= 0 = quot(active(X1),X2)
          
          active(quot(X1,X2)) = 0 >= 0 = quot(X1,active(X2))
          
          active(zWquot(X1,X2)) = 0 >= 0 = zWquot(active(X1),X2)
          
          active(zWquot(X1,X2)) = 0 >= 0 = zWquot(X1,active(X2))
          
          from(mark(X)) = 0 >= 0 = mark(from(X))
          
          cons(mark(X1),X2) = 0 >= 0 = mark(cons(X1,X2))
          
          s(mark(X)) = 1 >= 0 = mark(s(X))
          
          sel(mark(X1),X2) = 0 >= 0 = mark(sel(X1,X2))
          
          sel(X1,mark(X2)) = 0 >= 0 = mark(sel(X1,X2))
          
          minus(mark(X1),X2) = 0 >= 0 = mark(minus(X1,X2))
          
          minus(X1,mark(X2)) = 0 >= 0 = mark(minus(X1,X2))
          
          quot(mark(X1),X2) = 0 >= 0 = mark(quot(X1,X2))
          
          quot(X1,mark(X2)) = 0 >= 0 = mark(quot(X1,X2))
          
          zWquot(mark(X1),X2) = 0 >= 0 = mark(zWquot(X1,X2))
          
          zWquot(X1,mark(X2)) = 0 >= 0 = mark(zWquot(X1,X2))
          
          proper(from(X)) = 0 >= 0 = from(proper(X))
          
          proper(cons(X1,X2)) = 0 >= 0 = cons(proper(X1),proper(X2))
          
          proper(s(X)) = X + 1 >= X + 1 = s(proper(X))
          
          proper(sel(X1,X2)) = 0 >= 0 = sel(proper(X1),proper(X2))
          
          proper(0()) = 0 >= 0 = ok(0())
          
          proper(minus(X1,X2)) = 0 >= 0 = minus(proper(X1),proper(X2))
          
          proper(quot(X1,X2)) = 0 >= 0 = quot(proper(X1),proper(X2))
          
          proper(zWquot(X1,X2)) = 0 >= 0 = zWquot(proper(X1),proper(X2))
          
          proper(nil()) = 0 >= 0 = ok(nil())
          
          from(ok(X)) = 0 >= 0 = ok(from(X))
          
          cons(ok(X1),ok(X2)) = 0 >= 0 = ok(cons(X1,X2))
          
          s(ok(X)) = X + 1 >= X + 1 = ok(s(X))
          
          sel(ok(X1),ok(X2)) = 0 >= 0 = ok(sel(X1,X2))
          
          minus(ok(X1),ok(X2)) = 0 >= 0 = ok(minus(X1,X2))
          
          quot(ok(X1),ok(X2)) = 0 >= 0 = ok(quot(X1,X2))
          
          zWquot(ok(X1),ok(X2)) = 0 >= 0 = ok(zWquot(X1,X2))
          
          top(mark(X)) = 0 >= 0 = top(proper(X))
          
          top(ok(X)) = 0 >= 0 = top(active(X))
         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:
      active#(zWquot(X1,X2)) -> active#(X2)
      active#(zWquot(X1,X2)) -> active#(X1)
      active#(quot(X1,X2)) -> active#(X2)
      active#(quot(X1,X2)) -> active#(X1)
      active#(minus(X1,X2)) -> active#(X2)
      active#(minus(X1,X2)) -> active#(X1)
      active#(sel(X1,X2)) -> active#(X2)
      active#(sel(X1,X2)) -> active#(X1)
      active#(s(X)) -> active#(X)
      active#(cons(X1,X2)) -> active#(X1)
      active#(from(X)) -> 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))
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [active#](x0) = x0 + 1,
       
       [top](x0) = 0,
       
       [ok](x0) = x0,
       
       [proper](x0) = x0,
       
       [zWquot](x0, x1) = x0 + x1 + 1,
       
       [nil] = 0,
       
       [quot](x0, x1) = x0 + x1,
       
       [minus](x0, x1) = x0 + x1,
       
       [sel](x0, x1) = x0 + x1,
       
       [0] = 0,
       
       [mark](x0) = 1,
       
       [cons](x0, x1) = x0,
       
       [s](x0) = x0 + 1,
       
       [active](x0) = x0 + 1,
       
       [from](x0) = x0 + 1
      orientation:
       active#(zWquot(X1,X2)) = X1 + X2 + 2 >= X2 + 1 = active#(X2)
       
       active#(zWquot(X1,X2)) = X1 + X2 + 2 >= X1 + 1 = active#(X1)
       
       active#(quot(X1,X2)) = X1 + X2 + 1 >= X2 + 1 = active#(X2)
       
       active#(quot(X1,X2)) = X1 + X2 + 1 >= X1 + 1 = active#(X1)
       
       active#(minus(X1,X2)) = X1 + X2 + 1 >= X2 + 1 = active#(X2)
       
       active#(minus(X1,X2)) = X1 + X2 + 1 >= X1 + 1 = active#(X1)
       
       active#(sel(X1,X2)) = X1 + X2 + 1 >= X2 + 1 = active#(X2)
       
       active#(sel(X1,X2)) = X1 + X2 + 1 >= X1 + 1 = active#(X1)
       
       active#(s(X)) = X + 2 >= X + 1 = active#(X)
       
       active#(cons(X1,X2)) = X1 + 1 >= X1 + 1 = active#(X1)
       
       active#(from(X)) = X + 2 >= X + 1 = active#(X)
       
       active(from(X)) = X + 2 >= 1 = mark(cons(X,from(s(X))))
       
       active(sel(0(),cons(X,XS))) = X + 1 >= 1 = mark(X)
       
       active(sel(s(N),cons(X,XS))) = N + X + 2 >= 1 = mark(sel(N,XS))
       
       active(minus(X,0())) = X + 1 >= 1 = mark(0())
       
       active(minus(s(X),s(Y))) = X + Y + 3 >= 1 = mark(minus(X,Y))
       
       active(quot(0(),s(Y))) = Y + 2 >= 1 = mark(0())
       
       active(quot(s(X),s(Y))) = X + Y + 3 >= 1 = mark(s(quot(minus(X,Y),s(Y))))
       
       active(zWquot(XS,nil())) = XS + 2 >= 1 = mark(nil())
       
       active(zWquot(nil(),XS)) = XS + 2 >= 1 = mark(nil())
       
       active(zWquot(cons(X,XS),cons(Y,YS))) = X + Y + 2 >= 1 = mark(cons(quot(X,Y),zWquot(XS,YS)))
       
       active(from(X)) = X + 2 >= X + 2 = from(active(X))
       
       active(cons(X1,X2)) = X1 + 1 >= X1 + 1 = cons(active(X1),X2)
       
       active(s(X)) = X + 2 >= X + 2 = s(active(X))
       
       active(sel(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = sel(active(X1),X2)
       
       active(sel(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = sel(X1,active(X2))
       
       active(minus(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = minus(active(X1),X2)
       
       active(minus(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = minus(X1,active(X2))
       
       active(quot(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = quot(active(X1),X2)
       
       active(quot(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = quot(X1,active(X2))
       
       active(zWquot(X1,X2)) = X1 + X2 + 2 >= X1 + X2 + 2 = zWquot(active(X1),X2)
       
       active(zWquot(X1,X2)) = X1 + X2 + 2 >= X1 + X2 + 2 = zWquot(X1,active(X2))
       
       from(mark(X)) = 2 >= 1 = mark(from(X))
       
       cons(mark(X1),X2) = 1 >= 1 = mark(cons(X1,X2))
       
       s(mark(X)) = 2 >= 1 = mark(s(X))
       
       sel(mark(X1),X2) = X2 + 1 >= 1 = mark(sel(X1,X2))
       
       sel(X1,mark(X2)) = X1 + 1 >= 1 = mark(sel(X1,X2))
       
       minus(mark(X1),X2) = X2 + 1 >= 1 = mark(minus(X1,X2))
       
       minus(X1,mark(X2)) = X1 + 1 >= 1 = mark(minus(X1,X2))
       
       quot(mark(X1),X2) = X2 + 1 >= 1 = mark(quot(X1,X2))
       
       quot(X1,mark(X2)) = X1 + 1 >= 1 = mark(quot(X1,X2))
       
       zWquot(mark(X1),X2) = X2 + 2 >= 1 = mark(zWquot(X1,X2))
       
       zWquot(X1,mark(X2)) = X1 + 2 >= 1 = mark(zWquot(X1,X2))
       
       proper(from(X)) = X + 1 >= X + 1 = from(proper(X))
       
       proper(cons(X1,X2)) = X1 >= X1 = cons(proper(X1),proper(X2))
       
       proper(s(X)) = X + 1 >= X + 1 = s(proper(X))
       
       proper(sel(X1,X2)) = X1 + X2 >= X1 + X2 = sel(proper(X1),proper(X2))
       
       proper(0()) = 0 >= 0 = ok(0())
       
       proper(minus(X1,X2)) = X1 + X2 >= X1 + X2 = minus(proper(X1),proper(X2))
       
       proper(quot(X1,X2)) = X1 + X2 >= X1 + X2 = quot(proper(X1),proper(X2))
       
       proper(zWquot(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = zWquot(proper(X1),proper(X2))
       
       proper(nil()) = 0 >= 0 = ok(nil())
       
       from(ok(X)) = X + 1 >= X + 1 = ok(from(X))
       
       cons(ok(X1),ok(X2)) = X1 >= X1 = ok(cons(X1,X2))
       
       s(ok(X)) = X + 1 >= X + 1 = ok(s(X))
       
       sel(ok(X1),ok(X2)) = X1 + X2 >= X1 + X2 = ok(sel(X1,X2))
       
       minus(ok(X1),ok(X2)) = X1 + X2 >= X1 + X2 = ok(minus(X1,X2))
       
       quot(ok(X1),ok(X2)) = X1 + X2 >= X1 + X2 = ok(quot(X1,X2))
       
       zWquot(ok(X1),ok(X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = ok(zWquot(X1,X2))
       
       top(mark(X)) = 0 >= 0 = top(proper(X))
       
       top(ok(X)) = 0 >= 0 = top(active(X))
      problem:
       DPs:
        active#(quot(X1,X2)) -> active#(X2)
        active#(quot(X1,X2)) -> active#(X1)
        active#(minus(X1,X2)) -> active#(X2)
        active#(minus(X1,X2)) -> active#(X1)
        active#(sel(X1,X2)) -> active#(X2)
        active#(sel(X1,X2)) -> active#(X1)
        active#(cons(X1,X2)) -> active#(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))
      Matrix Interpretation Processor:
       dimension: 1
       interpretation:
        [active#](x0) = x0 + 1,
        
        [top](x0) = 1,
        
        [ok](x0) = x0,
        
        [proper](x0) = x0,
        
        [zWquot](x0, x1) = 0,
        
        [nil] = 0,
        
        [quot](x0, x1) = x0 + x1 + 1,
        
        [minus](x0, x1) = x0 + x1 + 1,
        
        [sel](x0, x1) = x0 + x1 + 1,
        
        [0] = 1,
        
        [mark](x0) = 0,
        
        [cons](x0, x1) = x0 + 1,
        
        [s](x0) = 1,
        
        [active](x0) = x0,
        
        [from](x0) = 0
       orientation:
        active#(quot(X1,X2)) = X1 + X2 + 2 >= X2 + 1 = active#(X2)
        
        active#(quot(X1,X2)) = X1 + X2 + 2 >= X1 + 1 = active#(X1)
        
        active#(minus(X1,X2)) = X1 + X2 + 2 >= X2 + 1 = active#(X2)
        
        active#(minus(X1,X2)) = X1 + X2 + 2 >= X1 + 1 = active#(X1)
        
        active#(sel(X1,X2)) = X1 + X2 + 2 >= X2 + 1 = active#(X2)
        
        active#(sel(X1,X2)) = X1 + X2 + 2 >= X1 + 1 = active#(X1)
        
        active#(cons(X1,X2)) = X1 + 2 >= X1 + 1 = active#(X1)
        
        active(from(X)) = 0 >= 0 = mark(cons(X,from(s(X))))
        
        active(sel(0(),cons(X,XS))) = X + 3 >= 0 = mark(X)
        
        active(sel(s(N),cons(X,XS))) = X + 3 >= 0 = mark(sel(N,XS))
        
        active(minus(X,0())) = X + 2 >= 0 = mark(0())
        
        active(minus(s(X),s(Y))) = 3 >= 0 = mark(minus(X,Y))
        
        active(quot(0(),s(Y))) = 3 >= 0 = mark(0())
        
        active(quot(s(X),s(Y))) = 3 >= 0 = mark(s(quot(minus(X,Y),s(Y))))
        
        active(zWquot(XS,nil())) = 0 >= 0 = mark(nil())
        
        active(zWquot(nil(),XS)) = 0 >= 0 = mark(nil())
        
        active(zWquot(cons(X,XS),cons(Y,YS))) = 0 >= 0 = mark(cons(quot(X,Y),zWquot(XS,YS)))
        
        active(from(X)) = 0 >= 0 = from(active(X))
        
        active(cons(X1,X2)) = X1 + 1 >= X1 + 1 = cons(active(X1),X2)
        
        active(s(X)) = 1 >= 1 = s(active(X))
        
        active(sel(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = sel(active(X1),X2)
        
        active(sel(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = sel(X1,active(X2))
        
        active(minus(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = minus(active(X1),X2)
        
        active(minus(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = minus(X1,active(X2))
        
        active(quot(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = quot(active(X1),X2)
        
        active(quot(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = quot(X1,active(X2))
        
        active(zWquot(X1,X2)) = 0 >= 0 = zWquot(active(X1),X2)
        
        active(zWquot(X1,X2)) = 0 >= 0 = zWquot(X1,active(X2))
        
        from(mark(X)) = 0 >= 0 = mark(from(X))
        
        cons(mark(X1),X2) = 1 >= 0 = mark(cons(X1,X2))
        
        s(mark(X)) = 1 >= 0 = mark(s(X))
        
        sel(mark(X1),X2) = X2 + 1 >= 0 = mark(sel(X1,X2))
        
        sel(X1,mark(X2)) = X1 + 1 >= 0 = mark(sel(X1,X2))
        
        minus(mark(X1),X2) = X2 + 1 >= 0 = mark(minus(X1,X2))
        
        minus(X1,mark(X2)) = X1 + 1 >= 0 = mark(minus(X1,X2))
        
        quot(mark(X1),X2) = X2 + 1 >= 0 = mark(quot(X1,X2))
        
        quot(X1,mark(X2)) = X1 + 1 >= 0 = mark(quot(X1,X2))
        
        zWquot(mark(X1),X2) = 0 >= 0 = mark(zWquot(X1,X2))
        
        zWquot(X1,mark(X2)) = 0 >= 0 = mark(zWquot(X1,X2))
        
        proper(from(X)) = 0 >= 0 = from(proper(X))
        
        proper(cons(X1,X2)) = X1 + 1 >= X1 + 1 = cons(proper(X1),proper(X2))
        
        proper(s(X)) = 1 >= 1 = s(proper(X))
        
        proper(sel(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = sel(proper(X1),proper(X2))
        
        proper(0()) = 1 >= 1 = ok(0())
        
        proper(minus(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = minus(proper(X1),proper(X2))
        
        proper(quot(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = quot(proper(X1),proper(X2))
        
        proper(zWquot(X1,X2)) = 0 >= 0 = zWquot(proper(X1),proper(X2))
        
        proper(nil()) = 0 >= 0 = ok(nil())
        
        from(ok(X)) = 0 >= 0 = ok(from(X))
        
        cons(ok(X1),ok(X2)) = X1 + 1 >= X1 + 1 = ok(cons(X1,X2))
        
        s(ok(X)) = 1 >= 1 = ok(s(X))
        
        sel(ok(X1),ok(X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = ok(sel(X1,X2))
        
        minus(ok(X1),ok(X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = ok(minus(X1,X2))
        
        quot(ok(X1),ok(X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = ok(quot(X1,X2))
        
        zWquot(ok(X1),ok(X2)) = 0 >= 0 = ok(zWquot(X1,X2))
        
        top(mark(X)) = 1 >= 1 = top(proper(X))
        
        top(ok(X)) = 1 >= 1 = top(active(X))
       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#(ok(X)) -> from#(X)
      from#(mark(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))
     Open
     
     DPs:
      cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
      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))
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [cons#](x0, x1) = x1 + 1,
       
       [top](x0) = 0,
       
       [ok](x0) = x0 + 1,
       
       [proper](x0) = x0 + 1,
       
       [zWquot](x0, x1) = x0,
       
       [nil] = 0,
       
       [quot](x0, x1) = x0 + 1,
       
       [minus](x0, x1) = x1,
       
       [sel](x0, x1) = x0,
       
       [0] = 1,
       
       [mark](x0) = 0,
       
       [cons](x0, x1) = x1,
       
       [s](x0) = x0,
       
       [active](x0) = x0,
       
       [from](x0) = x0
      orientation:
       cons#(ok(X1),ok(X2)) = X2 + 2 >= X2 + 1 = cons#(X1,X2)
       
       cons#(mark(X1),X2) = X2 + 1 >= X2 + 1 = cons#(X1,X2)
       
       active(from(X)) = X >= 0 = mark(cons(X,from(s(X))))
       
       active(sel(0(),cons(X,XS))) = 1 >= 0 = mark(X)
       
       active(sel(s(N),cons(X,XS))) = N >= 0 = mark(sel(N,XS))
       
       active(minus(X,0())) = 1 >= 0 = mark(0())
       
       active(minus(s(X),s(Y))) = Y >= 0 = mark(minus(X,Y))
       
       active(quot(0(),s(Y))) = 2 >= 0 = mark(0())
       
       active(quot(s(X),s(Y))) = X + 1 >= 0 = mark(s(quot(minus(X,Y),s(Y))))
       
       active(zWquot(XS,nil())) = XS >= 0 = mark(nil())
       
       active(zWquot(nil(),XS)) = 0 >= 0 = mark(nil())
       
       active(zWquot(cons(X,XS),cons(Y,YS))) = XS >= 0 = mark(cons(quot(X,Y),zWquot(XS,YS)))
       
       active(from(X)) = X >= X = from(active(X))
       
       active(cons(X1,X2)) = X2 >= X2 = cons(active(X1),X2)
       
       active(s(X)) = X >= X = s(active(X))
       
       active(sel(X1,X2)) = X1 >= X1 = sel(active(X1),X2)
       
       active(sel(X1,X2)) = X1 >= X1 = sel(X1,active(X2))
       
       active(minus(X1,X2)) = X2 >= X2 = minus(active(X1),X2)
       
       active(minus(X1,X2)) = X2 >= X2 = minus(X1,active(X2))
       
       active(quot(X1,X2)) = X1 + 1 >= X1 + 1 = quot(active(X1),X2)
       
       active(quot(X1,X2)) = X1 + 1 >= X1 + 1 = quot(X1,active(X2))
       
       active(zWquot(X1,X2)) = X1 >= X1 = zWquot(active(X1),X2)
       
       active(zWquot(X1,X2)) = X1 >= X1 = zWquot(X1,active(X2))
       
       from(mark(X)) = 0 >= 0 = mark(from(X))
       
       cons(mark(X1),X2) = X2 >= 0 = mark(cons(X1,X2))
       
       s(mark(X)) = 0 >= 0 = mark(s(X))
       
       sel(mark(X1),X2) = 0 >= 0 = mark(sel(X1,X2))
       
       sel(X1,mark(X2)) = X1 >= 0 = mark(sel(X1,X2))
       
       minus(mark(X1),X2) = X2 >= 0 = mark(minus(X1,X2))
       
       minus(X1,mark(X2)) = 0 >= 0 = mark(minus(X1,X2))
       
       quot(mark(X1),X2) = 1 >= 0 = mark(quot(X1,X2))
       
       quot(X1,mark(X2)) = X1 + 1 >= 0 = mark(quot(X1,X2))
       
       zWquot(mark(X1),X2) = 0 >= 0 = mark(zWquot(X1,X2))
       
       zWquot(X1,mark(X2)) = X1 >= 0 = mark(zWquot(X1,X2))
       
       proper(from(X)) = X + 1 >= X + 1 = from(proper(X))
       
       proper(cons(X1,X2)) = X2 + 1 >= X2 + 1 = cons(proper(X1),proper(X2))
       
       proper(s(X)) = X + 1 >= X + 1 = s(proper(X))
       
       proper(sel(X1,X2)) = X1 + 1 >= X1 + 1 = sel(proper(X1),proper(X2))
       
       proper(0()) = 2 >= 2 = ok(0())
       
       proper(minus(X1,X2)) = X2 + 1 >= X2 + 1 = minus(proper(X1),proper(X2))
       
       proper(quot(X1,X2)) = X1 + 2 >= X1 + 2 = quot(proper(X1),proper(X2))
       
       proper(zWquot(X1,X2)) = X1 + 1 >= X1 + 1 = zWquot(proper(X1),proper(X2))
       
       proper(nil()) = 1 >= 1 = ok(nil())
       
       from(ok(X)) = X + 1 >= X + 1 = ok(from(X))
       
       cons(ok(X1),ok(X2)) = X2 + 1 >= X2 + 1 = ok(cons(X1,X2))
       
       s(ok(X)) = X + 1 >= X + 1 = ok(s(X))
       
       sel(ok(X1),ok(X2)) = X1 + 1 >= X1 + 1 = ok(sel(X1,X2))
       
       minus(ok(X1),ok(X2)) = X2 + 1 >= X2 + 1 = ok(minus(X1,X2))
       
       quot(ok(X1),ok(X2)) = X1 + 2 >= X1 + 2 = ok(quot(X1,X2))
       
       zWquot(ok(X1),ok(X2)) = X1 + 1 >= X1 + 1 = ok(zWquot(X1,X2))
       
       top(mark(X)) = 0 >= 0 = top(proper(X))
       
       top(ok(X)) = 0 >= 0 = top(active(X))
      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))
      Open
     
     DPs:
      s#(ok(X)) -> s#(X)
      s#(mark(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))
     Open
     
     DPs:
      sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
      sel#(X1,mark(X2)) -> sel#(X1,X2)
      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))
     Open
     
     DPs:
      minus#(ok(X1),ok(X2)) -> minus#(X1,X2)
      minus#(X1,mark(X2)) -> minus#(X1,X2)
      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))
     Open
     
     DPs:
      quot#(ok(X1),ok(X2)) -> quot#(X1,X2)
      quot#(X1,mark(X2)) -> quot#(X1,X2)
      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))
     Open
     
     DPs:
      zWquot#(ok(X1),ok(X2)) -> zWquot#(X1,X2)
      zWquot#(X1,mark(X2)) -> zWquot#(X1,X2)
      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))
     Open