YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (728ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4 (641ms).
 |    | – Problem 3 was processed with processor PolynomialLinearRange4 (875ms).
 |    |    | – Problem 4 was processed with processor DependencyGraph (146ms).
 |    |    |    | – Problem 5 was processed with processor PolynomialLinearRange4 (446ms).
 |    |    |    |    | – Problem 7 was processed with processor DependencyGraph (62ms).
 |    |    |    |    |    | – Problem 9 was processed with processor PolynomialLinearRange4 (484ms).
 |    |    |    |    |    |    | – Problem 10 was processed with processor PolynomialLinearRange4 (312ms).
 |    |    |    |    |    |    |    | – Problem 11 was processed with processor PolynomialLinearRange4 (474ms).
 |    |    |    |    |    |    |    |    | – Problem 12 was processed with processor DependencyGraph (21ms).
 |    |    |    |    |    |    |    |    |    | – Problem 13 was processed with processor PolynomialLinearRange4 (211ms).
 |    |    |    |    |    |    |    |    |    |    | – Problem 14 was processed with processor PolynomialLinearRange4 (164ms).
 |    |    |    |    |    |    |    |    |    |    |    | – Problem 15 was processed with processor PolynomialLinearRange4 (157ms).
 |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 16 was processed with processor PolynomialLinearRange4 (137ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 17 was processed with processor ReductionPairSAT (1013ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 18 was processed with processor DependencyGraph (2ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 19 was processed with processor ReductionPairSAT (1317ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 21 was processed with processor DependencyGraph (7ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 22 was processed with processor ReductionPairSAT (24ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 20 was processed with processor ReductionPairSAT (57ms).
 |    |    |    | – Problem 6 was processed with processor PolynomialLinearRange4 (194ms).
 |    |    |    |    | – Problem 8 was processed with processor DependencyGraph (0ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

a__U41#(tt, M, N)a__plus#(mark(N), mark(M))mark#(isNat(X))a__isNat#(X)
a__U11#(tt, V1, V2)a__isNat#(V1)a__U31#(tt, N)mark#(N)
a__U12#(tt, V2)a__isNat#(V2)mark#(U21(X1, X2))mark#(X1)
a__plus#(N, 0)a__and#(a__isNat(N), isNatKind(N))mark#(U31(X1, X2))a__U31#(mark(X1), X2)
mark#(U41(X1, X2, X3))a__U41#(mark(X1), X2, X3)a__isNatKind#(s(V1))a__isNatKind#(V1)
a__U41#(tt, M, N)mark#(M)a__U21#(tt, V1)a__U22#(a__isNat(V1))
mark#(U13(X))a__U13#(mark(X))mark#(plus(X1, X2))mark#(X2)
mark#(U22(X))a__U22#(mark(X))a__and#(tt, X)mark#(X)
a__plus#(N, s(M))a__U41#(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)mark#(U31(X1, X2))mark#(X1)
a__plus#(N, s(M))a__isNat#(M)a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))
mark#(s(X))mark#(X)a__isNat#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))
a__plus#(N, s(M))a__and#(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))a__isNat#(plus(V1, V2))a__U11#(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
mark#(U12(X1, X2))mark#(X1)a__U21#(tt, V1)a__isNat#(V1)
a__plus#(N, s(M))a__and#(a__isNat(M), isNatKind(M))a__U12#(tt, V2)a__U13#(a__isNat(V2))
mark#(plus(X1, X2))a__plus#(mark(X1), mark(X2))a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)
a__isNat#(s(V1))a__isNatKind#(V1)a__U11#(tt, V1, V2)a__U12#(a__isNat(V1), V2)
a__plus#(N, 0)a__U31#(a__and(a__isNat(N), isNatKind(N)), N)mark#(plus(X1, X2))mark#(X1)
mark#(and(X1, X2))mark#(X1)mark#(U22(X))mark#(X)
a__isNat#(s(V1))a__U21#(a__isNatKind(V1), V1)mark#(U41(X1, X2, X3))mark#(X1)
mark#(and(X1, X2))a__and#(mark(X1), X2)mark#(U21(X1, X2))a__U21#(mark(X1), X2)
a__isNat#(plus(V1, V2))a__isNatKind#(V1)mark#(U12(X1, X2))a__U12#(mark(X1), X2)
a__plus#(N, 0)a__isNat#(N)a__U41#(tt, M, N)mark#(N)
mark#(isNatKind(X))a__isNatKind#(X)mark#(U11(X1, X2, X3))a__U11#(mark(X1), X2, X3)
mark#(U11(X1, X2, X3))mark#(X1)mark#(U13(X))mark#(X)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, U21, a__U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


The following SCCs where found

a__U41#(tt, M, N) → a__plus#(mark(N), mark(M))mark#(isNat(X)) → a__isNat#(X)
a__U11#(tt, V1, V2) → a__isNat#(V1)a__U31#(tt, N) → mark#(N)
a__U12#(tt, V2) → a__isNat#(V2)mark#(U21(X1, X2)) → mark#(X1)
mark#(U31(X1, X2)) → a__U31#(mark(X1), X2)mark#(U41(X1, X2, X3)) → a__U41#(mark(X1), X2, X3)
a__plus#(N, 0) → a__and#(a__isNat(N), isNatKind(N))a__isNatKind#(s(V1)) → a__isNatKind#(V1)
a__U41#(tt, M, N) → mark#(M)mark#(plus(X1, X2)) → mark#(X2)
a__and#(tt, X) → mark#(X)a__plus#(N, s(M)) → a__U41#(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__isNatKind#(plus(V1, V2)) → a__and#(a__isNatKind(V1), isNatKind(V2))mark#(U31(X1, X2)) → mark#(X1)
a__plus#(N, s(M)) → a__isNat#(M)a__plus#(N, s(M)) → a__and#(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))
mark#(s(X)) → mark#(X)a__isNat#(plus(V1, V2)) → a__and#(a__isNatKind(V1), isNatKind(V2))
a__isNat#(plus(V1, V2)) → a__U11#(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)mark#(U12(X1, X2)) → mark#(X1)
a__U21#(tt, V1) → a__isNat#(V1)a__plus#(N, s(M)) → a__and#(a__isNat(M), isNatKind(M))
mark#(plus(X1, X2)) → a__plus#(mark(X1), mark(X2))a__isNatKind#(plus(V1, V2)) → a__isNatKind#(V1)
a__isNat#(s(V1)) → a__isNatKind#(V1)a__U11#(tt, V1, V2) → a__U12#(a__isNat(V1), V2)
mark#(plus(X1, X2)) → mark#(X1)a__plus#(N, 0) → a__U31#(a__and(a__isNat(N), isNatKind(N)), N)
mark#(and(X1, X2)) → mark#(X1)mark#(U22(X)) → mark#(X)
mark#(U41(X1, X2, X3)) → mark#(X1)mark#(and(X1, X2)) → a__and#(mark(X1), X2)
a__isNat#(s(V1)) → a__U21#(a__isNatKind(V1), V1)mark#(U21(X1, X2)) → a__U21#(mark(X1), X2)
mark#(U12(X1, X2)) → a__U12#(mark(X1), X2)a__isNat#(plus(V1, V2)) → a__isNatKind#(V1)
a__U41#(tt, M, N) → mark#(N)a__plus#(N, 0) → a__isNat#(N)
mark#(isNatKind(X)) → a__isNatKind#(X)mark#(U11(X1, X2, X3)) → a__U11#(mark(X1), X2, X3)
mark#(U11(X1, X2, X3)) → mark#(X1)mark#(U13(X)) → mark#(X)

Problem 2: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

a__U41#(tt, M, N)a__plus#(mark(N), mark(M))mark#(isNat(X))a__isNat#(X)
a__U11#(tt, V1, V2)a__isNat#(V1)a__U31#(tt, N)mark#(N)
a__U12#(tt, V2)a__isNat#(V2)mark#(U21(X1, X2))mark#(X1)
mark#(U31(X1, X2))a__U31#(mark(X1), X2)mark#(U41(X1, X2, X3))a__U41#(mark(X1), X2, X3)
a__plus#(N, 0)a__and#(a__isNat(N), isNatKind(N))a__isNatKind#(s(V1))a__isNatKind#(V1)
a__U41#(tt, M, N)mark#(M)mark#(plus(X1, X2))mark#(X2)
a__plus#(N, s(M))a__U41#(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)a__and#(tt, X)mark#(X)
a__plus#(N, s(M))a__isNat#(M)mark#(U31(X1, X2))mark#(X1)
a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))a__isNat#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))
mark#(s(X))mark#(X)a__plus#(N, s(M))a__and#(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))
a__isNat#(plus(V1, V2))a__U11#(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)mark#(U12(X1, X2))mark#(X1)
a__U21#(tt, V1)a__isNat#(V1)a__plus#(N, s(M))a__and#(a__isNat(M), isNatKind(M))
mark#(plus(X1, X2))a__plus#(mark(X1), mark(X2))a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)
a__isNat#(s(V1))a__isNatKind#(V1)a__U11#(tt, V1, V2)a__U12#(a__isNat(V1), V2)
mark#(plus(X1, X2))mark#(X1)a__plus#(N, 0)a__U31#(a__and(a__isNat(N), isNatKind(N)), N)
mark#(and(X1, X2))mark#(X1)mark#(U22(X))mark#(X)
mark#(U41(X1, X2, X3))mark#(X1)mark#(and(X1, X2))a__and#(mark(X1), X2)
a__isNat#(s(V1))a__U21#(a__isNatKind(V1), V1)mark#(U21(X1, X2))a__U21#(mark(X1), X2)
mark#(U12(X1, X2))a__U12#(mark(X1), X2)a__isNat#(plus(V1, V2))a__isNatKind#(V1)
a__U41#(tt, M, N)mark#(N)a__plus#(N, 0)a__isNat#(N)
mark#(isNatKind(X))a__isNatKind#(X)mark#(U11(X1, X2, X3))a__U11#(mark(X1), X2, X3)
mark#(U11(X1, X2, X3))mark#(X1)mark#(U13(X))mark#(X)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, U21, a__U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

a__U11(X1, X2, X3)U11(X1, X2, X3)a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))
a__U22(tt)ttmark(isNatKind(X))a__isNatKind(X)
a__isNatKind(0)tta__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)
a__isNat(0)tta__isNat(X)isNat(X)
a__U21(tt, V1)a__U22(a__isNat(V1))mark(U12(X1, X2))a__U12(mark(X1), X2)
a__U31(tt, N)mark(N)mark(U13(X))a__U13(mark(X))
mark(U22(X))a__U22(mark(X))a__U12(tt, V2)a__U13(a__isNat(V2))
a__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__U12(X1, X2)U12(X1, X2)
a__U13(tt)tta__U22(X)U22(X)
mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__U21(X1, X2)U21(X1, X2)mark(tt)tt
mark(0)0a__plus(X1, X2)plus(X1, X2)
mark(U21(X1, X2))a__U21(mark(X1), X2)a__and(X1, X2)and(X1, X2)
a__U13(X)U13(X)a__and(tt, X)mark(X)
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(isNat(X))a__isNat(X)
a__U41(X1, X2, X3)U41(X1, X2, X3)mark(and(X1, X2))a__and(mark(X1), X2)
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)
mark(s(X))s(mark(X))a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)
a__U31(X1, X2)U31(X1, X2)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)a__isNatKind(s(V1))a__isNatKind(V1)
a__isNatKind(X)isNatKind(X)

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

