(0) Obligation:

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

U101(tt, M, N) → U102(isNatKind(activate(M)), activate(M), activate(N))
U102(tt, M, N) → U103(isNat(activate(N)), activate(M), activate(N))
U103(tt, M, N) → U104(isNatKind(activate(N)), activate(M), activate(N))
U104(tt, M, N) → plus(x(activate(N), activate(M)), activate(N))
U11(tt, V1, V2) → U12(isNatKind(activate(V1)), activate(V1), activate(V2))
U12(tt, V1, V2) → U13(isNatKind(activate(V2)), activate(V1), activate(V2))
U13(tt, V1, V2) → U14(isNatKind(activate(V2)), activate(V1), activate(V2))
U14(tt, V1, V2) → U15(isNat(activate(V1)), activate(V2))
U15(tt, V2) → U16(isNat(activate(V2)))
U16(tt) → tt
U21(tt, V1) → U22(isNatKind(activate(V1)), activate(V1))
U22(tt, V1) → U23(isNat(activate(V1)))
U23(tt) → tt
U31(tt, V1, V2) → U32(isNatKind(activate(V1)), activate(V1), activate(V2))
U32(tt, V1, V2) → U33(isNatKind(activate(V2)), activate(V1), activate(V2))
U33(tt, V1, V2) → U34(isNatKind(activate(V2)), activate(V1), activate(V2))
U34(tt, V1, V2) → U35(isNat(activate(V1)), activate(V2))
U35(tt, V2) → U36(isNat(activate(V2)))
U36(tt) → tt
U41(tt, V2) → U42(isNatKind(activate(V2)))
U42(tt) → tt
U51(tt) → tt
U61(tt, V2) → U62(isNatKind(activate(V2)))
U62(tt) → tt
U71(tt, N) → U72(isNatKind(activate(N)), activate(N))
U72(tt, N) → activate(N)
U81(tt, M, N) → U82(isNatKind(activate(M)), activate(M), activate(N))
U82(tt, M, N) → U83(isNat(activate(N)), activate(M), activate(N))
U83(tt, M, N) → U84(isNatKind(activate(N)), activate(M), activate(N))
U84(tt, M, N) → s(plus(activate(N), activate(M)))
U91(tt, N) → U92(isNatKind(activate(N)))
U92(tt) → 0
isNat(n__0) → tt
isNat(n__plus(V1, V2)) → U11(isNatKind(activate(V1)), activate(V1), activate(V2))
isNat(n__s(V1)) → U21(isNatKind(activate(V1)), activate(V1))
isNat(n__x(V1, V2)) → U31(isNatKind(activate(V1)), activate(V1), activate(V2))
isNatKind(n__0) → tt
isNatKind(n__plus(V1, V2)) → U41(isNatKind(activate(V1)), activate(V2))
isNatKind(n__s(V1)) → U51(isNatKind(activate(V1)))
isNatKind(n__x(V1, V2)) → U61(isNatKind(activate(V1)), activate(V2))
plus(N, 0) → U71(isNat(N), N)
plus(N, s(M)) → U81(isNat(M), M, N)
x(N, 0) → U91(isNat(N), N)
x(N, s(M)) → U101(isNat(M), M, N)
0n__0
plus(X1, X2) → n__plus(X1, X2)
s(X) → n__s(X)
x(X1, X2) → n__x(X1, X2)
activate(n__0) → 0
activate(n__plus(X1, X2)) → plus(X1, X2)
activate(n__s(X)) → s(X)
activate(n__x(X1, X2)) → x(X1, X2)
activate(X) → 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:

U1011(tt, M, N) → U1021(isNatKind(activate(M)), activate(M), activate(N))
U1011(tt, M, N) → ISNATKIND(activate(M))
U1011(tt, M, N) → ACTIVATE(M)
U1011(tt, M, N) → ACTIVATE(N)
U1021(tt, M, N) → U1031(isNat(activate(N)), activate(M), activate(N))
U1021(tt, M, N) → ISNAT(activate(N))
U1021(tt, M, N) → ACTIVATE(N)
U1021(tt, M, N) → ACTIVATE(M)
U1031(tt, M, N) → U1041(isNatKind(activate(N)), activate(M), activate(N))
U1031(tt, M, N) → ISNATKIND(activate(N))
U1031(tt, M, N) → ACTIVATE(N)
U1031(tt, M, N) → ACTIVATE(M)
U1041(tt, M, N) → PLUS(x(activate(N), activate(M)), activate(N))
U1041(tt, M, N) → X(activate(N), activate(M))
U1041(tt, M, N) → ACTIVATE(N)
U1041(tt, M, N) → ACTIVATE(M)
U111(tt, V1, V2) → U121(isNatKind(activate(V1)), activate(V1), activate(V2))
U111(tt, V1, V2) → ISNATKIND(activate(V1))
U111(tt, V1, V2) → ACTIVATE(V1)
U111(tt, V1, V2) → ACTIVATE(V2)
U121(tt, V1, V2) → U131(isNatKind(activate(V2)), activate(V1), activate(V2))
U121(tt, V1, V2) → ISNATKIND(activate(V2))
U121(tt, V1, V2) → ACTIVATE(V2)
U121(tt, V1, V2) → ACTIVATE(V1)
U131(tt, V1, V2) → U141(isNatKind(activate(V2)), activate(V1), activate(V2))
U131(tt, V1, V2) → ISNATKIND(activate(V2))
U131(tt, V1, V2) → ACTIVATE(V2)
U131(tt, V1, V2) → ACTIVATE(V1)
U141(tt, V1, V2) → U151(isNat(activate(V1)), activate(V2))
U141(tt, V1, V2) → ISNAT(activate(V1))
U141(tt, V1, V2) → ACTIVATE(V1)
U141(tt, V1, V2) → ACTIVATE(V2)
U151(tt, V2) → U161(isNat(activate(V2)))
U151(tt, V2) → ISNAT(activate(V2))
U151(tt, V2) → ACTIVATE(V2)
U211(tt, V1) → U221(isNatKind(activate(V1)), activate(V1))
U211(tt, V1) → ISNATKIND(activate(V1))
U211(tt, V1) → ACTIVATE(V1)
U221(tt, V1) → U231(isNat(activate(V1)))
U221(tt, V1) → ISNAT(activate(V1))
U221(tt, V1) → ACTIVATE(V1)
U311(tt, V1, V2) → U321(isNatKind(activate(V1)), activate(V1), activate(V2))
U311(tt, V1, V2) → ISNATKIND(activate(V1))
U311(tt, V1, V2) → ACTIVATE(V1)
U311(tt, V1, V2) → ACTIVATE(V2)
U321(tt, V1, V2) → U331(isNatKind(activate(V2)), activate(V1), activate(V2))
U321(tt, V1, V2) → ISNATKIND(activate(V2))
U321(tt, V1, V2) → ACTIVATE(V2)
U321(tt, V1, V2) → ACTIVATE(V1)
U331(tt, V1, V2) → U341(isNatKind(activate(V2)), activate(V1), activate(V2))
U331(tt, V1, V2) → ISNATKIND(activate(V2))
U331(tt, V1, V2) → ACTIVATE(V2)
U331(tt, V1, V2) → ACTIVATE(V1)
U341(tt, V1, V2) → U351(isNat(activate(V1)), activate(V2))
U341(tt, V1, V2) → ISNAT(activate(V1))
U341(tt, V1, V2) → ACTIVATE(V1)
U341(tt, V1, V2) → ACTIVATE(V2)
U351(tt, V2) → U361(isNat(activate(V2)))
U351(tt, V2) → ISNAT(activate(V2))
U351(tt, V2) → ACTIVATE(V2)
U411(tt, V2) → U421(isNatKind(activate(V2)))
U411(tt, V2) → ISNATKIND(activate(V2))
U411(tt, V2) → ACTIVATE(V2)
U611(tt, V2) → U621(isNatKind(activate(V2)))
U611(tt, V2) → ISNATKIND(activate(V2))
U611(tt, V2) → ACTIVATE(V2)
U711(tt, N) → U721(isNatKind(activate(N)), activate(N))
U711(tt, N) → ISNATKIND(activate(N))
U711(tt, N) → ACTIVATE(N)
U721(tt, N) → ACTIVATE(N)
U811(tt, M, N) → U821(isNatKind(activate(M)), activate(M), activate(N))
U811(tt, M, N) → ISNATKIND(activate(M))
U811(tt, M, N) → ACTIVATE(M)
U811(tt, M, N) → ACTIVATE(N)
U821(tt, M, N) → U831(isNat(activate(N)), activate(M), activate(N))
U821(tt, M, N) → ISNAT(activate(N))
U821(tt, M, N) → ACTIVATE(N)
U821(tt, M, N) → ACTIVATE(M)
U831(tt, M, N) → U841(isNatKind(activate(N)), activate(M), activate(N))
U831(tt, M, N) → ISNATKIND(activate(N))
U831(tt, M, N) → ACTIVATE(N)
U831(tt, M, N) → ACTIVATE(M)
U841(tt, M, N) → S(plus(activate(N), activate(M)))
U841(tt, M, N) → PLUS(activate(N), activate(M))
U841(tt, M, N) → ACTIVATE(N)
U841(tt, M, N) → ACTIVATE(M)
U911(tt, N) → U921(isNatKind(activate(N)))
U911(tt, N) → ISNATKIND(activate(N))
U911(tt, N) → ACTIVATE(N)
U921(tt) → 01
ISNAT(n__plus(V1, V2)) → U111(isNatKind(activate(V1)), activate(V1), activate(V2))
ISNAT(n__plus(V1, V2)) → ISNATKIND(activate(V1))
ISNAT(n__plus(V1, V2)) → ACTIVATE(V1)
ISNAT(n__plus(V1, V2)) → ACTIVATE(V2)
ISNAT(n__s(V1)) → U211(isNatKind(activate(V1)), activate(V1))
ISNAT(n__s(V1)) → ISNATKIND(activate(V1))
ISNAT(n__s(V1)) → ACTIVATE(V1)
ISNAT(n__x(V1, V2)) → U311(isNatKind(activate(V1)), activate(V1), activate(V2))
ISNAT(n__x(V1, V2)) → ISNATKIND(activate(V1))
ISNAT(n__x(V1, V2)) → ACTIVATE(V1)
ISNAT(n__x(V1, V2)) → ACTIVATE(V2)
ISNATKIND(n__plus(V1, V2)) → U411(isNatKind(activate(V1)), activate(V2))
ISNATKIND(n__plus(V1, V2)) → ISNATKIND(activate(V1))
ISNATKIND(n__plus(V1, V2)) → ACTIVATE(V1)
ISNATKIND(n__plus(V1, V2)) → ACTIVATE(V2)
ISNATKIND(n__s(V1)) → U511(isNatKind(activate(V1)))
ISNATKIND(n__s(V1)) → ISNATKIND(activate(V1))
ISNATKIND(n__s(V1)) → ACTIVATE(V1)
ISNATKIND(n__x(V1, V2)) → U611(isNatKind(activate(V1)), activate(V2))
ISNATKIND(n__x(V1, V2)) → ISNATKIND(activate(V1))
ISNATKIND(n__x(V1, V2)) → ACTIVATE(V1)
ISNATKIND(n__x(V1, V2)) → ACTIVATE(V2)
PLUS(N, 0) → U711(isNat(N), N)
PLUS(N, 0) → ISNAT(N)
PLUS(N, s(M)) → U811(isNat(M), M, N)
PLUS(N, s(M)) → ISNAT(M)
X(N, 0) → U911(isNat(N), N)
X(N, 0) → ISNAT(N)
X(N, s(M)) → U1011(isNat(M), M, N)
X(N, s(M)) → ISNAT(M)
ACTIVATE(n__0) → 01
ACTIVATE(n__plus(X1, X2)) → PLUS(X1, X2)
ACTIVATE(n__s(X)) → S(X)
ACTIVATE(n__x(X1, X2)) → X(X1, X2)

