MAYBE

Problem:
 active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
 active(U12(tt())) -> mark(tt())
 active(U21(tt())) -> mark(tt())
 active(U31(tt(),N)) -> mark(N)
 active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
 active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
 active(isNat(0())) -> mark(tt())
 active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
 active(isNat(s(V1))) -> mark(U21(isNat(V1)))
 active(plus(N,0())) -> mark(U31(isNat(N),N))
 active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
 active(U11(X1,X2)) -> U11(active(X1),X2)
 active(U12(X)) -> U12(active(X))
 active(U21(X)) -> U21(active(X))
 active(U31(X1,X2)) -> U31(active(X1),X2)
 active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
 active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
 active(s(X)) -> s(active(X))
 active(plus(X1,X2)) -> plus(active(X1),X2)
 active(plus(X1,X2)) -> plus(X1,active(X2))
 U11(mark(X1),X2) -> mark(U11(X1,X2))
 U12(mark(X)) -> mark(U12(X))
 U21(mark(X)) -> mark(U21(X))
 U31(mark(X1),X2) -> mark(U31(X1,X2))
 U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
 U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
 s(mark(X)) -> mark(s(X))
 plus(mark(X1),X2) -> mark(plus(X1,X2))
 plus(X1,mark(X2)) -> mark(plus(X1,X2))
 proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
 proper(tt()) -> ok(tt())
 proper(U12(X)) -> U12(proper(X))
 proper(isNat(X)) -> isNat(proper(X))
 proper(U21(X)) -> U21(proper(X))
 proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
 proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
 proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
 proper(s(X)) -> s(proper(X))
 proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
 proper(0()) -> ok(0())
 U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
 U12(ok(X)) -> ok(U12(X))
 isNat(ok(X)) -> ok(isNat(X))
 U21(ok(X)) -> ok(U21(X))
 U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
 U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
 U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
 s(ok(X)) -> ok(s(X))
 plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
 top(mark(X)) -> top(proper(X))
 top(ok(X)) -> top(active(X))

