TIMEOUT

The TRS could not be proven terminating. The proof attempt took 60004 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (1188ms).
 | – Problem 2 remains open; application of the following processors failed [SubtermCriterion (2ms), DependencyGraph (843ms), PolynomialLinearRange4iUR (timeout), DependencyGraph (611ms), PolynomialLinearRange8NegiUR (timeout), DependencyGraph (626ms), ReductionPairSAT (timeout)].

The following open problems remain:



Open Dependency Pair Problem 2

Dependency Pairs

U51#(tt, M, N) → activate#(N)plus#(N, 0) → U41#(isNat(N), N)
U41#(tt, N) → activate#(N)activate#(n__s(X)) → activate#(X)
activate#(n__plus(X1, X2)) → plus#(activate(X1), activate(X2))isNat#(n__x(V1, V2)) → activate#(V2)
activate#(n__x(X1, X2)) → activate#(X1)U52#(tt, M, N) → plus#(activate(N), activate(M))
isNat#(n__plus(V1, V2)) → isNat#(activate(V1))U71#(tt, M, N) → U72#(isNat(activate(N)), activate(M), activate(N))
plus#(N, s(M)) → U51#(isNat(M), M, N)isNat#(n__plus(V1, V2)) → U11#(isNat(activate(V1)), activate(V2))
isNat#(n__plus(V1, V2)) → activate#(V2)plus#(N, 0) → isNat#(N)
U72#(tt, M, N) → x#(activate(N), activate(M))x#(N, 0) → isNat#(N)
activate#(n__x(X1, X2)) → x#(activate(X1), activate(X2))activate#(n__plus(X1, X2)) → activate#(X2)
activate#(n__x(X1, X2)) → activate#(X2)U11#(tt, V2) → activate#(V2)
isNat#(n__x(V1, V2)) → U31#(isNat(activate(V1)), activate(V2))U51#(tt, M, N) → U52#(isNat(activate(N)), activate(M), activate(N))
isNat#(n__x(V1, V2)) → activate#(V1)isNat#(n__s(V1)) → activate#(V1)
activate#(n__plus(X1, X2)) → activate#(X1)x#(N, s(M)) → isNat#(M)
U52#(tt, M, N) → activate#(N)U72#(tt, M, N) → plus#(x(activate(N), activate(M)), activate(N))
U31#(tt, V2) → isNat#(activate(V2))U11#(tt, V2) → isNat#(activate(V2))
U52#(tt, M, N) → activate#(M)U71#(tt, M, N) → activate#(N)
x#(N, s(M)) → U71#(isNat(M), M, N)plus#(N, s(M)) → isNat#(M)
U71#(tt, M, N) → isNat#(activate(N))U51#(tt, M, N) → isNat#(activate(N))
isNat#(n__s(V1)) → isNat#(activate(V1))U31#(tt, V2) → activate#(V2)
isNat#(n__plus(V1, V2)) → activate#(V1)U51#(tt, M, N) → activate#(M)
U72#(tt, M, N) → activate#(N)U71#(tt, M, N) → activate#(M)
U72#(tt, M, N) → activate#(M)isNat#(n__x(V1, V2)) → isNat#(activate(V1))

Rewrite Rules

U11(tt, V2) → U12(isNat(activate(V2)))U12(tt) → tt
U21(tt) → ttU31(tt, V2) → U32(isNat(activate(V2)))
U32(tt) → ttU41(tt, N) → activate(N)
U51(tt, M, N) → U52(isNat(activate(N)), activate(M), activate(N))U52(tt, M, N) → s(plus(activate(N), activate(M)))
U61(tt) → 0U71(tt, M, N) → U72(isNat(activate(N)), activate(M), activate(N))
U72(tt, M, N) → plus(x(activate(N), activate(M)), activate(N))isNat(n__0) → tt
isNat(n__plus(V1, V2)) → U11(isNat(activate(V1)), activate(V2))isNat(n__s(V1)) → U21(isNat(activate(V1)))
isNat(n__x(V1, V2)) → U31(isNat(activate(V1)), activate(V2))plus(N, 0) → U41(isNat(N), N)
plus(N, s(M)) → U51(isNat(M), M, N)x(N, 0) → U61(isNat(N))
x(N, s(M)) → U71(isNat(M), M, N)0 → n__0
plus(X1, X2) → n__plus(X1, X2)s(X) → n__s(X)
x(X1, X2) → n__x(X1, X2)activate(n__0) → 0
activate(n__plus(X1, X2)) → plus(activate(X1), activate(X2))activate(n__s(X)) → s(activate(X))
activate(n__x(X1, X2)) → x(activate(X1), activate(X2))activate(X) → X