The TRS R consists of the following rules:

U101(tt, M, N) → U102(isNatKind(activate(M)), activate(M), activate(N))
U102(tt, M, N) → U103(isNat(activate(N)), activate(M), activate(N))
U103(tt, M, N) → U104(isNatKind(activate(N)), activate(M), activate(N))
U104(tt, M, N) → plus(x(activate(N), activate(M)), activate(N))
U11(tt, V1, V2) → U12(isNatKind(activate(V1)), activate(V1), activate(V2))
U12(tt, V1, V2) → U13(isNatKind(activate(V2)), activate(V1), activate(V2))
U13(tt, V1, V2) → U14(isNatKind(activate(V2)), activate(V1), activate(V2))
U14(tt, V1, V2) → U15(isNat(activate(V1)), activate(V2))
U15(tt, V2) → U16(isNat(activate(V2)))
U16(tt) → tt
U21(tt, V1) → U22(isNatKind(activate(V1)), activate(V1))
U22(tt, V1) → U23(isNat(activate(V1)))
U23(tt) → tt
U31(tt, V1, V2) → U32(isNatKind(activate(V1)), activate(V1), activate(V2))
U32(tt, V1, V2) → U33(isNatKind(activate(V2)), activate(V1), activate(V2))
U33(tt, V1, V2) → U34(isNatKind(activate(V2)), activate(V1), activate(V2))
U34(tt, V1, V2) → U35(isNat(activate(V1)), activate(V2))
U35(tt, V2) → U36(isNat(activate(V2)))
U36(tt) → tt
U41(tt, V2) → U42(isNatKind(activate(V2)))
U42(tt) → tt
U51(tt) → tt
U61(tt, V2) → U62(isNatKind(activate(V2)))
U62(tt) → tt
U71(tt, N) → U72(isNatKind(activate(N)), activate(N))
U72(tt, N) → activate(N)
U81(tt, M, N) → U82(isNatKind(activate(M)), activate(M), activate(N))
U82(tt, M, N) → U83(isNat(activate(N)), activate(M), activate(N))
U83(tt, M, N) → U84(isNatKind(activate(N)), activate(M), activate(N))
U84(tt, M, N) → s(plus(activate(N), activate(M)))
U91(tt, N) → U92(isNatKind(activate(N)))
U92(tt) → 0
isNat(n__0) → tt
isNat(n__plus(V1, V2)) → U11(isNatKind(activate(V1)), activate(V1), activate(V2))
isNat(n__s(V1)) → U21(isNatKind(activate(V1)), activate(V1))
isNat(n__x(V1, V2)) → U31(isNatKind(activate(V1)), activate(V1), activate(V2))
isNatKind(n__0) → tt
isNatKind(n__plus(V1, V2)) → U41(isNatKind(activate(V1)), activate(V2))
isNatKind(n__s(V1)) → U51(isNatKind(activate(V1)))
isNatKind(n__x(V1, V2)) → U61(isNatKind(activate(V1)), activate(V2))
plus(N, 0) → U71(isNat(N), N)
plus(N, s(M)) → U81(isNat(M), M, N)
x(N, 0) → U91(isNat(N), N)
x(N, s(M)) → U101(isNat(M), M, N)
0n__0
plus(X1, X2) → n__plus(X1, X2)
s(X) → n__s(X)
x(X1, X2) → n__x(X1, X2)
activate(n__0) → 0
activate(n__plus(X1, X2)) → plus(X1, X2)
activate(n__s(X)) → s(X)
activate(n__x(X1, X2)) → x(X1, X2)
activate(X) → 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 1 SCC with 11 less nodes.

(4) Obligation:

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

U1021(tt, M, N) → U1031(isNat(activate(N)), activate(M), activate(N))
U1031(tt, M, N) → U1041(isNatKind(activate(N)), activate(M), activate(N))
U1041(tt, M, N) → PLUS(x(activate(N), activate(M)), activate(N))
PLUS(N, 0) → U711(isNat(N), N)
U711(tt, N) → U721(isNatKind(activate(N)), activate(N))
U721(tt, N) → ACTIVATE(N)
ACTIVATE(n__plus(X1, X2)) → PLUS(X1, X2)
PLUS(N, 0) → ISNAT(N)
ISNAT(n__plus(V1, V2)) → U111(isNatKind(activate(V1)), activate(V1), activate(V2))
U111(tt, V1, V2) → U121(isNatKind(activate(V1)), activate(V1), activate(V2))
U121(tt, V1, V2) → U131(isNatKind(activate(V2)), activate(V1), activate(V2))
U131(tt, V1, V2) → U141(isNatKind(activate(V2)), activate(V1), activate(V2))
U141(tt, V1, V2) → U151(isNat(activate(V1)), activate(V2))
U151(tt, V2) → ISNAT(activate(V2))
ISNAT(n__plus(V1, V2)) → ISNATKIND(activate(V1))
ISNATKIND(n__plus(V1, V2)) → U411(isNatKind(activate(V1)), activate(V2))
U411(tt, V2) → ISNATKIND(activate(V2))
ISNATKIND(n__plus(V1, V2)) → ISNATKIND(activate(V1))
ISNATKIND(n__plus(V1, V2)) → ACTIVATE(V1)
ACTIVATE(n__x(X1, X2)) → X(X1, X2)
X(N, 0) → U911(isNat(N), N)
U911(tt, N) → ISNATKIND(activate(N))
ISNATKIND(n__plus(V1, V2)) → ACTIVATE(V2)
ISNATKIND(n__s(V1)) → ISNATKIND(activate(V1))
ISNATKIND(n__s(V1)) → ACTIVATE(V1)
ISNATKIND(n__x(V1, V2)) → U611(isNatKind(activate(V1)), activate(V2))
U611(tt, V2) → ISNATKIND(activate(V2))
ISNATKIND(n__x(V1, V2)) → ISNATKIND(activate(V1))
ISNATKIND(n__x(V1, V2)) → ACTIVATE(V1)
ISNATKIND(n__x(V1, V2)) → ACTIVATE(V2)
U611(tt, V2) → ACTIVATE(V2)
U911(tt, N) → ACTIVATE(N)
X(N, 0) → ISNAT(N)
ISNAT(n__plus(V1, V2)) → ACTIVATE(V1)
ISNAT(n__plus(V1, V2)) → ACTIVATE(V2)
ISNAT(n__s(V1)) → U211(isNatKind(activate(V1)), activate(V1))
U211(tt, V1) → U221(isNatKind(activate(V1)), activate(V1))
U221(tt, V1) → ISNAT(activate(V1))
ISNAT(n__s(V1)) → ISNATKIND(activate(V1))
ISNAT(n__s(V1)) → ACTIVATE(V1)
ISNAT(n__x(V1, V2)) → U311(isNatKind(activate(V1)), activate(V1), activate(V2))
U311(tt, V1, V2) → U321(isNatKind(activate(V1)), activate(V1), activate(V2))
U321(tt, V1, V2) → U331(isNatKind(activate(V2)), activate(V1), activate(V2))
U331(tt, V1, V2) → U341(isNatKind(activate(V2)), activate(V1), activate(V2))
U341(tt, V1, V2) → U351(isNat(activate(V1)), activate(V2))
U351(tt, V2) → ISNAT(activate(V2))
ISNAT(n__x(V1, V2)) → ISNATKIND(activate(V1))
ISNAT(n__x(V1, V2)) → ACTIVATE(V1)
ISNAT(n__x(V1, V2)) → ACTIVATE(V2)
U351(tt, V2) → ACTIVATE(V2)
U341(tt, V1, V2) → ISNAT(activate(V1))
U341(tt, V1, V2) → ACTIVATE(V1)
U341(tt, V1, V2) → ACTIVATE(V2)
U331(tt, V1, V2) → ISNATKIND(activate(V2))
U331(tt, V1, V2) → ACTIVATE(V2)
U331(tt, V1, V2) → ACTIVATE(V1)
U321(tt, V1, V2) → ISNATKIND(activate(V2))
U321(tt, V1, V2) → ACTIVATE(V2)
U321(tt, V1, V2) → ACTIVATE(V1)
U311(tt, V1, V2) → ISNATKIND(activate(V1))
U311(tt, V1, V2) → ACTIVATE(V1)
U311(tt, V1, V2) → ACTIVATE(V2)
U221(tt, V1) → ACTIVATE(V1)
U211(tt, V1) → ISNATKIND(activate(V1))
U211(tt, V1) → ACTIVATE(V1)
X(N, s(M)) → U1011(isNat(M), M, N)
U1011(tt, M, N) → U1021(isNatKind(activate(M)), activate(M), activate(N))
U1021(tt, M, N) → ISNAT(activate(N))
U1021(tt, M, N) → ACTIVATE(N)
U1021(tt, M, N) → ACTIVATE(M)
U1011(tt, M, N) → ISNATKIND(activate(M))
U1011(tt, M, N) → ACTIVATE(M)
U1011(tt, M, N) → ACTIVATE(N)
X(N, s(M)) → ISNAT(M)
U411(tt, V2) → ACTIVATE(V2)
U151(tt, V2) → ACTIVATE(V2)
U141(tt, V1, V2) → ISNAT(activate(V1))
U141(tt, V1, V2) → ACTIVATE(V1)
U141(tt, V1, V2) → ACTIVATE(V2)
U131(tt, V1, V2) → ISNATKIND(activate(V2))
U131(tt, V1, V2) → ACTIVATE(V2)
U131(tt, V1, V2) → ACTIVATE(V1)
U121(tt, V1, V2) → ISNATKIND(activate(V2))
U121(tt, V1, V2) → ACTIVATE(V2)
U121(tt, V1, V2) → ACTIVATE(V1)
U111(tt, V1, V2) → ISNATKIND(activate(V1))
U111(tt, V1, V2) → ACTIVATE(V1)
U111(tt, V1, V2) → ACTIVATE(V2)
PLUS(N, s(M)) → U811(isNat(M), M, N)
U811(tt, M, N) → U821(isNatKind(activate(M)), activate(M), activate(N))
U821(tt, M, N) → U831(isNat(activate(N)), activate(M), activate(N))
U831(tt, M, N) → U841(isNatKind(activate(N)), activate(M), activate(N))
U841(tt, M, N) → PLUS(activate(N), activate(M))
PLUS(N, s(M)) → ISNAT(M)
U841(tt, M, N) → ACTIVATE(N)
U841(tt, M, N) → ACTIVATE(M)
U831(tt, M, N) → ISNATKIND(activate(N))
U831(tt, M, N) → ACTIVATE(N)
U831(tt, M, N) → ACTIVATE(M)
U821(tt, M, N) → ISNAT(activate(N))
U821(tt, M, N) → ACTIVATE(N)
U821(tt, M, N) → ACTIVATE(M)
U811(tt, M, N) → ISNATKIND(activate(M))
U811(tt, M, N) → ACTIVATE(M)
U811(tt, M, N) → ACTIVATE(N)
U711(tt, N) → ISNATKIND(activate(N))
U711(tt, N) → ACTIVATE(N)
U1041(tt, M, N) → X(activate(N), activate(M))
U1041(tt, M, N) → ACTIVATE(N)
U1041(tt, M, N) → ACTIVATE(M)
U1031(tt, M, N) → ISNATKIND(activate(N))
U1031(tt, M, N) → ACTIVATE(N)
U1031(tt, M, N) → ACTIVATE(M)