a__plus#(N, 0)a__and#(a__isNat(N), isNatKind(N))a__plus#(N, 0)a__U31#(a__and(a__isNat(N), isNatKind(N)), N)
a__plus#(N, 0)a__isNat#(N)

Problem 3: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

a__U41#(tt, M, N)a__plus#(mark(N), mark(M))mark#(isNat(X))a__isNat#(X)
a__U11#(tt, V1, V2)a__isNat#(V1)a__U31#(tt, N)mark#(N)
a__U12#(tt, V2)a__isNat#(V2)mark#(U21(X1, X2))mark#(X1)
mark#(U41(X1, X2, X3))a__U41#(mark(X1), X2, X3)mark#(U31(X1, X2))a__U31#(mark(X1), X2)
a__isNatKind#(s(V1))a__isNatKind#(V1)a__U41#(tt, M, N)mark#(M)
mark#(plus(X1, X2))mark#(X2)a__and#(tt, X)mark#(X)
a__plus#(N, s(M))a__U41#(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)a__plus#(N, s(M))a__isNat#(M)
mark#(U31(X1, X2))mark#(X1)a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))
a__isNat#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))mark#(s(X))mark#(X)
a__plus#(N, s(M))a__and#(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))a__isNat#(plus(V1, V2))a__U11#(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
mark#(U12(X1, X2))mark#(X1)a__U21#(tt, V1)a__isNat#(V1)
a__plus#(N, s(M))a__and#(a__isNat(M), isNatKind(M))mark#(plus(X1, X2))a__plus#(mark(X1), mark(X2))
a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)a__U11#(tt, V1, V2)a__U12#(a__isNat(V1), V2)
a__isNat#(s(V1))a__isNatKind#(V1)mark#(plus(X1, X2))mark#(X1)
mark#(and(X1, X2))mark#(X1)mark#(U22(X))mark#(X)
a__isNat#(s(V1))a__U21#(a__isNatKind(V1), V1)mark#(and(X1, X2))a__and#(mark(X1), X2)
mark#(U41(X1, X2, X3))mark#(X1)mark#(U21(X1, X2))a__U21#(mark(X1), X2)
a__isNat#(plus(V1, V2))a__isNatKind#(V1)mark#(U12(X1, X2))a__U12#(mark(X1), X2)
mark#(isNatKind(X))a__isNatKind#(X)a__U41#(tt, M, N)mark#(N)
mark#(U11(X1, X2, X3))a__U11#(mark(X1), X2, X3)mark#(U11(X1, X2, X3))mark#(X1)
mark#(U13(X))mark#(X)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, a__U21, U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

a__U11(X1, X2, X3)U11(X1, X2, X3)a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))
a__U22(tt)ttmark(isNatKind(X))a__isNatKind(X)
a__isNatKind(0)tta__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)
a__isNat(0)tta__isNat(X)isNat(X)
a__U21(tt, V1)a__U22(a__isNat(V1))mark(U12(X1, X2))a__U12(mark(X1), X2)
a__U31(tt, N)mark(N)mark(U13(X))a__U13(mark(X))
mark(U22(X))a__U22(mark(X))a__U12(tt, V2)a__U13(a__isNat(V2))
a__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__U12(X1, X2)U12(X1, X2)
a__U13(tt)tta__U22(X)U22(X)
mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__U21(X1, X2)U21(X1, X2)mark(tt)tt
mark(0)0a__plus(X1, X2)plus(X1, X2)
mark(U21(X1, X2))a__U21(mark(X1), X2)a__and(X1, X2)and(X1, X2)
a__U13(X)U13(X)a__and(tt, X)mark(X)
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(isNat(X))a__isNat(X)
a__U41(X1, X2, X3)U41(X1, X2, X3)mark(and(X1, X2))a__and(mark(X1), X2)
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)
mark(s(X))s(mark(X))a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)
a__U31(X1, X2)U31(X1, X2)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)a__isNatKind(s(V1))a__isNatKind(V1)
a__isNatKind(X)isNatKind(X)

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

mark#(U41(X1, X2, X3))a__U41#(mark(X1), X2, X3)mark#(plus(X1, X2))mark#(X2)
mark#(plus(X1, X2))a__plus#(mark(X1), mark(X2))mark#(plus(X1, X2))mark#(X1)
mark#(U41(X1, X2, X3))mark#(X1)

Problem 4: DependencyGraph



Dependency Pair Problem

Dependency Pairs

a__U41#(tt, M, N)a__plus#(mark(N), mark(M))mark#(isNat(X))a__isNat#(X)
a__U11#(tt, V1, V2)a__isNat#(V1)a__U31#(tt, N)mark#(N)
a__U12#(tt, V2)a__isNat#(V2)mark#(U21(X1, X2))mark#(X1)
mark#(U31(X1, X2))a__U31#(mark(X1), X2)a__isNatKind#(s(V1))a__isNatKind#(V1)
a__U41#(tt, M, N)mark#(M)a__plus#(N, s(M))a__U41#(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__and#(tt, X)mark#(X)mark#(U31(X1, X2))mark#(X1)
a__plus#(N, s(M))a__isNat#(M)a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))
a__isNat#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))mark#(s(X))mark#(X)
a__plus#(N, s(M))a__and#(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))a__isNat#(plus(V1, V2))a__U11#(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
mark#(U12(X1, X2))mark#(X1)a__U21#(tt, V1)a__isNat#(V1)
a__plus#(N, s(M))a__and#(a__isNat(M), isNatKind(M))a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)
a__U11#(tt, V1, V2)a__U12#(a__isNat(V1), V2)a__isNat#(s(V1))a__isNatKind#(V1)
mark#(and(X1, X2))mark#(X1)mark#(U22(X))mark#(X)
mark#(and(X1, X2))a__and#(mark(X1), X2)a__isNat#(s(V1))a__U21#(a__isNatKind(V1), V1)
mark#(U21(X1, X2))a__U21#(mark(X1), X2)mark#(U12(X1, X2))a__U12#(mark(X1), X2)
a__isNat#(plus(V1, V2))a__isNatKind#(V1)a__U41#(tt, M, N)mark#(N)
mark#(isNatKind(X))a__isNatKind#(X)mark#(U11(X1, X2, X3))a__U11#(mark(X1), X2, X3)
mark#(U11(X1, X2, X3))mark#(X1)mark#(U13(X))mark#(X)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, U21, a__U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


The following SCCs where found

mark#(isNat(X)) → a__isNat#(X)a__U11#(tt, V1, V2) → a__isNat#(V1)
a__U31#(tt, N) → mark#(N)a__U12#(tt, V2) → a__isNat#(V2)
mark#(U21(X1, X2)) → mark#(X1)mark#(U31(X1, X2)) → a__U31#(mark(X1), X2)
a__isNatKind#(s(V1)) → a__isNatKind#(V1)a__and#(tt, X) → mark#(X)
mark#(U31(X1, X2)) → mark#(X1)a__isNatKind#(plus(V1, V2)) → a__and#(a__isNatKind(V1), isNatKind(V2))
mark#(s(X)) → mark#(X)a__isNat#(plus(V1, V2)) → a__and#(a__isNatKind(V1), isNatKind(V2))
a__isNat#(plus(V1, V2)) → a__U11#(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)mark#(U12(X1, X2)) → mark#(X1)
a__U21#(tt, V1) → a__isNat#(V1)a__isNatKind#(plus(V1, V2)) → a__isNatKind#(V1)
a__isNat#(s(V1)) → a__isNatKind#(V1)a__U11#(tt, V1, V2) → a__U12#(a__isNat(V1), V2)
mark#(and(X1, X2)) → mark#(X1)mark#(U22(X)) → mark#(X)
mark#(and(X1, X2)) → a__and#(mark(X1), X2)a__isNat#(s(V1)) → a__U21#(a__isNatKind(V1), V1)
mark#(U21(X1, X2)) → a__U21#(mark(X1), X2)mark#(U12(X1, X2)) → a__U12#(mark(X1), X2)
a__isNat#(plus(V1, V2)) → a__isNatKind#(V1)mark#(isNatKind(X)) → a__isNatKind#(X)
mark#(U11(X1, X2, X3)) → a__U11#(mark(X1), X2, X3)mark#(U11(X1, X2, X3)) → mark#(X1)
mark#(U13(X)) → mark#(X)

a__U41#(tt, M, N) → a__plus#(mark(N), mark(M))a__plus#(N, s(M)) → a__U41#(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)

Problem 5: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

mark#(isNat(X))a__isNat#(X)a__U11#(tt, V1, V2)a__isNat#(V1)
a__U31#(tt, N)mark#(N)a__U12#(tt, V2)a__isNat#(V2)
mark#(U21(X1, X2))mark#(X1)mark#(U31(X1, X2))a__U31#(mark(X1), X2)
a__isNatKind#(s(V1))a__isNatKind#(V1)a__and#(tt, X)mark#(X)
mark#(U31(X1, X2))mark#(X1)a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))
mark#(s(X))mark#(X)a__isNat#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))
a__isNat#(plus(V1, V2))a__U11#(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)mark#(U12(X1, X2))mark#(X1)
a__U21#(tt, V1)a__isNat#(V1)a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)
a__U11#(tt, V1, V2)a__U12#(a__isNat(V1), V2)a__isNat#(s(V1))a__isNatKind#(V1)
mark#(and(X1, X2))mark#(X1)mark#(U22(X))mark#(X)
a__isNat#(s(V1))a__U21#(a__isNatKind(V1), V1)mark#(and(X1, X2))a__and#(mark(X1), X2)
mark#(U21(X1, X2))a__U21#(mark(X1), X2)a__isNat#(plus(V1, V2))a__isNatKind#(V1)
mark#(U12(X1, X2))a__U12#(mark(X1), X2)mark#(isNatKind(X))a__isNatKind#(X)
mark#(U11(X1, X2, X3))a__U11#(mark(X1), X2, X3)mark#(U11(X1, X2, X3))mark#(X1)
mark#(U13(X))mark#(X)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, U21, a__U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

a__U11(X1, X2, X3)U11(X1, X2, X3)a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))
a__U22(tt)ttmark(isNatKind(X))a__isNatKind(X)
a__isNatKind(0)tta__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)
a__isNat(0)tta__isNat(X)isNat(X)
a__U21(tt, V1)a__U22(a__isNat(V1))mark(U12(X1, X2))a__U12(mark(X1), X2)
a__U31(tt, N)mark(N)mark(U13(X))a__U13(mark(X))
mark(U22(X))a__U22(mark(X))a__U12(tt, V2)a__U13(a__isNat(V2))
a__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__U12(X1, X2)U12(X1, X2)
a__U13(tt)tta__U22(X)U22(X)
mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__U21(X1, X2)U21(X1, X2)mark(tt)tt
mark(0)0a__plus(X1, X2)plus(X1, X2)
mark(U21(X1, X2))a__U21(mark(X1), X2)a__and(X1, X2)and(X1, X2)
a__U13(X)U13(X)a__and(tt, X)mark(X)
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(isNat(X))a__isNat(X)
a__U41(X1, X2, X3)U41(X1, X2, X3)mark(and(X1, X2))a__and(mark(X1), X2)
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)
mark(s(X))s(mark(X))a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)
a__U31(X1, X2)U31(X1, X2)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)a__isNatKind(s(V1))a__isNatKind(V1)
a__isNatKind(X)isNatKind(X)

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

mark#(U31(X1, X2))a__U31#(mark(X1), X2)mark#(U31(X1, X2))mark#(X1)