Proof:
 DP Processor:
  DPs:
   active#(U11(tt(),V2)) -> isNat#(V2)
   active#(U11(tt(),V2)) -> U12#(isNat(V2))
   active#(U41(tt(),M,N)) -> isNat#(N)
   active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N)
   active#(U42(tt(),M,N)) -> plus#(N,M)
   active#(U42(tt(),M,N)) -> s#(plus(N,M))
   active#(isNat(plus(V1,V2))) -> isNat#(V1)
   active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2)
   active#(isNat(s(V1))) -> isNat#(V1)
   active#(isNat(s(V1))) -> U21#(isNat(V1))
   active#(plus(N,0())) -> isNat#(N)
   active#(plus(N,0())) -> U31#(isNat(N),N)
   active#(plus(N,s(M))) -> isNat#(M)
   active#(plus(N,s(M))) -> U41#(isNat(M),M,N)
   active#(U11(X1,X2)) -> active#(X1)
   active#(U11(X1,X2)) -> U11#(active(X1),X2)
   active#(U12(X)) -> active#(X)
   active#(U12(X)) -> U12#(active(X))
   active#(U21(X)) -> active#(X)
   active#(U21(X)) -> U21#(active(X))
   active#(U31(X1,X2)) -> active#(X1)
   active#(U31(X1,X2)) -> U31#(active(X1),X2)
   active#(U41(X1,X2,X3)) -> active#(X1)
   active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3)
   active#(U42(X1,X2,X3)) -> active#(X1)
   active#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3)
   active#(s(X)) -> active#(X)
   active#(s(X)) -> s#(active(X))
   active#(plus(X1,X2)) -> active#(X1)
   active#(plus(X1,X2)) -> plus#(active(X1),X2)
   active#(plus(X1,X2)) -> active#(X2)
   active#(plus(X1,X2)) -> plus#(X1,active(X2))
   U11#(mark(X1),X2) -> U11#(X1,X2)
   U12#(mark(X)) -> U12#(X)
   U21#(mark(X)) -> U21#(X)
   U31#(mark(X1),X2) -> U31#(X1,X2)
   U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3)
   U42#(mark(X1),X2,X3) -> U42#(X1,X2,X3)
   s#(mark(X)) -> s#(X)
   plus#(mark(X1),X2) -> plus#(X1,X2)
   plus#(X1,mark(X2)) -> plus#(X1,X2)
   proper#(U11(X1,X2)) -> proper#(X2)
   proper#(U11(X1,X2)) -> proper#(X1)
   proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
   proper#(U12(X)) -> proper#(X)
   proper#(U12(X)) -> U12#(proper(X))
   proper#(isNat(X)) -> proper#(X)
   proper#(isNat(X)) -> isNat#(proper(X))
   proper#(U21(X)) -> proper#(X)
   proper#(U21(X)) -> U21#(proper(X))
   proper#(U31(X1,X2)) -> proper#(X2)
   proper#(U31(X1,X2)) -> proper#(X1)
   proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
   proper#(U41(X1,X2,X3)) -> proper#(X3)
   proper#(U41(X1,X2,X3)) -> proper#(X2)
   proper#(U41(X1,X2,X3)) -> proper#(X1)
   proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
   proper#(U42(X1,X2,X3)) -> proper#(X3)
   proper#(U42(X1,X2,X3)) -> proper#(X2)
   proper#(U42(X1,X2,X3)) -> proper#(X1)
   proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
   proper#(s(X)) -> proper#(X)
   proper#(s(X)) -> s#(proper(X))
   proper#(plus(X1,X2)) -> proper#(X2)
   proper#(plus(X1,X2)) -> proper#(X1)
   proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
   U11#(ok(X1),ok(X2)) -> U11#(X1,X2)
   U12#(ok(X)) -> U12#(X)
   isNat#(ok(X)) -> isNat#(X)
   U21#(ok(X)) -> U21#(X)
   U31#(ok(X1),ok(X2)) -> U31#(X1,X2)
   U41#(ok(X1),ok(X2),ok(X3)) -> U41#(X1,X2,X3)
   U42#(ok(X1),ok(X2),ok(X3)) -> U42#(X1,X2,X3)
   s#(ok(X)) -> s#(X)
   plus#(ok(X1),ok(X2)) -> plus#(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(U11(tt(),V2)) -> mark(U12(isNat(V2)))
   active(U12(tt())) -> mark(tt())
   active(U21(tt())) -> mark(tt())
   active(U31(tt(),N)) -> mark(N)
   active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
   active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
   active(isNat(0())) -> mark(tt())
   active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
   active(isNat(s(V1))) -> mark(U21(isNat(V1)))
   active(plus(N,0())) -> mark(U31(isNat(N),N))
   active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
   active(U11(X1,X2)) -> U11(active(X1),X2)
   active(U12(X)) -> U12(active(X))
   active(U21(X)) -> U21(active(X))
   active(U31(X1,X2)) -> U31(active(X1),X2)
   active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
   active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
   active(s(X)) -> s(active(X))
   active(plus(X1,X2)) -> plus(active(X1),X2)
   active(plus(X1,X2)) -> plus(X1,active(X2))
   U11(mark(X1),X2) -> mark(U11(X1,X2))
   U12(mark(X)) -> mark(U12(X))
   U21(mark(X)) -> mark(U21(X))
   U31(mark(X1),X2) -> mark(U31(X1,X2))
   U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
   U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
   s(mark(X)) -> mark(s(X))
   plus(mark(X1),X2) -> mark(plus(X1,X2))
   plus(X1,mark(X2)) -> mark(plus(X1,X2))
   proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
   proper(tt()) -> ok(tt())
   proper(U12(X)) -> U12(proper(X))
   proper(isNat(X)) -> isNat(proper(X))
   proper(U21(X)) -> U21(proper(X))
   proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
   proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
   proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
   proper(s(X)) -> s(proper(X))
   proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
   proper(0()) -> ok(0())
   U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
   U12(ok(X)) -> ok(U12(X))
   isNat(ok(X)) -> ok(isNat(X))
   U21(ok(X)) -> ok(U21(X))
   U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
   U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
   U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
   s(ok(X)) -> ok(s(X))
   plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
   top(mark(X)) -> top(proper(X))
   top(ok(X)) -> top(active(X))
  TDG Processor:
   DPs:
    active#(U11(tt(),V2)) -> isNat#(V2)
    active#(U11(tt(),V2)) -> U12#(isNat(V2))
    active#(U41(tt(),M,N)) -> isNat#(N)
    active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N)
    active#(U42(tt(),M,N)) -> plus#(N,M)
    active#(U42(tt(),M,N)) -> s#(plus(N,M))
    active#(isNat(plus(V1,V2))) -> isNat#(V1)
    active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2)
    active#(isNat(s(V1))) -> isNat#(V1)
    active#(isNat(s(V1))) -> U21#(isNat(V1))
    active#(plus(N,0())) -> isNat#(N)
    active#(plus(N,0())) -> U31#(isNat(N),N)
    active#(plus(N,s(M))) -> isNat#(M)
    active#(plus(N,s(M))) -> U41#(isNat(M),M,N)
    active#(U11(X1,X2)) -> active#(X1)
    active#(U11(X1,X2)) -> U11#(active(X1),X2)
    active#(U12(X)) -> active#(X)
    active#(U12(X)) -> U12#(active(X))
    active#(U21(X)) -> active#(X)
    active#(U21(X)) -> U21#(active(X))
    active#(U31(X1,X2)) -> active#(X1)
    active#(U31(X1,X2)) -> U31#(active(X1),X2)
    active#(U41(X1,X2,X3)) -> active#(X1)
    active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3)
    active#(U42(X1,X2,X3)) -> active#(X1)
    active#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3)
    active#(s(X)) -> active#(X)
    active#(s(X)) -> s#(active(X))
    active#(plus(X1,X2)) -> active#(X1)
    active#(plus(X1,X2)) -> plus#(active(X1),X2)
    active#(plus(X1,X2)) -> active#(X2)
    active#(plus(X1,X2)) -> plus#(X1,active(X2))
    U11#(mark(X1),X2) -> U11#(X1,X2)
    U12#(mark(X)) -> U12#(X)
    U21#(mark(X)) -> U21#(X)
    U31#(mark(X1),X2) -> U31#(X1,X2)
    U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3)
    U42#(mark(X1),X2,X3) -> U42#(X1,X2,X3)
    s#(mark(X)) -> s#(X)
    plus#(mark(X1),X2) -> plus#(X1,X2)
    plus#(X1,mark(X2)) -> plus#(X1,X2)
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(U12(X)) -> proper#(X)
    proper#(U12(X)) -> U12#(proper(X))
    proper#(isNat(X)) -> proper#(X)
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(U21(X)) -> proper#(X)
    proper#(U21(X)) -> U21#(proper(X))
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(s(X)) -> proper#(X)
    proper#(s(X)) -> s#(proper(X))
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    U11#(ok(X1),ok(X2)) -> U11#(X1,X2)
    U12#(ok(X)) -> U12#(X)
    isNat#(ok(X)) -> isNat#(X)
    U21#(ok(X)) -> U21#(X)
    U31#(ok(X1),ok(X2)) -> U31#(X1,X2)
    U41#(ok(X1),ok(X2),ok(X3)) -> U41#(X1,X2,X3)
    U42#(ok(X1),ok(X2),ok(X3)) -> U42#(X1,X2,X3)
    s#(ok(X)) -> s#(X)
    plus#(ok(X1),ok(X2)) -> plus#(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(U11(tt(),V2)) -> mark(U12(isNat(V2)))
    active(U12(tt())) -> mark(tt())
    active(U21(tt())) -> mark(tt())
    active(U31(tt(),N)) -> mark(N)
    active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
    active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
    active(isNat(0())) -> mark(tt())
    active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
    active(isNat(s(V1))) -> mark(U21(isNat(V1)))
    active(plus(N,0())) -> mark(U31(isNat(N),N))
    active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
    active(U11(X1,X2)) -> U11(active(X1),X2)
    active(U12(X)) -> U12(active(X))
    active(U21(X)) -> U21(active(X))
    active(U31(X1,X2)) -> U31(active(X1),X2)
    active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
    active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
    active(s(X)) -> s(active(X))
    active(plus(X1,X2)) -> plus(active(X1),X2)
    active(plus(X1,X2)) -> plus(X1,active(X2))
    U11(mark(X1),X2) -> mark(U11(X1,X2))
    U12(mark(X)) -> mark(U12(X))
    U21(mark(X)) -> mark(U21(X))
    U31(mark(X1),X2) -> mark(U31(X1,X2))
    U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
    U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
    s(mark(X)) -> mark(s(X))
    plus(mark(X1),X2) -> mark(plus(X1,X2))
    plus(X1,mark(X2)) -> mark(plus(X1,X2))
    proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
    proper(tt()) -> ok(tt())
    proper(U12(X)) -> U12(proper(X))
    proper(isNat(X)) -> isNat(proper(X))
    proper(U21(X)) -> U21(proper(X))
    proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
    proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
    proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
    proper(s(X)) -> s(proper(X))
    proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
    proper(0()) -> ok(0())
    U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
    U12(ok(X)) -> ok(U12(X))
    isNat(ok(X)) -> ok(isNat(X))
    U21(ok(X)) -> ok(U21(X))
    U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
    U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
    U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
    s(ok(X)) -> ok(s(X))
    plus(ok(X1),ok(X2)) -> ok(plus(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#(plus(X1,X2)) -> plus#(X1,active(X2))
    top#(ok(X)) -> active#(X) -> active#(plus(X1,X2)) -> active#(X2)
    top#(ok(X)) -> active#(X) ->
    active#(plus(X1,X2)) -> plus#(active(X1),X2)
    top#(ok(X)) -> active#(X) -> active#(plus(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#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3)
    top#(ok(X)) -> active#(X) -> active#(U42(X1,X2,X3)) -> active#(X1)
    top#(ok(X)) -> active#(X) ->
    active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3)
    top#(ok(X)) -> active#(X) -> active#(U41(X1,X2,X3)) -> active#(X1)
    top#(ok(X)) -> active#(X) ->
    active#(U31(X1,X2)) -> U31#(active(X1),X2)
    top#(ok(X)) -> active#(X) -> active#(U31(X1,X2)) -> active#(X1)
    top#(ok(X)) -> active#(X) -> active#(U21(X)) -> U21#(active(X))
    top#(ok(X)) -> active#(X) -> active#(U21(X)) -> active#(X)
    top#(ok(X)) -> active#(X) -> active#(U12(X)) -> U12#(active(X))
    top#(ok(X)) -> active#(X) -> active#(U12(X)) -> active#(X)
    top#(ok(X)) -> active#(X) ->
    active#(U11(X1,X2)) -> U11#(active(X1),X2)
    top#(ok(X)) -> active#(X) -> active#(U11(X1,X2)) -> active#(X1)
    top#(ok(X)) -> active#(X) ->
    active#(plus(N,s(M))) -> U41#(isNat(M),M,N)
    top#(ok(X)) -> active#(X) -> active#(plus(N,s(M))) -> isNat#(M)
    top#(ok(X)) -> active#(X) -> active#(plus(N,0())) -> U31#(isNat(N),N)
    top#(ok(X)) -> active#(X) -> active#(plus(N,0())) -> isNat#(N)
    top#(ok(X)) -> active#(X) -> active#(isNat(s(V1))) -> U21#(isNat(V1))
    top#(ok(X)) -> active#(X) -> active#(isNat(s(V1))) -> isNat#(V1)
    top#(ok(X)) -> active#(X) ->
    active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2)
    top#(ok(X)) -> active#(X) -> active#(isNat(plus(V1,V2))) -> isNat#(V1)
    top#(ok(X)) -> active#(X) -> active#(U42(tt(),M,N)) -> s#(plus(N,M))
    top#(ok(X)) -> active#(X) -> active#(U42(tt(),M,N)) -> plus#(N,M)
    top#(ok(X)) -> active#(X) ->
    active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N)
    top#(ok(X)) -> active#(X) -> active#(U41(tt(),M,N)) -> isNat#(N)
    top#(ok(X)) -> active#(X) -> active#(U11(tt(),V2)) -> U12#(isNat(V2))
    top#(ok(X)) -> active#(X) ->
    active#(U11(tt(),V2)) -> isNat#(V2)
    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#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    top#(mark(X)) -> proper#(X) -> proper#(plus(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) -> proper#(plus(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#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    top#(mark(X)) -> proper#(X) -> proper#(U42(X1,X2,X3)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) -> proper#(U42(X1,X2,X3)) -> proper#(X2)
    top#(mark(X)) -> proper#(X) -> proper#(U42(X1,X2,X3)) -> proper#(X3)
    top#(mark(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    top#(mark(X)) -> proper#(X) -> proper#(U41(X1,X2,X3)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) -> proper#(U41(X1,X2,X3)) -> proper#(X2)
    top#(mark(X)) -> proper#(X) -> proper#(U41(X1,X2,X3)) -> proper#(X3)
    top#(mark(X)) -> proper#(X) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    top#(mark(X)) -> proper#(X) -> proper#(U31(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) -> proper#(U31(X1,X2)) -> proper#(X2)
    top#(mark(X)) -> proper#(X) -> proper#(U21(X)) -> U21#(proper(X))
    top#(mark(X)) -> proper#(X) -> proper#(U21(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    top#(mark(X)) -> proper#(X) -> proper#(isNat(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) -> proper#(U12(X)) -> U12#(proper(X))
    top#(mark(X)) -> proper#(X) -> proper#(U12(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    top#(mark(X)) -> proper#(X) -> proper#(U11(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) -> proper#(U11(X1,X2)) -> proper#(X2)
    proper#(s(X)) -> proper#(X) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X) -> proper#(plus(X1,X2)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) -> proper#(plus(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#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(s(X)) -> proper#(X) -> proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) -> proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(s(X)) -> proper#(X) -> proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(s(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(s(X)) -> proper#(X) -> proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) -> proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(s(X)) -> proper#(X) -> proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(s(X)) -> proper#(X) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X) -> proper#(U31(X1,X2)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) -> proper#(U31(X1,X2)) -> proper#(X2)
    proper#(s(X)) -> proper#(X) -> proper#(U21(X)) -> U21#(proper(X))
    proper#(s(X)) -> proper#(X) -> proper#(U21(X)) -> proper#(X)
    proper#(s(X)) -> proper#(X) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(s(X)) -> proper#(X) -> proper#(isNat(X)) -> proper#(X)
    proper#(s(X)) -> proper#(X) -> proper#(U12(X)) -> U12#(proper(X))
    proper#(s(X)) -> proper#(X) -> proper#(U12(X)) -> proper#(X)
    proper#(s(X)) -> proper#(X) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X) -> proper#(U11(X1,X2)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) -> proper#(U11(X1,X2)) -> proper#(X2)
    proper#(s(X)) -> s#(proper(X)) -> s#(ok(X)) -> s#(X)
    proper#(s(X)) -> s#(proper(X)) -> s#(mark(X)) -> s#(X)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U21(X)) -> proper#(X)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(isNat(X)) -> proper#(X)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U12(X)) -> proper#(X)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(plus(X1,X2)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U21(X)) -> proper#(X)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(isNat(X)) -> proper#(X)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U12(X)) -> proper#(X)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(plus(X1,X2)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2)) ->
    plus#(ok(X1),ok(X2)) -> plus#(X1,X2)
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2)) ->
    plus#(X1,mark(X2)) -> plus#(X1,X2)
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2)) ->
    plus#(mark(X1),X2) -> plus#(X1,X2)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(s(X)) -> proper#(X)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U21(X)) -> proper#(X)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(isNat(X)) -> proper#(X)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U12(X)) -> proper#(X)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X3) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U21(X)) -> proper#(X)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(isNat(X)) -> proper#(X)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U12(X)) -> proper#(X)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U21(X)) -> proper#(X)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(isNat(X)) -> proper#(X)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U12(X)) -> proper#(X)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(U42(X1,X2,X3)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3)) ->
    U42#(ok(X1),ok(X2),ok(X3)) -> U42#(X1,X2,X3)
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3)) ->
    U42#(mark(X1),X2,X3) -> U42#(X1,X2,X3)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(s(X)) -> proper#(X)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U21(X)) -> proper#(X)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(isNat(X)) -> proper#(X)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U12(X)) -> proper#(X)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X3) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U21(X)) -> proper#(X)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(isNat(X)) -> proper#(X)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U12(X)) -> proper#(X)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U21(X)) -> proper#(X)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(isNat(X)) -> proper#(X)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U12(X)) -> proper#(X)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(U41(X1,X2,X3)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3)) ->
    U41#(ok(X1),ok(X2),ok(X3)) -> U41#(X1,X2,X3)
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3)) ->
    U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U21(X)) -> proper#(X)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(isNat(X)) -> proper#(X)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U12(X)) -> proper#(X)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(U31(X1,X2)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U21(X)) -> proper#(X)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(isNat(X)) -> proper#(X)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U12(X)) -> proper#(X)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(U31(X1,X2)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2)) ->
    U31#(ok(X1),ok(X2)) -> U31#(X1,X2)
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2)) ->
    U31#(mark(X1),X2) -> U31#(X1,X2)
    proper#(U21(X)) -> proper#(X) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(U21(X)) -> proper#(X) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(U21(X)) -> proper#(X) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(U21(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    proper#(U21(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    proper#(U21(X)) -> proper#(X) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(U21(X)) -> proper#(X) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(U21(X)) -> proper#(X) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(U21(X)) -> proper#(X) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(U21(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(U21(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(U21(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(U21(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(U21(X)) -> proper#(X) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(U21(X)) -> proper#(X) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(U21(X)) -> proper#(X) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(U21(X)) -> proper#(X) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(U21(X)) -> proper#(X) -> proper#(U21(X)) -> proper#(X)
    proper#(U21(X)) -> proper#(X) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(U21(X)) -> proper#(X) -> proper#(isNat(X)) -> proper#(X)
    proper#(U21(X)) -> proper#(X) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(U21(X)) -> proper#(X) -> proper#(U12(X)) -> proper#(X)
    proper#(U21(X)) -> proper#(X) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(U21(X)) -> proper#(X) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(U21(X)) -> proper#(X) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(U21(X)) -> U21#(proper(X)) -> U21#(ok(X)) -> U21#(X)
    proper#(U21(X)) -> U21#(proper(X)) -> U21#(mark(X)) -> U21#(X)
    proper#(U12(X)) -> proper#(X) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(U12(X)) -> proper#(X) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(U12(X)) -> proper#(X) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(U12(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    proper#(U12(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    proper#(U12(X)) -> proper#(X) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(U12(X)) -> proper#(X) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(U12(X)) -> proper#(X) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(U12(X)) -> proper#(X) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(U12(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(U12(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(U12(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(U12(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(U12(X)) -> proper#(X) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(U12(X)) -> proper#(X) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(U12(X)) -> proper#(X) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(U12(X)) -> proper#(X) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(U12(X)) -> proper#(X) -> proper#(U21(X)) -> proper#(X)
    proper#(U12(X)) -> proper#(X) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(U12(X)) -> proper#(X) -> proper#(isNat(X)) -> proper#(X)
    proper#(U12(X)) -> proper#(X) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(U12(X)) -> proper#(X) -> proper#(U12(X)) -> proper#(X)
    proper#(U12(X)) -> proper#(X) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(U12(X)) -> proper#(X) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(U12(X)) -> proper#(X) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(U12(X)) -> U12#(proper(X)) -> U12#(ok(X)) -> U12#(X)
    proper#(U12(X)) -> U12#(proper(X)) -> U12#(mark(X)) -> U12#(X)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(isNat(X)) -> proper#(X) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(isNat(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(isNat(X)) -> proper#(X) -> proper#(U21(X)) -> proper#(X)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(isNat(X)) -> proper#(X) ->
    proper#(isNat(X)) -> proper#(X)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(isNat(X)) -> proper#(X) -> proper#(U12(X)) -> proper#(X)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(isNat(X)) -> proper#(X) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(isNat(X)) -> isNat#(proper(X)) ->
    isNat#(ok(X)) -> isNat#(X)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U21(X)) -> proper#(X)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(isNat(X)) -> proper#(X)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U12(X)) -> proper#(X)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(U11(X1,X2)) -> proper#(X2) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> plus#(proper(X1),proper(X2))
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> proper#(X1)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(plus(X1,X2)) -> proper#(X2)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> U42#(proper(X1),proper(X2),proper(X3))
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X1)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X2)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U42(X1,X2,X3)) -> proper#(X3)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3))
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X1)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X2)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U41(X1,X2,X3)) -> proper#(X3)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2))
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> proper#(X1)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U31(X1,X2)) -> proper#(X2)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U21(X)) -> U21#(proper(X))
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U21(X)) -> proper#(X)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(isNat(X)) -> isNat#(proper(X))
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(isNat(X)) -> proper#(X)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U12(X)) -> U12#(proper(X))
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U12(X)) -> proper#(X)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2))
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> proper#(X1)
    proper#(U11(X1,X2)) -> proper#(X1) ->
    proper#(U11(X1,X2)) -> proper#(X2)
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2)) ->
    U11#(ok(X1),ok(X2)) -> U11#(X1,X2)
    proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2)) ->
    U11#(mark(X1),X2) -> U11#(X1,X2)
    U41#(ok(X1),ok(X2),ok(X3)) -> U41#(X1,X2,X3) ->
    U41#(ok(X1),ok(X2),ok(X3)) -> U41#(X1,X2,X3)
    U41#(ok(X1),ok(X2),ok(X3)) -> U41#(X1,X2,X3) ->
    U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3)
    U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3) ->
    U41#(ok(X1),ok(X2),ok(X3)) -> U41#(X1,X2,X3)
    U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3) ->
    U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3)
    U31#(ok(X1),ok(X2)) -> U31#(X1,X2) ->
    U31#(ok(X1),ok(X2)) -> U31#(X1,X2)
    U31#(ok(X1),ok(X2)) -> U31#(X1,X2) ->
    U31#(mark(X1),X2) -> U31#(X1,X2)
    U31#(mark(X1),X2) -> U31#(X1,X2) ->
    U31#(ok(X1),ok(X2)) -> U31#(X1,X2)
    U31#(mark(X1),X2) -> U31#(X1,X2) -> U31#(mark(X1),X2) -> U31#(X1,X2)
    U21#(ok(X)) -> U21#(X) -> U21#(ok(X)) -> U21#(X)
    U21#(ok(X)) -> U21#(X) -> U21#(mark(X)) -> U21#(X)
    U21#(mark(X)) -> U21#(X) -> U21#(ok(X)) -> U21#(X)
    U21#(mark(X)) -> U21#(X) -> U21#(mark(X)) -> U21#(X)
    U11#(ok(X1),ok(X2)) -> U11#(X1,X2) ->
    U11#(ok(X1),ok(X2)) -> U11#(X1,X2)
    U11#(ok(X1),ok(X2)) -> U11#(X1,X2) ->
    U11#(mark(X1),X2) -> U11#(X1,X2)
    U11#(mark(X1),X2) -> U11#(X1,X2) ->
    U11#(ok(X1),ok(X2)) -> U11#(X1,X2)
    U11#(mark(X1),X2) -> U11#(X1,X2) -> U11#(mark(X1),X2) -> U11#(X1,X2)
    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)
    plus#(ok(X1),ok(X2)) -> plus#(X1,X2) ->
    plus#(ok(X1),ok(X2)) -> plus#(X1,X2)
    plus#(ok(X1),ok(X2)) -> plus#(X1,X2) ->
    plus#(X1,mark(X2)) -> plus#(X1,X2)
    plus#(ok(X1),ok(X2)) -> plus#(X1,X2) ->
    plus#(mark(X1),X2) -> plus#(X1,X2)
    plus#(mark(X1),X2) -> plus#(X1,X2) ->
    plus#(ok(X1),ok(X2)) -> plus#(X1,X2)
    plus#(mark(X1),X2) -> plus#(X1,X2) ->
    plus#(X1,mark(X2)) -> plus#(X1,X2)
    plus#(mark(X1),X2) -> plus#(X1,X2) ->
    plus#(mark(X1),X2) -> plus#(X1,X2)
    plus#(X1,mark(X2)) -> plus#(X1,X2) ->
    plus#(ok(X1),ok(X2)) -> plus#(X1,X2)
    plus#(X1,mark(X2)) -> plus#(X1,X2) ->
    plus#(X1,mark(X2)) -> plus#(X1,X2)
    plus#(X1,mark(X2)) -> plus#(X1,X2) ->
    plus#(mark(X1),X2) -> plus#(X1,X2)
    U42#(ok(X1),ok(X2),ok(X3)) -> U42#(X1,X2,X3) ->
    U42#(ok(X1),ok(X2),ok(X3)) -> U42#(X1,X2,X3)
    U42#(ok(X1),ok(X2),ok(X3)) -> U42#(X1,X2,X3) ->
    U42#(mark(X1),X2,X3) -> U42#(X1,X2,X3)
    U42#(mark(X1),X2,X3) -> U42#(X1,X2,X3) ->
    U42#(ok(X1),ok(X2),ok(X3)) -> U42#(X1,X2,X3)
    U42#(mark(X1),X2,X3) -> U42#(X1,X2,X3) ->
    U42#(mark(X1),X2,X3) -> U42#(X1,X2,X3)
    U12#(ok(X)) -> U12#(X) -> U12#(ok(X)) -> U12#(X)
    U12#(ok(X)) -> U12#(X) -> U12#(mark(X)) -> U12#(X)
    U12#(mark(X)) -> U12#(X) -> U12#(ok(X)) -> U12#(X)
    U12#(mark(X)) -> U12#(X) -> U12#(mark(X)) -> U12#(X)
    isNat#(ok(X)) -> isNat#(X) -> isNat#(ok(X)) -> isNat#(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#(plus(X1,X2)) -> plus#(X1,active(X2))
    active#(s(X)) -> active#(X) -> active#(plus(X1,X2)) -> active#(X2)
    active#(s(X)) -> active#(X) ->
    active#(plus(X1,X2)) -> plus#(active(X1),X2)
    active#(s(X)) -> active#(X) -> active#(plus(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#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3)
    active#(s(X)) -> active#(X) -> active#(U42(X1,X2,X3)) -> active#(X1)
    active#(s(X)) -> active#(X) ->
    active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3)
    active#(s(X)) -> active#(X) -> active#(U41(X1,X2,X3)) -> active#(X1)
    active#(s(X)) -> active#(X) ->
    active#(U31(X1,X2)) -> U31#(active(X1),X2)
    active#(s(X)) -> active#(X) -> active#(U31(X1,X2)) -> active#(X1)
    active#(s(X)) -> active#(X) -> active#(U21(X)) -> U21#(active(X))
    active#(s(X)) -> active#(X) -> active#(U21(X)) -> active#(X)
    active#(s(X)) -> active#(X) -> active#(U12(X)) -> U12#(active(X))
    active#(s(X)) -> active#(X) -> active#(U12(X)) -> active#(X)
    active#(s(X)) -> active#(X) ->
    active#(U11(X1,X2)) -> U11#(active(X1),X2)
    active#(s(X)) -> active#(X) -> active#(U11(X1,X2)) -> active#(X1)
    active#(s(X)) -> active#(X) ->
    active#(plus(N,s(M))) -> U41#(isNat(M),M,N)
    active#(s(X)) -> active#(X) -> active#(plus(N,s(M))) -> isNat#(M)
    active#(s(X)) -> active#(X) ->
    active#(plus(N,0())) -> U31#(isNat(N),N)
    active#(s(X)) -> active#(X) -> active#(plus(N,0())) -> isNat#(N)
    active#(s(X)) -> active#(X) ->
    active#(isNat(s(V1))) -> U21#(isNat(V1))
    active#(s(X)) -> active#(X) -> active#(isNat(s(V1))) -> isNat#(V1)
    active#(s(X)) -> active#(X) ->
    active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2)
    active#(s(X)) -> active#(X) ->
    active#(isNat(plus(V1,V2))) -> isNat#(V1)
    active#(s(X)) -> active#(X) ->
    active#(U42(tt(),M,N)) -> s#(plus(N,M))
    active#(s(X)) -> active#(X) -> active#(U42(tt(),M,N)) -> plus#(N,M)
    active#(s(X)) -> active#(X) ->
    active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N)
    active#(s(X)) -> active#(X) -> active#(U41(tt(),M,N)) -> isNat#(N)
    active#(s(X)) -> active#(X) ->
    active#(U11(tt(),V2)) -> U12#(isNat(V2))
    active#(s(X)) -> active#(X) ->
    active#(U11(tt(),V2)) -> isNat#(V2)
    active#(plus(X1,X2)) -> plus#(active(X1),X2) ->
    plus#(ok(X1),ok(X2)) -> plus#(X1,X2)
    active#(plus(X1,X2)) -> plus#(active(X1),X2) ->
    plus#(X1,mark(X2)) -> plus#(X1,X2)
    active#(plus(X1,X2)) -> plus#(active(X1),X2) ->
    plus#(mark(X1),X2) -> plus#(X1,X2)
    active#(plus(X1,X2)) -> plus#(X1,active(X2)) ->
    plus#(ok(X1),ok(X2)) -> plus#(X1,X2)
    active#(plus(X1,X2)) -> plus#(X1,active(X2)) ->
    plus#(X1,mark(X2)) -> plus#(X1,X2)
    active#(plus(X1,X2)) -> plus#(X1,active(X2)) ->
    plus#(mark(X1),X2) -> plus#(X1,X2)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(plus(X1,X2)) -> plus#(X1,active(X2))
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(plus(X1,X2)) -> active#(X2)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(plus(X1,X2)) -> plus#(active(X1),X2)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(plus(X1,X2)) -> active#(X1)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> s#(active(X))
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> active#(X)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U42(X1,X2,X3)) -> active#(X1)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U41(X1,X2,X3)) -> active#(X1)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U31(X1,X2)) -> U31#(active(X1),X2)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U31(X1,X2)) -> active#(X1)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U21(X)) -> U21#(active(X))
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U21(X)) -> active#(X)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U12(X)) -> U12#(active(X))
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U12(X)) -> active#(X)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U11(X1,X2)) -> U11#(active(X1),X2)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U11(X1,X2)) -> active#(X1)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(plus(N,s(M))) -> U41#(isNat(M),M,N)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(plus(N,s(M))) -> isNat#(M)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(plus(N,0())) -> U31#(isNat(N),N)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(plus(N,0())) -> isNat#(N)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(isNat(s(V1))) -> U21#(isNat(V1))
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(isNat(s(V1))) -> isNat#(V1)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(isNat(plus(V1,V2))) -> isNat#(V1)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U42(tt(),M,N)) -> s#(plus(N,M))
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U42(tt(),M,N)) -> plus#(N,M)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U41(tt(),M,N)) -> isNat#(N)
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U11(tt(),V2)) -> U12#(isNat(V2))
    active#(plus(X1,X2)) -> active#(X2) ->
    active#(U11(tt(),V2)) -> isNat#(V2)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(plus(X1,X2)) -> plus#(X1,active(X2))
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(plus(X1,X2)) -> active#(X2)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(plus(X1,X2)) -> plus#(active(X1),X2)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(plus(X1,X2)) -> active#(X1)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U42(X1,X2,X3)) -> active#(X1)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U41(X1,X2,X3)) -> active#(X1)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U31(X1,X2)) -> U31#(active(X1),X2)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U31(X1,X2)) -> active#(X1)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U21(X)) -> U21#(active(X))
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U21(X)) -> active#(X)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U12(X)) -> U12#(active(X))
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U12(X)) -> active#(X)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U11(X1,X2)) -> U11#(active(X1),X2)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U11(X1,X2)) -> active#(X1)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(plus(N,s(M))) -> U41#(isNat(M),M,N)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(plus(N,s(M))) -> isNat#(M)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(plus(N,0())) -> U31#(isNat(N),N)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(plus(N,0())) -> isNat#(N)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(isNat(s(V1))) -> U21#(isNat(V1))
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(isNat(s(V1))) -> isNat#(V1)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(isNat(plus(V1,V2))) -> isNat#(V1)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U42(tt(),M,N)) -> s#(plus(N,M))
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U42(tt(),M,N)) -> plus#(N,M)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U41(tt(),M,N)) -> isNat#(N)
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U11(tt(),V2)) -> U12#(isNat(V2))
    active#(plus(X1,X2)) -> active#(X1) ->
    active#(U11(tt(),V2)) -> isNat#(V2)
    active#(plus(N,0())) -> U31#(isNat(N),N) ->
    U31#(ok(X1),ok(X2)) -> U31#(X1,X2)
    active#(plus(N,0())) -> U31#(isNat(N),N) ->
    U31#(mark(X1),X2) -> U31#(X1,X2)
    active#(plus(N,0())) -> isNat#(N) ->
    isNat#(ok(X)) -> isNat#(X)
    active#(plus(N,s(M))) -> U41#(isNat(M),M,N) ->
    U41#(ok(X1),ok(X2),ok(X3)) -> U41#(X1,X2,X3)
    active#(plus(N,s(M))) -> U41#(isNat(M),M,N) ->
    U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3)
    active#(plus(N,s(M))) -> isNat#(M) ->
    isNat#(ok(X)) -> isNat#(X)
    active#(U42(tt(),M,N)) -> s#(plus(N,M)) ->
    s#(ok(X)) -> s#(X)
    active#(U42(tt(),M,N)) -> s#(plus(N,M)) ->
    s#(mark(X)) -> s#(X)
    active#(U42(tt(),M,N)) -> plus#(N,M) ->
    plus#(ok(X1),ok(X2)) -> plus#(X1,X2)
    active#(U42(tt(),M,N)) -> plus#(N,M) ->
    plus#(X1,mark(X2)) -> plus#(X1,X2)
    active#(U42(tt(),M,N)) -> plus#(N,M) ->
    plus#(mark(X1),X2) -> plus#(X1,X2)
    active#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3) ->
    U42#(ok(X1),ok(X2),ok(X3)) -> U42#(X1,X2,X3)
    active#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3) ->
    U42#(mark(X1),X2,X3) -> U42#(X1,X2,X3)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(plus(X1,X2)) -> plus#(X1,active(X2))
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(plus(X1,X2)) -> active#(X2)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(plus(X1,X2)) -> plus#(active(X1),X2)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(plus(X1,X2)) -> active#(X1)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U42(X1,X2,X3)) -> active#(X1)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U41(X1,X2,X3)) -> active#(X1)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U31(X1,X2)) -> U31#(active(X1),X2)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U31(X1,X2)) -> active#(X1)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U21(X)) -> U21#(active(X))
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U21(X)) -> active#(X)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U12(X)) -> U12#(active(X))
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U12(X)) -> active#(X)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U11(X1,X2)) -> U11#(active(X1),X2)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U11(X1,X2)) -> active#(X1)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(plus(N,s(M))) -> U41#(isNat(M),M,N)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(plus(N,s(M))) -> isNat#(M)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(plus(N,0())) -> U31#(isNat(N),N)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(plus(N,0())) -> isNat#(N)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(isNat(s(V1))) -> U21#(isNat(V1))
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(isNat(s(V1))) -> isNat#(V1)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(isNat(plus(V1,V2))) -> isNat#(V1)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U42(tt(),M,N)) -> s#(plus(N,M))
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U42(tt(),M,N)) -> plus#(N,M)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U41(tt(),M,N)) -> isNat#(N)
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U11(tt(),V2)) -> U12#(isNat(V2))
    active#(U42(X1,X2,X3)) -> active#(X1) ->
    active#(U11(tt(),V2)) -> isNat#(V2)
    active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N) ->
    U42#(ok(X1),ok(X2),ok(X3)) -> U42#(X1,X2,X3)
    active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N) ->
    U42#(mark(X1),X2,X3) -> U42#(X1,X2,X3)
    active#(U41(tt(),M,N)) -> isNat#(N) ->
    isNat#(ok(X)) -> isNat#(X)
    active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3) ->
    U41#(ok(X1),ok(X2),ok(X3)) -> U41#(X1,X2,X3)
    active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3) ->
    U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(plus(X1,X2)) -> plus#(X1,active(X2))
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(plus(X1,X2)) -> active#(X2)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(plus(X1,X2)) -> plus#(active(X1),X2)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(plus(X1,X2)) -> active#(X1)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U42(X1,X2,X3)) -> active#(X1)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U41(X1,X2,X3)) -> active#(X1)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U31(X1,X2)) -> U31#(active(X1),X2)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U31(X1,X2)) -> active#(X1)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U21(X)) -> U21#(active(X))
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U21(X)) -> active#(X)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U12(X)) -> U12#(active(X))
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U12(X)) -> active#(X)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U11(X1,X2)) -> U11#(active(X1),X2)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U11(X1,X2)) -> active#(X1)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(plus(N,s(M))) -> U41#(isNat(M),M,N)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(plus(N,s(M))) -> isNat#(M)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(plus(N,0())) -> U31#(isNat(N),N)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(plus(N,0())) -> isNat#(N)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(isNat(s(V1))) -> U21#(isNat(V1))
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(isNat(s(V1))) -> isNat#(V1)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(isNat(plus(V1,V2))) -> isNat#(V1)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U42(tt(),M,N)) -> s#(plus(N,M))
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U42(tt(),M,N)) -> plus#(N,M)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U41(tt(),M,N)) -> isNat#(N)
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U11(tt(),V2)) -> U12#(isNat(V2))
    active#(U41(X1,X2,X3)) -> active#(X1) ->
    active#(U11(tt(),V2)) -> isNat#(V2)
    active#(U31(X1,X2)) -> U31#(active(X1),X2) ->
    U31#(ok(X1),ok(X2)) -> U31#(X1,X2)
    active#(U31(X1,X2)) -> U31#(active(X1),X2) ->
    U31#(mark(X1),X2) -> U31#(X1,X2)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(plus(X1,X2)) -> plus#(X1,active(X2))
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(plus(X1,X2)) -> active#(X2)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(plus(X1,X2)) -> plus#(active(X1),X2)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(plus(X1,X2)) -> active#(X1)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U42(X1,X2,X3)) -> active#(X1)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U41(X1,X2,X3)) -> active#(X1)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U31(X1,X2)) -> U31#(active(X1),X2)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U31(X1,X2)) -> active#(X1)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U21(X)) -> U21#(active(X))
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U21(X)) -> active#(X)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U12(X)) -> U12#(active(X))
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U12(X)) -> active#(X)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U11(X1,X2)) -> U11#(active(X1),X2)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U11(X1,X2)) -> active#(X1)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(plus(N,s(M))) -> U41#(isNat(M),M,N)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(plus(N,s(M))) -> isNat#(M)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(plus(N,0())) -> U31#(isNat(N),N)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(plus(N,0())) -> isNat#(N)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(isNat(s(V1))) -> U21#(isNat(V1))
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(isNat(s(V1))) -> isNat#(V1)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(isNat(plus(V1,V2))) -> isNat#(V1)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U42(tt(),M,N)) -> s#(plus(N,M))
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U42(tt(),M,N)) -> plus#(N,M)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U41(tt(),M,N)) -> isNat#(N)
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U11(tt(),V2)) -> U12#(isNat(V2))
    active#(U31(X1,X2)) -> active#(X1) ->
    active#(U11(tt(),V2)) -> isNat#(V2)
    active#(U21(X)) -> U21#(active(X)) -> U21#(ok(X)) -> U21#(X)
    active#(U21(X)) -> U21#(active(X)) -> U21#(mark(X)) -> U21#(X)
    active#(U21(X)) -> active#(X) ->
    active#(plus(X1,X2)) -> plus#(X1,active(X2))
    active#(U21(X)) -> active#(X) ->
    active#(plus(X1,X2)) -> active#(X2)
    active#(U21(X)) -> active#(X) ->
    active#(plus(X1,X2)) -> plus#(active(X1),X2)
    active#(U21(X)) -> active#(X) ->
    active#(plus(X1,X2)) -> active#(X1)
    active#(U21(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    active#(U21(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    active#(U21(X)) -> active#(X) ->
    active#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3)
    active#(U21(X)) -> active#(X) ->
    active#(U42(X1,X2,X3)) -> active#(X1)
    active#(U21(X)) -> active#(X) ->
    active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3)
    active#(U21(X)) -> active#(X) ->
    active#(U41(X1,X2,X3)) -> active#(X1)
    active#(U21(X)) -> active#(X) ->
    active#(U31(X1,X2)) -> U31#(active(X1),X2)
    active#(U21(X)) -> active#(X) ->
    active#(U31(X1,X2)) -> active#(X1)
    active#(U21(X)) -> active#(X) ->
    active#(U21(X)) -> U21#(active(X))
    active#(U21(X)) -> active#(X) -> active#(U21(X)) -> active#(X)
    active#(U21(X)) -> active#(X) ->
    active#(U12(X)) -> U12#(active(X))
    active#(U21(X)) -> active#(X) -> active#(U12(X)) -> active#(X)
    active#(U21(X)) -> active#(X) ->
    active#(U11(X1,X2)) -> U11#(active(X1),X2)
    active#(U21(X)) -> active#(X) ->
    active#(U11(X1,X2)) -> active#(X1)
    active#(U21(X)) -> active#(X) ->
    active#(plus(N,s(M))) -> U41#(isNat(M),M,N)
    active#(U21(X)) -> active#(X) ->
    active#(plus(N,s(M))) -> isNat#(M)
    active#(U21(X)) -> active#(X) ->
    active#(plus(N,0())) -> U31#(isNat(N),N)
    active#(U21(X)) -> active#(X) -> active#(plus(N,0())) -> isNat#(N)
    active#(U21(X)) -> active#(X) ->
    active#(isNat(s(V1))) -> U21#(isNat(V1))
    active#(U21(X)) -> active#(X) ->
    active#(isNat(s(V1))) -> isNat#(V1)
    active#(U21(X)) -> active#(X) ->
    active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2)
    active#(U21(X)) -> active#(X) ->
    active#(isNat(plus(V1,V2))) -> isNat#(V1)
    active#(U21(X)) -> active#(X) ->
    active#(U42(tt(),M,N)) -> s#(plus(N,M))
    active#(U21(X)) -> active#(X) ->
    active#(U42(tt(),M,N)) -> plus#(N,M)
    active#(U21(X)) -> active#(X) ->
    active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N)
    active#(U21(X)) -> active#(X) ->
    active#(U41(tt(),M,N)) -> isNat#(N)
    active#(U21(X)) -> active#(X) ->
    active#(U11(tt(),V2)) -> U12#(isNat(V2))
    active#(U21(X)) -> active#(X) ->
    active#(U11(tt(),V2)) -> isNat#(V2)
    active#(U12(X)) -> U12#(active(X)) -> U12#(ok(X)) -> U12#(X)
    active#(U12(X)) -> U12#(active(X)) -> U12#(mark(X)) -> U12#(X)
    active#(U12(X)) -> active#(X) ->
    active#(plus(X1,X2)) -> plus#(X1,active(X2))
    active#(U12(X)) -> active#(X) ->
    active#(plus(X1,X2)) -> active#(X2)
    active#(U12(X)) -> active#(X) ->
    active#(plus(X1,X2)) -> plus#(active(X1),X2)
    active#(U12(X)) -> active#(X) ->
    active#(plus(X1,X2)) -> active#(X1)
    active#(U12(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    active#(U12(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    active#(U12(X)) -> active#(X) ->
    active#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3)
    active#(U12(X)) -> active#(X) ->
    active#(U42(X1,X2,X3)) -> active#(X1)
    active#(U12(X)) -> active#(X) ->
    active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3)
    active#(U12(X)) -> active#(X) ->
    active#(U41(X1,X2,X3)) -> active#(X1)
    active#(U12(X)) -> active#(X) ->
    active#(U31(X1,X2)) -> U31#(active(X1),X2)
    active#(U12(X)) -> active#(X) ->
    active#(U31(X1,X2)) -> active#(X1)
    active#(U12(X)) -> active#(X) ->
    active#(U21(X)) -> U21#(active(X))
    active#(U12(X)) -> active#(X) -> active#(U21(X)) -> active#(X)
    active#(U12(X)) -> active#(X) ->
    active#(U12(X)) -> U12#(active(X))
    active#(U12(X)) -> active#(X) -> active#(U12(X)) -> active#(X)
    active#(U12(X)) -> active#(X) ->
    active#(U11(X1,X2)) -> U11#(active(X1),X2)
    active#(U12(X)) -> active#(X) ->
    active#(U11(X1,X2)) -> active#(X1)
    active#(U12(X)) -> active#(X) ->
    active#(plus(N,s(M))) -> U41#(isNat(M),M,N)
    active#(U12(X)) -> active#(X) ->
    active#(plus(N,s(M))) -> isNat#(M)
    active#(U12(X)) -> active#(X) ->
    active#(plus(N,0())) -> U31#(isNat(N),N)
    active#(U12(X)) -> active#(X) -> active#(plus(N,0())) -> isNat#(N)
    active#(U12(X)) -> active#(X) ->
    active#(isNat(s(V1))) -> U21#(isNat(V1))
    active#(U12(X)) -> active#(X) ->
    active#(isNat(s(V1))) -> isNat#(V1)
    active#(U12(X)) -> active#(X) ->
    active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2)
    active#(U12(X)) -> active#(X) ->
    active#(isNat(plus(V1,V2))) -> isNat#(V1)
    active#(U12(X)) -> active#(X) ->
    active#(U42(tt(),M,N)) -> s#(plus(N,M))
    active#(U12(X)) -> active#(X) ->
    active#(U42(tt(),M,N)) -> plus#(N,M)
    active#(U12(X)) -> active#(X) ->
    active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N)
    active#(U12(X)) -> active#(X) ->
    active#(U41(tt(),M,N)) -> isNat#(N)
    active#(U12(X)) -> active#(X) ->
    active#(U11(tt(),V2)) -> U12#(isNat(V2))
    active#(U12(X)) -> active#(X) ->
    active#(U11(tt(),V2)) -> isNat#(V2)
    active#(isNat(s(V1))) -> U21#(isNat(V1)) ->
    U21#(ok(X)) -> U21#(X)
    active#(isNat(s(V1))) -> U21#(isNat(V1)) ->
    U21#(mark(X)) -> U21#(X)
    active#(isNat(s(V1))) -> isNat#(V1) ->
    isNat#(ok(X)) -> isNat#(X)
    active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2) ->
    U11#(ok(X1),ok(X2)) -> U11#(X1,X2)
    active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2) ->
    U11#(mark(X1),X2) -> U11#(X1,X2)
    active#(isNat(plus(V1,V2))) -> isNat#(V1) ->
    isNat#(ok(X)) -> isNat#(X)
    active#(U11(tt(),V2)) -> U12#(isNat(V2)) ->
    U12#(ok(X)) -> U12#(X)
    active#(U11(tt(),V2)) -> U12#(isNat(V2)) ->
    U12#(mark(X)) -> U12#(X)
    active#(U11(tt(),V2)) -> isNat#(V2) ->
    isNat#(ok(X)) -> isNat#(X)
    active#(U11(X1,X2)) -> U11#(active(X1),X2) ->
    U11#(ok(X1),ok(X2)) -> U11#(X1,X2)
    active#(U11(X1,X2)) -> U11#(active(X1),X2) ->
    U11#(mark(X1),X2) -> U11#(X1,X2)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(plus(X1,X2)) -> plus#(X1,active(X2))
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(plus(X1,X2)) -> active#(X2)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(plus(X1,X2)) -> plus#(active(X1),X2)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(plus(X1,X2)) -> active#(X1)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U42(X1,X2,X3)) -> U42#(active(X1),X2,X3)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U42(X1,X2,X3)) -> active#(X1)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U41(X1,X2,X3)) -> active#(X1)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U31(X1,X2)) -> U31#(active(X1),X2)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U31(X1,X2)) -> active#(X1)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U21(X)) -> U21#(active(X))
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U21(X)) -> active#(X)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U12(X)) -> U12#(active(X))
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U12(X)) -> active#(X)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U11(X1,X2)) -> U11#(active(X1),X2)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U11(X1,X2)) -> active#(X1)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(plus(N,s(M))) -> U41#(isNat(M),M,N)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(plus(N,s(M))) -> isNat#(M)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(plus(N,0())) -> U31#(isNat(N),N)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(plus(N,0())) -> isNat#(N)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(isNat(s(V1))) -> U21#(isNat(V1))
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(isNat(s(V1))) -> isNat#(V1)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(isNat(plus(V1,V2))) -> U11#(isNat(V1),V2)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(isNat(plus(V1,V2))) -> isNat#(V1)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U42(tt(),M,N)) -> s#(plus(N,M))
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U42(tt(),M,N)) -> plus#(N,M)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U41(tt(),M,N)) -> U42#(isNat(N),M,N)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U41(tt(),M,N)) -> isNat#(N)
    active#(U11(X1,X2)) -> active#(X1) ->
    active#(U11(tt(),V2)) -> U12#(isNat(V2))
    active#(U11(X1,X2)) -> active#(X1) -> active#(U11(tt(),V2)) -> isNat#(V2)
   SCC Processor:
    #sccs: 12
    #rules: 45
    #arcs: 852/6241
    DPs:
     top#(ok(X)) -> top#(active(X))
     top#(mark(X)) -> top#(proper(X))
    TRS:
     active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
     active(U12(tt())) -> mark(tt())
     active(U21(tt())) -> mark(tt())
     active(U31(tt(),N)) -> mark(N)
     active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
     active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
     active(isNat(0())) -> mark(tt())
     active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
     active(isNat(s(V1))) -> mark(U21(isNat(V1)))
     active(plus(N,0())) -> mark(U31(isNat(N),N))
     active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
     active(U11(X1,X2)) -> U11(active(X1),X2)
     active(U12(X)) -> U12(active(X))
     active(U21(X)) -> U21(active(X))
     active(U31(X1,X2)) -> U31(active(X1),X2)
     active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
     active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
     active(s(X)) -> s(active(X))
     active(plus(X1,X2)) -> plus(active(X1),X2)
     active(plus(X1,X2)) -> plus(X1,active(X2))
     U11(mark(X1),X2) -> mark(U11(X1,X2))
     U12(mark(X)) -> mark(U12(X))
     U21(mark(X)) -> mark(U21(X))
     U31(mark(X1),X2) -> mark(U31(X1,X2))
     U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
     U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
     s(mark(X)) -> mark(s(X))
     plus(mark(X1),X2) -> mark(plus(X1,X2))
     plus(X1,mark(X2)) -> mark(plus(X1,X2))
     proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
     proper(tt()) -> ok(tt())
     proper(U12(X)) -> U12(proper(X))
     proper(isNat(X)) -> isNat(proper(X))
     proper(U21(X)) -> U21(proper(X))
     proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
     proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
     proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
     proper(s(X)) -> s(proper(X))
     proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
     U12(ok(X)) -> ok(U12(X))
     isNat(ok(X)) -> ok(isNat(X))
     U21(ok(X)) -> ok(U21(X))
     U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
     U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
     U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
     s(ok(X)) -> ok(s(X))
     plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Open
    
    DPs:
     active#(U11(X1,X2)) -> active#(X1)
     active#(U12(X)) -> active#(X)
     active#(U21(X)) -> active#(X)
     active#(U31(X1,X2)) -> active#(X1)
     active#(U41(X1,X2,X3)) -> active#(X1)
     active#(U42(X1,X2,X3)) -> active#(X1)
     active#(s(X)) -> active#(X)
     active#(plus(X1,X2)) -> active#(X1)
     active#(plus(X1,X2)) -> active#(X2)
    TRS:
     active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
     active(U12(tt())) -> mark(tt())
     active(U21(tt())) -> mark(tt())
     active(U31(tt(),N)) -> mark(N)
     active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
     active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
     active(isNat(0())) -> mark(tt())
     active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
     active(isNat(s(V1))) -> mark(U21(isNat(V1)))
     active(plus(N,0())) -> mark(U31(isNat(N),N))
     active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
     active(U11(X1,X2)) -> U11(active(X1),X2)
     active(U12(X)) -> U12(active(X))
     active(U21(X)) -> U21(active(X))
     active(U31(X1,X2)) -> U31(active(X1),X2)
     active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
     active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
     active(s(X)) -> s(active(X))
     active(plus(X1,X2)) -> plus(active(X1),X2)
     active(plus(X1,X2)) -> plus(X1,active(X2))
     U11(mark(X1),X2) -> mark(U11(X1,X2))
     U12(mark(X)) -> mark(U12(X))
     U21(mark(X)) -> mark(U21(X))
     U31(mark(X1),X2) -> mark(U31(X1,X2))
     U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
     U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
     s(mark(X)) -> mark(s(X))
     plus(mark(X1),X2) -> mark(plus(X1,X2))
     plus(X1,mark(X2)) -> mark(plus(X1,X2))
     proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
     proper(tt()) -> ok(tt())
     proper(U12(X)) -> U12(proper(X))
     proper(isNat(X)) -> isNat(proper(X))
     proper(U21(X)) -> U21(proper(X))
     proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
     proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
     proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
     proper(s(X)) -> s(proper(X))
     proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
     U12(ok(X)) -> ok(U12(X))
     isNat(ok(X)) -> ok(isNat(X))
     U21(ok(X)) -> ok(U21(X))
     U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
     U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
     U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
     s(ok(X)) -> ok(s(X))
     plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(active#) = 0
     problem:
      DPs:
       
      TRS:
       active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
       active(U12(tt())) -> mark(tt())
       active(U21(tt())) -> mark(tt())
       active(U31(tt(),N)) -> mark(N)
       active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
       active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
       active(isNat(0())) -> mark(tt())
       active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
       active(isNat(s(V1))) -> mark(U21(isNat(V1)))
       active(plus(N,0())) -> mark(U31(isNat(N),N))
       active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
       active(U11(X1,X2)) -> U11(active(X1),X2)
       active(U12(X)) -> U12(active(X))
       active(U21(X)) -> U21(active(X))
       active(U31(X1,X2)) -> U31(active(X1),X2)
       active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
       active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
       active(s(X)) -> s(active(X))
       active(plus(X1,X2)) -> plus(active(X1),X2)
       active(plus(X1,X2)) -> plus(X1,active(X2))
       U11(mark(X1),X2) -> mark(U11(X1,X2))
       U12(mark(X)) -> mark(U12(X))
       U21(mark(X)) -> mark(U21(X))
       U31(mark(X1),X2) -> mark(U31(X1,X2))
       U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
       U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
       s(mark(X)) -> mark(s(X))
       plus(mark(X1),X2) -> mark(plus(X1,X2))
       plus(X1,mark(X2)) -> mark(plus(X1,X2))
       proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
       proper(tt()) -> ok(tt())
       proper(U12(X)) -> U12(proper(X))
       proper(isNat(X)) -> isNat(proper(X))
       proper(U21(X)) -> U21(proper(X))
       proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
       proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
       proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
       proper(s(X)) -> s(proper(X))
       proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
       U12(ok(X)) -> ok(U12(X))
       isNat(ok(X)) -> ok(isNat(X))
       U21(ok(X)) -> ok(U21(X))
       U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
       U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
       U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
       s(ok(X)) -> ok(s(X))
       plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     proper#(U11(X1,X2)) -> proper#(X2)
     proper#(U11(X1,X2)) -> proper#(X1)
     proper#(U12(X)) -> proper#(X)
     proper#(isNat(X)) -> proper#(X)
     proper#(U21(X)) -> proper#(X)
     proper#(U31(X1,X2)) -> proper#(X2)
     proper#(U31(X1,X2)) -> proper#(X1)
     proper#(U41(X1,X2,X3)) -> proper#(X3)
     proper#(U41(X1,X2,X3)) -> proper#(X2)
     proper#(U41(X1,X2,X3)) -> proper#(X1)
     proper#(U42(X1,X2,X3)) -> proper#(X3)
     proper#(U42(X1,X2,X3)) -> proper#(X2)
     proper#(U42(X1,X2,X3)) -> proper#(X1)
     proper#(s(X)) -> proper#(X)
     proper#(plus(X1,X2)) -> proper#(X2)
     proper#(plus(X1,X2)) -> proper#(X1)
    TRS:
     active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
     active(U12(tt())) -> mark(tt())
     active(U21(tt())) -> mark(tt())
     active(U31(tt(),N)) -> mark(N)
     active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
     active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
     active(isNat(0())) -> mark(tt())
     active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
     active(isNat(s(V1))) -> mark(U21(isNat(V1)))
     active(plus(N,0())) -> mark(U31(isNat(N),N))
     active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
     active(U11(X1,X2)) -> U11(active(X1),X2)
     active(U12(X)) -> U12(active(X))
     active(U21(X)) -> U21(active(X))
     active(U31(X1,X2)) -> U31(active(X1),X2)
     active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
     active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
     active(s(X)) -> s(active(X))
     active(plus(X1,X2)) -> plus(active(X1),X2)
     active(plus(X1,X2)) -> plus(X1,active(X2))
     U11(mark(X1),X2) -> mark(U11(X1,X2))
     U12(mark(X)) -> mark(U12(X))
     U21(mark(X)) -> mark(U21(X))
     U31(mark(X1),X2) -> mark(U31(X1,X2))
     U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
     U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
     s(mark(X)) -> mark(s(X))
     plus(mark(X1),X2) -> mark(plus(X1,X2))
     plus(X1,mark(X2)) -> mark(plus(X1,X2))
     proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
     proper(tt()) -> ok(tt())
     proper(U12(X)) -> U12(proper(X))
     proper(isNat(X)) -> isNat(proper(X))
     proper(U21(X)) -> U21(proper(X))
     proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
     proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
     proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
     proper(s(X)) -> s(proper(X))
     proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
     U12(ok(X)) -> ok(U12(X))
     isNat(ok(X)) -> ok(isNat(X))
     U21(ok(X)) -> ok(U21(X))
     U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
     U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
     U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
     s(ok(X)) -> ok(s(X))
     plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(proper#) = 0
     problem:
      DPs:
       
      TRS:
       active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
       active(U12(tt())) -> mark(tt())
       active(U21(tt())) -> mark(tt())
       active(U31(tt(),N)) -> mark(N)
       active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
       active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
       active(isNat(0())) -> mark(tt())
       active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
       active(isNat(s(V1))) -> mark(U21(isNat(V1)))
       active(plus(N,0())) -> mark(U31(isNat(N),N))
       active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
       active(U11(X1,X2)) -> U11(active(X1),X2)
       active(U12(X)) -> U12(active(X))
       active(U21(X)) -> U21(active(X))
       active(U31(X1,X2)) -> U31(active(X1),X2)
       active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
       active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
       active(s(X)) -> s(active(X))
       active(plus(X1,X2)) -> plus(active(X1),X2)
       active(plus(X1,X2)) -> plus(X1,active(X2))
       U11(mark(X1),X2) -> mark(U11(X1,X2))
       U12(mark(X)) -> mark(U12(X))
       U21(mark(X)) -> mark(U21(X))
       U31(mark(X1),X2) -> mark(U31(X1,X2))
       U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
       U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
       s(mark(X)) -> mark(s(X))
       plus(mark(X1),X2) -> mark(plus(X1,X2))
       plus(X1,mark(X2)) -> mark(plus(X1,X2))
       proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
       proper(tt()) -> ok(tt())
       proper(U12(X)) -> U12(proper(X))
       proper(isNat(X)) -> isNat(proper(X))
       proper(U21(X)) -> U21(proper(X))
       proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
       proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
       proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
       proper(s(X)) -> s(proper(X))
       proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
       U12(ok(X)) -> ok(U12(X))
       isNat(ok(X)) -> ok(isNat(X))
       U21(ok(X)) -> ok(U21(X))
       U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
       U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
       U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
       s(ok(X)) -> ok(s(X))
       plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     plus#(mark(X1),X2) -> plus#(X1,X2)
     plus#(X1,mark(X2)) -> plus#(X1,X2)
     plus#(ok(X1),ok(X2)) -> plus#(X1,X2)
    TRS:
     active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
     active(U12(tt())) -> mark(tt())
     active(U21(tt())) -> mark(tt())
     active(U31(tt(),N)) -> mark(N)
     active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
     active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
     active(isNat(0())) -> mark(tt())
     active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
     active(isNat(s(V1))) -> mark(U21(isNat(V1)))
     active(plus(N,0())) -> mark(U31(isNat(N),N))
     active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
     active(U11(X1,X2)) -> U11(active(X1),X2)
     active(U12(X)) -> U12(active(X))
     active(U21(X)) -> U21(active(X))
     active(U31(X1,X2)) -> U31(active(X1),X2)
     active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
     active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
     active(s(X)) -> s(active(X))
     active(plus(X1,X2)) -> plus(active(X1),X2)
     active(plus(X1,X2)) -> plus(X1,active(X2))
     U11(mark(X1),X2) -> mark(U11(X1,X2))
     U12(mark(X)) -> mark(U12(X))
     U21(mark(X)) -> mark(U21(X))
     U31(mark(X1),X2) -> mark(U31(X1,X2))
     U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
     U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
     s(mark(X)) -> mark(s(X))
     plus(mark(X1),X2) -> mark(plus(X1,X2))
     plus(X1,mark(X2)) -> mark(plus(X1,X2))
     proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
     proper(tt()) -> ok(tt())
     proper(U12(X)) -> U12(proper(X))
     proper(isNat(X)) -> isNat(proper(X))
     proper(U21(X)) -> U21(proper(X))
     proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
     proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
     proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
     proper(s(X)) -> s(proper(X))
     proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
     U12(ok(X)) -> ok(U12(X))
     isNat(ok(X)) -> ok(isNat(X))
     U21(ok(X)) -> ok(U21(X))
     U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
     U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
     U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
     s(ok(X)) -> ok(s(X))
     plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(plus#) = 1
     problem:
      DPs:
       plus#(mark(X1),X2) -> plus#(X1,X2)
      TRS:
       active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
       active(U12(tt())) -> mark(tt())
       active(U21(tt())) -> mark(tt())
       active(U31(tt(),N)) -> mark(N)
       active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
       active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
       active(isNat(0())) -> mark(tt())
       active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
       active(isNat(s(V1))) -> mark(U21(isNat(V1)))
       active(plus(N,0())) -> mark(U31(isNat(N),N))
       active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
       active(U11(X1,X2)) -> U11(active(X1),X2)
       active(U12(X)) -> U12(active(X))
       active(U21(X)) -> U21(active(X))
       active(U31(X1,X2)) -> U31(active(X1),X2)
       active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
       active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
       active(s(X)) -> s(active(X))
       active(plus(X1,X2)) -> plus(active(X1),X2)
       active(plus(X1,X2)) -> plus(X1,active(X2))
       U11(mark(X1),X2) -> mark(U11(X1,X2))
       U12(mark(X)) -> mark(U12(X))
       U21(mark(X)) -> mark(U21(X))
       U31(mark(X1),X2) -> mark(U31(X1,X2))
       U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
       U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
       s(mark(X)) -> mark(s(X))
       plus(mark(X1),X2) -> mark(plus(X1,X2))
       plus(X1,mark(X2)) -> mark(plus(X1,X2))
       proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
       proper(tt()) -> ok(tt())
       proper(U12(X)) -> U12(proper(X))
       proper(isNat(X)) -> isNat(proper(X))
       proper(U21(X)) -> U21(proper(X))
       proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
       proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
       proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
       proper(s(X)) -> s(proper(X))
       proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
       U12(ok(X)) -> ok(U12(X))
       isNat(ok(X)) -> ok(isNat(X))
       U21(ok(X)) -> ok(U21(X))
       U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
       U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
       U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
       s(ok(X)) -> ok(s(X))
       plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Subterm Criterion Processor:
      simple projection:
       pi(plus#) = 0
      problem:
       DPs:
        
       TRS:
        active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
        active(U12(tt())) -> mark(tt())
        active(U21(tt())) -> mark(tt())
        active(U31(tt(),N)) -> mark(N)
        active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
        active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
        active(isNat(0())) -> mark(tt())
        active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
        active(isNat(s(V1))) -> mark(U21(isNat(V1)))
        active(plus(N,0())) -> mark(U31(isNat(N),N))
        active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
        active(U11(X1,X2)) -> U11(active(X1),X2)
        active(U12(X)) -> U12(active(X))
        active(U21(X)) -> U21(active(X))
        active(U31(X1,X2)) -> U31(active(X1),X2)
        active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
        active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
        active(s(X)) -> s(active(X))
        active(plus(X1,X2)) -> plus(active(X1),X2)
        active(plus(X1,X2)) -> plus(X1,active(X2))
        U11(mark(X1),X2) -> mark(U11(X1,X2))
        U12(mark(X)) -> mark(U12(X))
        U21(mark(X)) -> mark(U21(X))
        U31(mark(X1),X2) -> mark(U31(X1,X2))
        U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
        U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
        s(mark(X)) -> mark(s(X))
        plus(mark(X1),X2) -> mark(plus(X1,X2))
        plus(X1,mark(X2)) -> mark(plus(X1,X2))
        proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
        proper(tt()) -> ok(tt())
        proper(U12(X)) -> U12(proper(X))
        proper(isNat(X)) -> isNat(proper(X))
        proper(U21(X)) -> U21(proper(X))
        proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
        proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
        proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
        proper(s(X)) -> s(proper(X))
        proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
        U12(ok(X)) -> ok(U12(X))
        isNat(ok(X)) -> ok(isNat(X))
        U21(ok(X)) -> ok(U21(X))
        U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
        U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
        U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
        s(ok(X)) -> ok(s(X))
        plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     s#(mark(X)) -> s#(X)
     s#(ok(X)) -> s#(X)
    TRS:
     active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
     active(U12(tt())) -> mark(tt())
     active(U21(tt())) -> mark(tt())
     active(U31(tt(),N)) -> mark(N)
     active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
     active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
     active(isNat(0())) -> mark(tt())
     active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
     active(isNat(s(V1))) -> mark(U21(isNat(V1)))
     active(plus(N,0())) -> mark(U31(isNat(N),N))
     active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
     active(U11(X1,X2)) -> U11(active(X1),X2)
     active(U12(X)) -> U12(active(X))
     active(U21(X)) -> U21(active(X))
     active(U31(X1,X2)) -> U31(active(X1),X2)
     active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
     active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
     active(s(X)) -> s(active(X))
     active(plus(X1,X2)) -> plus(active(X1),X2)
     active(plus(X1,X2)) -> plus(X1,active(X2))
     U11(mark(X1),X2) -> mark(U11(X1,X2))
     U12(mark(X)) -> mark(U12(X))
     U21(mark(X)) -> mark(U21(X))
     U31(mark(X1),X2) -> mark(U31(X1,X2))
     U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
     U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
     s(mark(X)) -> mark(s(X))
     plus(mark(X1),X2) -> mark(plus(X1,X2))
     plus(X1,mark(X2)) -> mark(plus(X1,X2))
     proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
     proper(tt()) -> ok(tt())
     proper(U12(X)) -> U12(proper(X))
     proper(isNat(X)) -> isNat(proper(X))
     proper(U21(X)) -> U21(proper(X))
     proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
     proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
     proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
     proper(s(X)) -> s(proper(X))
     proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
     U12(ok(X)) -> ok(U12(X))
     isNat(ok(X)) -> ok(isNat(X))
     U21(ok(X)) -> ok(U21(X))
     U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
     U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
     U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
     s(ok(X)) -> ok(s(X))
     plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(s#) = 0
     problem:
      DPs:
       
      TRS:
       active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
       active(U12(tt())) -> mark(tt())
       active(U21(tt())) -> mark(tt())
       active(U31(tt(),N)) -> mark(N)
       active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
       active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
       active(isNat(0())) -> mark(tt())
       active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
       active(isNat(s(V1))) -> mark(U21(isNat(V1)))
       active(plus(N,0())) -> mark(U31(isNat(N),N))
       active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
       active(U11(X1,X2)) -> U11(active(X1),X2)
       active(U12(X)) -> U12(active(X))
       active(U21(X)) -> U21(active(X))
       active(U31(X1,X2)) -> U31(active(X1),X2)
       active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
       active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
       active(s(X)) -> s(active(X))
       active(plus(X1,X2)) -> plus(active(X1),X2)
       active(plus(X1,X2)) -> plus(X1,active(X2))
       U11(mark(X1),X2) -> mark(U11(X1,X2))
       U12(mark(X)) -> mark(U12(X))
       U21(mark(X)) -> mark(U21(X))
       U31(mark(X1),X2) -> mark(U31(X1,X2))
       U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
       U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
       s(mark(X)) -> mark(s(X))
       plus(mark(X1),X2) -> mark(plus(X1,X2))
       plus(X1,mark(X2)) -> mark(plus(X1,X2))
       proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
       proper(tt()) -> ok(tt())
       proper(U12(X)) -> U12(proper(X))
       proper(isNat(X)) -> isNat(proper(X))
       proper(U21(X)) -> U21(proper(X))
       proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
       proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
       proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
       proper(s(X)) -> s(proper(X))
       proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
       U12(ok(X)) -> ok(U12(X))
       isNat(ok(X)) -> ok(isNat(X))
       U21(ok(X)) -> ok(U21(X))
       U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
       U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
       U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
       s(ok(X)) -> ok(s(X))
       plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     U42#(mark(X1),X2,X3) -> U42#(X1,X2,X3)
     U42#(ok(X1),ok(X2),ok(X3)) -> U42#(X1,X2,X3)
    TRS:
     active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
     active(U12(tt())) -> mark(tt())
     active(U21(tt())) -> mark(tt())
     active(U31(tt(),N)) -> mark(N)
     active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
     active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
     active(isNat(0())) -> mark(tt())
     active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
     active(isNat(s(V1))) -> mark(U21(isNat(V1)))
     active(plus(N,0())) -> mark(U31(isNat(N),N))
     active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
     active(U11(X1,X2)) -> U11(active(X1),X2)
     active(U12(X)) -> U12(active(X))
     active(U21(X)) -> U21(active(X))
     active(U31(X1,X2)) -> U31(active(X1),X2)
     active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
     active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
     active(s(X)) -> s(active(X))
     active(plus(X1,X2)) -> plus(active(X1),X2)
     active(plus(X1,X2)) -> plus(X1,active(X2))
     U11(mark(X1),X2) -> mark(U11(X1,X2))
     U12(mark(X)) -> mark(U12(X))
     U21(mark(X)) -> mark(U21(X))
     U31(mark(X1),X2) -> mark(U31(X1,X2))
     U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
     U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
     s(mark(X)) -> mark(s(X))
     plus(mark(X1),X2) -> mark(plus(X1,X2))
     plus(X1,mark(X2)) -> mark(plus(X1,X2))
     proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
     proper(tt()) -> ok(tt())
     proper(U12(X)) -> U12(proper(X))
     proper(isNat(X)) -> isNat(proper(X))
     proper(U21(X)) -> U21(proper(X))
     proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
     proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
     proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
     proper(s(X)) -> s(proper(X))
     proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
     U12(ok(X)) -> ok(U12(X))
     isNat(ok(X)) -> ok(isNat(X))
     U21(ok(X)) -> ok(U21(X))
     U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
     U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
     U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
     s(ok(X)) -> ok(s(X))
     plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(U42#) = 2
     problem:
      DPs:
       U42#(mark(X1),X2,X3) -> U42#(X1,X2,X3)
      TRS:
       active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
       active(U12(tt())) -> mark(tt())
       active(U21(tt())) -> mark(tt())
       active(U31(tt(),N)) -> mark(N)
       active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
       active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
       active(isNat(0())) -> mark(tt())
       active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
       active(isNat(s(V1))) -> mark(U21(isNat(V1)))
       active(plus(N,0())) -> mark(U31(isNat(N),N))
       active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
       active(U11(X1,X2)) -> U11(active(X1),X2)
       active(U12(X)) -> U12(active(X))
       active(U21(X)) -> U21(active(X))
       active(U31(X1,X2)) -> U31(active(X1),X2)
       active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
       active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
       active(s(X)) -> s(active(X))
       active(plus(X1,X2)) -> plus(active(X1),X2)
       active(plus(X1,X2)) -> plus(X1,active(X2))
       U11(mark(X1),X2) -> mark(U11(X1,X2))
       U12(mark(X)) -> mark(U12(X))
       U21(mark(X)) -> mark(U21(X))
       U31(mark(X1),X2) -> mark(U31(X1,X2))
       U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
       U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
       s(mark(X)) -> mark(s(X))
       plus(mark(X1),X2) -> mark(plus(X1,X2))
       plus(X1,mark(X2)) -> mark(plus(X1,X2))
       proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
       proper(tt()) -> ok(tt())
       proper(U12(X)) -> U12(proper(X))
       proper(isNat(X)) -> isNat(proper(X))
       proper(U21(X)) -> U21(proper(X))
       proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
       proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
       proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
       proper(s(X)) -> s(proper(X))
       proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
       U12(ok(X)) -> ok(U12(X))
       isNat(ok(X)) -> ok(isNat(X))
       U21(ok(X)) -> ok(U21(X))
       U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
       U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
       U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
       s(ok(X)) -> ok(s(X))
       plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Subterm Criterion Processor:
      simple projection:
       pi(U42#) = 0
      problem:
       DPs:
        
       TRS:
        active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
        active(U12(tt())) -> mark(tt())
        active(U21(tt())) -> mark(tt())
        active(U31(tt(),N)) -> mark(N)
        active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
        active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
        active(isNat(0())) -> mark(tt())
        active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
        active(isNat(s(V1))) -> mark(U21(isNat(V1)))
        active(plus(N,0())) -> mark(U31(isNat(N),N))
        active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
        active(U11(X1,X2)) -> U11(active(X1),X2)
        active(U12(X)) -> U12(active(X))
        active(U21(X)) -> U21(active(X))
        active(U31(X1,X2)) -> U31(active(X1),X2)
        active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
        active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
        active(s(X)) -> s(active(X))
        active(plus(X1,X2)) -> plus(active(X1),X2)
        active(plus(X1,X2)) -> plus(X1,active(X2))
        U11(mark(X1),X2) -> mark(U11(X1,X2))
        U12(mark(X)) -> mark(U12(X))
        U21(mark(X)) -> mark(U21(X))
        U31(mark(X1),X2) -> mark(U31(X1,X2))
        U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
        U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
        s(mark(X)) -> mark(s(X))
        plus(mark(X1),X2) -> mark(plus(X1,X2))
        plus(X1,mark(X2)) -> mark(plus(X1,X2))
        proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
        proper(tt()) -> ok(tt())
        proper(U12(X)) -> U12(proper(X))
        proper(isNat(X)) -> isNat(proper(X))
        proper(U21(X)) -> U21(proper(X))
        proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
        proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
        proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
        proper(s(X)) -> s(proper(X))
        proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
        U12(ok(X)) -> ok(U12(X))
        isNat(ok(X)) -> ok(isNat(X))
        U21(ok(X)) -> ok(U21(X))
        U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
        U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
        U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
        s(ok(X)) -> ok(s(X))
        plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3)
     U41#(ok(X1),ok(X2),ok(X3)) -> U41#(X1,X2,X3)
    TRS:
     active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
     active(U12(tt())) -> mark(tt())
     active(U21(tt())) -> mark(tt())
     active(U31(tt(),N)) -> mark(N)
     active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
     active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
     active(isNat(0())) -> mark(tt())
     active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
     active(isNat(s(V1))) -> mark(U21(isNat(V1)))
     active(plus(N,0())) -> mark(U31(isNat(N),N))
     active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
     active(U11(X1,X2)) -> U11(active(X1),X2)
     active(U12(X)) -> U12(active(X))
     active(U21(X)) -> U21(active(X))
     active(U31(X1,X2)) -> U31(active(X1),X2)
     active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
     active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
     active(s(X)) -> s(active(X))
     active(plus(X1,X2)) -> plus(active(X1),X2)
     active(plus(X1,X2)) -> plus(X1,active(X2))
     U11(mark(X1),X2) -> mark(U11(X1,X2))
     U12(mark(X)) -> mark(U12(X))
     U21(mark(X)) -> mark(U21(X))
     U31(mark(X1),X2) -> mark(U31(X1,X2))
     U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
     U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
     s(mark(X)) -> mark(s(X))
     plus(mark(X1),X2) -> mark(plus(X1,X2))
     plus(X1,mark(X2)) -> mark(plus(X1,X2))
     proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
     proper(tt()) -> ok(tt())
     proper(U12(X)) -> U12(proper(X))
     proper(isNat(X)) -> isNat(proper(X))
     proper(U21(X)) -> U21(proper(X))
     proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
     proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
     proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
     proper(s(X)) -> s(proper(X))
     proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
     U12(ok(X)) -> ok(U12(X))
     isNat(ok(X)) -> ok(isNat(X))
     U21(ok(X)) -> ok(U21(X))
     U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
     U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
     U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
     s(ok(X)) -> ok(s(X))
     plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(U41#) = 2
     problem:
      DPs:
       U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3)
      TRS:
       active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
       active(U12(tt())) -> mark(tt())
       active(U21(tt())) -> mark(tt())
       active(U31(tt(),N)) -> mark(N)
       active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
       active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
       active(isNat(0())) -> mark(tt())
       active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
       active(isNat(s(V1))) -> mark(U21(isNat(V1)))
       active(plus(N,0())) -> mark(U31(isNat(N),N))
       active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
       active(U11(X1,X2)) -> U11(active(X1),X2)
       active(U12(X)) -> U12(active(X))
       active(U21(X)) -> U21(active(X))
       active(U31(X1,X2)) -> U31(active(X1),X2)
       active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
       active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
       active(s(X)) -> s(active(X))
       active(plus(X1,X2)) -> plus(active(X1),X2)
       active(plus(X1,X2)) -> plus(X1,active(X2))
       U11(mark(X1),X2) -> mark(U11(X1,X2))
       U12(mark(X)) -> mark(U12(X))
       U21(mark(X)) -> mark(U21(X))
       U31(mark(X1),X2) -> mark(U31(X1,X2))
       U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
       U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
       s(mark(X)) -> mark(s(X))
       plus(mark(X1),X2) -> mark(plus(X1,X2))
       plus(X1,mark(X2)) -> mark(plus(X1,X2))
       proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
       proper(tt()) -> ok(tt())
       proper(U12(X)) -> U12(proper(X))
       proper(isNat(X)) -> isNat(proper(X))
       proper(U21(X)) -> U21(proper(X))
       proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
       proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
       proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
       proper(s(X)) -> s(proper(X))
       proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
       U12(ok(X)) -> ok(U12(X))
       isNat(ok(X)) -> ok(isNat(X))
       U21(ok(X)) -> ok(U21(X))
       U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
       U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
       U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
       s(ok(X)) -> ok(s(X))
       plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Subterm Criterion Processor:
      simple projection:
       pi(U41#) = 0
      problem:
       DPs:
        
       TRS:
        active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
        active(U12(tt())) -> mark(tt())
        active(U21(tt())) -> mark(tt())
        active(U31(tt(),N)) -> mark(N)
        active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
        active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
        active(isNat(0())) -> mark(tt())
        active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
        active(isNat(s(V1))) -> mark(U21(isNat(V1)))
        active(plus(N,0())) -> mark(U31(isNat(N),N))
        active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
        active(U11(X1,X2)) -> U11(active(X1),X2)
        active(U12(X)) -> U12(active(X))
        active(U21(X)) -> U21(active(X))
        active(U31(X1,X2)) -> U31(active(X1),X2)
        active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
        active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
        active(s(X)) -> s(active(X))
        active(plus(X1,X2)) -> plus(active(X1),X2)
        active(plus(X1,X2)) -> plus(X1,active(X2))
        U11(mark(X1),X2) -> mark(U11(X1,X2))
        U12(mark(X)) -> mark(U12(X))
        U21(mark(X)) -> mark(U21(X))
        U31(mark(X1),X2) -> mark(U31(X1,X2))
        U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
        U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
        s(mark(X)) -> mark(s(X))
        plus(mark(X1),X2) -> mark(plus(X1,X2))
        plus(X1,mark(X2)) -> mark(plus(X1,X2))
        proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
        proper(tt()) -> ok(tt())
        proper(U12(X)) -> U12(proper(X))
        proper(isNat(X)) -> isNat(proper(X))
        proper(U21(X)) -> U21(proper(X))
        proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
        proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
        proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
        proper(s(X)) -> s(proper(X))
        proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
        U12(ok(X)) -> ok(U12(X))
        isNat(ok(X)) -> ok(isNat(X))
        U21(ok(X)) -> ok(U21(X))
        U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
        U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
        U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
        s(ok(X)) -> ok(s(X))
        plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     U31#(mark(X1),X2) -> U31#(X1,X2)
     U31#(ok(X1),ok(X2)) -> U31#(X1,X2)
    TRS:
     active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
     active(U12(tt())) -> mark(tt())
     active(U21(tt())) -> mark(tt())
     active(U31(tt(),N)) -> mark(N)
     active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
     active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
     active(isNat(0())) -> mark(tt())
     active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
     active(isNat(s(V1))) -> mark(U21(isNat(V1)))
     active(plus(N,0())) -> mark(U31(isNat(N),N))
     active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
     active(U11(X1,X2)) -> U11(active(X1),X2)
     active(U12(X)) -> U12(active(X))
     active(U21(X)) -> U21(active(X))
     active(U31(X1,X2)) -> U31(active(X1),X2)
     active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
     active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
     active(s(X)) -> s(active(X))
     active(plus(X1,X2)) -> plus(active(X1),X2)
     active(plus(X1,X2)) -> plus(X1,active(X2))
     U11(mark(X1),X2) -> mark(U11(X1,X2))
     U12(mark(X)) -> mark(U12(X))
     U21(mark(X)) -> mark(U21(X))
     U31(mark(X1),X2) -> mark(U31(X1,X2))
     U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
     U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
     s(mark(X)) -> mark(s(X))
     plus(mark(X1),X2) -> mark(plus(X1,X2))
     plus(X1,mark(X2)) -> mark(plus(X1,X2))
     proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
     proper(tt()) -> ok(tt())
     proper(U12(X)) -> U12(proper(X))
     proper(isNat(X)) -> isNat(proper(X))
     proper(U21(X)) -> U21(proper(X))
     proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
     proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
     proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
     proper(s(X)) -> s(proper(X))
     proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
     U12(ok(X)) -> ok(U12(X))
     isNat(ok(X)) -> ok(isNat(X))
     U21(ok(X)) -> ok(U21(X))
     U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
     U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
     U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
     s(ok(X)) -> ok(s(X))
     plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(U31#) = 1
     problem:
      DPs:
       U31#(mark(X1),X2) -> U31#(X1,X2)
      TRS:
       active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
       active(U12(tt())) -> mark(tt())
       active(U21(tt())) -> mark(tt())
       active(U31(tt(),N)) -> mark(N)
       active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
       active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
       active(isNat(0())) -> mark(tt())
       active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
       active(isNat(s(V1))) -> mark(U21(isNat(V1)))
       active(plus(N,0())) -> mark(U31(isNat(N),N))
       active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
       active(U11(X1,X2)) -> U11(active(X1),X2)
       active(U12(X)) -> U12(active(X))
       active(U21(X)) -> U21(active(X))
       active(U31(X1,X2)) -> U31(active(X1),X2)
       active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
       active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
       active(s(X)) -> s(active(X))
       active(plus(X1,X2)) -> plus(active(X1),X2)
       active(plus(X1,X2)) -> plus(X1,active(X2))
       U11(mark(X1),X2) -> mark(U11(X1,X2))
       U12(mark(X)) -> mark(U12(X))
       U21(mark(X)) -> mark(U21(X))
       U31(mark(X1),X2) -> mark(U31(X1,X2))
       U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
       U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
       s(mark(X)) -> mark(s(X))
       plus(mark(X1),X2) -> mark(plus(X1,X2))
       plus(X1,mark(X2)) -> mark(plus(X1,X2))
       proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
       proper(tt()) -> ok(tt())
       proper(U12(X)) -> U12(proper(X))
       proper(isNat(X)) -> isNat(proper(X))
       proper(U21(X)) -> U21(proper(X))
       proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
       proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
       proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
       proper(s(X)) -> s(proper(X))
       proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
       U12(ok(X)) -> ok(U12(X))
       isNat(ok(X)) -> ok(isNat(X))
       U21(ok(X)) -> ok(U21(X))
       U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
       U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
       U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
       s(ok(X)) -> ok(s(X))
       plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Subterm Criterion Processor:
      simple projection:
       pi(U31#) = 0
      problem:
       DPs:
        
       TRS:
        active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
        active(U12(tt())) -> mark(tt())
        active(U21(tt())) -> mark(tt())
        active(U31(tt(),N)) -> mark(N)
        active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
        active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
        active(isNat(0())) -> mark(tt())
        active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
        active(isNat(s(V1))) -> mark(U21(isNat(V1)))
        active(plus(N,0())) -> mark(U31(isNat(N),N))
        active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
        active(U11(X1,X2)) -> U11(active(X1),X2)
        active(U12(X)) -> U12(active(X))
        active(U21(X)) -> U21(active(X))
        active(U31(X1,X2)) -> U31(active(X1),X2)
        active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
        active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
        active(s(X)) -> s(active(X))
        active(plus(X1,X2)) -> plus(active(X1),X2)
        active(plus(X1,X2)) -> plus(X1,active(X2))
        U11(mark(X1),X2) -> mark(U11(X1,X2))
        U12(mark(X)) -> mark(U12(X))
        U21(mark(X)) -> mark(U21(X))
        U31(mark(X1),X2) -> mark(U31(X1,X2))
        U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
        U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
        s(mark(X)) -> mark(s(X))
        plus(mark(X1),X2) -> mark(plus(X1,X2))
        plus(X1,mark(X2)) -> mark(plus(X1,X2))
        proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
        proper(tt()) -> ok(tt())
        proper(U12(X)) -> U12(proper(X))
        proper(isNat(X)) -> isNat(proper(X))
        proper(U21(X)) -> U21(proper(X))
        proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
        proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
        proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
        proper(s(X)) -> s(proper(X))
        proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
        U12(ok(X)) -> ok(U12(X))
        isNat(ok(X)) -> ok(isNat(X))
        U21(ok(X)) -> ok(U21(X))
        U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
        U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
        U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
        s(ok(X)) -> ok(s(X))
        plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     U21#(mark(X)) -> U21#(X)
     U21#(ok(X)) -> U21#(X)
    TRS:
     active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
     active(U12(tt())) -> mark(tt())
     active(U21(tt())) -> mark(tt())
     active(U31(tt(),N)) -> mark(N)
     active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
     active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
     active(isNat(0())) -> mark(tt())
     active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
     active(isNat(s(V1))) -> mark(U21(isNat(V1)))
     active(plus(N,0())) -> mark(U31(isNat(N),N))
     active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
     active(U11(X1,X2)) -> U11(active(X1),X2)
     active(U12(X)) -> U12(active(X))
     active(U21(X)) -> U21(active(X))
     active(U31(X1,X2)) -> U31(active(X1),X2)
     active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
     active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
     active(s(X)) -> s(active(X))
     active(plus(X1,X2)) -> plus(active(X1),X2)
     active(plus(X1,X2)) -> plus(X1,active(X2))
     U11(mark(X1),X2) -> mark(U11(X1,X2))
     U12(mark(X)) -> mark(U12(X))
     U21(mark(X)) -> mark(U21(X))
     U31(mark(X1),X2) -> mark(U31(X1,X2))
     U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
     U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
     s(mark(X)) -> mark(s(X))
     plus(mark(X1),X2) -> mark(plus(X1,X2))
     plus(X1,mark(X2)) -> mark(plus(X1,X2))
     proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
     proper(tt()) -> ok(tt())
     proper(U12(X)) -> U12(proper(X))
     proper(isNat(X)) -> isNat(proper(X))
     proper(U21(X)) -> U21(proper(X))
     proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
     proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
     proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
     proper(s(X)) -> s(proper(X))
     proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
     U12(ok(X)) -> ok(U12(X))
     isNat(ok(X)) -> ok(isNat(X))
     U21(ok(X)) -> ok(U21(X))
     U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
     U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
     U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
     s(ok(X)) -> ok(s(X))
     plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(U21#) = 0
     problem:
      DPs:
       
      TRS:
       active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
       active(U12(tt())) -> mark(tt())
       active(U21(tt())) -> mark(tt())
       active(U31(tt(),N)) -> mark(N)
       active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
       active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
       active(isNat(0())) -> mark(tt())
       active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
       active(isNat(s(V1))) -> mark(U21(isNat(V1)))
       active(plus(N,0())) -> mark(U31(isNat(N),N))
       active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
       active(U11(X1,X2)) -> U11(active(X1),X2)
       active(U12(X)) -> U12(active(X))
       active(U21(X)) -> U21(active(X))
       active(U31(X1,X2)) -> U31(active(X1),X2)
       active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
       active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
       active(s(X)) -> s(active(X))
       active(plus(X1,X2)) -> plus(active(X1),X2)
       active(plus(X1,X2)) -> plus(X1,active(X2))
       U11(mark(X1),X2) -> mark(U11(X1,X2))
       U12(mark(X)) -> mark(U12(X))
       U21(mark(X)) -> mark(U21(X))
       U31(mark(X1),X2) -> mark(U31(X1,X2))
       U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
       U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
       s(mark(X)) -> mark(s(X))
       plus(mark(X1),X2) -> mark(plus(X1,X2))
       plus(X1,mark(X2)) -> mark(plus(X1,X2))
       proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
       proper(tt()) -> ok(tt())
       proper(U12(X)) -> U12(proper(X))
       proper(isNat(X)) -> isNat(proper(X))
       proper(U21(X)) -> U21(proper(X))
       proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
       proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
       proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
       proper(s(X)) -> s(proper(X))
       proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
       U12(ok(X)) -> ok(U12(X))
       isNat(ok(X)) -> ok(isNat(X))
       U21(ok(X)) -> ok(U21(X))
       U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
       U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
       U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
       s(ok(X)) -> ok(s(X))
       plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     isNat#(ok(X)) -> isNat#(X)
    TRS:
     active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
     active(U12(tt())) -> mark(tt())
     active(U21(tt())) -> mark(tt())
     active(U31(tt(),N)) -> mark(N)
     active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
     active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
     active(isNat(0())) -> mark(tt())
     active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
     active(isNat(s(V1))) -> mark(U21(isNat(V1)))
     active(plus(N,0())) -> mark(U31(isNat(N),N))
     active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
     active(U11(X1,X2)) -> U11(active(X1),X2)
     active(U12(X)) -> U12(active(X))
     active(U21(X)) -> U21(active(X))
     active(U31(X1,X2)) -> U31(active(X1),X2)
     active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
     active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
     active(s(X)) -> s(active(X))
     active(plus(X1,X2)) -> plus(active(X1),X2)
     active(plus(X1,X2)) -> plus(X1,active(X2))
     U11(mark(X1),X2) -> mark(U11(X1,X2))
     U12(mark(X)) -> mark(U12(X))
     U21(mark(X)) -> mark(U21(X))
     U31(mark(X1),X2) -> mark(U31(X1,X2))
     U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
     U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
     s(mark(X)) -> mark(s(X))
     plus(mark(X1),X2) -> mark(plus(X1,X2))
     plus(X1,mark(X2)) -> mark(plus(X1,X2))
     proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
     proper(tt()) -> ok(tt())
     proper(U12(X)) -> U12(proper(X))
     proper(isNat(X)) -> isNat(proper(X))
     proper(U21(X)) -> U21(proper(X))
     proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
     proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
     proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
     proper(s(X)) -> s(proper(X))
     proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
     U12(ok(X)) -> ok(U12(X))
     isNat(ok(X)) -> ok(isNat(X))
     U21(ok(X)) -> ok(U21(X))
     U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
     U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
     U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
     s(ok(X)) -> ok(s(X))
     plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(isNat#) = 0
     problem:
      DPs:
       
      TRS:
       active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
       active(U12(tt())) -> mark(tt())
       active(U21(tt())) -> mark(tt())
       active(U31(tt(),N)) -> mark(N)
       active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
       active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
       active(isNat(0())) -> mark(tt())
       active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
       active(isNat(s(V1))) -> mark(U21(isNat(V1)))
       active(plus(N,0())) -> mark(U31(isNat(N),N))
       active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
       active(U11(X1,X2)) -> U11(active(X1),X2)
       active(U12(X)) -> U12(active(X))
       active(U21(X)) -> U21(active(X))
       active(U31(X1,X2)) -> U31(active(X1),X2)
       active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
       active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
       active(s(X)) -> s(active(X))
       active(plus(X1,X2)) -> plus(active(X1),X2)
       active(plus(X1,X2)) -> plus(X1,active(X2))
       U11(mark(X1),X2) -> mark(U11(X1,X2))
       U12(mark(X)) -> mark(U12(X))
       U21(mark(X)) -> mark(U21(X))
       U31(mark(X1),X2) -> mark(U31(X1,X2))
       U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
       U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
       s(mark(X)) -> mark(s(X))
       plus(mark(X1),X2) -> mark(plus(X1,X2))
       plus(X1,mark(X2)) -> mark(plus(X1,X2))
       proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
       proper(tt()) -> ok(tt())
       proper(U12(X)) -> U12(proper(X))
       proper(isNat(X)) -> isNat(proper(X))
       proper(U21(X)) -> U21(proper(X))
       proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
       proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
       proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
       proper(s(X)) -> s(proper(X))
       proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
       U12(ok(X)) -> ok(U12(X))
       isNat(ok(X)) -> ok(isNat(X))
       U21(ok(X)) -> ok(U21(X))
       U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
       U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
       U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
       s(ok(X)) -> ok(s(X))
       plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     U12#(mark(X)) -> U12#(X)
     U12#(ok(X)) -> U12#(X)
    TRS:
     active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
     active(U12(tt())) -> mark(tt())
     active(U21(tt())) -> mark(tt())
     active(U31(tt(),N)) -> mark(N)
     active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
     active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
     active(isNat(0())) -> mark(tt())
     active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
     active(isNat(s(V1))) -> mark(U21(isNat(V1)))
     active(plus(N,0())) -> mark(U31(isNat(N),N))
     active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
     active(U11(X1,X2)) -> U11(active(X1),X2)
     active(U12(X)) -> U12(active(X))
     active(U21(X)) -> U21(active(X))
     active(U31(X1,X2)) -> U31(active(X1),X2)
     active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
     active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
     active(s(X)) -> s(active(X))
     active(plus(X1,X2)) -> plus(active(X1),X2)
     active(plus(X1,X2)) -> plus(X1,active(X2))
     U11(mark(X1),X2) -> mark(U11(X1,X2))
     U12(mark(X)) -> mark(U12(X))
     U21(mark(X)) -> mark(U21(X))
     U31(mark(X1),X2) -> mark(U31(X1,X2))
     U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
     U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
     s(mark(X)) -> mark(s(X))
     plus(mark(X1),X2) -> mark(plus(X1,X2))
     plus(X1,mark(X2)) -> mark(plus(X1,X2))
     proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
     proper(tt()) -> ok(tt())
     proper(U12(X)) -> U12(proper(X))
     proper(isNat(X)) -> isNat(proper(X))
     proper(U21(X)) -> U21(proper(X))
     proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
     proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
     proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
     proper(s(X)) -> s(proper(X))
     proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
     U12(ok(X)) -> ok(U12(X))
     isNat(ok(X)) -> ok(isNat(X))
     U21(ok(X)) -> ok(U21(X))
     U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
     U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
     U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
     s(ok(X)) -> ok(s(X))
     plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(U12#) = 0
     problem:
      DPs:
       
      TRS:
       active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
       active(U12(tt())) -> mark(tt())
       active(U21(tt())) -> mark(tt())
       active(U31(tt(),N)) -> mark(N)
       active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
       active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
       active(isNat(0())) -> mark(tt())
       active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
       active(isNat(s(V1))) -> mark(U21(isNat(V1)))
       active(plus(N,0())) -> mark(U31(isNat(N),N))
       active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
       active(U11(X1,X2)) -> U11(active(X1),X2)
       active(U12(X)) -> U12(active(X))
       active(U21(X)) -> U21(active(X))
       active(U31(X1,X2)) -> U31(active(X1),X2)
       active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
       active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
       active(s(X)) -> s(active(X))
       active(plus(X1,X2)) -> plus(active(X1),X2)
       active(plus(X1,X2)) -> plus(X1,active(X2))
       U11(mark(X1),X2) -> mark(U11(X1,X2))
       U12(mark(X)) -> mark(U12(X))
       U21(mark(X)) -> mark(U21(X))
       U31(mark(X1),X2) -> mark(U31(X1,X2))
       U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
       U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
       s(mark(X)) -> mark(s(X))
       plus(mark(X1),X2) -> mark(plus(X1,X2))
       plus(X1,mark(X2)) -> mark(plus(X1,X2))
       proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
       proper(tt()) -> ok(tt())
       proper(U12(X)) -> U12(proper(X))
       proper(isNat(X)) -> isNat(proper(X))
       proper(U21(X)) -> U21(proper(X))
       proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
       proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
       proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
       proper(s(X)) -> s(proper(X))
       proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
       U12(ok(X)) -> ok(U12(X))
       isNat(ok(X)) -> ok(isNat(X))
       U21(ok(X)) -> ok(U21(X))
       U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
       U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
       U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
       s(ok(X)) -> ok(s(X))
       plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     U11#(mark(X1),X2) -> U11#(X1,X2)
     U11#(ok(X1),ok(X2)) -> U11#(X1,X2)
    TRS:
     active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
     active(U12(tt())) -> mark(tt())
     active(U21(tt())) -> mark(tt())
     active(U31(tt(),N)) -> mark(N)
     active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
     active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
     active(isNat(0())) -> mark(tt())
     active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
     active(isNat(s(V1))) -> mark(U21(isNat(V1)))
     active(plus(N,0())) -> mark(U31(isNat(N),N))
     active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
     active(U11(X1,X2)) -> U11(active(X1),X2)
     active(U12(X)) -> U12(active(X))
     active(U21(X)) -> U21(active(X))
     active(U31(X1,X2)) -> U31(active(X1),X2)
     active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
     active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
     active(s(X)) -> s(active(X))
     active(plus(X1,X2)) -> plus(active(X1),X2)
     active(plus(X1,X2)) -> plus(X1,active(X2))
     U11(mark(X1),X2) -> mark(U11(X1,X2))
     U12(mark(X)) -> mark(U12(X))
     U21(mark(X)) -> mark(U21(X))
     U31(mark(X1),X2) -> mark(U31(X1,X2))
     U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
     U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
     s(mark(X)) -> mark(s(X))
     plus(mark(X1),X2) -> mark(plus(X1,X2))
     plus(X1,mark(X2)) -> mark(plus(X1,X2))
     proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
     proper(tt()) -> ok(tt())
     proper(U12(X)) -> U12(proper(X))
     proper(isNat(X)) -> isNat(proper(X))
     proper(U21(X)) -> U21(proper(X))
     proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
     proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
     proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
     proper(s(X)) -> s(proper(X))
     proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
     U12(ok(X)) -> ok(U12(X))
     isNat(ok(X)) -> ok(isNat(X))
     U21(ok(X)) -> ok(U21(X))
     U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
     U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
     U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
     s(ok(X)) -> ok(s(X))
     plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(U11#) = 1
     problem:
      DPs:
       U11#(mark(X1),X2) -> U11#(X1,X2)
      TRS:
       active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
       active(U12(tt())) -> mark(tt())
       active(U21(tt())) -> mark(tt())
       active(U31(tt(),N)) -> mark(N)
       active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
       active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
       active(isNat(0())) -> mark(tt())
       active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
       active(isNat(s(V1))) -> mark(U21(isNat(V1)))
       active(plus(N,0())) -> mark(U31(isNat(N),N))
       active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
       active(U11(X1,X2)) -> U11(active(X1),X2)
       active(U12(X)) -> U12(active(X))
       active(U21(X)) -> U21(active(X))
       active(U31(X1,X2)) -> U31(active(X1),X2)
       active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
       active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
       active(s(X)) -> s(active(X))
       active(plus(X1,X2)) -> plus(active(X1),X2)
       active(plus(X1,X2)) -> plus(X1,active(X2))
       U11(mark(X1),X2) -> mark(U11(X1,X2))
       U12(mark(X)) -> mark(U12(X))
       U21(mark(X)) -> mark(U21(X))
       U31(mark(X1),X2) -> mark(U31(X1,X2))
       U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
       U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
       s(mark(X)) -> mark(s(X))
       plus(mark(X1),X2) -> mark(plus(X1,X2))
       plus(X1,mark(X2)) -> mark(plus(X1,X2))
       proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
       proper(tt()) -> ok(tt())
       proper(U12(X)) -> U12(proper(X))
       proper(isNat(X)) -> isNat(proper(X))
       proper(U21(X)) -> U21(proper(X))
       proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
       proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
       proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
       proper(s(X)) -> s(proper(X))
       proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
       U12(ok(X)) -> ok(U12(X))
       isNat(ok(X)) -> ok(isNat(X))
       U21(ok(X)) -> ok(U21(X))
       U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
       U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
       U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
       s(ok(X)) -> ok(s(X))
       plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Subterm Criterion Processor:
      simple projection:
       pi(U11#) = 0
      problem:
       DPs:
        
       TRS:
        active(U11(tt(),V2)) -> mark(U12(isNat(V2)))
        active(U12(tt())) -> mark(tt())
        active(U21(tt())) -> mark(tt())
        active(U31(tt(),N)) -> mark(N)
        active(U41(tt(),M,N)) -> mark(U42(isNat(N),M,N))
        active(U42(tt(),M,N)) -> mark(s(plus(N,M)))
        active(isNat(0())) -> mark(tt())
        active(isNat(plus(V1,V2))) -> mark(U11(isNat(V1),V2))
        active(isNat(s(V1))) -> mark(U21(isNat(V1)))
        active(plus(N,0())) -> mark(U31(isNat(N),N))
        active(plus(N,s(M))) -> mark(U41(isNat(M),M,N))
        active(U11(X1,X2)) -> U11(active(X1),X2)
        active(U12(X)) -> U12(active(X))
        active(U21(X)) -> U21(active(X))
        active(U31(X1,X2)) -> U31(active(X1),X2)
        active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3)
        active(U42(X1,X2,X3)) -> U42(active(X1),X2,X3)
        active(s(X)) -> s(active(X))
        active(plus(X1,X2)) -> plus(active(X1),X2)
        active(plus(X1,X2)) -> plus(X1,active(X2))
        U11(mark(X1),X2) -> mark(U11(X1,X2))
        U12(mark(X)) -> mark(U12(X))
        U21(mark(X)) -> mark(U21(X))
        U31(mark(X1),X2) -> mark(U31(X1,X2))
        U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3))
        U42(mark(X1),X2,X3) -> mark(U42(X1,X2,X3))
        s(mark(X)) -> mark(s(X))
        plus(mark(X1),X2) -> mark(plus(X1,X2))
        plus(X1,mark(X2)) -> mark(plus(X1,X2))
        proper(U11(X1,X2)) -> U11(proper(X1),proper(X2))
        proper(tt()) -> ok(tt())
        proper(U12(X)) -> U12(proper(X))
        proper(isNat(X)) -> isNat(proper(X))
        proper(U21(X)) -> U21(proper(X))
        proper(U31(X1,X2)) -> U31(proper(X1),proper(X2))
        proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3))
        proper(U42(X1,X2,X3)) -> U42(proper(X1),proper(X2),proper(X3))
        proper(s(X)) -> s(proper(X))
        proper(plus(X1,X2)) -> plus(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        U11(ok(X1),ok(X2)) -> ok(U11(X1,X2))
        U12(ok(X)) -> ok(U12(X))
        isNat(ok(X)) -> ok(isNat(X))
        U21(ok(X)) -> ok(U21(X))
        U31(ok(X1),ok(X2)) -> ok(U31(X1,X2))
        U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3))
        U42(ok(X1),ok(X2),ok(X3)) -> ok(U42(X1,X2,X3))
        s(ok(X)) -> ok(s(X))
        plus(ok(X1),ok(X2)) -> ok(plus(X1,X2))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed