YES

The TRS could be proven terminating. The proof took 897 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (102ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4 (163ms).
 |    | – Problem 4 was processed with processor PolynomialLinearRange4 (81ms).
 | – Problem 3 was processed with processor PolynomialLinearRange4 (175ms).
 |    | – Problem 5 was processed with processor DependencyGraph (0ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U31#(tt, N) → T(N)U42#(tt, M, N) → plus#(N, M)
isNat#(s(V1)) → U21#(isNat(V1))U42#(tt, M, N) → T(N)
plus#(N, 0) → isNat#(N)isNat#(plus(V1, V2)) → U11#(isNat(V1), V2)
isNat#(s(V1)) → isNat#(V1)plus#(N, s(M)) → U41#(isNat(M), M, N)
plus#(N, 0) → U31#(isNat(N), N)isNat#(plus(V1, V2)) → isNat#(V1)
plus#(N, s(M)) → isNat#(M)U11#(tt, V2) → isNat#(V2)
U11#(tt, V2) → U12#(isNat(V2))U41#(tt, M, N) → U42#(isNat(N), M, N)
U42#(tt, M, N) → T(M)U41#(tt, M, N) → isNat#(N)

Rewrite Rules

U11(tt, V2) → U12(isNat(V2))U12(tt) → tt
U21(tt) → ttU31(tt, N) → N
U41(tt, M, N) → U42(isNat(N), M, N)U42(tt, M, N) → s(plus(N, M))
isNat(0) → ttisNat(plus(V1, V2)) → U11(isNat(V1), V2)
isNat(s(V1)) → U21(isNat(V1))plus(N, 0) → U31(isNat(N), N)
plus(N, s(M)) → U41(isNat(M), M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, plus, 0, U42, s, tt, U41, U11, U12, U31, U21

Strategy

Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U12#) = μ(U31#) = μ(U21#) = μ(U42#) = μ(U41#) = μ(U42) = μ(s) = μ(U41) = μ(U11) = μ(U12) = μ(U31) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}


The following SCCs where found

U42#(tt, M, N) → plus#(N, M)U41#(tt, M, N) → U42#(isNat(N), M, N)
plus#(N, s(M)) → U41#(isNat(M), M, N)

isNat#(plus(V1, V2)) → U11#(isNat(V1), V2)isNat#(s(V1)) → isNat#(V1)
isNat#(plus(V1, V2)) → isNat#(V1)U11#(tt, V2) → isNat#(V2)

Problem 2: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNat#(plus(V1, V2)) → U11#(isNat(V1), V2)isNat#(s(V1)) → isNat#(V1)
isNat#(plus(V1, V2)) → isNat#(V1)U11#(tt, V2) → isNat#(V2)

Rewrite Rules

U11(tt, V2) → U12(isNat(V2))U12(tt) → tt
U21(tt) → ttU31(tt, N) → N
U41(tt, M, N) → U42(isNat(N), M, N)U42(tt, M, N) → s(plus(N, M))
isNat(0) → ttisNat(plus(V1, V2)) → U11(isNat(V1), V2)
isNat(s(V1)) → U21(isNat(V1))plus(N, 0) → U31(isNat(N), N)
plus(N, s(M)) → U41(isNat(M), M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, plus, 0, U42, s, tt, U41, U11, U12, U31, U21

Strategy

Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U12#) = μ(U31#) = μ(U21#) = μ(U42#) = μ(U41#) = μ(U42) = μ(s) = μ(U41) = μ(U11) = μ(U12) = μ(U31) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}


Polynomial Interpretation

Standard Usable rules

U11(tt, V2) → U12(isNat(V2))isNat(0) → tt
U21(tt) → ttU12(tt) → tt
isNat(plus(V1, V2)) → U11(isNat(V1), V2)isNat(s(V1)) → U21(isNat(V1))

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

isNat#(plus(V1, V2)) → U11#(isNat(V1), V2)isNat#(plus(V1, V2)) → isNat#(V1)
U11#(tt, V2) → isNat#(V2)

Problem 4: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNat#(s(V1)) → isNat#(V1)

Rewrite Rules

U11(tt, V2) → U12(isNat(V2))U12(tt) → tt
U21(tt) → ttU31(tt, N) → N
U41(tt, M, N) → U42(isNat(N), M, N)U42(tt, M, N) → s(plus(N, M))
isNat(0) → ttisNat(plus(V1, V2)) → U11(isNat(V1), V2)
isNat(s(V1)) → U21(isNat(V1))plus(N, 0) → U31(isNat(N), N)
plus(N, s(M)) → U41(isNat(M), M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, plus, 0, s, U42, U41, tt, U11, U12, U31, U21

Strategy

Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U12#) = μ(U31#) = μ(U21#) = μ(U42#) = μ(U41#) = μ(U42) = μ(s) = μ(U41) = μ(U11) = μ(U12) = μ(U31) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}


Polynomial Interpretation

There are no usable rules

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

isNat#(s(V1)) → isNat#(V1)

Problem 3: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

U42#(tt, M, N) → plus#(N, M)U41#(tt, M, N) → U42#(isNat(N), M, N)
plus#(N, s(M)) → U41#(isNat(M), M, N)

Rewrite Rules

U11(tt, V2) → U12(isNat(V2))U12(tt) → tt
U21(tt) → ttU31(tt, N) → N
U41(tt, M, N) → U42(isNat(N), M, N)U42(tt, M, N) → s(plus(N, M))
isNat(0) → ttisNat(plus(V1, V2)) → U11(isNat(V1), V2)
isNat(s(V1)) → U21(isNat(V1))plus(N, 0) → U31(isNat(N), N)
plus(N, s(M)) → U41(isNat(M), M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, plus, 0, U42, s, tt, U41, U11, U12, U31, U21

Strategy

Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U12#) = μ(U31#) = μ(U21#) = μ(U42#) = μ(U41#) = μ(U42) = μ(s) = μ(U41) = μ(U11) = μ(U12) = μ(U31) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}


Polynomial Interpretation

Standard Usable rules

U11(tt, V2) → U12(isNat(V2))U31(tt, N) → N
isNat(0) → ttU42(tt, M, N) → s(plus(N, M))
U21(tt) → ttU12(tt) → tt
U41(tt, M, N) → U42(isNat(N), M, N)plus(N, s(M)) → U41(isNat(M), M, N)
isNat(plus(V1, V2)) → U11(isNat(V1), V2)isNat(s(V1)) → U21(isNat(V1))
plus(N, 0) → U31(isNat(N), N)

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

U42#(tt, M, N) → plus#(N, M)

Problem 5: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U41#(tt, M, N) → U42#(isNat(N), M, N)plus#(N, s(M)) → U41#(isNat(M), M, N)

Rewrite Rules

U11(tt, V2) → U12(isNat(V2))U12(tt) → tt
U21(tt) → ttU31(tt, N) → N
U41(tt, M, N) → U42(isNat(N), M, N)U42(tt, M, N) → s(plus(N, M))
isNat(0) → ttisNat(plus(V1, V2)) → U11(isNat(V1), V2)
isNat(s(V1)) → U21(isNat(V1))plus(N, 0) → U31(isNat(N), N)
plus(N, s(M)) → U41(isNat(M), M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, plus, 0, s, U42, U41, tt, U11, U12, U31, U21

Strategy

Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U12#) = μ(U31#) = μ(U21#) = μ(U42#) = μ(U41#) = μ(U42) = μ(s) = μ(U41) = μ(U11) = μ(U12) = μ(U31) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}


There are no SCCs!