Problem 7: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(isNat(X))a__isNat#(X)a__U11#(tt, V1, V2)a__isNat#(V1)
a__U31#(tt, N)mark#(N)a__U12#(tt, V2)a__isNat#(V2)
mark#(U21(X1, X2))mark#(X1)a__isNatKind#(s(V1))a__isNatKind#(V1)
a__and#(tt, X)mark#(X)a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))
a__isNat#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))mark#(s(X))mark#(X)
a__isNat#(plus(V1, V2))a__U11#(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)mark#(U12(X1, X2))mark#(X1)
a__U21#(tt, V1)a__isNat#(V1)a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)
a__U11#(tt, V1, V2)a__U12#(a__isNat(V1), V2)a__isNat#(s(V1))a__isNatKind#(V1)
mark#(and(X1, X2))mark#(X1)mark#(U22(X))mark#(X)
a__isNat#(s(V1))a__U21#(a__isNatKind(V1), V1)mark#(and(X1, X2))a__and#(mark(X1), X2)
mark#(U21(X1, X2))a__U21#(mark(X1), X2)a__isNat#(plus(V1, V2))a__isNatKind#(V1)
mark#(U12(X1, X2))a__U12#(mark(X1), X2)mark#(isNatKind(X))a__isNatKind#(X)
mark#(U11(X1, X2, X3))a__U11#(mark(X1), X2, X3)mark#(U11(X1, X2, X3))mark#(X1)
mark#(U13(X))mark#(X)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, a__U21, U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


The following SCCs where found

mark#(isNat(X)) → a__isNat#(X)a__U11#(tt, V1, V2) → a__isNat#(V1)
a__U12#(tt, V2) → a__isNat#(V2)mark#(U21(X1, X2)) → mark#(X1)
a__isNatKind#(s(V1)) → a__isNatKind#(V1)a__and#(tt, X) → mark#(X)
a__isNatKind#(plus(V1, V2)) → a__and#(a__isNatKind(V1), isNatKind(V2))mark#(s(X)) → mark#(X)
a__isNat#(plus(V1, V2)) → a__and#(a__isNatKind(V1), isNatKind(V2))a__isNat#(plus(V1, V2)) → a__U11#(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
mark#(U12(X1, X2)) → mark#(X1)a__U21#(tt, V1) → a__isNat#(V1)
a__isNatKind#(plus(V1, V2)) → a__isNatKind#(V1)a__isNat#(s(V1)) → a__isNatKind#(V1)
a__U11#(tt, V1, V2) → a__U12#(a__isNat(V1), V2)mark#(and(X1, X2)) → mark#(X1)
mark#(U22(X)) → mark#(X)mark#(and(X1, X2)) → a__and#(mark(X1), X2)
a__isNat#(s(V1)) → a__U21#(a__isNatKind(V1), V1)mark#(U21(X1, X2)) → a__U21#(mark(X1), X2)
a__isNat#(plus(V1, V2)) → a__isNatKind#(V1)mark#(U12(X1, X2)) → a__U12#(mark(X1), X2)
mark#(isNatKind(X)) → a__isNatKind#(X)mark#(U11(X1, X2, X3)) → a__U11#(mark(X1), X2, X3)
mark#(U11(X1, X2, X3)) → mark#(X1)mark#(U13(X)) → mark#(X)

Problem 9: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

mark#(isNat(X))a__isNat#(X)a__U11#(tt, V1, V2)a__isNat#(V1)
a__U12#(tt, V2)a__isNat#(V2)mark#(U21(X1, X2))mark#(X1)
a__isNatKind#(s(V1))a__isNatKind#(V1)a__and#(tt, X)mark#(X)
a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))mark#(s(X))mark#(X)
a__isNat#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))a__isNat#(plus(V1, V2))a__U11#(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
mark#(U12(X1, X2))mark#(X1)a__U21#(tt, V1)a__isNat#(V1)
a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)a__U11#(tt, V1, V2)a__U12#(a__isNat(V1), V2)
a__isNat#(s(V1))a__isNatKind#(V1)mark#(and(X1, X2))mark#(X1)
mark#(U22(X))mark#(X)a__isNat#(s(V1))a__U21#(a__isNatKind(V1), V1)
mark#(and(X1, X2))a__and#(mark(X1), X2)mark#(U21(X1, X2))a__U21#(mark(X1), X2)
mark#(U12(X1, X2))a__U12#(mark(X1), X2)a__isNat#(plus(V1, V2))a__isNatKind#(V1)
mark#(isNatKind(X))a__isNatKind#(X)mark#(U11(X1, X2, X3))a__U11#(mark(X1), X2, X3)
mark#(U11(X1, X2, X3))mark#(X1)mark#(U13(X))mark#(X)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, a__U21, U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

a__U11(X1, X2, X3)U11(X1, X2, X3)a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))
a__U22(tt)ttmark(isNatKind(X))a__isNatKind(X)
a__isNatKind(0)tta__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)
a__isNat(0)tta__isNat(X)isNat(X)
a__U21(tt, V1)a__U22(a__isNat(V1))mark(U12(X1, X2))a__U12(mark(X1), X2)
a__U31(tt, N)mark(N)mark(U13(X))a__U13(mark(X))
mark(U22(X))a__U22(mark(X))a__U12(tt, V2)a__U13(a__isNat(V2))
a__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__U12(X1, X2)U12(X1, X2)
a__U13(tt)tta__U22(X)U22(X)
mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__U21(X1, X2)U21(X1, X2)mark(tt)tt
mark(0)0a__plus(X1, X2)plus(X1, X2)
mark(U21(X1, X2))a__U21(mark(X1), X2)a__and(X1, X2)and(X1, X2)
a__U13(X)U13(X)a__and(tt, X)mark(X)
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(isNat(X))a__isNat(X)
a__U41(X1, X2, X3)U41(X1, X2, X3)mark(and(X1, X2))a__and(mark(X1), X2)
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)
mark(s(X))s(mark(X))a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)
a__U31(X1, X2)U31(X1, X2)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)a__isNatKind(s(V1))a__isNatKind(V1)
a__isNatKind(X)isNatKind(X)

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

mark#(s(X))mark#(X)

Problem 10: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

mark#(isNat(X))a__isNat#(X)a__U11#(tt, V1, V2)a__isNat#(V1)
a__U12#(tt, V2)a__isNat#(V2)mark#(U21(X1, X2))mark#(X1)
a__isNatKind#(s(V1))a__isNatKind#(V1)a__and#(tt, X)mark#(X)
a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))a__isNat#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))
a__isNat#(plus(V1, V2))a__U11#(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)mark#(U12(X1, X2))mark#(X1)
a__U21#(tt, V1)a__isNat#(V1)a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)
a__U11#(tt, V1, V2)a__U12#(a__isNat(V1), V2)a__isNat#(s(V1))a__isNatKind#(V1)
mark#(and(X1, X2))mark#(X1)mark#(U22(X))mark#(X)
a__isNat#(s(V1))a__U21#(a__isNatKind(V1), V1)mark#(and(X1, X2))a__and#(mark(X1), X2)
mark#(U21(X1, X2))a__U21#(mark(X1), X2)mark#(U12(X1, X2))a__U12#(mark(X1), X2)
a__isNat#(plus(V1, V2))a__isNatKind#(V1)mark#(isNatKind(X))a__isNatKind#(X)
mark#(U11(X1, X2, X3))a__U11#(mark(X1), X2, X3)mark#(U11(X1, X2, X3))mark#(X1)
mark#(U13(X))mark#(X)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, U21, a__U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

a__U11(X1, X2, X3)U11(X1, X2, X3)a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))
a__U22(tt)ttmark(isNatKind(X))a__isNatKind(X)
a__isNatKind(0)tta__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)
a__isNat(0)tta__isNat(X)isNat(X)
a__U21(tt, V1)a__U22(a__isNat(V1))mark(U12(X1, X2))a__U12(mark(X1), X2)
a__U31(tt, N)mark(N)mark(U13(X))a__U13(mark(X))
mark(U22(X))a__U22(mark(X))a__U12(tt, V2)a__U13(a__isNat(V2))
a__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__U12(X1, X2)U12(X1, X2)
a__U13(tt)tta__U22(X)U22(X)
mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__U21(X1, X2)U21(X1, X2)mark(tt)tt
mark(0)0a__plus(X1, X2)plus(X1, X2)
mark(U21(X1, X2))a__U21(mark(X1), X2)a__and(X1, X2)and(X1, X2)
a__U13(X)U13(X)a__and(tt, X)mark(X)
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(isNat(X))a__isNat(X)
a__U41(X1, X2, X3)U41(X1, X2, X3)mark(and(X1, X2))a__and(mark(X1), X2)
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)
mark(s(X))s(mark(X))a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)
a__U31(X1, X2)U31(X1, X2)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)a__isNatKind(s(V1))a__isNatKind(V1)
a__isNatKind(X)isNatKind(X)

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

mark#(isNat(X))a__isNat#(X)

Problem 11: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

a__U11#(tt, V1, V2)a__isNat#(V1)a__U12#(tt, V2)a__isNat#(V2)
mark#(U21(X1, X2))mark#(X1)a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)
a__U11#(tt, V1, V2)a__U12#(a__isNat(V1), V2)a__isNat#(s(V1))a__isNatKind#(V1)
a__isNatKind#(s(V1))a__isNatKind#(V1)mark#(and(X1, X2))mark#(X1)
mark#(U22(X))mark#(X)mark#(and(X1, X2))a__and#(mark(X1), X2)
a__isNat#(s(V1))a__U21#(a__isNatKind(V1), V1)mark#(U21(X1, X2))a__U21#(mark(X1), X2)
a__isNat#(plus(V1, V2))a__isNatKind#(V1)mark#(U12(X1, X2))a__U12#(mark(X1), X2)
a__and#(tt, X)mark#(X)mark#(isNatKind(X))a__isNatKind#(X)
a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))a__isNat#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))
mark#(U11(X1, X2, X3))a__U11#(mark(X1), X2, X3)a__isNat#(plus(V1, V2))a__U11#(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
mark#(U11(X1, X2, X3))mark#(X1)mark#(U12(X1, X2))mark#(X1)
mark#(U13(X))mark#(X)a__U21#(tt, V1)a__isNat#(V1)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, a__U21, U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

a__U11(X1, X2, X3)U11(X1, X2, X3)a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))
a__U22(tt)ttmark(isNatKind(X))a__isNatKind(X)
a__isNatKind(0)tta__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)
a__isNat(0)tta__isNat(X)isNat(X)
a__U21(tt, V1)a__U22(a__isNat(V1))mark(U12(X1, X2))a__U12(mark(X1), X2)
a__U31(tt, N)mark(N)mark(U13(X))a__U13(mark(X))
mark(U22(X))a__U22(mark(X))a__U12(tt, V2)a__U13(a__isNat(V2))
a__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__U12(X1, X2)U12(X1, X2)
a__U13(tt)tta__U22(X)U22(X)
mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__U21(X1, X2)U21(X1, X2)mark(tt)tt
mark(0)0a__plus(X1, X2)plus(X1, X2)
mark(U21(X1, X2))a__U21(mark(X1), X2)a__and(X1, X2)and(X1, X2)
a__U13(X)U13(X)a__and(tt, X)mark(X)
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(isNat(X))a__isNat(X)
a__U41(X1, X2, X3)U41(X1, X2, X3)mark(and(X1, X2))a__and(mark(X1), X2)
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)
mark(s(X))s(mark(X))a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)
a__U31(X1, X2)U31(X1, X2)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)a__isNatKind(s(V1))a__isNatKind(V1)
a__isNatKind(X)isNatKind(X)

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

mark#(U21(X1, X2))mark#(X1)a__isNat#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))
a__isNat#(plus(V1, V2))a__U11#(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__isNat#(s(V1))a__isNatKind#(V1)
mark#(U22(X))mark#(X)a__isNat#(s(V1))a__U21#(a__isNatKind(V1), V1)
mark#(U21(X1, X2))a__U21#(mark(X1), X2)a__isNat#(plus(V1, V2))a__isNatKind#(V1)

Problem 12: DependencyGraph



Dependency Pair Problem

Dependency Pairs

a__U11#(tt, V1, V2)a__isNat#(V1)a__U12#(tt, V2)a__isNat#(V2)
a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)a__U11#(tt, V1, V2)a__U12#(a__isNat(V1), V2)
a__isNatKind#(s(V1))a__isNatKind#(V1)mark#(and(X1, X2))mark#(X1)
mark#(and(X1, X2))a__and#(mark(X1), X2)mark#(U12(X1, X2))a__U12#(mark(X1), X2)
a__and#(tt, X)mark#(X)mark#(isNatKind(X))a__isNatKind#(X)
a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))mark#(U11(X1, X2, X3))a__U11#(mark(X1), X2, X3)
mark#(U12(X1, X2))mark#(X1)mark#(U11(X1, X2, X3))mark#(X1)
a__U21#(tt, V1)a__isNat#(V1)mark#(U13(X))mark#(X)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, U21, a__U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


The following SCCs where found

mark#(and(X1, X2)) → mark#(X1)mark#(and(X1, X2)) → a__and#(mark(X1), X2)
a__and#(tt, X) → mark#(X)mark#(isNatKind(X)) → a__isNatKind#(X)
a__isNatKind#(plus(V1, V2)) → a__and#(a__isNatKind(V1), isNatKind(V2))a__isNatKind#(plus(V1, V2)) → a__isNatKind#(V1)
a__isNatKind#(s(V1)) → a__isNatKind#(V1)mark#(U12(X1, X2)) → mark#(X1)
mark#(U11(X1, X2, X3)) → mark#(X1)mark#(U13(X)) → mark#(X)

Problem 13: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)mark#(and(X1, X2))a__and#(mark(X1), X2)
a__and#(tt, X)mark#(X)mark#(isNatKind(X))a__isNatKind#(X)
a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)
a__isNatKind#(s(V1))a__isNatKind#(V1)mark#(U12(X1, X2))mark#(X1)
mark#(U11(X1, X2, X3))mark#(X1)mark#(U13(X))mark#(X)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, U21, a__U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

a__U11(X1, X2, X3)U11(X1, X2, X3)a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))
mark(isNatKind(X))a__isNatKind(X)a__U22(tt)tt
a__isNatKind(0)tta__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)
a__isNat(0)tta__isNat(X)isNat(X)
a__U21(tt, V1)a__U22(a__isNat(V1))mark(U12(X1, X2))a__U12(mark(X1), X2)
a__U31(tt, N)mark(N)mark(U13(X))a__U13(mark(X))
mark(U22(X))a__U22(mark(X))a__U12(tt, V2)a__U13(a__isNat(V2))
a__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__U13(tt)tt
a__U12(X1, X2)U12(X1, X2)a__U22(X)U22(X)
mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__U21(X1, X2)U21(X1, X2)mark(tt)tt
mark(0)0a__plus(X1, X2)plus(X1, X2)
mark(U21(X1, X2))a__U21(mark(X1), X2)a__and(X1, X2)and(X1, X2)
a__and(tt, X)mark(X)a__U13(X)U13(X)
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(isNat(X))a__isNat(X)
a__U41(X1, X2, X3)U41(X1, X2, X3)mark(and(X1, X2))a__and(mark(X1), X2)
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)
mark(s(X))s(mark(X))a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)
a__U31(X1, X2)U31(X1, X2)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)a__isNatKind(s(V1))a__isNatKind(V1)
a__isNatKind(X)isNatKind(X)

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

mark#(U11(X1, X2, X3))mark#(X1)

Problem 14: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)mark#(and(X1, X2))a__and#(mark(X1), X2)
a__and#(tt, X)mark#(X)mark#(isNatKind(X))a__isNatKind#(X)
a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))
a__isNatKind#(s(V1))a__isNatKind#(V1)mark#(U12(X1, X2))mark#(X1)
mark#(U13(X))mark#(X)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, a__U21, U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