The TRS R consists of the following rules:

U101(tt, M, N) → U102(isNatKind(activate(M)), activate(M), activate(N))
U102(tt, M, N) → U103(isNat(activate(N)), activate(M), activate(N))
U103(tt, M, N) → U104(isNatKind(activate(N)), activate(M), activate(N))
U104(tt, M, N) → plus(x(activate(N), activate(M)), activate(N))
U11(tt, V1, V2) → U12(isNatKind(activate(V1)), activate(V1), activate(V2))
U12(tt, V1, V2) → U13(isNatKind(activate(V2)), activate(V1), activate(V2))
U13(tt, V1, V2) → U14(isNatKind(activate(V2)), activate(V1), activate(V2))
U14(tt, V1, V2) → U15(isNat(activate(V1)), activate(V2))
U15(tt, V2) → U16(isNat(activate(V2)))
U16(tt) → tt
U21(tt, V1) → U22(isNatKind(activate(V1)), activate(V1))
U22(tt, V1) → U23(isNat(activate(V1)))
U23(tt) → tt
U31(tt, V1, V2) → U32(isNatKind(activate(V1)), activate(V1), activate(V2))
U32(tt, V1, V2) → U33(isNatKind(activate(V2)), activate(V1), activate(V2))
U33(tt, V1, V2) → U34(isNatKind(activate(V2)), activate(V1), activate(V2))
U34(tt, V1, V2) → U35(isNat(activate(V1)), activate(V2))
U35(tt, V2) → U36(isNat(activate(V2)))
U36(tt) → tt
U41(tt, V2) → U42(isNatKind(activate(V2)))
U42(tt) → tt
U51(tt) → tt
U61(tt, V2) → U62(isNatKind(activate(V2)))
U62(tt) → tt
U71(tt, N) → U72(isNatKind(activate(N)), activate(N))
U72(tt, N) → activate(N)
U81(tt, M, N) → U82(isNatKind(activate(M)), activate(M), activate(N))
U82(tt, M, N) → U83(isNat(activate(N)), activate(M), activate(N))
U83(tt, M, N) → U84(isNatKind(activate(N)), activate(M), activate(N))
U84(tt, M, N) → s(plus(activate(N), activate(M)))
U91(tt, N) → U92(isNatKind(activate(N)))
U92(tt) → 0
isNat(n__0) → tt
isNat(n__plus(V1, V2)) → U11(isNatKind(activate(V1)), activate(V1), activate(V2))
isNat(n__s(V1)) → U21(isNatKind(activate(V1)), activate(V1))
isNat(n__x(V1, V2)) → U31(isNatKind(activate(V1)), activate(V1), activate(V2))
isNatKind(n__0) → tt
isNatKind(n__plus(V1, V2)) → U41(isNatKind(activate(V1)), activate(V2))
isNatKind(n__s(V1)) → U51(isNatKind(activate(V1)))
isNatKind(n__x(V1, V2)) → U61(isNatKind(activate(V1)), activate(V2))
plus(N, 0) → U71(isNat(N), N)
plus(N, s(M)) → U81(isNat(M), M, N)
x(N, 0) → U91(isNat(N), N)
x(N, s(M)) → U101(isNat(M), M, N)
0n__0
plus(X1, X2) → n__plus(X1, X2)
s(X) → n__s(X)
x(X1, X2) → n__x(X1, X2)
activate(n__0) → 0
activate(n__plus(X1, X2)) → plus(X1, X2)
activate(n__s(X)) → s(X)
activate(n__x(X1, X2)) → x(X1, X2)
activate(X) → X

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

