(0) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.

(1) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.

(2) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(U11(tt, V1, V2)) → MARK(U12(isNat(V1), V2))
ACTIVE(U11(tt, V1, V2)) → U121(isNat(V1), V2)
ACTIVE(U11(tt, V1, V2)) → ISNAT(V1)
ACTIVE(U12(tt, V2)) → MARK(U13(isNat(V2)))
ACTIVE(U12(tt, V2)) → U131(isNat(V2))
ACTIVE(U12(tt, V2)) → ISNAT(V2)
ACTIVE(U13(tt)) → MARK(tt)
ACTIVE(U21(tt, V1)) → MARK(U22(isNat(V1)))
ACTIVE(U21(tt, V1)) → U221(isNat(V1))
ACTIVE(U21(tt, V1)) → ISNAT(V1)
ACTIVE(U22(tt)) → MARK(tt)
ACTIVE(U31(tt, V1, V2)) → MARK(U32(isNat(V1), V2))
ACTIVE(U31(tt, V1, V2)) → U321(isNat(V1), V2)
ACTIVE(U31(tt, V1, V2)) → ISNAT(V1)
ACTIVE(U32(tt, V2)) → MARK(U33(isNat(V2)))
ACTIVE(U32(tt, V2)) → U331(isNat(V2))
ACTIVE(U32(tt, V2)) → ISNAT(V2)
ACTIVE(U33(tt)) → MARK(tt)
ACTIVE(U41(tt, N)) → MARK(N)
ACTIVE(U51(tt, M, N)) → MARK(s(plus(N, M)))
ACTIVE(U51(tt, M, N)) → S(plus(N, M))
ACTIVE(U51(tt, M, N)) → PLUS(N, M)
ACTIVE(U61(tt)) → MARK(0)
ACTIVE(U71(tt, M, N)) → MARK(plus(x(N, M), N))
ACTIVE(U71(tt, M, N)) → PLUS(x(N, M), N)
ACTIVE(U71(tt, M, N)) → X(N, M)
ACTIVE(and(tt, X)) → MARK(X)
ACTIVE(isNat(0)) → MARK(tt)
ACTIVE(isNat(plus(V1, V2))) → MARK(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
ACTIVE(isNat(plus(V1, V2))) → U111(and(isNatKind(V1), isNatKind(V2)), V1, V2)
ACTIVE(isNat(plus(V1, V2))) → AND(isNatKind(V1), isNatKind(V2))
ACTIVE(isNat(plus(V1, V2))) → ISNATKIND(V1)
ACTIVE(isNat(plus(V1, V2))) → ISNATKIND(V2)
ACTIVE(isNat(s(V1))) → MARK(U21(isNatKind(V1), V1))
ACTIVE(isNat(s(V1))) → U211(isNatKind(V1), V1)
ACTIVE(isNat(s(V1))) → ISNATKIND(V1)
ACTIVE(isNat(x(V1, V2))) → MARK(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
ACTIVE(isNat(x(V1, V2))) → U311(and(isNatKind(V1), isNatKind(V2)), V1, V2)
ACTIVE(isNat(x(V1, V2))) → AND(isNatKind(V1), isNatKind(V2))
ACTIVE(isNat(x(V1, V2))) → ISNATKIND(V1)
ACTIVE(isNat(x(V1, V2))) → ISNATKIND(V2)
ACTIVE(isNatKind(0)) → MARK(tt)
ACTIVE(isNatKind(plus(V1, V2))) → MARK(and(isNatKind(V1), isNatKind(V2)))
ACTIVE(isNatKind(plus(V1, V2))) → AND(isNatKind(V1), isNatKind(V2))
ACTIVE(isNatKind(plus(V1, V2))) → ISNATKIND(V1)
ACTIVE(isNatKind(plus(V1, V2))) → ISNATKIND(V2)
ACTIVE(isNatKind(s(V1))) → MARK(isNatKind(V1))
ACTIVE(isNatKind(s(V1))) → ISNATKIND(V1)
ACTIVE(isNatKind(x(V1, V2))) → MARK(and(isNatKind(V1), isNatKind(V2)))
ACTIVE(isNatKind(x(V1, V2))) → AND(isNatKind(V1), isNatKind(V2))
ACTIVE(isNatKind(x(V1, V2))) → ISNATKIND(V1)
ACTIVE(isNatKind(x(V1, V2))) → ISNATKIND(V2)
ACTIVE(plus(N, 0)) → MARK(U41(and(isNat(N), isNatKind(N)), N))
ACTIVE(plus(N, 0)) → U411(and(isNat(N), isNatKind(N)), N)
ACTIVE(plus(N, 0)) → AND(isNat(N), isNatKind(N))
ACTIVE(plus(N, 0)) → ISNAT(N)
ACTIVE(plus(N, 0)) → ISNATKIND(N)
ACTIVE(plus(N, s(M))) → MARK(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
ACTIVE(plus(N, s(M))) → U511(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
ACTIVE(plus(N, s(M))) → AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))
ACTIVE(plus(N, s(M))) → AND(isNat(M), isNatKind(M))
ACTIVE(plus(N, s(M))) → ISNAT(M)
ACTIVE(plus(N, s(M))) → ISNATKIND(M)
ACTIVE(plus(N, s(M))) → AND(isNat(N), isNatKind(N))
ACTIVE(plus(N, s(M))) → ISNAT(N)
ACTIVE(plus(N, s(M))) → ISNATKIND(N)
ACTIVE(x(N, 0)) → MARK(U61(and(isNat(N), isNatKind(N))))
ACTIVE(x(N, 0)) → U611(and(isNat(N), isNatKind(N)))
ACTIVE(x(N, 0)) → AND(isNat(N), isNatKind(N))
ACTIVE(x(N, 0)) → ISNAT(N)
ACTIVE(x(N, 0)) → ISNATKIND(N)
ACTIVE(x(N, s(M))) → MARK(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
ACTIVE(x(N, s(M))) → U711(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
ACTIVE(x(N, s(M))) → AND(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))
ACTIVE(x(N, s(M))) → AND(isNat(M), isNatKind(M))
ACTIVE(x(N, s(M))) → ISNAT(M)
ACTIVE(x(N, s(M))) → ISNATKIND(M)
ACTIVE(x(N, s(M))) → AND(isNat(N), isNatKind(N))
ACTIVE(x(N, s(M))) → ISNAT(N)
ACTIVE(x(N, s(M))) → ISNATKIND(N)
MARK(U11(X1, X2, X3)) → ACTIVE(U11(mark(X1), X2, X3))
MARK(U11(X1, X2, X3)) → U111(mark(X1), X2, X3)
MARK(U11(X1, X2, X3)) → MARK(X1)
MARK(tt) → ACTIVE(tt)
MARK(U12(X1, X2)) → ACTIVE(U12(mark(X1), X2))
MARK(U12(X1, X2)) → U121(mark(X1), X2)
MARK(U12(X1, X2)) → MARK(X1)
MARK(isNat(X)) → ACTIVE(isNat(X))
MARK(U13(X)) → ACTIVE(U13(mark(X)))
MARK(U13(X)) → U131(mark(X))
MARK(U13(X)) → MARK(X)
MARK(U21(X1, X2)) → ACTIVE(U21(mark(X1), X2))
MARK(U21(X1, X2)) → U211(mark(X1), X2)
MARK(U21(X1, X2)) → MARK(X1)
MARK(U22(X)) → ACTIVE(U22(mark(X)))
MARK(U22(X)) → U221(mark(X))
MARK(U22(X)) → MARK(X)
MARK(U31(X1, X2, X3)) → ACTIVE(U31(mark(X1), X2, X3))
MARK(U31(X1, X2, X3)) → U311(mark(X1), X2, X3)
MARK(U31(X1, X2, X3)) → MARK(X1)
MARK(U32(X1, X2)) → ACTIVE(U32(mark(X1), X2))
MARK(U32(X1, X2)) → U321(mark(X1), X2)
MARK(U32(X1, X2)) → MARK(X1)
MARK(U33(X)) → ACTIVE(U33(mark(X)))
MARK(U33(X)) → U331(mark(X))
MARK(U33(X)) → MARK(X)
MARK(U41(X1, X2)) → ACTIVE(U41(mark(X1), X2))
MARK(U41(X1, X2)) → U411(mark(X1), X2)
MARK(U41(X1, X2)) → MARK(X1)
MARK(U51(X1, X2, X3)) → ACTIVE(U51(mark(X1), X2, X3))
MARK(U51(X1, X2, X3)) → U511(mark(X1), X2, X3)
MARK(U51(X1, X2, X3)) → MARK(X1)
MARK(s(X)) → ACTIVE(s(mark(X)))
MARK(s(X)) → S(mark(X))
MARK(s(X)) → MARK(X)
MARK(plus(X1, X2)) → ACTIVE(plus(mark(X1), mark(X2)))
MARK(plus(X1, X2)) → PLUS(mark(X1), mark(X2))
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(U61(X)) → ACTIVE(U61(mark(X)))
MARK(U61(X)) → U611(mark(X))
MARK(U61(X)) → MARK(X)
MARK(0) → ACTIVE(0)
MARK(U71(X1, X2, X3)) → ACTIVE(U71(mark(X1), X2, X3))
MARK(U71(X1, X2, X3)) → U711(mark(X1), X2, X3)
MARK(U71(X1, X2, X3)) → MARK(X1)
MARK(x(X1, X2)) → ACTIVE(x(mark(X1), mark(X2)))
MARK(x(X1, X2)) → X(mark(X1), mark(X2))
MARK(x(X1, X2)) → MARK(X1)
MARK(x(X1, X2)) → MARK(X2)
MARK(and(X1, X2)) → ACTIVE(and(mark(X1), X2))
MARK(and(X1, X2)) → AND(mark(X1), X2)
MARK(and(X1, X2)) → MARK(X1)
MARK(isNatKind(X)) → ACTIVE(isNatKind(X))
U111(mark(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, mark(X2), X3) → U111(X1, X2, X3)
U111(X1, X2, mark(X3)) → U111(X1, X2, X3)
U111(active(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, active(X2), X3) → U111(X1, X2, X3)
U111(X1, X2, active(X3)) → U111(X1, X2, X3)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
ISNAT(mark(X)) → ISNAT(X)
ISNAT(active(X)) → ISNAT(X)
U131(mark(X)) → U131(X)
U131(active(X)) → U131(X)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X)) → U221(X)
U221(active(X)) → U221(X)
U311(mark(X1), X2, X3) → U311(X1, X2, X3)
U311(X1, mark(X2), X3) → U311(X1, X2, X3)
U311(X1, X2, mark(X3)) → U311(X1, X2, X3)
U311(active(X1), X2, X3) → U311(X1, X2, X3)
U311(X1, active(X2), X3) → U311(X1, X2, X3)
U311(X1, X2, active(X3)) → U311(X1, X2, X3)
U321(mark(X1), X2) → U321(X1, X2)
U321(X1, mark(X2)) → U321(X1, X2)
U321(active(X1), X2) → U321(X1, X2)
U321(X1, active(X2)) → U321(X1, X2)
U331(mark(X)) → U331(X)
U331(active(X)) → U331(X)
U411(mark(X1), X2) → U411(X1, X2)
U411(X1, mark(X2)) → U411(X1, X2)
U411(active(X1), X2) → U411(X1, X2)
U411(X1, active(X2)) → U411(X1, X2)
U511(mark(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, mark(X2), X3) → U511(X1, X2, X3)
U511(X1, X2, mark(X3)) → U511(X1, X2, X3)
U511(active(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, active(X2), X3) → U511(X1, X2, X3)
U511(X1, X2, active(X3)) → U511(X1, X2, X3)
S(mark(X)) → S(X)
S(active(X)) → S(X)
PLUS(mark(X1), X2) → PLUS(X1, X2)
PLUS(X1, mark(X2)) → PLUS(X1, X2)
PLUS(active(X1), X2) → PLUS(X1, X2)
PLUS(X1, active(X2)) → PLUS(X1, X2)
U611(mark(X)) → U611(X)
U611(active(X)) → U611(X)
U711(mark(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, mark(X2), X3) → U711(X1, X2, X3)
U711(X1, X2, mark(X3)) → U711(X1, X2, X3)
U711(active(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, active(X2), X3) → U711(X1, X2, X3)
U711(X1, X2, active(X3)) → U711(X1, X2, X3)
X(mark(X1), X2) → X(X1, X2)
X(X1, mark(X2)) → X(X1, X2)
X(active(X1), X2) → X(X1, X2)
X(X1, active(X2)) → X(X1, X2)
AND(mark(X1), X2) → AND(X1, X2)
AND(X1, mark(X2)) → AND(X1, X2)
AND(active(X1), X2) → AND(X1, X2)
AND(X1, active(X2)) → AND(X1, X2)
ISNATKIND(mark(X)) → ISNATKIND(X)
ISNATKIND(active(X)) → ISNATKIND(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(3) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 19 SCCs with 79 less nodes.

(4) Complex Obligation (AND)

(5) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNATKIND(active(X)) → ISNATKIND(X)
ISNATKIND(mark(X)) → ISNATKIND(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(6) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNATKIND(active(X)) → ISNATKIND(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
ISNATKIND(x0, x1)  =  ISNATKIND(x1)

Tags:
ISNATKIND has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
ISNATKIND(x1)  =  ISNATKIND
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
ISNATKIND: multiset
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(7) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNATKIND(mark(X)) → ISNATKIND(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(8) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNATKIND(mark(X)) → ISNATKIND(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
ISNATKIND(x0, x1)  =  ISNATKIND(x1)

Tags:
ISNATKIND has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
ISNATKIND(x1)  =  ISNATKIND
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[ISNATKIND, mark1]

Status:
ISNATKIND: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(9) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(10) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(11) TRUE

(12) Obligation:

Q DP problem:
The TRS P consists of the following rules:

AND(X1, mark(X2)) → AND(X1, X2)
AND(mark(X1), X2) → AND(X1, X2)
AND(active(X1), X2) → AND(X1, X2)
AND(X1, active(X2)) → AND(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(13) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


AND(active(X1), X2) → AND(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
AND(x0, x1, x2)  =  AND(x0)

Tags:
AND has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
AND(x1, x2)  =  x1
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(14) Obligation:

Q DP problem:
The TRS P consists of the following rules:

AND(X1, mark(X2)) → AND(X1, X2)
AND(mark(X1), X2) → AND(X1, X2)
AND(X1, active(X2)) → AND(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(15) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


AND(X1, active(X2)) → AND(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
AND(x0, x1, x2)  =  AND(x0, x1, x2)

Tags:
AND has argument tags [1,2,2] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
AND(x1, x2)  =  AND(x1, x2)
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[AND2, active1]

Status:
AND2: [1,2]
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(16) Obligation:

Q DP problem:
The TRS P consists of the following rules:

AND(X1, mark(X2)) → AND(X1, X2)
AND(mark(X1), X2) → AND(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(17) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


AND(X1, mark(X2)) → AND(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
AND(x0, x1, x2)  =  AND(x2)

Tags:
AND has argument tags [2,1,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
AND(x1, x2)  =  AND(x2)
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[AND1, mark1]

Status:
AND1: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

AND(mark(X1), X2) → AND(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(19) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


AND(mark(X1), X2) → AND(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
AND(x0, x1, x2)  =  AND(x0, x1)

Tags:
AND has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
AND(x1, x2)  =  AND
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
mark1 > AND

Status:
AND: multiset
mark1: [1]


The following usable rules [FROCOS05] were oriented: none

(20) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(21) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(22) TRUE

(23) Obligation:

Q DP problem:
The TRS P consists of the following rules:

X(X1, mark(X2)) → X(X1, X2)
X(mark(X1), X2) → X(X1, X2)
X(active(X1), X2) → X(X1, X2)
X(X1, active(X2)) → X(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(24) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


X(active(X1), X2) → X(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
X(x0, x1, x2)  =  X(x0)

Tags:
X has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
X(x1, x2)  =  x1
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(25) Obligation:

Q DP problem:
The TRS P consists of the following rules:

X(X1, mark(X2)) → X(X1, X2)
X(mark(X1), X2) → X(X1, X2)
X(X1, active(X2)) → X(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(26) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


X(X1, active(X2)) → X(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
X(x0, x1, x2)  =  X(x0, x1, x2)

Tags:
X has argument tags [1,2,2] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
X(x1, x2)  =  X(x1, x2)
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[X2, active1]

Status:
X2: [1,2]
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(27) Obligation:

Q DP problem:
The TRS P consists of the following rules:

X(X1, mark(X2)) → X(X1, X2)
X(mark(X1), X2) → X(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(28) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


X(X1, mark(X2)) → X(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
X(x0, x1, x2)  =  X(x2)

Tags:
X has argument tags [2,1,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
X(x1, x2)  =  X(x2)
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[X1, mark1]

Status:
X1: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(29) Obligation:

Q DP problem:
The TRS P consists of the following rules:

X(mark(X1), X2) → X(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(30) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


X(mark(X1), X2) → X(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
X(x0, x1, x2)  =  X(x0, x1)

Tags:
X has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
X(x1, x2)  =  X
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
mark1 > X

Status:
X: multiset
mark1: [1]


The following usable rules [FROCOS05] were oriented: none

(31) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(32) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(33) TRUE

(34) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U711(X1, mark(X2), X3) → U711(X1, X2, X3)
U711(mark(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, X2, mark(X3)) → U711(X1, X2, X3)
U711(active(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, active(X2), X3) → U711(X1, X2, X3)
U711(X1, X2, active(X3)) → U711(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(35) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U711(X1, X2, mark(X3)) → U711(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U711(x0, x1, x2, x3)  =  U711(x3)

Tags:
U711 has argument tags [2,0,0,1] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U711(x1, x2, x3)  =  U711(x1, x3)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U71^12: multiset
mark1: [1]


The following usable rules [FROCOS05] were oriented: none

(36) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U711(X1, mark(X2), X3) → U711(X1, X2, X3)
U711(mark(X1), X2, X3) → U711(X1, X2, X3)
U711(active(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, active(X2), X3) → U711(X1, X2, X3)
U711(X1, X2, active(X3)) → U711(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(37) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U711(X1, mark(X2), X3) → U711(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U711(x0, x1, x2, x3)  =  U711(x0, x3)

Tags:
U711 has argument tags [3,1,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U711(x1, x2, x3)  =  U711(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U71^12: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(38) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U711(mark(X1), X2, X3) → U711(X1, X2, X3)
U711(active(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, active(X2), X3) → U711(X1, X2, X3)
U711(X1, X2, active(X3)) → U711(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(39) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U711(mark(X1), X2, X3) → U711(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U711(x0, x1, x2, x3)  =  U711(x1)

Tags:
U711 has argument tags [2,3,3,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U711(x1, x2, x3)  =  U711(x1, x2)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U71^12: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(40) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U711(active(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, active(X2), X3) → U711(X1, X2, X3)
U711(X1, X2, active(X3)) → U711(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(41) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U711(active(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, active(X2), X3) → U711(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U711(x0, x1, x2, x3)  =  U711(x0, x2)

Tags:
U711 has argument tags [1,0,1,1] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U711(x1, x2, x3)  =  U711(x1, x2)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
active1 > U71^12

Status:
U71^12: [1,2]
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(42) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U711(X1, X2, active(X3)) → U711(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(43) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U711(X1, X2, active(X3)) → U711(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U711(x0, x1, x2, x3)  =  U711(x3)

Tags:
U711 has argument tags [3,1,0,2] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U711(x1, x2, x3)  =  U711
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U71^1: []
active1: [1]


The following usable rules [FROCOS05] were oriented: none

(44) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(45) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(46) TRUE

(47) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U611(active(X)) → U611(X)
U611(mark(X)) → U611(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(48) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U611(active(X)) → U611(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U611(x0, x1)  =  U611(x1)

Tags:
U611 has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U611(x1)  =  U611
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U61^1: multiset
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(49) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U611(mark(X)) → U611(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(50) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U611(mark(X)) → U611(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U611(x0, x1)  =  U611(x1)

Tags:
U611 has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U611(x1)  =  U611
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[U61^1, mark1]

Status:
U61^1: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(51) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(52) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(53) TRUE

(54) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PLUS(X1, mark(X2)) → PLUS(X1, X2)
PLUS(mark(X1), X2) → PLUS(X1, X2)
PLUS(active(X1), X2) → PLUS(X1, X2)
PLUS(X1, active(X2)) → PLUS(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(55) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PLUS(active(X1), X2) → PLUS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
PLUS(x0, x1, x2)  =  PLUS(x0)

Tags:
PLUS has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
PLUS(x1, x2)  =  x1
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(56) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PLUS(X1, mark(X2)) → PLUS(X1, X2)
PLUS(mark(X1), X2) → PLUS(X1, X2)
PLUS(X1, active(X2)) → PLUS(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(57) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PLUS(X1, active(X2)) → PLUS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
PLUS(x0, x1, x2)  =  PLUS(x0, x1, x2)

Tags:
PLUS has argument tags [1,2,2] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
PLUS(x1, x2)  =  PLUS(x1, x2)
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[PLUS2, active1]

Status:
PLUS2: [1,2]
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(58) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PLUS(X1, mark(X2)) → PLUS(X1, X2)
PLUS(mark(X1), X2) → PLUS(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(59) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PLUS(X1, mark(X2)) → PLUS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
PLUS(x0, x1, x2)  =  PLUS(x2)

Tags:
PLUS has argument tags [2,1,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
PLUS(x1, x2)  =  PLUS(x2)
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[PLUS1, mark1]

Status:
PLUS1: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(60) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PLUS(mark(X1), X2) → PLUS(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(61) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


PLUS(mark(X1), X2) → PLUS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
PLUS(x0, x1, x2)  =  PLUS(x0, x1)

Tags:
PLUS has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
PLUS(x1, x2)  =  PLUS
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
mark1 > PLUS

Status:
PLUS: multiset
mark1: [1]


The following usable rules [FROCOS05] were oriented: none

(62) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(63) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(64) TRUE

(65) Obligation:

Q DP problem:
The TRS P consists of the following rules:

S(active(X)) → S(X)
S(mark(X)) → S(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(66) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


S(active(X)) → S(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
S(x0, x1)  =  S(x1)

Tags:
S has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
S(x1)  =  S
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
S: multiset
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(67) Obligation:

Q DP problem:
The TRS P consists of the following rules:

S(mark(X)) → S(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(68) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


S(mark(X)) → S(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
S(x0, x1)  =  S(x1)

Tags:
S has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
S(x1)  =  S
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[S, mark1]

Status:
S: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(69) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(70) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(71) TRUE

(72) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U511(X1, mark(X2), X3) → U511(X1, X2, X3)
U511(mark(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, X2, mark(X3)) → U511(X1, X2, X3)
U511(active(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, active(X2), X3) → U511(X1, X2, X3)
U511(X1, X2, active(X3)) → U511(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(73) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U511(X1, X2, mark(X3)) → U511(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U511(x0, x1, x2, x3)  =  U511(x3)

Tags:
U511 has argument tags [2,0,0,1] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U511(x1, x2, x3)  =  U511(x1, x3)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U51^12: multiset
mark1: [1]


The following usable rules [FROCOS05] were oriented: none

(74) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U511(X1, mark(X2), X3) → U511(X1, X2, X3)
U511(mark(X1), X2, X3) → U511(X1, X2, X3)
U511(active(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, active(X2), X3) → U511(X1, X2, X3)
U511(X1, X2, active(X3)) → U511(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(75) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U511(X1, mark(X2), X3) → U511(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U511(x0, x1, x2, x3)  =  U511(x0, x3)

Tags:
U511 has argument tags [3,1,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U511(x1, x2, x3)  =  U511(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U51^12: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(76) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U511(mark(X1), X2, X3) → U511(X1, X2, X3)
U511(active(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, active(X2), X3) → U511(X1, X2, X3)
U511(X1, X2, active(X3)) → U511(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(77) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U511(mark(X1), X2, X3) → U511(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U511(x0, x1, x2, x3)  =  U511(x1)

Tags:
U511 has argument tags [2,3,3,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U511(x1, x2, x3)  =  U511(x1, x2)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U51^12: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(78) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U511(active(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, active(X2), X3) → U511(X1, X2, X3)
U511(X1, X2, active(X3)) → U511(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(79) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U511(active(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, active(X2), X3) → U511(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U511(x0, x1, x2, x3)  =  U511(x0, x2)

Tags:
U511 has argument tags [1,0,1,1] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U511(x1, x2, x3)  =  U511(x1, x2)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
active1 > U51^12

Status:
U51^12: [1,2]
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(80) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U511(X1, X2, active(X3)) → U511(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(81) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U511(X1, X2, active(X3)) → U511(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U511(x0, x1, x2, x3)  =  U511(x3)

Tags:
U511 has argument tags [3,1,0,2] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U511(x1, x2, x3)  =  U511
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U51^1: []
active1: [1]


The following usable rules [FROCOS05] were oriented: none

(82) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(83) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(84) TRUE

(85) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U411(X1, mark(X2)) → U411(X1, X2)
U411(mark(X1), X2) → U411(X1, X2)
U411(active(X1), X2) → U411(X1, X2)
U411(X1, active(X2)) → U411(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(86) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U411(active(X1), X2) → U411(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U411(x0, x1, x2)  =  U411(x0)

Tags:
U411 has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U411(x1, x2)  =  x1
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(87) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U411(X1, mark(X2)) → U411(X1, X2)
U411(mark(X1), X2) → U411(X1, X2)
U411(X1, active(X2)) → U411(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(88) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U411(X1, active(X2)) → U411(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U411(x0, x1, x2)  =  U411(x0, x1, x2)

Tags:
U411 has argument tags [1,2,2] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U411(x1, x2)  =  U411(x1, x2)
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[U41^12, active1]

Status:
U41^12: [1,2]
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(89) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U411(X1, mark(X2)) → U411(X1, X2)
U411(mark(X1), X2) → U411(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(90) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U411(X1, mark(X2)) → U411(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U411(x0, x1, x2)  =  U411(x2)

Tags:
U411 has argument tags [2,1,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U411(x1, x2)  =  U411(x2)
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[U41^11, mark1]

Status:
U41^11: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(91) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U411(mark(X1), X2) → U411(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(92) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U411(mark(X1), X2) → U411(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U411(x0, x1, x2)  =  U411(x0, x1)

Tags:
U411 has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U411(x1, x2)  =  U411
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
mark1 > U41^1

Status:
U41^1: multiset
mark1: [1]


The following usable rules [FROCOS05] were oriented: none

(93) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(94) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(95) TRUE

(96) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U331(active(X)) → U331(X)
U331(mark(X)) → U331(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(97) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U331(active(X)) → U331(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U331(x0, x1)  =  U331(x1)

Tags:
U331 has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U331(x1)  =  U331
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U33^1: multiset
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(98) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U331(mark(X)) → U331(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(99) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U331(mark(X)) → U331(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U331(x0, x1)  =  U331(x1)

Tags:
U331 has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U331(x1)  =  U331
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[U33^1, mark1]

Status:
U33^1: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(100) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(101) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(102) TRUE

(103) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U321(X1, mark(X2)) → U321(X1, X2)
U321(mark(X1), X2) → U321(X1, X2)
U321(active(X1), X2) → U321(X1, X2)
U321(X1, active(X2)) → U321(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(104) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U321(active(X1), X2) → U321(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U321(x0, x1, x2)  =  U321(x0)

Tags:
U321 has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U321(x1, x2)  =  x1
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(105) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U321(X1, mark(X2)) → U321(X1, X2)
U321(mark(X1), X2) → U321(X1, X2)
U321(X1, active(X2)) → U321(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(106) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U321(X1, active(X2)) → U321(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U321(x0, x1, x2)  =  U321(x0, x1, x2)

Tags:
U321 has argument tags [1,2,2] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U321(x1, x2)  =  U321(x1, x2)
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[U32^12, active1]

Status:
U32^12: [1,2]
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(107) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U321(X1, mark(X2)) → U321(X1, X2)
U321(mark(X1), X2) → U321(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(108) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U321(X1, mark(X2)) → U321(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U321(x0, x1, x2)  =  U321(x2)

Tags:
U321 has argument tags [2,1,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U321(x1, x2)  =  U321(x2)
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[U32^11, mark1]

Status:
U32^11: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(109) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U321(mark(X1), X2) → U321(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(110) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U321(mark(X1), X2) → U321(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U321(x0, x1, x2)  =  U321(x0, x1)

Tags:
U321 has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U321(x1, x2)  =  U321
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
mark1 > U32^1

Status:
U32^1: multiset
mark1: [1]


The following usable rules [FROCOS05] were oriented: none

(111) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(112) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(113) TRUE

(114) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U311(X1, mark(X2), X3) → U311(X1, X2, X3)
U311(mark(X1), X2, X3) → U311(X1, X2, X3)
U311(X1, X2, mark(X3)) → U311(X1, X2, X3)
U311(active(X1), X2, X3) → U311(X1, X2, X3)
U311(X1, active(X2), X3) → U311(X1, X2, X3)
U311(X1, X2, active(X3)) → U311(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(115) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U311(X1, X2, mark(X3)) → U311(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U311(x0, x1, x2, x3)  =  U311(x3)

Tags:
U311 has argument tags [2,0,0,1] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U311(x1, x2, x3)  =  U311(x1, x3)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U31^12: multiset
mark1: [1]


The following usable rules [FROCOS05] were oriented: none

(116) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U311(X1, mark(X2), X3) → U311(X1, X2, X3)
U311(mark(X1), X2, X3) → U311(X1, X2, X3)
U311(active(X1), X2, X3) → U311(X1, X2, X3)
U311(X1, active(X2), X3) → U311(X1, X2, X3)
U311(X1, X2, active(X3)) → U311(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(117) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U311(X1, mark(X2), X3) → U311(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U311(x0, x1, x2, x3)  =  U311(x0, x3)

Tags:
U311 has argument tags [3,1,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U311(x1, x2, x3)  =  U311(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U31^12: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(118) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U311(mark(X1), X2, X3) → U311(X1, X2, X3)
U311(active(X1), X2, X3) → U311(X1, X2, X3)
U311(X1, active(X2), X3) → U311(X1, X2, X3)
U311(X1, X2, active(X3)) → U311(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(119) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U311(mark(X1), X2, X3) → U311(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U311(x0, x1, x2, x3)  =  U311(x1)

Tags:
U311 has argument tags [2,3,3,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U311(x1, x2, x3)  =  U311(x1, x2)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U31^12: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(120) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U311(active(X1), X2, X3) → U311(X1, X2, X3)
U311(X1, active(X2), X3) → U311(X1, X2, X3)
U311(X1, X2, active(X3)) → U311(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(121) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U311(active(X1), X2, X3) → U311(X1, X2, X3)
U311(X1, active(X2), X3) → U311(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U311(x0, x1, x2, x3)  =  U311(x0, x2)

Tags:
U311 has argument tags [1,0,1,1] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U311(x1, x2, x3)  =  U311(x1, x2)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
active1 > U31^12

Status:
U31^12: [1,2]
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(122) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U311(X1, X2, active(X3)) → U311(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(123) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U311(X1, X2, active(X3)) → U311(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U311(x0, x1, x2, x3)  =  U311(x3)

Tags:
U311 has argument tags [3,1,0,2] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U311(x1, x2, x3)  =  U311
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U31^1: []
active1: [1]


The following usable rules [FROCOS05] were oriented: none

(124) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(125) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(126) TRUE

(127) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U221(active(X)) → U221(X)
U221(mark(X)) → U221(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(128) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U221(active(X)) → U221(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U221(x0, x1)  =  U221(x1)

Tags:
U221 has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U221(x1)  =  U221
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U22^1: multiset
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(129) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U221(mark(X)) → U221(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(130) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U221(mark(X)) → U221(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U221(x0, x1)  =  U221(x1)

Tags:
U221 has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U221(x1)  =  U221
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[U22^1, mark1]

Status:
U22^1: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(131) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(132) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(133) TRUE

(134) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U211(X1, mark(X2)) → U211(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(135) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U211(active(X1), X2) → U211(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U211(x0, x1, x2)  =  U211(x0)

Tags:
U211 has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U211(x1, x2)  =  x1
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(136) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U211(X1, mark(X2)) → U211(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(137) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U211(X1, active(X2)) → U211(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U211(x0, x1, x2)  =  U211(x0, x1, x2)

Tags:
U211 has argument tags [1,2,2] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U211(x1, x2)  =  U211(x1, x2)
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[U21^12, active1]

Status:
U21^12: [1,2]
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(138) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U211(X1, mark(X2)) → U211(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(139) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U211(X1, mark(X2)) → U211(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U211(x0, x1, x2)  =  U211(x2)

Tags:
U211 has argument tags [2,1,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U211(x1, x2)  =  U211(x2)
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[U21^11, mark1]

Status:
U21^11: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(140) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U211(mark(X1), X2) → U211(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(141) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U211(mark(X1), X2) → U211(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U211(x0, x1, x2)  =  U211(x0, x1)

Tags:
U211 has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U211(x1, x2)  =  U211
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
mark1 > U21^1

Status:
U21^1: multiset
mark1: [1]


The following usable rules [FROCOS05] were oriented: none

(142) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(143) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(144) TRUE

(145) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U131(active(X)) → U131(X)
U131(mark(X)) → U131(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(146) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U131(active(X)) → U131(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U131(x0, x1)  =  U131(x1)

Tags:
U131 has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U131(x1)  =  U131
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U13^1: multiset
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(147) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U131(mark(X)) → U131(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(148) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U131(mark(X)) → U131(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U131(x0, x1)  =  U131(x1)

Tags:
U131 has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U131(x1)  =  U131
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[U13^1, mark1]

Status:
U13^1: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(149) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(150) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(151) TRUE

(152) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNAT(active(X)) → ISNAT(X)
ISNAT(mark(X)) → ISNAT(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(153) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNAT(active(X)) → ISNAT(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
ISNAT(x0, x1)  =  ISNAT(x1)

Tags:
ISNAT has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
ISNAT(x1)  =  ISNAT
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
ISNAT: multiset
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(154) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNAT(mark(X)) → ISNAT(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(155) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNAT(mark(X)) → ISNAT(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
ISNAT(x0, x1)  =  ISNAT(x1)

Tags:
ISNAT has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
ISNAT(x1)  =  ISNAT
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[ISNAT, mark1]

Status:
ISNAT: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(156) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(157) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(158) TRUE

(159) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U121(X1, mark(X2)) → U121(X1, X2)
U121(mark(X1), X2) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(160) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U121(active(X1), X2) → U121(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U121(x0, x1, x2)  =  U121(x0)

Tags:
U121 has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U121(x1, x2)  =  x1
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(161) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U121(X1, mark(X2)) → U121(X1, X2)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(162) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U121(X1, active(X2)) → U121(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U121(x0, x1, x2)  =  U121(x0, x1, x2)

Tags:
U121 has argument tags [1,2,2] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U121(x1, x2)  =  U121(x1, x2)
mark(x1)  =  x1
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[U12^12, active1]

Status:
U12^12: [1,2]
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(163) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U121(X1, mark(X2)) → U121(X1, X2)
U121(mark(X1), X2) → U121(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(164) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U121(X1, mark(X2)) → U121(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U121(x0, x1, x2)  =  U121(x2)

Tags:
U121 has argument tags [2,1,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U121(x1, x2)  =  U121(x2)
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[U12^11, mark1]

Status:
U12^11: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(165) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U121(mark(X1), X2) → U121(X1, X2)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(166) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U121(mark(X1), X2) → U121(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U121(x0, x1, x2)  =  U121(x0, x1)

Tags:
U121 has argument tags [0,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U121(x1, x2)  =  U121
mark(x1)  =  mark(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
mark1 > U12^1

Status:
U12^1: multiset
mark1: [1]


The following usable rules [FROCOS05] were oriented: none

(167) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(168) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(169) TRUE

(170) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U111(X1, mark(X2), X3) → U111(X1, X2, X3)
U111(mark(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, X2, mark(X3)) → U111(X1, X2, X3)
U111(active(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, active(X2), X3) → U111(X1, X2, X3)
U111(X1, X2, active(X3)) → U111(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(171) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U111(X1, X2, mark(X3)) → U111(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U111(x0, x1, x2, x3)  =  U111(x3)

Tags:
U111 has argument tags [2,0,0,1] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U111(x1, x2, x3)  =  U111(x1, x3)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U11^12: multiset
mark1: [1]


The following usable rules [FROCOS05] were oriented: none

(172) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U111(X1, mark(X2), X3) → U111(X1, X2, X3)
U111(mark(X1), X2, X3) → U111(X1, X2, X3)
U111(active(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, active(X2), X3) → U111(X1, X2, X3)
U111(X1, X2, active(X3)) → U111(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(173) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U111(X1, mark(X2), X3) → U111(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U111(x0, x1, x2, x3)  =  U111(x0, x3)

Tags:
U111 has argument tags [3,1,0,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U111(x1, x2, x3)  =  U111(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U11^12: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(174) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U111(mark(X1), X2, X3) → U111(X1, X2, X3)
U111(active(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, active(X2), X3) → U111(X1, X2, X3)
U111(X1, X2, active(X3)) → U111(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(175) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U111(mark(X1), X2, X3) → U111(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U111(x0, x1, x2, x3)  =  U111(x1)

Tags:
U111 has argument tags [2,3,3,3] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U111(x1, x2, x3)  =  U111(x1, x2)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U11^12: multiset
mark1: multiset


The following usable rules [FROCOS05] were oriented: none

(176) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U111(active(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, active(X2), X3) → U111(X1, X2, X3)
U111(X1, X2, active(X3)) → U111(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(177) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U111(active(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, active(X2), X3) → U111(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U111(x0, x1, x2, x3)  =  U111(x0, x2)

Tags:
U111 has argument tags [1,0,1,1] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U111(x1, x2, x3)  =  U111(x1, x2)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
active1 > U11^12

Status:
U11^12: [1,2]
active1: multiset


The following usable rules [FROCOS05] were oriented: none

(178) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U111(X1, X2, active(X3)) → U111(X1, X2, X3)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(179) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U111(X1, X2, active(X3)) → U111(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
U111(x0, x1, x2, x3)  =  U111(x3)

Tags:
U111 has argument tags [3,1,0,2] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
U111(x1, x2, x3)  =  U111
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
U11^1: []
active1: [1]


The following usable rules [FROCOS05] were oriented: none

(180) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(181) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(182) TRUE

(183) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MARK(U11(X1, X2, X3)) → ACTIVE(U11(mark(X1), X2, X3))
ACTIVE(U11(tt, V1, V2)) → MARK(U12(isNat(V1), V2))
MARK(U11(X1, X2, X3)) → MARK(X1)
MARK(U12(X1, X2)) → ACTIVE(U12(mark(X1), X2))
ACTIVE(U12(tt, V2)) → MARK(U13(isNat(V2)))
MARK(U12(X1, X2)) → MARK(X1)
MARK(isNat(X)) → ACTIVE(isNat(X))
ACTIVE(U21(tt, V1)) → MARK(U22(isNat(V1)))
MARK(U13(X)) → ACTIVE(U13(mark(X)))
ACTIVE(U31(tt, V1, V2)) → MARK(U32(isNat(V1), V2))
MARK(U13(X)) → MARK(X)
MARK(U21(X1, X2)) → ACTIVE(U21(mark(X1), X2))
ACTIVE(U32(tt, V2)) → MARK(U33(isNat(V2)))
MARK(U21(X1, X2)) → MARK(X1)
MARK(U22(X)) → ACTIVE(U22(mark(X)))
ACTIVE(U41(tt, N)) → MARK(N)
MARK(U22(X)) → MARK(X)
MARK(U31(X1, X2, X3)) → ACTIVE(U31(mark(X1), X2, X3))
ACTIVE(U51(tt, M, N)) → MARK(s(plus(N, M)))
MARK(U31(X1, X2, X3)) → MARK(X1)
MARK(U32(X1, X2)) → ACTIVE(U32(mark(X1), X2))
ACTIVE(U71(tt, M, N)) → MARK(plus(x(N, M), N))
MARK(U32(X1, X2)) → MARK(X1)
MARK(U33(X)) → ACTIVE(U33(mark(X)))
ACTIVE(and(tt, X)) → MARK(X)
MARK(U33(X)) → MARK(X)
MARK(U41(X1, X2)) → ACTIVE(U41(mark(X1), X2))
ACTIVE(isNat(plus(V1, V2))) → MARK(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
MARK(U41(X1, X2)) → MARK(X1)
MARK(U51(X1, X2, X3)) → ACTIVE(U51(mark(X1), X2, X3))
ACTIVE(isNat(s(V1))) → MARK(U21(isNatKind(V1), V1))
MARK(U51(X1, X2, X3)) → MARK(X1)
MARK(s(X)) → ACTIVE(s(mark(X)))
ACTIVE(isNat(x(V1, V2))) → MARK(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
MARK(s(X)) → MARK(X)
MARK(plus(X1, X2)) → ACTIVE(plus(mark(X1), mark(X2)))
ACTIVE(isNatKind(plus(V1, V2))) → MARK(and(isNatKind(V1), isNatKind(V2)))
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(U61(X)) → ACTIVE(U61(mark(X)))
ACTIVE(isNatKind(s(V1))) → MARK(isNatKind(V1))
MARK(U61(X)) → MARK(X)
MARK(U71(X1, X2, X3)) → ACTIVE(U71(mark(X1), X2, X3))
ACTIVE(isNatKind(x(V1, V2))) → MARK(and(isNatKind(V1), isNatKind(V2)))
MARK(U71(X1, X2, X3)) → MARK(X1)
MARK(x(X1, X2)) → ACTIVE(x(mark(X1), mark(X2)))
ACTIVE(plus(N, 0)) → MARK(U41(and(isNat(N), isNatKind(N)), N))
MARK(x(X1, X2)) → MARK(X1)
MARK(x(X1, X2)) → MARK(X2)
MARK(and(X1, X2)) → ACTIVE(and(mark(X1), X2))
ACTIVE(plus(N, s(M))) → MARK(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
MARK(and(X1, X2)) → MARK(X1)
MARK(isNatKind(X)) → ACTIVE(isNatKind(X))
ACTIVE(x(N, 0)) → MARK(U61(and(isNat(N), isNatKind(N))))
ACTIVE(x(N, s(M))) → MARK(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(184) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ACTIVE(U11(tt, V1, V2)) → MARK(U12(isNat(V1), V2))
MARK(U11(X1, X2, X3)) → MARK(X1)
ACTIVE(U12(tt, V2)) → MARK(U13(isNat(V2)))
MARK(U12(X1, X2)) → MARK(X1)
ACTIVE(U21(tt, V1)) → MARK(U22(isNat(V1)))
ACTIVE(U31(tt, V1, V2)) → MARK(U32(isNat(V1), V2))
ACTIVE(U32(tt, V2)) → MARK(U33(isNat(V2)))
MARK(U21(X1, X2)) → MARK(X1)
ACTIVE(U41(tt, N)) → MARK(N)
ACTIVE(U51(tt, M, N)) → MARK(s(plus(N, M)))
MARK(U31(X1, X2, X3)) → MARK(X1)
ACTIVE(U71(tt, M, N)) → MARK(plus(x(N, M), N))
MARK(U32(X1, X2)) → MARK(X1)
ACTIVE(and(tt, X)) → MARK(X)
MARK(U33(X)) → MARK(X)
ACTIVE(isNat(plus(V1, V2))) → MARK(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
MARK(U41(X1, X2)) → MARK(X1)
ACTIVE(isNat(s(V1))) → MARK(U21(isNatKind(V1), V1))
MARK(U51(X1, X2, X3)) → MARK(X1)
ACTIVE(isNat(x(V1, V2))) → MARK(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
MARK(s(X)) → MARK(X)
ACTIVE(isNatKind(plus(V1, V2))) → MARK(and(isNatKind(V1), isNatKind(V2)))
MARK(plus(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
ACTIVE(isNatKind(s(V1))) → MARK(isNatKind(V1))
MARK(U61(X)) → MARK(X)
ACTIVE(isNatKind(x(V1, V2))) → MARK(and(isNatKind(V1), isNatKind(V2)))
MARK(U71(X1, X2, X3)) → MARK(X1)
ACTIVE(plus(N, 0)) → MARK(U41(and(isNat(N), isNatKind(N)), N))
MARK(x(X1, X2)) → MARK(X1)
MARK(x(X1, X2)) → MARK(X2)
ACTIVE(plus(N, s(M))) → MARK(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
MARK(and(X1, X2)) → MARK(X1)
ACTIVE(x(N, 0)) → MARK(U61(and(isNat(N), isNatKind(N))))
ACTIVE(x(N, s(M))) → MARK(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
MARK(x0, x1)  =  MARK(x1)
ACTIVE(x0, x1)  =  ACTIVE(x0, x1)

Tags:
MARK has argument tags [0,2] and root tag 1
ACTIVE has argument tags [2,2] and root tag 1

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
MARK(x1)  =  x1
U11(x1, x2, x3)  =  U11(x1, x2, x3)
ACTIVE(x1)  =  x1
mark(x1)  =  x1
tt  =  tt
U12(x1, x2)  =  U12(x1, x2)
isNat(x1)  =  x1
U13(x1)  =  x1
U21(x1, x2)  =  U21(x1, x2)
U22(x1)  =  x1
U31(x1, x2, x3)  =  U31(x1, x2, x3)
U32(x1, x2)  =  U32(x1, x2)
U33(x1)  =  U33(x1)
U41(x1, x2)  =  U41(x1, x2)
U51(x1, x2, x3)  =  U51(x1, x2, x3)
s(x1)  =  s(x1)
plus(x1, x2)  =  plus(x1, x2)
U71(x1, x2, x3)  =  U71(x1, x2, x3)
x(x1, x2)  =  x(x1, x2)
and(x1, x2)  =  and(x1, x2)
isNatKind(x1)  =  x1
U61(x1)  =  U61(x1)
0  =  0
active(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
[tt, 0] > [U713, x2] > U313 > U322 > U331 > [U122, U212]
[tt, 0] > [U713, x2] > [U513, plus2] > U113 > [U122, U212]
[tt, 0] > [U713, x2] > [U513, plus2] > U412 > [U122, U212]
[tt, 0] > [U713, x2] > [U513, plus2] > s1 > [U122, U212]
[tt, 0] > [U713, x2] > [U513, plus2] > and2 > [U122, U212]
[tt, 0] > [U713, x2] > U611 > [U122, U212]

Status:
U113: [1,3,2]
tt: multiset
U122: multiset
U212: [1,2]
U313: [1,3,2]
U322: [1,2]
U331: multiset
U412: multiset
U513: [3,2,1]
s1: multiset
plus2: [1,2]
U713: [2,3,1]
x2: [2,1]
and2: multiset
U611: [1]
0: multiset


The following usable rules [FROCOS05] were oriented:

mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
mark(isNat(X)) → active(isNat(X))
active(U21(tt, V1)) → mark(U22(isNat(V1)))
mark(U13(X)) → active(U13(mark(X)))
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
mark(U22(X)) → active(U22(mark(X)))
active(U41(tt, N)) → mark(N)
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
active(U51(tt, M, N)) → mark(s(plus(N, M)))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
mark(U33(X)) → active(U33(mark(X)))
active(and(tt, X)) → mark(X)
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
mark(s(X)) → active(s(mark(X)))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
mark(U61(X)) → active(U61(mark(X)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
mark(and(X1, X2)) → active(and(mark(X1), X2))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(isNatKind(X)) → active(isNatKind(X))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(tt) → active(tt)
mark(0) → active(0)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
isNat(active(X)) → isNat(X)
isNat(mark(X)) → isNat(X)
U12(X1, mark(X2)) → U12(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
U13(active(X)) → U13(X)
U13(mark(X)) → U13(X)
U22(active(X)) → U22(X)
U22(mark(X)) → U22(X)
U32(X1, mark(X2)) → U32(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U33(active(X)) → U33(X)
U33(mark(X)) → U33(X)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
plus(X1, mark(X2)) → plus(X1, X2)
plus(mark(X1), X2) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
s(active(X)) → s(X)
s(mark(X)) → s(X)
x(X1, mark(X2)) → x(X1, X2)
x(mark(X1), X2) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(mark(X1), X2) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
isNatKind(active(X)) → isNatKind(X)
isNatKind(mark(X)) → isNatKind(X)
and(X1, mark(X2)) → and(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U61(active(X)) → U61(X)
U61(mark(X)) → U61(X)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
active(U13(tt)) → mark(tt)
active(U22(tt)) → mark(tt)
active(U33(tt)) → mark(tt)
active(U61(tt)) → mark(0)
active(isNat(0)) → mark(tt)
active(isNatKind(0)) → mark(tt)

(185) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MARK(U11(X1, X2, X3)) → ACTIVE(U11(mark(X1), X2, X3))
MARK(U12(X1, X2)) → ACTIVE(U12(mark(X1), X2))
MARK(isNat(X)) → ACTIVE(isNat(X))
MARK(U13(X)) → ACTIVE(U13(mark(X)))
MARK(U13(X)) → MARK(X)
MARK(U21(X1, X2)) → ACTIVE(U21(mark(X1), X2))
MARK(U22(X)) → ACTIVE(U22(mark(X)))
MARK(U22(X)) → MARK(X)
MARK(U31(X1, X2, X3)) → ACTIVE(U31(mark(X1), X2, X3))
MARK(U32(X1, X2)) → ACTIVE(U32(mark(X1), X2))
MARK(U33(X)) → ACTIVE(U33(mark(X)))
MARK(U41(X1, X2)) → ACTIVE(U41(mark(X1), X2))
MARK(U51(X1, X2, X3)) → ACTIVE(U51(mark(X1), X2, X3))
MARK(s(X)) → ACTIVE(s(mark(X)))
MARK(plus(X1, X2)) → ACTIVE(plus(mark(X1), mark(X2)))
MARK(U61(X)) → ACTIVE(U61(mark(X)))
MARK(U71(X1, X2, X3)) → ACTIVE(U71(mark(X1), X2, X3))
MARK(x(X1, X2)) → ACTIVE(x(mark(X1), mark(X2)))
MARK(and(X1, X2)) → ACTIVE(and(mark(X1), X2))
MARK(isNatKind(X)) → ACTIVE(isNatKind(X))

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(186) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 18 less nodes.

(187) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MARK(U22(X)) → MARK(X)
MARK(U13(X)) → MARK(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(188) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(U22(X)) → MARK(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
MARK(x0, x1)  =  MARK(x1)

Tags:
MARK has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
MARK(x1)  =  MARK
U22(x1)  =  U22(x1)
U13(x1)  =  x1

Recursive path order with status [RPO].
Quasi-Precedence:
trivial

Status:
MARK: multiset
U221: multiset


The following usable rules [FROCOS05] were oriented: none

(189) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MARK(U13(X)) → MARK(X)

The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(190) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


MARK(U13(X)) → MARK(X)
The remaining pairs can at least be oriented weakly.
Used ordering: SCNP Order with the following components:
Level mapping:
Top level AFS:
MARK(x0, x1)  =  MARK(x1)

Tags:
MARK has argument tags [1,0] and root tag 0

Comparison: MAX
Underlying order for the size change arcs and the rules of R:
Combined order from the following AFS and order.
MARK(x1)  =  MARK
U13(x1)  =  U13(x1)

Recursive path order with status [RPO].
Quasi-Precedence:
[MARK, U131]

Status:
MARK: multiset
U131: multiset


The following usable rules [FROCOS05] were oriented: none

(191) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(U11(tt, V1, V2)) → mark(U12(isNat(V1), V2))
active(U12(tt, V2)) → mark(U13(isNat(V2)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNat(V1)))
active(U22(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNat(V1), V2))
active(U32(tt, V2)) → mark(U33(isNat(V2)))
active(U33(tt)) → mark(tt)
active(U41(tt, N)) → mark(N)
active(U51(tt, M, N)) → mark(s(plus(N, M)))
active(U61(tt)) → mark(0)
active(U71(tt, M, N)) → mark(plus(x(N, M), N))
active(and(tt, X)) → mark(X)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(and(isNatKind(V1), isNatKind(V2)), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(isNatKind(s(V1))) → mark(isNatKind(V1))
active(isNatKind(x(V1, V2))) → mark(and(isNatKind(V1), isNatKind(V2)))
active(plus(N, 0)) → mark(U41(and(isNat(N), isNatKind(N)), N))
active(plus(N, s(M))) → mark(U51(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
active(x(N, 0)) → mark(U61(and(isNat(N), isNatKind(N))))
active(x(N, s(M))) → mark(U71(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(U13(X)) → active(U13(mark(X)))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(U31(X1, X2, X3)) → active(U31(mark(X1), X2, X3))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(s(X)) → active(s(mark(X)))
mark(plus(X1, X2)) → active(plus(mark(X1), mark(X2)))
mark(U61(X)) → active(U61(mark(X)))
mark(0) → active(0)
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(x(X1, X2)) → active(x(mark(X1), mark(X2)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
U31(mark(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, mark(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, mark(X3)) → U31(X1, X2, X3)
U31(active(X1), X2, X3) → U31(X1, X2, X3)
U31(X1, active(X2), X3) → U31(X1, X2, X3)
U31(X1, X2, active(X3)) → U31(X1, X2, X3)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
s(mark(X)) → s(X)
s(active(X)) → s(X)
plus(mark(X1), X2) → plus(X1, X2)
plus(X1, mark(X2)) → plus(X1, X2)
plus(active(X1), X2) → plus(X1, X2)
plus(X1, active(X2)) → plus(X1, X2)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
x(mark(X1), X2) → x(X1, X2)
x(X1, mark(X2)) → x(X1, X2)
x(active(X1), X2) → x(X1, X2)
x(X1, active(X2)) → x(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(192) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(193) TRUE