a__U11(X1, X2, X3)U11(X1, X2, X3)a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))
mark(isNatKind(X))a__isNatKind(X)a__U22(tt)tt
a__isNatKind(0)tta__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)
a__isNat(0)tta__isNat(X)isNat(X)
a__U21(tt, V1)a__U22(a__isNat(V1))mark(U12(X1, X2))a__U12(mark(X1), X2)
a__U31(tt, N)mark(N)mark(U13(X))a__U13(mark(X))
mark(U22(X))a__U22(mark(X))a__U12(tt, V2)a__U13(a__isNat(V2))
a__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__U13(tt)tt
a__U12(X1, X2)U12(X1, X2)a__U22(X)U22(X)
mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__U21(X1, X2)U21(X1, X2)mark(tt)tt
mark(0)0a__plus(X1, X2)plus(X1, X2)
mark(U21(X1, X2))a__U21(mark(X1), X2)a__and(X1, X2)and(X1, X2)
a__and(tt, X)mark(X)a__U13(X)U13(X)
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(isNat(X))a__isNat(X)
a__U41(X1, X2, X3)U41(X1, X2, X3)mark(and(X1, X2))a__and(mark(X1), X2)
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)
mark(s(X))s(mark(X))a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)
a__U31(X1, X2)U31(X1, X2)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)a__isNatKind(s(V1))a__isNatKind(V1)
a__isNatKind(X)isNatKind(X)

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

mark#(U13(X))mark#(X)

Problem 15: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)mark#(and(X1, X2))a__and#(mark(X1), X2)
a__and#(tt, X)mark#(X)mark#(isNatKind(X))a__isNatKind#(X)
a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)
a__isNatKind#(s(V1))a__isNatKind#(V1)mark#(U12(X1, X2))mark#(X1)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, U21, a__U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

a__U11(X1, X2, X3)U11(X1, X2, X3)a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))
mark(isNatKind(X))a__isNatKind(X)a__U22(tt)tt
a__isNatKind(0)tta__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)
a__isNat(0)tta__isNat(X)isNat(X)
a__U21(tt, V1)a__U22(a__isNat(V1))mark(U12(X1, X2))a__U12(mark(X1), X2)
a__U31(tt, N)mark(N)mark(U13(X))a__U13(mark(X))
mark(U22(X))a__U22(mark(X))a__U12(tt, V2)a__U13(a__isNat(V2))
a__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__U13(tt)tt
a__U12(X1, X2)U12(X1, X2)a__U22(X)U22(X)
mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__U21(X1, X2)U21(X1, X2)mark(tt)tt
mark(0)0a__plus(X1, X2)plus(X1, X2)
mark(U21(X1, X2))a__U21(mark(X1), X2)a__and(X1, X2)and(X1, X2)
a__and(tt, X)mark(X)a__U13(X)U13(X)
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(isNat(X))a__isNat(X)
a__U41(X1, X2, X3)U41(X1, X2, X3)mark(and(X1, X2))a__and(mark(X1), X2)
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)
mark(s(X))s(mark(X))a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)
a__U31(X1, X2)U31(X1, X2)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)a__isNatKind(s(V1))a__isNatKind(V1)
a__isNatKind(X)isNatKind(X)

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

mark#(U12(X1, X2))mark#(X1)

Problem 16: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)mark#(and(X1, X2))a__and#(mark(X1), X2)
a__and#(tt, X)mark#(X)mark#(isNatKind(X))a__isNatKind#(X)
a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))
a__isNatKind#(s(V1))a__isNatKind#(V1)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, a__U21, U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

a__U11(X1, X2, X3)U11(X1, X2, X3)a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))
mark(isNatKind(X))a__isNatKind(X)a__U22(tt)tt
a__isNatKind(0)tta__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)
a__isNat(0)tta__isNat(X)isNat(X)
a__U21(tt, V1)a__U22(a__isNat(V1))mark(U12(X1, X2))a__U12(mark(X1), X2)
a__U31(tt, N)mark(N)mark(U13(X))a__U13(mark(X))
mark(U22(X))a__U22(mark(X))a__U12(tt, V2)a__U13(a__isNat(V2))
a__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__U13(tt)tt
a__U12(X1, X2)U12(X1, X2)a__U22(X)U22(X)
mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__U21(X1, X2)U21(X1, X2)mark(tt)tt
mark(0)0a__plus(X1, X2)plus(X1, X2)
mark(U21(X1, X2))a__U21(mark(X1), X2)a__and(X1, X2)and(X1, X2)
a__and(tt, X)mark(X)a__U13(X)U13(X)
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(isNat(X))a__isNat(X)
a__U41(X1, X2, X3)U41(X1, X2, X3)mark(and(X1, X2))a__and(mark(X1), X2)
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)
mark(s(X))s(mark(X))a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)
a__U31(X1, X2)U31(X1, X2)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)a__isNatKind(s(V1))a__isNatKind(V1)
a__isNatKind(X)isNatKind(X)

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

a__isNatKind#(s(V1))a__isNatKind#(V1)

Problem 17: ReductionPairSAT



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)mark#(and(X1, X2))a__and#(mark(X1), X2)
a__and#(tt, X)mark#(X)mark#(isNatKind(X))a__isNatKind#(X)
a__isNatKind#(plus(V1, V2))a__and#(a__isNatKind(V1), isNatKind(V2))a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, U21, a__U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Function Precedence

U21 < isNat = U12 < U13 < s < a__U12 < a__U11 < isNatKind < U22 < 0 = U11 < a__isNatKind# < U31 < mark = mark# < a__and# = a__and = U41 = a__U41 = a__U22 = a__U21 = plus = a__plus = and = tt = a__isNat = a__U13 = a__U31 = a__isNatKind

Argument Filtering

a__and#: collapses to 2
a__and: 1 2
isNat: collapses to 1
U41: 2 3
a__U41: 2 3
a__U22: collapses to 1
a__U21: collapses to 2
U21: collapses to 2
U22: collapses to 1
plus: 1 2
isNatKind: collapses to 1
a__isNatKind#: collapses to 1
a__plus: 1 2
mark: collapses to 1
mark#: collapses to 1
and: 1 2
0: all arguments are removed from 0
s: collapses to 1
tt: all arguments are removed from tt
a__isNat: collapses to 1
a__U13: collapses to 1
a__U31: collapses to 2
U11: collapses to 3
a__U12: collapses to 2
U12: collapses to 2
a__U11: collapses to 3
U13: collapses to 1
U31: collapses to 2
a__isNatKind: collapses to 1

Status

a__and: lexicographic with permutation 1 → 1 2 → 2
U41: lexicographic with permutation 2 → 2 3 → 1
a__U41: lexicographic with permutation 2 → 2 3 → 1
plus: lexicographic with permutation 1 → 1 2 → 2
a__plus: lexicographic with permutation 1 → 1 2 → 2
and: lexicographic with permutation 1 → 1 2 → 2
0: multiset
tt: multiset

Usable Rules