(5) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U1041(tt, M, N) → PLUS(x(activate(N), activate(M)), activate(N))
U711(tt, N) → U721(isNatKind(activate(N)), activate(N))
ACTIVATE(n__plus(X1, X2)) → PLUS(X1, X2)
PLUS(N, 0) → ISNAT(N)
ISNAT(n__plus(V1, V2)) → U111(isNatKind(activate(V1)), activate(V1), activate(V2))
U121(tt, V1, V2) → U131(isNatKind(activate(V2)), activate(V1), activate(V2))
U141(tt, V1, V2) → U151(isNat(activate(V1)), activate(V2))
ISNAT(n__plus(V1, V2)) → ISNATKIND(activate(V1))
ISNATKIND(n__plus(V1, V2)) → U411(isNatKind(activate(V1)), activate(V2))
ISNATKIND(n__plus(V1, V2)) → ISNATKIND(activate(V1))
ISNATKIND(n__plus(V1, V2)) → ACTIVATE(V1)
X(N, 0) → U911(isNat(N), N)
ISNATKIND(n__plus(V1, V2)) → ACTIVATE(V2)
ISNATKIND(n__s(V1)) → ISNATKIND(activate(V1))
ISNATKIND(n__s(V1)) → ACTIVATE(V1)
ISNATKIND(n__x(V1, V2)) → U611(isNatKind(activate(V1)), activate(V2))
ISNATKIND(n__x(V1, V2)) → ISNATKIND(activate(V1))
ISNATKIND(n__x(V1, V2)) → ACTIVATE(V1)
ISNATKIND(n__x(V1, V2)) → ACTIVATE(V2)
X(N, 0) → ISNAT(N)
ISNAT(n__plus(V1, V2)) → ACTIVATE(V1)
ISNAT(n__plus(V1, V2)) → ACTIVATE(V2)
ISNAT(n__s(V1)) → U211(isNatKind(activate(V1)), activate(V1))
ISNAT(n__s(V1)) → ISNATKIND(activate(V1))
ISNAT(n__s(V1)) → ACTIVATE(V1)
U321(tt, V1, V2) → U331(isNatKind(activate(V2)), activate(V1), activate(V2))
U331(tt, V1, V2) → U341(isNatKind(activate(V2)), activate(V1), activate(V2))
U341(tt, V1, V2) → U351(isNat(activate(V1)), activate(V2))
U351(tt, V2) → ISNAT(activate(V2))
ISNAT(n__x(V1, V2)) → ISNATKIND(activate(V1))
ISNAT(n__x(V1, V2)) → ACTIVATE(V1)
ISNAT(n__x(V1, V2)) → ACTIVATE(V2)
U351(tt, V2) → ACTIVATE(V2)
U341(tt, V1, V2) → ISNAT(activate(V1))
U341(tt, V1, V2) → ACTIVATE(V1)
U341(tt, V1, V2) → ACTIVATE(V2)
U331(tt, V1, V2) → ISNATKIND(activate(V2))
U331(tt, V1, V2) → ACTIVATE(V2)
U331(tt, V1, V2) → ACTIVATE(V1)
U321(tt, V1, V2) → ISNATKIND(activate(V2))
U321(tt, V1, V2) → ACTIVATE(V2)
U321(tt, V1, V2) → ACTIVATE(V1)
U311(tt, V1, V2) → ISNATKIND(activate(V1))
U311(tt, V1, V2) → ACTIVATE(V1)
U311(tt, V1, V2) → ACTIVATE(V2)
X(N, s(M)) → U1011(isNat(M), M, N)
U1021(tt, M, N) → ISNAT(activate(N))
U1021(tt, M, N) → ACTIVATE(N)
U1021(tt, M, N) → ACTIVATE(M)
U1011(tt, M, N) → ISNATKIND(activate(M))
U1011(tt, M, N) → ACTIVATE(M)
U1011(tt, M, N) → ACTIVATE(N)
X(N, s(M)) → ISNAT(M)
U141(tt, V1, V2) → ISNAT(activate(V1))
U141(tt, V1, V2) → ACTIVATE(V1)
U141(tt, V1, V2) → ACTIVATE(V2)
U131(tt, V1, V2) → ISNATKIND(activate(V2))
U131(tt, V1, V2) → ACTIVATE(V2)
U131(tt, V1, V2) → ACTIVATE(V1)
U121(tt, V1, V2) → ISNATKIND(activate(V2))
U121(tt, V1, V2) → ACTIVATE(V2)
U121(tt, V1, V2) → ACTIVATE(V1)
U111(tt, V1, V2) → ISNATKIND(activate(V1))
U111(tt, V1, V2) → ACTIVATE(V1)
U111(tt, V1, V2) → ACTIVATE(V2)
PLUS(N, s(M)) → U811(isNat(M), M, N)
U841(tt, M, N) → PLUS(activate(N), activate(M))
PLUS(N, s(M)) → ISNAT(M)
U841(tt, M, N) → ACTIVATE(N)
U841(tt, M, N) → ACTIVATE(M)
U831(tt, M, N) → ISNATKIND(activate(N))
U831(tt, M, N) → ACTIVATE(N)
U831(tt, M, N) → ACTIVATE(M)
U821(tt, M, N) → ISNAT(activate(N))
U821(tt, M, N) → ACTIVATE(N)
U821(tt, M, N) → ACTIVATE(M)
U811(tt, M, N) → ISNATKIND(activate(M))
U811(tt, M, N) → ACTIVATE(M)
U811(tt, M, N) → ACTIVATE(N)
U711(tt, N) → ISNATKIND(activate(N))
U711(tt, N) → ACTIVATE(N)
U1041(tt, M, N) → X(activate(N), activate(M))
U1041(tt, M, N) → ACTIVATE(N)
U1041(tt, M, N) → ACTIVATE(M)
U1031(tt, M, N) → ISNATKIND(activate(N))
U1031(tt, M, N) → ACTIVATE(N)
U1031(tt, M, N) → ACTIVATE(M)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U1021(x1, x2, x3)  =  U1021(x1, x2, x3)
tt  =  tt
U1031(x1, x2, x3)  =  U1031(x1, x2, x3)
isNat(x1)  =  isNat
activate(x1)  =  x1
U1041(x1, x2, x3)  =  U1041(x1, x2, x3)
isNatKind(x1)  =  isNatKind
PLUS(x1, x2)  =  PLUS(x1, x2)
x(x1, x2)  =  x(x1, x2)
0  =  0
U711(x1, x2)  =  U711(x1, x2)
U721(x1, x2)  =  x2
ACTIVATE(x1)  =  x1
n__plus(x1, x2)  =  n__plus(x1, x2)
ISNAT(x1)  =  x1
U111(x1, x2, x3)  =  U111(x1, x2, x3)
U121(x1, x2, x3)  =  U121(x1, x2, x3)
U131(x1, x2, x3)  =  U131(x2, x3)
U141(x1, x2, x3)  =  U141(x2, x3)
U151(x1, x2)  =  x2
ISNATKIND(x1)  =  x1
U411(x1, x2)  =  x2
n__x(x1, x2)  =  n__x(x1, x2)
X(x1, x2)  =  X(x1, x2)
U911(x1, x2)  =  x2
n__s(x1)  =  n__s(x1)
U611(x1, x2)  =  x2
U211(x1, x2)  =  x2
U221(x1, x2)  =  x2
U311(x1, x2, x3)  =  U311(x2, x3)
U321(x1, x2, x3)  =  U321(x2, x3)
U331(x1, x2, x3)  =  U331(x2, x3)
U341(x1, x2, x3)  =  U341(x2, x3)
U351(x1, x2)  =  U351(x2)
s(x1)  =  s(x1)
U1011(x1, x2, x3)  =  U1011(x1, x2, x3)
U811(x1, x2, x3)  =  U811(x1, x2, x3)
U821(x1, x2, x3)  =  U821(x1, x2, x3)
U831(x1, x2, x3)  =  U831(x1, x2, x3)
U841(x1, x2, x3)  =  U841(x1, x2, x3)
U101(x1, x2, x3)  =  U101(x1, x2, x3)
U102(x1, x2, x3)  =  U102(x1, x2, x3)
U103(x1, x2, x3)  =  U103(x1, x2, x3)
U104(x1, x2, x3)  =  U104(x1, x2, x3)
plus(x1, x2)  =  plus(x1, x2)
U11(x1, x2, x3)  =  U11
U12(x1, x2, x3)  =  U12
U13(x1, x2, x3)  =  U13
U14(x1, x2, x3)  =  U14
U15(x1, x2)  =  U15
U16(x1)  =  U16
U21(x1, x2)  =  x1
U22(x1, x2)  =  x1
U23(x1)  =  x1
U31(x1, x2, x3)  =  U31
U32(x1, x2, x3)  =  x1
U33(x1, x2, x3)  =  U33
U34(x1, x2, x3)  =  U34
U35(x1, x2)  =  U35
U36(x1)  =  x1
U41(x1, x2)  =  x1
U42(x1)  =  x1
U51(x1)  =  x1
U61(x1, x2)  =  U61
U62(x1)  =  x1
U71(x1, x2)  =  U71(x1, x2)
U72(x1, x2)  =  x2
U81(x1, x2, x3)  =  U81(x1, x2, x3)
U82(x1, x2, x3)  =  U82(x1, x2, x3)
U83(x1, x2, x3)  =  U83(x1, x2, x3)
U84(x1, x2, x3)  =  U84(x1, x2, x3)
U91(x1, x2)  =  x2
U92(x1)  =  U92
n__0  =  n__0