Original Signature

Termination of terms over the following signature is verified: plus, n__plus, U71, n__s, activate, isNat, U72, n__0, U61, 0, U51, s, tt, U41, U52, U11, U12, U31, U32, U21, n__x, x


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U61#(tt) → 0#plus#(N, 0) → U41#(isNat(N), N)
U41#(tt, N) → activate#(N)isNat#(n__x(V1, V2)) → activate#(V2)
activate#(n__x(X1, X2)) → activate#(X1)U71#(tt, M, N) → U72#(isNat(activate(N)), activate(M), activate(N))
plus#(N, s(M)) → U51#(isNat(M), M, N)U11#(tt, V2) → U12#(isNat(activate(V2)))
U72#(tt, M, N) → x#(activate(N), activate(M))activate#(n__x(X1, X2)) → activate#(X2)
isNat#(n__s(V1)) → activate#(V1)U31#(tt, V2) → U32#(isNat(activate(V2)))
x#(N, s(M)) → isNat#(M)U72#(tt, M, N) → plus#(x(activate(N), activate(M)), activate(N))
U31#(tt, V2) → isNat#(activate(V2))U71#(tt, M, N) → activate#(N)
x#(N, s(M)) → U71#(isNat(M), M, N)isNat#(n__s(V1)) → U21#(isNat(activate(V1)))
U51#(tt, M, N) → isNat#(activate(N))activate#(n__0) → 0#
isNat#(n__plus(V1, V2)) → activate#(V1)U51#(tt, M, N) → activate#(M)
U72#(tt, M, N) → activate#(M)isNat#(n__x(V1, V2)) → isNat#(activate(V1))
U51#(tt, M, N) → activate#(N)activate#(n__plus(X1, X2)) → plus#(activate(X1), activate(X2))
activate#(n__s(X)) → activate#(X)U52#(tt, M, N) → plus#(activate(N), activate(M))
isNat#(n__plus(V1, V2)) → isNat#(activate(V1))U52#(tt, M, N) → s#(plus(activate(N), activate(M)))
isNat#(n__plus(V1, V2)) → U11#(isNat(activate(V1)), activate(V2))isNat#(n__plus(V1, V2)) → activate#(V2)
plus#(N, 0) → isNat#(N)activate#(n__x(X1, X2)) → x#(activate(X1), activate(X2))
x#(N, 0) → isNat#(N)activate#(n__plus(X1, X2)) → activate#(X2)
U11#(tt, V2) → activate#(V2)isNat#(n__x(V1, V2)) → U31#(isNat(activate(V1)), activate(V2))
U51#(tt, M, N) → U52#(isNat(activate(N)), activate(M), activate(N))isNat#(n__x(V1, V2)) → activate#(V1)
activate#(n__plus(X1, X2)) → activate#(X1)U52#(tt, M, N) → activate#(N)
x#(N, 0) → U61#(isNat(N))U52#(tt, M, N) → activate#(M)
U11#(tt, V2) → isNat#(activate(V2))plus#(N, s(M)) → isNat#(M)
U71#(tt, M, N) → isNat#(activate(N))isNat#(n__s(V1)) → isNat#(activate(V1))
U31#(tt, V2) → activate#(V2)activate#(n__s(X)) → s#(activate(X))
U72#(tt, M, N) → activate#(N)U71#(tt, M, N) → activate#(M)

Rewrite Rules

U11(tt, V2) → U12(isNat(activate(V2)))U12(tt) → tt
U21(tt) → ttU31(tt, V2) → U32(isNat(activate(V2)))
U32(tt) → ttU41(tt, N) → activate(N)
U51(tt, M, N) → U52(isNat(activate(N)), activate(M), activate(N))U52(tt, M, N) → s(plus(activate(N), activate(M)))
U61(tt) → 0U71(tt, M, N) → U72(isNat(activate(N)), activate(M), activate(N))
U72(tt, M, N) → plus(x(activate(N), activate(M)), activate(N))isNat(n__0) → tt
isNat(n__plus(V1, V2)) → U11(isNat(activate(V1)), activate(V2))isNat(n__s(V1)) → U21(isNat(activate(V1)))
isNat(n__x(V1, V2)) → U31(isNat(activate(V1)), activate(V2))plus(N, 0) → U41(isNat(N), N)
plus(N, s(M)) → U51(isNat(M), M, N)x(N, 0) → U61(isNat(N))
x(N, s(M)) → U71(isNat(M), M, N)0 → n__0
plus(X1, X2) → n__plus(X1, X2)s(X) → n__s(X)
x(X1, X2) → n__x(X1, X2)activate(n__0) → 0
activate(n__plus(X1, X2)) → plus(activate(X1), activate(X2))activate(n__s(X)) → s(activate(X))
activate(n__x(X1, X2)) → x(activate(X1), activate(X2))activate(X) → X

Original Signature

Termination of terms over the following signature is verified: plus, n__plus, U71, n__s, activate, isNat, U72, n__0, U61, 0, U51, s, U41, tt, U52, U11, U12, U31, U32, U21, x, n__x

Strategy


The following SCCs where found

U51#(tt, M, N) → activate#(N)plus#(N, 0) → U41#(isNat(N), N)
U41#(tt, N) → activate#(N)activate#(n__plus(X1, X2)) → plus#(activate(X1), activate(X2))
activate#(n__s(X)) → activate#(X)isNat#(n__x(V1, V2)) → activate#(V2)
activate#(n__x(X1, X2)) → activate#(X1)isNat#(n__plus(V1, V2)) → isNat#(activate(V1))
U52#(tt, M, N) → plus#(activate(N), activate(M))plus#(N, s(M)) → U51#(isNat(M), M, N)
U71#(tt, M, N) → U72#(isNat(activate(N)), activate(M), activate(N))isNat#(n__plus(V1, V2)) → U11#(isNat(activate(V1)), activate(V2))
plus#(N, 0) → isNat#(N)isNat#(n__plus(V1, V2)) → activate#(V2)
activate#(n__x(X1, X2)) → x#(activate(X1), activate(X2))x#(N, 0) → isNat#(N)
U72#(tt, M, N) → x#(activate(N), activate(M))activate#(n__plus(X1, X2)) → activate#(X2)
activate#(n__x(X1, X2)) → activate#(X2)U11#(tt, V2) → activate#(V2)
isNat#(n__x(V1, V2)) → U31#(isNat(activate(V1)), activate(V2))U51#(tt, M, N) → U52#(isNat(activate(N)), activate(M), activate(N))
isNat#(n__x(V1, V2)) → activate#(V1)isNat#(n__s(V1)) → activate#(V1)
activate#(n__plus(X1, X2)) → activate#(X1)x#(N, s(M)) → isNat#(M)
U52#(tt, M, N) → activate#(N)U72#(tt, M, N) → plus#(x(activate(N), activate(M)), activate(N))
U31#(tt, V2) → isNat#(activate(V2))U52#(tt, M, N) → activate#(M)
U11#(tt, V2) → isNat#(activate(V2))U71#(tt, M, N) → activate#(N)
plus#(N, s(M)) → isNat#(M)x#(N, s(M)) → U71#(isNat(M), M, N)
U71#(tt, M, N) → isNat#(activate(N))U51#(tt, M, N) → isNat#(activate(N))
isNat#(n__s(V1)) → isNat#(activate(V1))U31#(tt, V2) → activate#(V2)
isNat#(n__plus(V1, V2)) → activate#(V1)U51#(tt, M, N) → activate#(M)
U72#(tt, M, N) → activate#(N)U71#(tt, M, N) → activate#(M)
U72#(tt, M, N) → activate#(M)isNat#(n__x(V1, V2)) → isNat#(activate(V1))