a__U11(X1, X2, X3) → U11(X1, X2, X3)a__U41(tt, M, N) → s(a__plus(mark(N), mark(M)))
mark(isNatKind(X)) → a__isNatKind(X)a__U22(tt) → tt
a__isNatKind(0) → tta__U11(tt, V1, V2) → a__U12(a__isNat(V1), V2)
a__isNat(0) → tta__isNat(X) → isNat(X)
a__U21(tt, V1) → a__U22(a__isNat(V1))mark(U12(X1, X2)) → a__U12(mark(X1), X2)
a__U31(tt, N) → mark(N)mark(U13(X)) → a__U13(mark(X))
mark(U22(X)) → a__U22(mark(X))a__U12(tt, V2) → a__U13(a__isNat(V2))
a__isNat(plus(V1, V2)) → a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__U13(tt) → tt
a__U12(X1, X2) → U12(X1, X2)a__U22(X) → U22(X)
mark(U41(X1, X2, X3)) → a__U41(mark(X1), X2, X3)a__plus(N, s(M)) → a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__U21(X1, X2) → U21(X1, X2)mark(tt) → tt
mark(0) → 0a__plus(X1, X2) → plus(X1, X2)
mark(U21(X1, X2)) → a__U21(mark(X1), X2)a__and(X1, X2) → and(X1, X2)
a__and(tt, X) → mark(X)a__U13(X) → U13(X)
mark(U31(X1, X2)) → a__U31(mark(X1), X2)mark(isNat(X)) → a__isNat(X)
a__U41(X1, X2, X3) → U41(X1, X2, X3)mark(and(X1, X2)) → a__and(mark(X1), X2)
a__isNatKind(plus(V1, V2)) → a__and(a__isNatKind(V1), isNatKind(V2))a__isNat(s(V1)) → a__U21(a__isNatKind(V1), V1)
mark(s(X)) → s(mark(X))a__plus(N, 0) → a__U31(a__and(a__isNat(N), isNatKind(N)), N)
a__U31(X1, X2) → U31(X1, X2)mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(U11(X1, X2, X3)) → a__U11(mark(X1), X2, X3)a__isNatKind(s(V1)) → a__isNatKind(V1)
a__isNatKind(X) → isNatKind(X)

The dependency pairs and usable rules are stronlgy conservative!

Eliminated dependency pairs

The following dependency pairs (at least) can be eliminated according to the given precedence.

a__isNatKind#(plus(V1, V2)) → a__and#(a__isNatKind(V1), isNatKind(V2))

Problem 18: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)mark#(and(X1, X2))a__and#(mark(X1), X2)
a__and#(tt, X)mark#(X)mark#(isNatKind(X))a__isNatKind#(X)
a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, a__U21, U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


The following SCCs where found

mark#(and(X1, X2)) → mark#(X1)mark#(and(X1, X2)) → a__and#(mark(X1), X2)
a__and#(tt, X) → mark#(X)

a__isNatKind#(plus(V1, V2)) → a__isNatKind#(V1)

Problem 19: ReductionPairSAT



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)mark#(and(X1, X2))a__and#(mark(X1), X2)
a__and#(tt, X)mark#(X)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, a__U21, U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Function Precedence

U11 = a__U11 < a__U21 < s < U13 < mark# < isNat < a__U22 = mark = 0 = tt = a__U12 < U12 < a__isNatKind < a__and# = a__and = U41 = a__U41 = U21 = U22 = plus = isNatKind = a__plus = and = a__isNat = a__U13 = a__U31 = U31

Argument Filtering

a__and#: 1 2
a__and: 1 2
isNat: collapses to 1
U41: 2 3
a__U41: 2 3
a__U22: collapses to 1
a__U21: collapses to 2
U21: collapses to 2
U22: collapses to 1
plus: 1 2
isNatKind: collapses to 1
a__plus: 1 2
mark: collapses to 1
mark#: collapses to 1
and: 1 2
0: all arguments are removed from 0
s: collapses to 1
tt: all arguments are removed from tt
a__isNat: collapses to 1
a__U13: collapses to 1
a__U31: collapses to 2
U11: collapses to 3
a__U12: collapses to 2
U12: collapses to 2
a__U11: collapses to 3
U13: collapses to 1
U31: collapses to 2
a__isNatKind: collapses to 1

Status

a__and#: lexicographic with permutation 1 → 2 2 → 1
a__and: lexicographic with permutation 1 → 2 2 → 1
U41: lexicographic with permutation 2 → 1 3 → 2
a__U41: lexicographic with permutation 2 → 1 3 → 2
plus: lexicographic with permutation 1 → 2 2 → 1
a__plus: lexicographic with permutation 1 → 2 2 → 1
and: lexicographic with permutation 1 → 2 2 → 1
0: multiset
tt: multiset

Usable Rules

a__U11(X1, X2, X3) → U11(X1, X2, X3)a__U41(tt, M, N) → s(a__plus(mark(N), mark(M)))
mark(isNatKind(X)) → a__isNatKind(X)a__U22(tt) → tt
a__isNatKind(0) → tta__U11(tt, V1, V2) → a__U12(a__isNat(V1), V2)
a__isNat(0) → tta__isNat(X) → isNat(X)
a__U21(tt, V1) → a__U22(a__isNat(V1))mark(U12(X1, X2)) → a__U12(mark(X1), X2)
a__U31(tt, N) → mark(N)mark(U13(X)) → a__U13(mark(X))
mark(U22(X)) → a__U22(mark(X))a__U12(tt, V2) → a__U13(a__isNat(V2))
a__isNat(plus(V1, V2)) → a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__U22(X) → U22(X)
a__U12(X1, X2) → U12(X1, X2)a__U13(tt) → tt
mark(U41(X1, X2, X3)) → a__U41(mark(X1), X2, X3)a__plus(N, s(M)) → a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__U21(X1, X2) → U21(X1, X2)mark(tt) → tt
mark(0) → 0a__plus(X1, X2) → plus(X1, X2)
a__and(X1, X2) → and(X1, X2)mark(U21(X1, X2)) → a__U21(mark(X1), X2)
a__U13(X) → U13(X)a__and(tt, X) → mark(X)
mark(U31(X1, X2)) → a__U31(mark(X1), X2)mark(isNat(X)) → a__isNat(X)
a__U41(X1, X2, X3) → U41(X1, X2, X3)mark(and(X1, X2)) → a__and(mark(X1), X2)
a__isNatKind(plus(V1, V2)) → a__and(a__isNatKind(V1), isNatKind(V2))a__isNat(s(V1)) → a__U21(a__isNatKind(V1), V1)
mark(s(X)) → s(mark(X))a__plus(N, 0) → a__U31(a__and(a__isNat(N), isNatKind(N)), N)
a__U31(X1, X2) → U31(X1, X2)mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__isNatKind(s(V1)) → a__isNatKind(V1)a__isNatKind(X) → isNatKind(X)
mark(U11(X1, X2, X3)) → a__U11(mark(X1), X2, X3)

The dependency pairs and usable rules are stronlgy conservative!

Eliminated dependency pairs

The following dependency pairs (at least) can be eliminated according to the given precedence.

a__and#(tt, X) → mark#(X)

Problem 21: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)mark#(and(X1, X2))a__and#(mark(X1), X2)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, U21, a__U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


The following SCCs where found

mark#(and(X1, X2)) → mark#(X1)

Problem 22: ReductionPairSAT



Dependency Pair Problem

Dependency Pairs

mark#(and(X1, X2))mark#(X1)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, U21, a__U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Function Precedence

a__and = isNat = U41 = a__U41 = a__U22 = a__U21 = U21 = U22 = plus = isNatKind = a__plus = mark = mark# = and = 0 = s = tt = a__isNat = a__U13 = a__U31 = U11 = U12 = a__U12 = a__U11 = U13 = U31 = a__isNatKind

Argument Filtering

a__and: collapses to 1
isNat: all arguments are removed from isNat
U41: 1 2
a__U41: all arguments are removed from a__U41
a__U22: all arguments are removed from a__U22
a__U21: all arguments are removed from a__U21
U21: 1 2
U22: all arguments are removed from U22
plus: all arguments are removed from plus
isNatKind: all arguments are removed from isNatKind
a__plus: all arguments are removed from a__plus
mark: all arguments are removed from mark
mark#: 1
and: 1
0: all arguments are removed from 0
s: all arguments are removed from s
tt: all arguments are removed from tt
a__isNat: all arguments are removed from a__isNat
a__U13: all arguments are removed from a__U13
a__U31: all arguments are removed from a__U31
U11: all arguments are removed from U11
U12: all arguments are removed from U12
a__U12: all arguments are removed from a__U12
a__U11: 2 3
U13: all arguments are removed from U13
U31: all arguments are removed from U31
a__isNatKind: all arguments are removed from a__isNatKind

Status