Recursive Path Order [RPO].
Precedence:
[U102^13, U103^13, U104^13, x2, nx2, X2, U31^12, U32^12, U101^13, U1013, U1023, U1033, U1043] > [nplus2, plus2, U712, U813, U823, U833, U843] > [tt, isNat, isNatKind, PLUS2, 0, U71^12, U11^13, U12^13, U13^12, U14^12, ns1, U34^12, U35^11, s1, U81^13, U82^13, U83^13, U84^13, U11, U12, U13, U14, U15, U16, U31, U33, U34, U35, U61, U92, n0]
[U102^13, U103^13, U104^13, x2, nx2, X2, U31^12, U32^12, U101^13, U1013, U1023, U1033, U1043] > U33^12 > [tt, isNat, isNatKind, PLUS2, 0, U71^12, U11^13, U12^13, U13^12, U14^12, ns1, U34^12, U35^11, s1, U81^13, U82^13, U83^13, U84^13, U11, U12, U13, U14, U15, U16, U31, U33, U34, U35, U61, U92, n0]


The following usable rules [FROCOS05] were oriented:

U101(tt, M, N) → U102(isNatKind(activate(M)), activate(M), activate(N))
U102(tt, M, N) → U103(isNat(activate(N)), activate(M), activate(N))
U103(tt, M, N) → U104(isNatKind(activate(N)), activate(M), activate(N))
U104(tt, M, N) → plus(x(activate(N), activate(M)), activate(N))
U11(tt, V1, V2) → U12(isNatKind(activate(V1)), activate(V1), activate(V2))
U12(tt, V1, V2) → U13(isNatKind(activate(V2)), activate(V1), activate(V2))
U13(tt, V1, V2) → U14(isNatKind(activate(V2)), activate(V1), activate(V2))
U14(tt, V1, V2) → U15(isNat(activate(V1)), activate(V2))
U15(tt, V2) → U16(isNat(activate(V2)))
U16(tt) → tt
U21(tt, V1) → U22(isNatKind(activate(V1)), activate(V1))
U22(tt, V1) → U23(isNat(activate(V1)))
U23(tt) → tt
U31(tt, V1, V2) → U32(isNatKind(activate(V1)), activate(V1), activate(V2))
U32(tt, V1, V2) → U33(isNatKind(activate(V2)), activate(V1), activate(V2))
U33(tt, V1, V2) → U34(isNatKind(activate(V2)), activate(V1), activate(V2))
U34(tt, V1, V2) → U35(isNat(activate(V1)), activate(V2))
U35(tt, V2) → U36(isNat(activate(V2)))
U36(tt) → tt
U41(tt, V2) → U42(isNatKind(activate(V2)))
U42(tt) → tt
U51(tt) → tt
U61(tt, V2) → U62(isNatKind(activate(V2)))
U62(tt) → tt
U71(tt, N) → U72(isNatKind(activate(N)), activate(N))
U72(tt, N) → activate(N)
U81(tt, M, N) → U82(isNatKind(activate(M)), activate(M), activate(N))
U82(tt, M, N) → U83(isNat(activate(N)), activate(M), activate(N))
U83(tt, M, N) → U84(isNatKind(activate(N)), activate(M), activate(N))
U84(tt, M, N) → s(plus(activate(N), activate(M)))
U91(tt, N) → U92(isNatKind(activate(N)))
U92(tt) → 0
isNat(n__0) → tt
isNat(n__plus(V1, V2)) → U11(isNatKind(activate(V1)), activate(V1), activate(V2))
isNat(n__s(V1)) → U21(isNatKind(activate(V1)), activate(V1))
isNat(n__x(V1, V2)) → U31(isNatKind(activate(V1)), activate(V1), activate(V2))
isNatKind(n__0) → tt
isNatKind(n__plus(V1, V2)) → U41(isNatKind(activate(V1)), activate(V2))
isNatKind(n__s(V1)) → U51(isNatKind(activate(V1)))
isNatKind(n__x(V1, V2)) → U61(isNatKind(activate(V1)), activate(V2))
plus(N, 0) → U71(isNat(N), N)
plus(N, s(M)) → U81(isNat(M), M, N)
x(N, 0) → U91(isNat(N), N)
x(N, s(M)) → U101(isNat(M), M, N)
0n__0
plus(X1, X2) → n__plus(X1, X2)
s(X) → n__s(X)
x(X1, X2) → n__x(X1, X2)
activate(n__0) → 0
activate(n__plus(X1, X2)) → plus(X1, X2)
activate(n__s(X)) → s(X)
activate(n__x(X1, X2)) → x(X1, X2)
activate(X) → X

