YES
The TRS could be proven terminating. The proof took 44406 ms.
Problem 1 was processed with processor DependencyGraph (920ms). | Problem 2 was processed with processor PolynomialLinearRange4 (917ms). | | Problem 3 was processed with processor DependencyGraph (189ms). | | | Problem 4 was processed with processor PolynomialLinearRange4 (777ms). | | | | Problem 5 was processed with processor DependencyGraph (91ms). | | | | | Problem 6 was processed with processor PolynomialLinearRange4 (495ms). | | | | | | Problem 7 was processed with processor DependencyGraph (14ms).
U52#(tt, N) | → | activate#(N) | plus#(N, 0) | → | U51#(isNat(N), N) | |
U15#(tt, V2) | → | isNat#(activate(V2)) | U21#(tt, V1) | → | isNatKind#(activate(V1)) | |
U12#(tt, V1, V2) | → | U13#(isNatKind(activate(V2)), activate(V1), activate(V2)) | U64#(tt, M, N) | → | activate#(N) | |
isNatKind#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | U13#(tt, V1, V2) | → | isNatKind#(activate(V2)) | |
U14#(tt, V1, V2) | → | isNat#(activate(V1)) | U12#(tt, V1, V2) | → | activate#(V1) | |
U51#(tt, N) | → | U52#(isNatKind(activate(N)), activate(N)) | U12#(tt, V1, V2) | → | isNatKind#(activate(V2)) | |
U63#(tt, M, N) | → | activate#(N) | isNat#(n__s(V1)) | → | activate#(V1) | |
U64#(tt, M, N) | → | plus#(activate(N), activate(M)) | isNatKind#(n__plus(V1, V2)) | → | U31#(isNatKind(activate(V1)), activate(V2)) | |
U14#(tt, V1, V2) | → | activate#(V2) | U15#(tt, V2) | → | activate#(V2) | |
U11#(tt, V1, V2) | → | activate#(V1) | U61#(tt, M, N) | → | U62#(isNatKind(activate(M)), activate(M), activate(N)) | |
U22#(tt, V1) | → | activate#(V1) | activate#(n__0) | → | 0# | |
isNat#(n__plus(V1, V2)) | → | activate#(V1) | isNatKind#(n__s(V1)) | → | isNatKind#(activate(V1)) | |
isNat#(n__s(V1)) | → | U21#(isNatKind(activate(V1)), activate(V1)) | isNat#(n__s(V1)) | → | isNatKind#(activate(V1)) | |
U22#(tt, V1) | → | U23#(isNat(activate(V1))) | U63#(tt, M, N) | → | isNatKind#(activate(N)) | |
U13#(tt, V1, V2) | → | activate#(V2) | isNat#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | |
U22#(tt, V1) | → | isNat#(activate(V1)) | activate#(n__s(X)) | → | activate#(X) | |
activate#(n__plus(X1, X2)) | → | plus#(activate(X1), activate(X2)) | U14#(tt, V1, V2) | → | U15#(isNat(activate(V1)), activate(V2)) | |
U12#(tt, V1, V2) | → | activate#(V2) | isNatKind#(n__s(V1)) | → | activate#(V1) | |
U13#(tt, V1, V2) | → | activate#(V1) | U51#(tt, N) | → | isNatKind#(activate(N)) | |
plus#(N, 0) | → | isNat#(N) | isNat#(n__plus(V1, V2)) | → | activate#(V2) | |
U11#(tt, V1, V2) | → | activate#(V2) | activate#(n__plus(X1, X2)) | → | activate#(X2) | |
U62#(tt, M, N) | → | activate#(N) | U13#(tt, V1, V2) | → | U14#(isNatKind(activate(V2)), activate(V1), activate(V2)) | |
U11#(tt, V1, V2) | → | U12#(isNatKind(activate(V1)), activate(V1), activate(V2)) | isNatKind#(n__plus(V1, V2)) | → | activate#(V2) | |
U62#(tt, M, N) | → | activate#(M) | U31#(tt, V2) | → | isNatKind#(activate(V2)) | |
U64#(tt, M, N) | → | activate#(M) | activate#(n__plus(X1, X2)) | → | activate#(X1) | |
isNatKind#(n__plus(V1, V2)) | → | activate#(V1) | U62#(tt, M, N) | → | isNat#(activate(N)) | |
U61#(tt, M, N) | → | activate#(N) | U11#(tt, V1, V2) | → | isNatKind#(activate(V1)) | |
U21#(tt, V1) | → | activate#(V1) | U63#(tt, M, N) | → | U64#(isNatKind(activate(N)), activate(M), activate(N)) | |
plus#(N, s(M)) | → | U61#(isNat(M), M, N) | U63#(tt, M, N) | → | activate#(M) | |
U61#(tt, M, N) | → | isNatKind#(activate(M)) | U15#(tt, V2) | → | U16#(isNat(activate(V2))) | |
isNat#(n__plus(V1, V2)) | → | U11#(isNatKind(activate(V1)), activate(V1), activate(V2)) | U64#(tt, M, N) | → | s#(plus(activate(N), activate(M))) | |
U62#(tt, M, N) | → | U63#(isNat(activate(N)), activate(M), activate(N)) | U31#(tt, V2) | → | U32#(isNatKind(activate(V2))) | |
plus#(N, s(M)) | → | isNat#(M) | U51#(tt, N) | → | activate#(N) | |
U14#(tt, V1, V2) | → | activate#(V1) | U61#(tt, M, N) | → | activate#(M) | |
isNatKind#(n__s(V1)) | → | U41#(isNatKind(activate(V1))) | U31#(tt, V2) | → | activate#(V2) | |
U21#(tt, V1) | → | U22#(isNatKind(activate(V1)), activate(V1)) | activate#(n__s(X)) | → | s#(activate(X)) |
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, V2) | → | U32(isNatKind(activate(V2))) | |
U32(tt) | → | tt | U41(tt) | → | tt | |
U51(tt, N) | → | U52(isNatKind(activate(N)), activate(N)) | U52(tt, N) | → | activate(N) | |
U61(tt, M, N) | → | U62(isNatKind(activate(M)), activate(M), activate(N)) | U62(tt, M, N) | → | U63(isNat(activate(N)), activate(M), activate(N)) | |
U63(tt, M, N) | → | U64(isNatKind(activate(N)), activate(M), activate(N)) | U64(tt, M, N) | → | s(plus(activate(N), activate(M))) | |
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)) | isNatKind(n__0) | → | tt | |
isNatKind(n__plus(V1, V2)) | → | U31(isNatKind(activate(V1)), activate(V2)) | isNatKind(n__s(V1)) | → | U41(isNatKind(activate(V1))) | |
plus(N, 0) | → | U51(isNat(N), N) | plus(N, s(M)) | → | U61(isNat(M), M, N) | |
0 | → | n__0 | plus(X1, X2) | → | n__plus(X1, X2) | |
s(X) | → | n__s(X) | activate(n__0) | → | 0 | |
activate(n__plus(X1, X2)) | → | plus(activate(X1), activate(X2)) | activate(n__s(X)) | → | s(activate(X)) | |
activate(X) | → | X |
Termination of terms over the following signature is verified: n__plus, U64, activate, isNat, n__s, U63, U62, n__0, U61, U41, U23, U21, U22, plus, isNatKind, 0, U14, U51, s, U15, tt, U16, U52, U11, U12, U31, U13, U32
U52#(tt, N) → activate#(N) | plus#(N, 0) → U51#(isNat(N), N) |
U15#(tt, V2) → isNat#(activate(V2)) | U21#(tt, V1) → isNatKind#(activate(V1)) |
U12#(tt, V1, V2) → U13#(isNatKind(activate(V2)), activate(V1), activate(V2)) | U64#(tt, M, N) → activate#(N) |
isNatKind#(n__plus(V1, V2)) → isNatKind#(activate(V1)) | U13#(tt, V1, V2) → isNatKind#(activate(V2)) |
U14#(tt, V1, V2) → isNat#(activate(V1)) | U51#(tt, N) → U52#(isNatKind(activate(N)), activate(N)) |
U12#(tt, V1, V2) → activate#(V1) | U63#(tt, M, N) → activate#(N) |
U12#(tt, V1, V2) → isNatKind#(activate(V2)) | isNat#(n__s(V1)) → activate#(V1) |
U64#(tt, M, N) → plus#(activate(N), activate(M)) | isNatKind#(n__plus(V1, V2)) → U31#(isNatKind(activate(V1)), activate(V2)) |
U14#(tt, V1, V2) → activate#(V2) | U15#(tt, V2) → activate#(V2) |
U11#(tt, V1, V2) → activate#(V1) | U61#(tt, M, N) → U62#(isNatKind(activate(M)), activate(M), activate(N)) |
U22#(tt, V1) → activate#(V1) | isNat#(n__plus(V1, V2)) → activate#(V1) |
isNatKind#(n__s(V1)) → isNatKind#(activate(V1)) | isNat#(n__s(V1)) → U21#(isNatKind(activate(V1)), activate(V1)) |
isNat#(n__s(V1)) → isNatKind#(activate(V1)) | U63#(tt, M, N) → isNatKind#(activate(N)) |
U13#(tt, V1, V2) → activate#(V2) | isNat#(n__plus(V1, V2)) → isNatKind#(activate(V1)) |
U22#(tt, V1) → isNat#(activate(V1)) | activate#(n__s(X)) → activate#(X) |
activate#(n__plus(X1, X2)) → plus#(activate(X1), activate(X2)) | U14#(tt, V1, V2) → U15#(isNat(activate(V1)), activate(V2)) |
U12#(tt, V1, V2) → activate#(V2) | isNatKind#(n__s(V1)) → activate#(V1) |
U51#(tt, N) → isNatKind#(activate(N)) | U13#(tt, V1, V2) → activate#(V1) |
plus#(N, 0) → isNat#(N) | isNat#(n__plus(V1, V2)) → activate#(V2) |
U11#(tt, V1, V2) → activate#(V2) | activate#(n__plus(X1, X2)) → activate#(X2) |
U62#(tt, M, N) → activate#(N) | U13#(tt, V1, V2) → U14#(isNatKind(activate(V2)), activate(V1), activate(V2)) |
U11#(tt, V1, V2) → U12#(isNatKind(activate(V1)), activate(V1), activate(V2)) | isNatKind#(n__plus(V1, V2)) → activate#(V2) |
U62#(tt, M, N) → activate#(M) | U31#(tt, V2) → isNatKind#(activate(V2)) |
U64#(tt, M, N) → activate#(M) | activate#(n__plus(X1, X2)) → activate#(X1) |
isNatKind#(n__plus(V1, V2)) → activate#(V1) | U62#(tt, M, N) → isNat#(activate(N)) |
U11#(tt, V1, V2) → isNatKind#(activate(V1)) | U61#(tt, M, N) → activate#(N) |
U21#(tt, V1) → activate#(V1) | plus#(N, s(M)) → U61#(isNat(M), M, N) |
U63#(tt, M, N) → U64#(isNatKind(activate(N)), activate(M), activate(N)) | U63#(tt, M, N) → activate#(M) |
U61#(tt, M, N) → isNatKind#(activate(M)) | isNat#(n__plus(V1, V2)) → U11#(isNatKind(activate(V1)), activate(V1), activate(V2)) |
U62#(tt, M, N) → U63#(isNat(activate(N)), activate(M), activate(N)) | plus#(N, s(M)) → isNat#(M) |
U51#(tt, N) → activate#(N) | U14#(tt, V1, V2) → activate#(V1) |
U61#(tt, M, N) → activate#(M) | U31#(tt, V2) → activate#(V2) |
U21#(tt, V1) → U22#(isNatKind(activate(V1)), activate(V1)) |
U52#(tt, N) | → | activate#(N) | plus#(N, 0) | → | U51#(isNat(N), N) | |
U15#(tt, V2) | → | isNat#(activate(V2)) | U21#(tt, V1) | → | isNatKind#(activate(V1)) | |
U12#(tt, V1, V2) | → | U13#(isNatKind(activate(V2)), activate(V1), activate(V2)) | U64#(tt, M, N) | → | activate#(N) | |
isNatKind#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | U13#(tt, V1, V2) | → | isNatKind#(activate(V2)) | |
U14#(tt, V1, V2) | → | isNat#(activate(V1)) | U12#(tt, V1, V2) | → | activate#(V1) | |
U51#(tt, N) | → | U52#(isNatKind(activate(N)), activate(N)) | U12#(tt, V1, V2) | → | isNatKind#(activate(V2)) | |
U63#(tt, M, N) | → | activate#(N) | isNat#(n__s(V1)) | → | activate#(V1) | |
U64#(tt, M, N) | → | plus#(activate(N), activate(M)) | isNatKind#(n__plus(V1, V2)) | → | U31#(isNatKind(activate(V1)), activate(V2)) | |
U14#(tt, V1, V2) | → | activate#(V2) | U15#(tt, V2) | → | activate#(V2) | |
U11#(tt, V1, V2) | → | activate#(V1) | U61#(tt, M, N) | → | U62#(isNatKind(activate(M)), activate(M), activate(N)) | |
U22#(tt, V1) | → | activate#(V1) | isNat#(n__plus(V1, V2)) | → | activate#(V1) | |
isNatKind#(n__s(V1)) | → | isNatKind#(activate(V1)) | isNat#(n__s(V1)) | → | U21#(isNatKind(activate(V1)), activate(V1)) | |
isNat#(n__s(V1)) | → | isNatKind#(activate(V1)) | U63#(tt, M, N) | → | isNatKind#(activate(N)) | |
U13#(tt, V1, V2) | → | activate#(V2) | isNat#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | |
U22#(tt, V1) | → | isNat#(activate(V1)) | activate#(n__plus(X1, X2)) | → | plus#(activate(X1), activate(X2)) | |
activate#(n__s(X)) | → | activate#(X) | U14#(tt, V1, V2) | → | U15#(isNat(activate(V1)), activate(V2)) | |
U12#(tt, V1, V2) | → | activate#(V2) | isNatKind#(n__s(V1)) | → | activate#(V1) | |
U13#(tt, V1, V2) | → | activate#(V1) | U51#(tt, N) | → | isNatKind#(activate(N)) | |
isNat#(n__plus(V1, V2)) | → | activate#(V2) | plus#(N, 0) | → | isNat#(N) | |
U11#(tt, V1, V2) | → | activate#(V2) | U62#(tt, M, N) | → | activate#(N) | |
activate#(n__plus(X1, X2)) | → | activate#(X2) | U13#(tt, V1, V2) | → | U14#(isNatKind(activate(V2)), activate(V1), activate(V2)) | |
U11#(tt, V1, V2) | → | U12#(isNatKind(activate(V1)), activate(V1), activate(V2)) | isNatKind#(n__plus(V1, V2)) | → | activate#(V2) | |
U62#(tt, M, N) | → | activate#(M) | U64#(tt, M, N) | → | activate#(M) | |
U31#(tt, V2) | → | isNatKind#(activate(V2)) | activate#(n__plus(X1, X2)) | → | activate#(X1) | |
isNatKind#(n__plus(V1, V2)) | → | activate#(V1) | U62#(tt, M, N) | → | isNat#(activate(N)) | |
U11#(tt, V1, V2) | → | isNatKind#(activate(V1)) | U61#(tt, M, N) | → | activate#(N) | |
U21#(tt, V1) | → | activate#(V1) | plus#(N, s(M)) | → | U61#(isNat(M), M, N) | |
U63#(tt, M, N) | → | U64#(isNatKind(activate(N)), activate(M), activate(N)) | U63#(tt, M, N) | → | activate#(M) | |
U61#(tt, M, N) | → | isNatKind#(activate(M)) | isNat#(n__plus(V1, V2)) | → | U11#(isNatKind(activate(V1)), activate(V1), activate(V2)) | |
U62#(tt, M, N) | → | U63#(isNat(activate(N)), activate(M), activate(N)) | plus#(N, s(M)) | → | isNat#(M) | |
U51#(tt, N) | → | activate#(N) | U14#(tt, V1, V2) | → | activate#(V1) | |
U61#(tt, M, N) | → | activate#(M) | U31#(tt, V2) | → | activate#(V2) | |
U21#(tt, V1) | → | U22#(isNatKind(activate(V1)), activate(V1)) |
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, V2) | → | U32(isNatKind(activate(V2))) | |
U32(tt) | → | tt | U41(tt) | → | tt | |
U51(tt, N) | → | U52(isNatKind(activate(N)), activate(N)) | U52(tt, N) | → | activate(N) | |
U61(tt, M, N) | → | U62(isNatKind(activate(M)), activate(M), activate(N)) | U62(tt, M, N) | → | U63(isNat(activate(N)), activate(M), activate(N)) | |
U63(tt, M, N) | → | U64(isNatKind(activate(N)), activate(M), activate(N)) | U64(tt, M, N) | → | s(plus(activate(N), activate(M))) | |
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)) | isNatKind(n__0) | → | tt | |
isNatKind(n__plus(V1, V2)) | → | U31(isNatKind(activate(V1)), activate(V2)) | isNatKind(n__s(V1)) | → | U41(isNatKind(activate(V1))) | |
plus(N, 0) | → | U51(isNat(N), N) | plus(N, s(M)) | → | U61(isNat(M), M, N) | |
0 | → | n__0 | plus(X1, X2) | → | n__plus(X1, X2) | |
s(X) | → | n__s(X) | activate(n__0) | → | 0 | |
activate(n__plus(X1, X2)) | → | plus(activate(X1), activate(X2)) | activate(n__s(X)) | → | s(activate(X)) | |
activate(X) | → | X |
Termination of terms over the following signature is verified: n__plus, U64, activate, isNat, n__s, U63, U62, n__0, U61, U41, U23, U21, U22, plus, isNatKind, 0, U14, U51, s, U15, tt, U16, U52, U11, U12, U31, U13, U32
U51(tt, N) | → | U52(isNatKind(activate(N)), activate(N)) | U21(tt, V1) | → | U22(isNatKind(activate(V1)), activate(V1)) | |
U31(tt, V2) | → | U32(isNatKind(activate(V2))) | activate(n__0) | → | 0 | |
U41(tt) | → | tt | isNat(n__0) | → | tt | |
U64(tt, M, N) | → | s(plus(activate(N), activate(M))) | isNat(n__plus(V1, V2)) | → | U11(isNatKind(activate(V1)), activate(V1), activate(V2)) | |
U12(tt, V1, V2) | → | U13(isNatKind(activate(V2)), activate(V1), activate(V2)) | s(X) | → | n__s(X) | |
U32(tt) | → | tt | isNatKind(n__plus(V1, V2)) | → | U31(isNatKind(activate(V1)), activate(V2)) | |
plus(X1, X2) | → | n__plus(X1, X2) | plus(N, 0) | → | U51(isNat(N), N) | |
isNat(n__s(V1)) | → | U21(isNatKind(activate(V1)), activate(V1)) | U22(tt, V1) | → | U23(isNat(activate(V1))) | |
U23(tt) | → | tt | isNatKind(n__s(V1)) | → | U41(isNatKind(activate(V1))) | |
U11(tt, V1, V2) | → | U12(isNatKind(activate(V1)), activate(V1), activate(V2)) | plus(N, s(M)) | → | U61(isNat(M), M, N) | |
U15(tt, V2) | → | U16(isNat(activate(V2))) | 0 | → | n__0 | |
isNatKind(n__0) | → | tt | U62(tt, M, N) | → | U63(isNat(activate(N)), activate(M), activate(N)) | |
U14(tt, V1, V2) | → | U15(isNat(activate(V1)), activate(V2)) | U16(tt) | → | tt | |
U61(tt, M, N) | → | U62(isNatKind(activate(M)), activate(M), activate(N)) | U63(tt, M, N) | → | U64(isNatKind(activate(N)), activate(M), activate(N)) | |
activate(X) | → | X | U13(tt, V1, V2) | → | U14(isNatKind(activate(V2)), activate(V1), activate(V2)) | |
activate(n__s(X)) | → | s(activate(X)) | activate(n__plus(X1, X2)) | → | plus(activate(X1), activate(X2)) | |
U52(tt, N) | → | activate(N) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
isNat#(n__s(V1)) | → | activate#(V1) | isNatKind#(n__s(V1)) | → | isNatKind#(activate(V1)) | |
isNat#(n__s(V1)) | → | U21#(isNatKind(activate(V1)), activate(V1)) | isNat#(n__s(V1)) | → | isNatKind#(activate(V1)) | |
activate#(n__s(X)) | → | activate#(X) | isNatKind#(n__s(V1)) | → | activate#(V1) | |
plus#(N, s(M)) | → | U61#(isNat(M), M, N) | plus#(N, s(M)) | → | isNat#(M) |
U52#(tt, N) | → | activate#(N) | plus#(N, 0) | → | U51#(isNat(N), N) | |
U15#(tt, V2) | → | isNat#(activate(V2)) | U21#(tt, V1) | → | isNatKind#(activate(V1)) | |
U12#(tt, V1, V2) | → | U13#(isNatKind(activate(V2)), activate(V1), activate(V2)) | U64#(tt, M, N) | → | activate#(N) | |
isNatKind#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | U13#(tt, V1, V2) | → | isNatKind#(activate(V2)) | |
U14#(tt, V1, V2) | → | isNat#(activate(V1)) | U12#(tt, V1, V2) | → | activate#(V1) | |
U51#(tt, N) | → | U52#(isNatKind(activate(N)), activate(N)) | U12#(tt, V1, V2) | → | isNatKind#(activate(V2)) | |
U63#(tt, M, N) | → | activate#(N) | U64#(tt, M, N) | → | plus#(activate(N), activate(M)) | |
isNatKind#(n__plus(V1, V2)) | → | U31#(isNatKind(activate(V1)), activate(V2)) | U14#(tt, V1, V2) | → | activate#(V2) | |
U15#(tt, V2) | → | activate#(V2) | U11#(tt, V1, V2) | → | activate#(V1) | |
U61#(tt, M, N) | → | U62#(isNatKind(activate(M)), activate(M), activate(N)) | U22#(tt, V1) | → | activate#(V1) | |
isNat#(n__plus(V1, V2)) | → | activate#(V1) | U63#(tt, M, N) | → | isNatKind#(activate(N)) | |
U13#(tt, V1, V2) | → | activate#(V2) | isNat#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | |
U22#(tt, V1) | → | isNat#(activate(V1)) | activate#(n__plus(X1, X2)) | → | plus#(activate(X1), activate(X2)) | |
U14#(tt, V1, V2) | → | U15#(isNat(activate(V1)), activate(V2)) | U12#(tt, V1, V2) | → | activate#(V2) | |
U13#(tt, V1, V2) | → | activate#(V1) | U51#(tt, N) | → | isNatKind#(activate(N)) | |
isNat#(n__plus(V1, V2)) | → | activate#(V2) | plus#(N, 0) | → | isNat#(N) | |
U11#(tt, V1, V2) | → | activate#(V2) | U62#(tt, M, N) | → | activate#(N) | |
activate#(n__plus(X1, X2)) | → | activate#(X2) | U13#(tt, V1, V2) | → | U14#(isNatKind(activate(V2)), activate(V1), activate(V2)) | |
U11#(tt, V1, V2) | → | U12#(isNatKind(activate(V1)), activate(V1), activate(V2)) | isNatKind#(n__plus(V1, V2)) | → | activate#(V2) | |
U62#(tt, M, N) | → | activate#(M) | U64#(tt, M, N) | → | activate#(M) | |
U31#(tt, V2) | → | isNatKind#(activate(V2)) | activate#(n__plus(X1, X2)) | → | activate#(X1) | |
isNatKind#(n__plus(V1, V2)) | → | activate#(V1) | U62#(tt, M, N) | → | isNat#(activate(N)) | |
U11#(tt, V1, V2) | → | isNatKind#(activate(V1)) | U61#(tt, M, N) | → | activate#(N) | |
U21#(tt, V1) | → | activate#(V1) | U63#(tt, M, N) | → | U64#(isNatKind(activate(N)), activate(M), activate(N)) | |
U63#(tt, M, N) | → | activate#(M) | U61#(tt, M, N) | → | isNatKind#(activate(M)) | |
isNat#(n__plus(V1, V2)) | → | U11#(isNatKind(activate(V1)), activate(V1), activate(V2)) | U62#(tt, M, N) | → | U63#(isNat(activate(N)), activate(M), activate(N)) | |
U14#(tt, V1, V2) | → | activate#(V1) | U51#(tt, N) | → | activate#(N) | |
U61#(tt, M, N) | → | activate#(M) | U31#(tt, V2) | → | activate#(V2) | |
U21#(tt, V1) | → | U22#(isNatKind(activate(V1)), activate(V1)) |
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, V2) | → | U32(isNatKind(activate(V2))) | |
U32(tt) | → | tt | U41(tt) | → | tt | |
U51(tt, N) | → | U52(isNatKind(activate(N)), activate(N)) | U52(tt, N) | → | activate(N) | |
U61(tt, M, N) | → | U62(isNatKind(activate(M)), activate(M), activate(N)) | U62(tt, M, N) | → | U63(isNat(activate(N)), activate(M), activate(N)) | |
U63(tt, M, N) | → | U64(isNatKind(activate(N)), activate(M), activate(N)) | U64(tt, M, N) | → | s(plus(activate(N), activate(M))) | |
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)) | isNatKind(n__0) | → | tt | |
isNatKind(n__plus(V1, V2)) | → | U31(isNatKind(activate(V1)), activate(V2)) | isNatKind(n__s(V1)) | → | U41(isNatKind(activate(V1))) | |
plus(N, 0) | → | U51(isNat(N), N) | plus(N, s(M)) | → | U61(isNat(M), M, N) | |
0 | → | n__0 | plus(X1, X2) | → | n__plus(X1, X2) | |
s(X) | → | n__s(X) | activate(n__0) | → | 0 | |
activate(n__plus(X1, X2)) | → | plus(activate(X1), activate(X2)) | activate(n__s(X)) | → | s(activate(X)) | |
activate(X) | → | X |
Termination of terms over the following signature is verified: n__plus, n__s, isNat, activate, U64, U63, U62, U61, n__0, U41, U23, U21, U22, plus, isNatKind, 0, U14, U51, s, U15, tt, U16, U52, U11, U12, U13, U31, U32
U13#(tt, V1, V2) → activate#(V2) | U52#(tt, N) → activate#(N) |
isNat#(n__plus(V1, V2)) → isNatKind#(activate(V1)) | activate#(n__plus(X1, X2)) → plus#(activate(X1), activate(X2)) |
U14#(tt, V1, V2) → U15#(isNat(activate(V1)), activate(V2)) | plus#(N, 0) → U51#(isNat(N), N) |
U12#(tt, V1, V2) → activate#(V2) | U15#(tt, V2) → isNat#(activate(V2)) |
U12#(tt, V1, V2) → U13#(isNatKind(activate(V2)), activate(V1), activate(V2)) | U51#(tt, N) → isNatKind#(activate(N)) |
U13#(tt, V1, V2) → activate#(V1) | plus#(N, 0) → isNat#(N) |
isNat#(n__plus(V1, V2)) → activate#(V2) | U11#(tt, V1, V2) → activate#(V2) |
activate#(n__plus(X1, X2)) → activate#(X2) | isNatKind#(n__plus(V1, V2)) → isNatKind#(activate(V1)) |
U13#(tt, V1, V2) → isNatKind#(activate(V2)) | U13#(tt, V1, V2) → U14#(isNatKind(activate(V2)), activate(V1), activate(V2)) |
U11#(tt, V1, V2) → U12#(isNatKind(activate(V1)), activate(V1), activate(V2)) | U14#(tt, V1, V2) → isNat#(activate(V1)) |
isNatKind#(n__plus(V1, V2)) → activate#(V2) | U51#(tt, N) → U52#(isNatKind(activate(N)), activate(N)) |
U12#(tt, V1, V2) → activate#(V1) | U31#(tt, V2) → isNatKind#(activate(V2)) |
U12#(tt, V1, V2) → isNatKind#(activate(V2)) | activate#(n__plus(X1, X2)) → activate#(X1) |
isNatKind#(n__plus(V1, V2)) → activate#(V1) | U11#(tt, V1, V2) → isNatKind#(activate(V1)) |
isNatKind#(n__plus(V1, V2)) → U31#(isNatKind(activate(V1)), activate(V2)) | U14#(tt, V1, V2) → activate#(V2) |
isNat#(n__plus(V1, V2)) → U11#(isNatKind(activate(V1)), activate(V1), activate(V2)) | U15#(tt, V2) → activate#(V2) |
U11#(tt, V1, V2) → activate#(V1) | U14#(tt, V1, V2) → activate#(V1) |
U51#(tt, N) → activate#(N) | U31#(tt, V2) → activate#(V2) |
isNat#(n__plus(V1, V2)) → activate#(V1) |
U13#(tt, V1, V2) | → | activate#(V2) | U52#(tt, N) | → | activate#(N) | |
isNat#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | activate#(n__plus(X1, X2)) | → | plus#(activate(X1), activate(X2)) | |
U14#(tt, V1, V2) | → | U15#(isNat(activate(V1)), activate(V2)) | plus#(N, 0) | → | U51#(isNat(N), N) | |
U12#(tt, V1, V2) | → | activate#(V2) | U15#(tt, V2) | → | isNat#(activate(V2)) | |
U12#(tt, V1, V2) | → | U13#(isNatKind(activate(V2)), activate(V1), activate(V2)) | U51#(tt, N) | → | isNatKind#(activate(N)) | |
U13#(tt, V1, V2) | → | activate#(V1) | plus#(N, 0) | → | isNat#(N) | |
isNat#(n__plus(V1, V2)) | → | activate#(V2) | U11#(tt, V1, V2) | → | activate#(V2) | |
activate#(n__plus(X1, X2)) | → | activate#(X2) | isNatKind#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | |
U13#(tt, V1, V2) | → | U14#(isNatKind(activate(V2)), activate(V1), activate(V2)) | U13#(tt, V1, V2) | → | isNatKind#(activate(V2)) | |
U11#(tt, V1, V2) | → | U12#(isNatKind(activate(V1)), activate(V1), activate(V2)) | U14#(tt, V1, V2) | → | isNat#(activate(V1)) | |
isNatKind#(n__plus(V1, V2)) | → | activate#(V2) | U12#(tt, V1, V2) | → | activate#(V1) | |
U51#(tt, N) | → | U52#(isNatKind(activate(N)), activate(N)) | U31#(tt, V2) | → | isNatKind#(activate(V2)) | |
U12#(tt, V1, V2) | → | isNatKind#(activate(V2)) | activate#(n__plus(X1, X2)) | → | activate#(X1) | |
isNatKind#(n__plus(V1, V2)) | → | activate#(V1) | U11#(tt, V1, V2) | → | isNatKind#(activate(V1)) | |
isNatKind#(n__plus(V1, V2)) | → | U31#(isNatKind(activate(V1)), activate(V2)) | U14#(tt, V1, V2) | → | activate#(V2) | |
isNat#(n__plus(V1, V2)) | → | U11#(isNatKind(activate(V1)), activate(V1), activate(V2)) | U15#(tt, V2) | → | activate#(V2) | |
U11#(tt, V1, V2) | → | activate#(V1) | U14#(tt, V1, V2) | → | activate#(V1) | |
U51#(tt, N) | → | activate#(N) | U31#(tt, V2) | → | activate#(V2) | |
isNat#(n__plus(V1, V2)) | → | activate#(V1) |
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, V2) | → | U32(isNatKind(activate(V2))) | |
U32(tt) | → | tt | U41(tt) | → | tt | |
U51(tt, N) | → | U52(isNatKind(activate(N)), activate(N)) | U52(tt, N) | → | activate(N) | |
U61(tt, M, N) | → | U62(isNatKind(activate(M)), activate(M), activate(N)) | U62(tt, M, N) | → | U63(isNat(activate(N)), activate(M), activate(N)) | |
U63(tt, M, N) | → | U64(isNatKind(activate(N)), activate(M), activate(N)) | U64(tt, M, N) | → | s(plus(activate(N), activate(M))) | |
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)) | isNatKind(n__0) | → | tt | |
isNatKind(n__plus(V1, V2)) | → | U31(isNatKind(activate(V1)), activate(V2)) | isNatKind(n__s(V1)) | → | U41(isNatKind(activate(V1))) | |
plus(N, 0) | → | U51(isNat(N), N) | plus(N, s(M)) | → | U61(isNat(M), M, N) | |
0 | → | n__0 | plus(X1, X2) | → | n__plus(X1, X2) | |
s(X) | → | n__s(X) | activate(n__0) | → | 0 | |
activate(n__plus(X1, X2)) | → | plus(activate(X1), activate(X2)) | activate(n__s(X)) | → | s(activate(X)) | |
activate(X) | → | X |
Termination of terms over the following signature is verified: n__plus, n__s, isNat, activate, U64, U63, U62, U61, n__0, U41, U23, U21, U22, plus, isNatKind, 0, U14, U51, s, U15, tt, U16, U52, U11, U12, U13, U31, U32
U51(tt, N) | → | U52(isNatKind(activate(N)), activate(N)) | U21(tt, V1) | → | U22(isNatKind(activate(V1)), activate(V1)) | |
U31(tt, V2) | → | U32(isNatKind(activate(V2))) | activate(n__0) | → | 0 | |
U41(tt) | → | tt | isNat(n__0) | → | tt | |
U64(tt, M, N) | → | s(plus(activate(N), activate(M))) | isNat(n__plus(V1, V2)) | → | U11(isNatKind(activate(V1)), activate(V1), activate(V2)) | |
U12(tt, V1, V2) | → | U13(isNatKind(activate(V2)), activate(V1), activate(V2)) | s(X) | → | n__s(X) | |
U32(tt) | → | tt | isNatKind(n__plus(V1, V2)) | → | U31(isNatKind(activate(V1)), activate(V2)) | |
plus(X1, X2) | → | n__plus(X1, X2) | plus(N, 0) | → | U51(isNat(N), N) | |
isNat(n__s(V1)) | → | U21(isNatKind(activate(V1)), activate(V1)) | U22(tt, V1) | → | U23(isNat(activate(V1))) | |
U23(tt) | → | tt | isNatKind(n__s(V1)) | → | U41(isNatKind(activate(V1))) | |
U11(tt, V1, V2) | → | U12(isNatKind(activate(V1)), activate(V1), activate(V2)) | plus(N, s(M)) | → | U61(isNat(M), M, N) | |
U15(tt, V2) | → | U16(isNat(activate(V2))) | 0 | → | n__0 | |
isNatKind(n__0) | → | tt | U62(tt, M, N) | → | U63(isNat(activate(N)), activate(M), activate(N)) | |
U14(tt, V1, V2) | → | U15(isNat(activate(V1)), activate(V2)) | U16(tt) | → | tt | |
U61(tt, M, N) | → | U62(isNatKind(activate(M)), activate(M), activate(N)) | U63(tt, M, N) | → | U64(isNatKind(activate(N)), activate(M), activate(N)) | |
activate(X) | → | X | U13(tt, V1, V2) | → | U14(isNatKind(activate(V2)), activate(V1), activate(V2)) | |
activate(n__s(X)) | → | s(activate(X)) | activate(n__plus(X1, X2)) | → | plus(activate(X1), activate(X2)) | |
U52(tt, N) | → | activate(N) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
U51#(tt, N) | → | isNatKind#(activate(N)) | U51#(tt, N) | → | U52#(isNatKind(activate(N)), activate(N)) | |
U51#(tt, N) | → | activate#(N) |
U13#(tt, V1, V2) | → | activate#(V2) | U52#(tt, N) | → | activate#(N) | |
isNat#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | activate#(n__plus(X1, X2)) | → | plus#(activate(X1), activate(X2)) | |
U14#(tt, V1, V2) | → | U15#(isNat(activate(V1)), activate(V2)) | U12#(tt, V1, V2) | → | activate#(V2) | |
plus#(N, 0) | → | U51#(isNat(N), N) | U15#(tt, V2) | → | isNat#(activate(V2)) | |
U12#(tt, V1, V2) | → | U13#(isNatKind(activate(V2)), activate(V1), activate(V2)) | U13#(tt, V1, V2) | → | activate#(V1) | |
isNat#(n__plus(V1, V2)) | → | activate#(V2) | plus#(N, 0) | → | isNat#(N) | |
U11#(tt, V1, V2) | → | activate#(V2) | activate#(n__plus(X1, X2)) | → | activate#(X2) | |
isNatKind#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | U13#(tt, V1, V2) | → | U14#(isNatKind(activate(V2)), activate(V1), activate(V2)) | |
U13#(tt, V1, V2) | → | isNatKind#(activate(V2)) | U11#(tt, V1, V2) | → | U12#(isNatKind(activate(V1)), activate(V1), activate(V2)) | |
U14#(tt, V1, V2) | → | isNat#(activate(V1)) | isNatKind#(n__plus(V1, V2)) | → | activate#(V2) | |
U12#(tt, V1, V2) | → | activate#(V1) | U31#(tt, V2) | → | isNatKind#(activate(V2)) | |
U12#(tt, V1, V2) | → | isNatKind#(activate(V2)) | activate#(n__plus(X1, X2)) | → | activate#(X1) | |
isNatKind#(n__plus(V1, V2)) | → | activate#(V1) | U11#(tt, V1, V2) | → | isNatKind#(activate(V1)) | |
isNatKind#(n__plus(V1, V2)) | → | U31#(isNatKind(activate(V1)), activate(V2)) | U14#(tt, V1, V2) | → | activate#(V2) | |
U15#(tt, V2) | → | activate#(V2) | isNat#(n__plus(V1, V2)) | → | U11#(isNatKind(activate(V1)), activate(V1), activate(V2)) | |
U11#(tt, V1, V2) | → | activate#(V1) | U14#(tt, V1, V2) | → | activate#(V1) | |
U31#(tt, V2) | → | activate#(V2) | isNat#(n__plus(V1, V2)) | → | activate#(V1) |
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, V2) | → | U32(isNatKind(activate(V2))) | |
U32(tt) | → | tt | U41(tt) | → | tt | |
U51(tt, N) | → | U52(isNatKind(activate(N)), activate(N)) | U52(tt, N) | → | activate(N) | |
U61(tt, M, N) | → | U62(isNatKind(activate(M)), activate(M), activate(N)) | U62(tt, M, N) | → | U63(isNat(activate(N)), activate(M), activate(N)) | |
U63(tt, M, N) | → | U64(isNatKind(activate(N)), activate(M), activate(N)) | U64(tt, M, N) | → | s(plus(activate(N), activate(M))) | |
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)) | isNatKind(n__0) | → | tt | |
isNatKind(n__plus(V1, V2)) | → | U31(isNatKind(activate(V1)), activate(V2)) | isNatKind(n__s(V1)) | → | U41(isNatKind(activate(V1))) | |
plus(N, 0) | → | U51(isNat(N), N) | plus(N, s(M)) | → | U61(isNat(M), M, N) | |
0 | → | n__0 | plus(X1, X2) | → | n__plus(X1, X2) | |
s(X) | → | n__s(X) | activate(n__0) | → | 0 | |
activate(n__plus(X1, X2)) | → | plus(activate(X1), activate(X2)) | activate(n__s(X)) | → | s(activate(X)) | |
activate(X) | → | X |
Termination of terms over the following signature is verified: n__plus, U64, activate, isNat, n__s, U63, U62, n__0, U61, U41, U23, U21, U22, plus, isNatKind, 0, U14, U51, s, U15, tt, U16, U52, U11, U12, U31, U13, U32
U13#(tt, V1, V2) → activate#(V2) | isNat#(n__plus(V1, V2)) → isNatKind#(activate(V1)) |
activate#(n__plus(X1, X2)) → plus#(activate(X1), activate(X2)) | U14#(tt, V1, V2) → U15#(isNat(activate(V1)), activate(V2)) |
U12#(tt, V1, V2) → activate#(V2) | U15#(tt, V2) → isNat#(activate(V2)) |
U12#(tt, V1, V2) → U13#(isNatKind(activate(V2)), activate(V1), activate(V2)) | U13#(tt, V1, V2) → activate#(V1) |
plus#(N, 0) → isNat#(N) | isNat#(n__plus(V1, V2)) → activate#(V2) |
U11#(tt, V1, V2) → activate#(V2) | activate#(n__plus(X1, X2)) → activate#(X2) |
isNatKind#(n__plus(V1, V2)) → isNatKind#(activate(V1)) | U13#(tt, V1, V2) → U14#(isNatKind(activate(V2)), activate(V1), activate(V2)) |
U13#(tt, V1, V2) → isNatKind#(activate(V2)) | U11#(tt, V1, V2) → U12#(isNatKind(activate(V1)), activate(V1), activate(V2)) |
U14#(tt, V1, V2) → isNat#(activate(V1)) | isNatKind#(n__plus(V1, V2)) → activate#(V2) |
U12#(tt, V1, V2) → activate#(V1) | U31#(tt, V2) → isNatKind#(activate(V2)) |
U12#(tt, V1, V2) → isNatKind#(activate(V2)) | activate#(n__plus(X1, X2)) → activate#(X1) |
isNatKind#(n__plus(V1, V2)) → activate#(V1) | U11#(tt, V1, V2) → isNatKind#(activate(V1)) |
isNatKind#(n__plus(V1, V2)) → U31#(isNatKind(activate(V1)), activate(V2)) | U14#(tt, V1, V2) → activate#(V2) |
isNat#(n__plus(V1, V2)) → U11#(isNatKind(activate(V1)), activate(V1), activate(V2)) | U15#(tt, V2) → activate#(V2) |
U11#(tt, V1, V2) → activate#(V1) | U14#(tt, V1, V2) → activate#(V1) |
U31#(tt, V2) → activate#(V2) | isNat#(n__plus(V1, V2)) → activate#(V1) |
U13#(tt, V1, V2) | → | activate#(V2) | isNat#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | |
activate#(n__plus(X1, X2)) | → | plus#(activate(X1), activate(X2)) | U14#(tt, V1, V2) | → | U15#(isNat(activate(V1)), activate(V2)) | |
U12#(tt, V1, V2) | → | activate#(V2) | U15#(tt, V2) | → | isNat#(activate(V2)) | |
U12#(tt, V1, V2) | → | U13#(isNatKind(activate(V2)), activate(V1), activate(V2)) | U13#(tt, V1, V2) | → | activate#(V1) | |
plus#(N, 0) | → | isNat#(N) | isNat#(n__plus(V1, V2)) | → | activate#(V2) | |
U11#(tt, V1, V2) | → | activate#(V2) | activate#(n__plus(X1, X2)) | → | activate#(X2) | |
isNatKind#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | U13#(tt, V1, V2) | → | isNatKind#(activate(V2)) | |
U13#(tt, V1, V2) | → | U14#(isNatKind(activate(V2)), activate(V1), activate(V2)) | U11#(tt, V1, V2) | → | U12#(isNatKind(activate(V1)), activate(V1), activate(V2)) | |
U14#(tt, V1, V2) | → | isNat#(activate(V1)) | isNatKind#(n__plus(V1, V2)) | → | activate#(V2) | |
U12#(tt, V1, V2) | → | activate#(V1) | U31#(tt, V2) | → | isNatKind#(activate(V2)) | |
U12#(tt, V1, V2) | → | isNatKind#(activate(V2)) | activate#(n__plus(X1, X2)) | → | activate#(X1) | |
isNatKind#(n__plus(V1, V2)) | → | activate#(V1) | U11#(tt, V1, V2) | → | isNatKind#(activate(V1)) | |
isNatKind#(n__plus(V1, V2)) | → | U31#(isNatKind(activate(V1)), activate(V2)) | U14#(tt, V1, V2) | → | activate#(V2) | |
isNat#(n__plus(V1, V2)) | → | U11#(isNatKind(activate(V1)), activate(V1), activate(V2)) | U15#(tt, V2) | → | activate#(V2) | |
U11#(tt, V1, V2) | → | activate#(V1) | U14#(tt, V1, V2) | → | activate#(V1) | |
U31#(tt, V2) | → | activate#(V2) | isNat#(n__plus(V1, V2)) | → | activate#(V1) |
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, V2) | → | U32(isNatKind(activate(V2))) | |
U32(tt) | → | tt | U41(tt) | → | tt | |
U51(tt, N) | → | U52(isNatKind(activate(N)), activate(N)) | U52(tt, N) | → | activate(N) | |
U61(tt, M, N) | → | U62(isNatKind(activate(M)), activate(M), activate(N)) | U62(tt, M, N) | → | U63(isNat(activate(N)), activate(M), activate(N)) | |
U63(tt, M, N) | → | U64(isNatKind(activate(N)), activate(M), activate(N)) | U64(tt, M, N) | → | s(plus(activate(N), activate(M))) | |
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)) | isNatKind(n__0) | → | tt | |
isNatKind(n__plus(V1, V2)) | → | U31(isNatKind(activate(V1)), activate(V2)) | isNatKind(n__s(V1)) | → | U41(isNatKind(activate(V1))) | |
plus(N, 0) | → | U51(isNat(N), N) | plus(N, s(M)) | → | U61(isNat(M), M, N) | |
0 | → | n__0 | plus(X1, X2) | → | n__plus(X1, X2) | |
s(X) | → | n__s(X) | activate(n__0) | → | 0 | |
activate(n__plus(X1, X2)) | → | plus(activate(X1), activate(X2)) | activate(n__s(X)) | → | s(activate(X)) | |
activate(X) | → | X |
Termination of terms over the following signature is verified: n__plus, U64, activate, isNat, n__s, U63, U62, n__0, U61, U41, U23, U21, U22, plus, isNatKind, 0, U14, U51, s, U15, tt, U16, U52, U11, U12, U31, U13, U32
U51(tt, N) | → | U52(isNatKind(activate(N)), activate(N)) | U21(tt, V1) | → | U22(isNatKind(activate(V1)), activate(V1)) | |
U31(tt, V2) | → | U32(isNatKind(activate(V2))) | activate(n__0) | → | 0 | |
U41(tt) | → | tt | isNat(n__0) | → | tt | |
U64(tt, M, N) | → | s(plus(activate(N), activate(M))) | isNat(n__plus(V1, V2)) | → | U11(isNatKind(activate(V1)), activate(V1), activate(V2)) | |
U12(tt, V1, V2) | → | U13(isNatKind(activate(V2)), activate(V1), activate(V2)) | s(X) | → | n__s(X) | |
U32(tt) | → | tt | isNatKind(n__plus(V1, V2)) | → | U31(isNatKind(activate(V1)), activate(V2)) | |
plus(X1, X2) | → | n__plus(X1, X2) | plus(N, 0) | → | U51(isNat(N), N) | |
isNat(n__s(V1)) | → | U21(isNatKind(activate(V1)), activate(V1)) | U22(tt, V1) | → | U23(isNat(activate(V1))) | |
U23(tt) | → | tt | isNatKind(n__s(V1)) | → | U41(isNatKind(activate(V1))) | |
U11(tt, V1, V2) | → | U12(isNatKind(activate(V1)), activate(V1), activate(V2)) | plus(N, s(M)) | → | U61(isNat(M), M, N) | |
U15(tt, V2) | → | U16(isNat(activate(V2))) | 0 | → | n__0 | |
isNatKind(n__0) | → | tt | U62(tt, M, N) | → | U63(isNat(activate(N)), activate(M), activate(N)) | |
U14(tt, V1, V2) | → | U15(isNat(activate(V1)), activate(V2)) | U16(tt) | → | tt | |
U61(tt, M, N) | → | U62(isNatKind(activate(M)), activate(M), activate(N)) | U63(tt, M, N) | → | U64(isNatKind(activate(N)), activate(M), activate(N)) | |
activate(X) | → | X | U13(tt, V1, V2) | → | U14(isNatKind(activate(V2)), activate(V1), activate(V2)) | |
activate(n__s(X)) | → | s(activate(X)) | activate(n__plus(X1, X2)) | → | plus(activate(X1), activate(X2)) | |
U52(tt, N) | → | activate(N) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
isNat#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | activate#(n__plus(X1, X2)) | → | plus#(activate(X1), activate(X2)) | |
isNat#(n__plus(V1, V2)) | → | activate#(V2) | plus#(N, 0) | → | isNat#(N) | |
U11#(tt, V1, V2) | → | activate#(V2) | activate#(n__plus(X1, X2)) | → | activate#(X2) | |
isNatKind#(n__plus(V1, V2)) | → | isNatKind#(activate(V1)) | U11#(tt, V1, V2) | → | U12#(isNatKind(activate(V1)), activate(V1), activate(V2)) | |
isNatKind#(n__plus(V1, V2)) | → | activate#(V2) | activate#(n__plus(X1, X2)) | → | activate#(X1) | |
isNatKind#(n__plus(V1, V2)) | → | activate#(V1) | U11#(tt, V1, V2) | → | isNatKind#(activate(V1)) | |
isNatKind#(n__plus(V1, V2)) | → | U31#(isNatKind(activate(V1)), activate(V2)) | isNat#(n__plus(V1, V2)) | → | U11#(isNatKind(activate(V1)), activate(V1), activate(V2)) | |
U11#(tt, V1, V2) | → | activate#(V1) | isNat#(n__plus(V1, V2)) | → | activate#(V1) |
U13#(tt, V1, V2) | → | activate#(V2) | U14#(tt, V1, V2) | → | U15#(isNat(activate(V1)), activate(V2)) | |
U12#(tt, V1, V2) | → | activate#(V2) | U14#(tt, V1, V2) | → | activate#(V2) | |
U15#(tt, V2) | → | isNat#(activate(V2)) | U15#(tt, V2) | → | activate#(V2) | |
U12#(tt, V1, V2) | → | U13#(isNatKind(activate(V2)), activate(V1), activate(V2)) | U13#(tt, V1, V2) | → | activate#(V1) | |
U13#(tt, V1, V2) | → | isNatKind#(activate(V2)) | U13#(tt, V1, V2) | → | U14#(isNatKind(activate(V2)), activate(V1), activate(V2)) | |
U14#(tt, V1, V2) | → | activate#(V1) | U14#(tt, V1, V2) | → | isNat#(activate(V1)) | |
U31#(tt, V2) | → | activate#(V2) | U12#(tt, V1, V2) | → | activate#(V1) | |
U31#(tt, V2) | → | isNatKind#(activate(V2)) | U12#(tt, V1, V2) | → | isNatKind#(activate(V2)) |
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, V2) | → | U32(isNatKind(activate(V2))) | |
U32(tt) | → | tt | U41(tt) | → | tt | |
U51(tt, N) | → | U52(isNatKind(activate(N)), activate(N)) | U52(tt, N) | → | activate(N) | |
U61(tt, M, N) | → | U62(isNatKind(activate(M)), activate(M), activate(N)) | U62(tt, M, N) | → | U63(isNat(activate(N)), activate(M), activate(N)) | |
U63(tt, M, N) | → | U64(isNatKind(activate(N)), activate(M), activate(N)) | U64(tt, M, N) | → | s(plus(activate(N), activate(M))) | |
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)) | isNatKind(n__0) | → | tt | |
isNatKind(n__plus(V1, V2)) | → | U31(isNatKind(activate(V1)), activate(V2)) | isNatKind(n__s(V1)) | → | U41(isNatKind(activate(V1))) | |
plus(N, 0) | → | U51(isNat(N), N) | plus(N, s(M)) | → | U61(isNat(M), M, N) | |
0 | → | n__0 | plus(X1, X2) | → | n__plus(X1, X2) | |
s(X) | → | n__s(X) | activate(n__0) | → | 0 | |
activate(n__plus(X1, X2)) | → | plus(activate(X1), activate(X2)) | activate(n__s(X)) | → | s(activate(X)) | |
activate(X) | → | X |
Termination of terms over the following signature is verified: n__plus, n__s, isNat, activate, U64, U63, U62, U61, n__0, U41, U23, U21, U22, plus, isNatKind, 0, U14, U51, s, U15, tt, U16, U52, U11, U12, U13, U31, U32