isNat: multiset
U41: lexicographic with permutation 1 → 2 2 → 1
a__U41: multiset
a__U22: multiset
a__U21: multiset
U21: lexicographic with permutation 1 → 2 2 → 1
U22: multiset
plus: multiset
isNatKind: multiset
a__plus: multiset
mark: multiset
mark#: multiset
and: multiset
0: multiset
s: multiset
tt: multiset
a__isNat: multiset
a__U13: multiset
a__U31: multiset
U11: multiset
U12: multiset
a__U12: multiset
a__U11: lexicographic with permutation 2 → 1 3 → 2
U13: multiset
U31: multiset
a__isNatKind: multiset

Usable Rules

There are no usable rules.

The dependency pairs and usable rules are stronlgy conservative!

Eliminated dependency pairs

The following dependency pairs (at least) can be eliminated according to the given precedence.

mark#(and(X1, X2)) → mark#(X1)

Problem 20: ReductionPairSAT



Dependency Pair Problem

Dependency Pairs

a__isNatKind#(plus(V1, V2))a__isNatKind#(V1)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, a__U21, U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Function Precedence

a__and = isNat = U41 = a__U41 = a__U22 = a__U21 = U21 = U22 = plus = isNatKind = a__isNatKind# = a__plus = mark = and = 0 = s = tt = a__isNat = a__U13 = a__U31 = U11 = U12 = a__U12 = a__U11 = U13 = U31 = a__isNatKind

Argument Filtering

a__and: 1
isNat: all arguments are removed from isNat
U41: 2
a__U41: 1 2 3
a__U22: all arguments are removed from a__U22
a__U21: all arguments are removed from a__U21
U21: collapses to 2
U22: 1
plus: 1 2
isNatKind: 1
a__isNatKind#: 1
a__plus: all arguments are removed from a__plus
mark: all arguments are removed from mark
and: all arguments are removed from and
0: all arguments are removed from 0
s: all arguments are removed from s
tt: all arguments are removed from tt
a__isNat: all arguments are removed from a__isNat
a__U13: all arguments are removed from a__U13
a__U31: all arguments are removed from a__U31
U11: all arguments are removed from U11
U12: all arguments are removed from U12
a__U12: collapses to 1
a__U11: all arguments are removed from a__U11
U13: all arguments are removed from U13
U31: 1 2
a__isNatKind: collapses to 1

Status

a__and: lexicographic with permutation 1 → 1
isNat: multiset
U41: lexicographic with permutation 2 → 1
a__U41: lexicographic with permutation 1 → 2 2 → 3 3 → 1
a__U22: multiset
a__U21: multiset
U22: lexicographic with permutation 1 → 1
plus: multiset
isNatKind: lexicographic with permutation 1 → 1
a__isNatKind#: lexicographic with permutation 1 → 1
a__plus: multiset
mark: multiset
and: multiset
0: multiset
s: multiset
tt: multiset
a__isNat: multiset
a__U13: multiset
a__U31: multiset
U11: multiset
U12: multiset
a__U11: multiset
U13: multiset
U31: lexicographic with permutation 1 → 2 2 → 1

Usable Rules

There are no usable rules.

The dependency pairs and usable rules are stronlgy conservative!

Eliminated dependency pairs

The following dependency pairs (at least) can be eliminated according to the given precedence.

a__isNatKind#(plus(V1, V2)) → a__isNatKind#(V1)

Problem 6: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

a__U41#(tt, M, N)a__plus#(mark(N), mark(M))a__plus#(N, s(M))a__U41#(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, U21, a__U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


Polynomial Interpretation

Standard Usable rules

a__U11(X1, X2, X3)U11(X1, X2, X3)a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))
mark(isNatKind(X))a__isNatKind(X)a__U22(tt)tt
a__isNatKind(0)tta__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)
a__isNat(0)tta__isNat(X)isNat(X)
a__U21(tt, V1)a__U22(a__isNat(V1))mark(U12(X1, X2))a__U12(mark(X1), X2)
a__U31(tt, N)mark(N)mark(U13(X))a__U13(mark(X))
mark(U22(X))a__U22(mark(X))a__U12(tt, V2)a__U13(a__isNat(V2))
a__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)a__U13(tt)tt
a__U12(X1, X2)U12(X1, X2)a__U22(X)U22(X)
mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
a__U21(X1, X2)U21(X1, X2)mark(tt)tt
mark(0)0a__plus(X1, X2)plus(X1, X2)
mark(U21(X1, X2))a__U21(mark(X1), X2)a__and(X1, X2)and(X1, X2)
a__U13(X)U13(X)a__and(tt, X)mark(X)
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(isNat(X))a__isNat(X)
a__U41(X1, X2, X3)U41(X1, X2, X3)mark(and(X1, X2))a__and(mark(X1), X2)
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)
mark(s(X))s(mark(X))a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)
a__U31(X1, X2)U31(X1, X2)mark(plus(X1, X2))a__plus(mark(X1), mark(X2))
a__isNatKind(s(V1))a__isNatKind(V1)a__isNatKind(X)isNatKind(X)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)

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

a__plus#(N, s(M))a__U41#(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)

Problem 8: DependencyGraph



Dependency Pair Problem

Dependency Pairs

a__U41#(tt, M, N)a__plus#(mark(N), mark(M))

Rewrite Rules

a__U11(tt, V1, V2)a__U12(a__isNat(V1), V2)a__U12(tt, V2)a__U13(a__isNat(V2))
a__U13(tt)tta__U21(tt, V1)a__U22(a__isNat(V1))
a__U22(tt)tta__U31(tt, N)mark(N)
a__U41(tt, M, N)s(a__plus(mark(N), mark(M)))a__and(tt, X)mark(X)
a__isNat(0)tta__isNat(plus(V1, V2))a__U11(a__and(a__isNatKind(V1), isNatKind(V2)), V1, V2)
a__isNat(s(V1))a__U21(a__isNatKind(V1), V1)a__isNatKind(0)tt
a__isNatKind(plus(V1, V2))a__and(a__isNatKind(V1), isNatKind(V2))a__isNatKind(s(V1))a__isNatKind(V1)
a__plus(N, 0)a__U31(a__and(a__isNat(N), isNatKind(N)), N)a__plus(N, s(M))a__U41(a__and(a__and(a__isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)
mark(U11(X1, X2, X3))a__U11(mark(X1), X2, X3)mark(U12(X1, X2))a__U12(mark(X1), X2)
mark(isNat(X))a__isNat(X)mark(U13(X))a__U13(mark(X))
mark(U21(X1, X2))a__U21(mark(X1), X2)mark(U22(X))a__U22(mark(X))
mark(U31(X1, X2))a__U31(mark(X1), X2)mark(U41(X1, X2, X3))a__U41(mark(X1), X2, X3)
mark(plus(X1, X2))a__plus(mark(X1), mark(X2))mark(and(X1, X2))a__and(mark(X1), X2)
mark(isNatKind(X))a__isNatKind(X)mark(tt)tt
mark(s(X))s(mark(X))mark(0)0
a__U11(X1, X2, X3)U11(X1, X2, X3)a__U12(X1, X2)U12(X1, X2)
a__isNat(X)isNat(X)a__U13(X)U13(X)
a__U21(X1, X2)U21(X1, X2)a__U22(X)U22(X)
a__U31(X1, X2)U31(X1, X2)a__U41(X1, X2, X3)U41(X1, X2, X3)
a__plus(X1, X2)plus(X1, X2)a__and(X1, X2)and(X1, X2)
a__isNatKind(X)isNatKind(X)

Original Signature

Termination of terms over the following signature is verified: a__and, isNat, U41, a__U41, a__U22, a__U21, U21, U22, plus, isNatKind, a__plus, mark, and, 0, s, tt, a__isNat, a__U31, a__U13, U11, a__U12, U12, a__U11, U13, U31, a__isNatKind

Strategy


There are no SCCs!