(6) Obligation:

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

U1021(tt, M, N) → U1031(isNat(activate(N)), activate(M), activate(N))
U1031(tt, M, N) → U1041(isNatKind(activate(N)), activate(M), activate(N))
PLUS(N, 0) → U711(isNat(N), N)
U721(tt, N) → ACTIVATE(N)
U111(tt, V1, V2) → U121(isNatKind(activate(V1)), activate(V1), activate(V2))
U131(tt, V1, V2) → U141(isNatKind(activate(V2)), activate(V1), activate(V2))
U151(tt, V2) → ISNAT(activate(V2))
U411(tt, V2) → ISNATKIND(activate(V2))
ACTIVATE(n__x(X1, X2)) → X(X1, X2)
U911(tt, N) → ISNATKIND(activate(N))
U611(tt, V2) → ISNATKIND(activate(V2))
U611(tt, V2) → ACTIVATE(V2)
U911(tt, N) → ACTIVATE(N)
U211(tt, V1) → U221(isNatKind(activate(V1)), activate(V1))
U221(tt, V1) → ISNAT(activate(V1))
ISNAT(n__x(V1, V2)) → U311(isNatKind(activate(V1)), activate(V1), activate(V2))
U311(tt, V1, V2) → U321(isNatKind(activate(V1)), activate(V1), activate(V2))
U221(tt, V1) → ACTIVATE(V1)
U211(tt, V1) → ISNATKIND(activate(V1))
U211(tt, V1) → ACTIVATE(V1)
U1011(tt, M, N) → U1021(isNatKind(activate(M)), activate(M), activate(N))
U411(tt, V2) → ACTIVATE(V2)
U151(tt, V2) → ACTIVATE(V2)
U811(tt, M, N) → U821(isNatKind(activate(M)), activate(M), activate(N))
U821(tt, M, N) → U831(isNat(activate(N)), activate(M), activate(N))
U831(tt, M, N) → U841(isNatKind(activate(N)), activate(M), activate(N))

The TRS R consists of the following rules:

U101(tt, M, N) → U102(isNatKind(activate(M)), activate(M), activate(N))
U102(tt, M, N) → U103(isNat(activate(N)), activate(M), activate(N))
U103(tt, M, N) → U104(isNatKind(activate(N)), activate(M), activate(N))
U104(tt, M, N) → plus(x(activate(N), activate(M)), activate(N))
U11(tt, V1, V2) → U12(isNatKind(activate(V1)), activate(V1), activate(V2))
U12(tt, V1, V2) → U13(isNatKind(activate(V2)), activate(V1), activate(V2))
U13(tt, V1, V2) → U14(isNatKind(activate(V2)), activate(V1), activate(V2))
U14(tt, V1, V2) → U15(isNat(activate(V1)), activate(V2))
U15(tt, V2) → U16(isNat(activate(V2)))
U16(tt) → tt
U21(tt, V1) → U22(isNatKind(activate(V1)), activate(V1))
U22(tt, V1) → U23(isNat(activate(V1)))
U23(tt) → tt
U31(tt, V1, V2) → U32(isNatKind(activate(V1)), activate(V1), activate(V2))
U32(tt, V1, V2) → U33(isNatKind(activate(V2)), activate(V1), activate(V2))
U33(tt, V1, V2) → U34(isNatKind(activate(V2)), activate(V1), activate(V2))
U34(tt, V1, V2) → U35(isNat(activate(V1)), activate(V2))
U35(tt, V2) → U36(isNat(activate(V2)))
U36(tt) → tt
U41(tt, V2) → U42(isNatKind(activate(V2)))
U42(tt) → tt
U51(tt) → tt
U61(tt, V2) → U62(isNatKind(activate(V2)))
U62(tt) → tt
U71(tt, N) → U72(isNatKind(activate(N)), activate(N))
U72(tt, N) → activate(N)
U81(tt, M, N) → U82(isNatKind(activate(M)), activate(M), activate(N))
U82(tt, M, N) → U83(isNat(activate(N)), activate(M), activate(N))
U83(tt, M, N) → U84(isNatKind(activate(N)), activate(M), activate(N))
U84(tt, M, N) → s(plus(activate(N), activate(M)))
U91(tt, N) → U92(isNatKind(activate(N)))
U92(tt) → 0
isNat(n__0) → tt
isNat(n__plus(V1, V2)) → U11(isNatKind(activate(V1)), activate(V1), activate(V2))
isNat(n__s(V1)) → U21(isNatKind(activate(V1)), activate(V1))
isNat(n__x(V1, V2)) → U31(isNatKind(activate(V1)), activate(V1), activate(V2))
isNatKind(n__0) → tt
isNatKind(n__plus(V1, V2)) → U41(isNatKind(activate(V1)), activate(V2))
isNatKind(n__s(V1)) → U51(isNatKind(activate(V1)))
isNatKind(n__x(V1, V2)) → U61(isNatKind(activate(V1)), activate(V2))
plus(N, 0) → U71(isNat(N), N)
plus(N, s(M)) → U81(isNat(M), M, N)
x(N, 0) → U91(isNat(N), N)
x(N, s(M)) → U101(isNat(M), M, N)
0n__0
plus(X1, X2) → n__plus(X1, X2)
s(X) → n__s(X)
x(X1, X2) → n__x(X1, X2)
activate(n__0) → 0
activate(n__plus(X1, X2)) → plus(X1, X2)
activate(n__s(X)) → s(X)
activate(n__x(X1, X2)) → x(X1, X2)
activate(X) → X

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

(7) DependencyGraphProof (EQUIVALENT transformation)

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

(8) TRUE