TIMEOUT

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (110ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (106ms).
 |    | – Problem 6 was processed with processor PolynomialLinearRange4iUR (23ms).
 | – Problem 3 was processed with processor SubtermCriterion (1ms).
 |    | – Problem 5 was processed with processor PolynomialLinearRange4iUR (30ms).
 | – Problem 4 was processed with processor Propagation (3ms).
 |    | – Problem 7 remains open; application of the following processors failed [ForwardNarrowing (1ms), BackwardInstantiation (2ms), ForwardInstantiation (1ms), Propagation (1ms)].

The following open problems remain:



Open Dependency Pair Problem 4

Dependency Pairs

permute#(x, y, a) → permute#(isZero(x), x, b)permute#(false, x, b) → permute#(ack(x, x), p(x), c)
permute#(y, x, c) → permute#(x, y, a)

Rewrite Rules

double(x) → permute(x, x, a)permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))p(0) → 0
p(s(x)) → xack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → yplus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))plus(x, s(0)) → s(x)
plus(x, 0) → xisZero(0) → true
isZero(s(x)) → false

Original Signature

Termination of terms over the following signature is verified: plus, b, c, ack, a, true, double, 0, s, p, false, permute, isZero


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

double#(x) → permute#(x, x, a)permute#(false, x, b) → p#(x)
plus#(x, s(s(y))) → plus#(s(x), y)ack#(0, x) → plus#(x, s(0))
ack#(s(x), s(y)) → ack#(s(x), y)permute#(false, x, b) → permute#(ack(x, x), p(x), c)
permute#(x, y, a) → isZero#(x)permute#(y, x, c) → permute#(x, y, a)
permute#(false, x, b) → ack#(x, x)ack#(s(x), s(y)) → ack#(x, ack(s(x), y))
permute#(x, y, a) → permute#(isZero(x), x, b)ack#(s(x), 0) → ack#(x, s(0))
plus#(s(x), y) → plus#(x, s(y))

Rewrite Rules

double(x) → permute(x, x, a)permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))p(0) → 0
p(s(x)) → xack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → yplus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))plus(x, s(0)) → s(x)
plus(x, 0) → xisZero(0) → true
isZero(s(x)) → false

Original Signature

Termination of terms over the following signature is verified: plus, b, c, ack, a, true, double, 0, s, p, false, permute, isZero

Strategy


The following SCCs where found

ack#(s(x), s(y)) → ack#(s(x), y)ack#(s(x), s(y)) → ack#(x, ack(s(x), y))
ack#(s(x), 0) → ack#(x, s(0))

plus#(x, s(s(y))) → plus#(s(x), y)plus#(s(x), y) → plus#(x, s(y))

permute#(false, x, b) → permute#(ack(x, x), p(x), c)permute#(x, y, a) → permute#(isZero(x), x, b)
permute#(y, x, c) → permute#(x, y, a)

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

plus#(x, s(s(y))) → plus#(s(x), y)plus#(s(x), y) → plus#(x, s(y))

Rewrite Rules

double(x) → permute(x, x, a)permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))p(0) → 0
p(s(x)) → xack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → yplus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))plus(x, s(0)) → s(x)
plus(x, 0) → xisZero(0) → true
isZero(s(x)) → false

Original Signature

Termination of terms over the following signature is verified: plus, b, c, ack, a, true, double, 0, s, p, false, permute, isZero

Strategy


Polynomial Interpretation

There are no usable rules

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

plus#(x, s(s(y))) → plus#(s(x), y)

Problem 6: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

plus#(s(x), y) → plus#(x, s(y))

Rewrite Rules

double(x) → permute(x, x, a)permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))p(0) → 0
p(s(x)) → xack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → yplus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))plus(x, s(0)) → s(x)
plus(x, 0) → xisZero(0) → true
isZero(s(x)) → false

Original Signature

Termination of terms over the following signature is verified: plus, b, c, ack, a, true, double, 0, s, p, false, permute, isZero

Strategy


Polynomial Interpretation

There are no usable rules

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

plus#(s(x), y) → plus#(x, s(y))

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

ack#(s(x), s(y)) → ack#(s(x), y)ack#(s(x), s(y)) → ack#(x, ack(s(x), y))
ack#(s(x), 0) → ack#(x, s(0))

Rewrite Rules

double(x) → permute(x, x, a)permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))p(0) → 0
p(s(x)) → xack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → yplus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))plus(x, s(0)) → s(x)
plus(x, 0) → xisZero(0) → true
isZero(s(x)) → false

Original Signature

Termination of terms over the following signature is verified: plus, b, c, ack, a, true, double, 0, s, p, false, permute, isZero

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

ack#(s(x), s(y)) → ack#(x, ack(s(x), y))ack#(s(x), 0) → ack#(x, s(0))

Problem 5: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

ack#(s(x), s(y)) → ack#(s(x), y)

Rewrite Rules

double(x) → permute(x, x, a)permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))p(0) → 0
p(s(x)) → xack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → yplus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))plus(x, s(0)) → s(x)
plus(x, 0) → xisZero(0) → true
isZero(s(x)) → false

Original Signature

Termination of terms over the following signature is verified: plus, b, c, ack, a, true, double, 0, s, p, false, permute, isZero

Strategy


Polynomial Interpretation

There are no usable rules

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

ack#(s(x), s(y)) → ack#(s(x), y)

Problem 4: Propagation



Dependency Pair Problem

Dependency Pairs

permute#(false, x, b) → permute#(ack(x, x), p(x), c)permute#(x, y, a) → permute#(isZero(x), x, b)
permute#(y, x, c) → permute#(x, y, a)

Rewrite Rules

double(x) → permute(x, x, a)permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))p(0) → 0
p(s(x)) → xack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → yplus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))plus(x, s(0)) → s(x)
plus(x, 0) → xisZero(0) → true
isZero(s(x)) → false

Original Signature

Termination of terms over the following signature is verified: plus, b, c, ack, a, true, double, 0, s, p, false, permute, isZero

Strategy


The dependency pairs permute#(y, x, c) → permute#(x, y, a) and permute#(x, y, a) → permute#(isZero(x), x, b) are consolidated into the rule permute#(y, x, c) → permute#(isZero(x), x, b) .

This is possible as

The dependency pairs permute#(y, x, c) → permute#(x, y, a) and permute#(x, y, a) → permute#(isZero(x), x, b) are consolidated into the rule permute#(y, x, c) → permute#(isZero(x), x, b) .

This is possible as

The dependency pairs permute#(y, x, c) → permute#(x, y, a) and permute#(x, y, a) → permute#(isZero(x), x, b) are consolidated into the rule permute#(y, x, c) → permute#(isZero(x), x, b) .

This is possible as


Summary

Removed Dependency PairsAdded Dependency Pairs
permute#(x, y, a) → permute#(isZero(x), x, b)permute#(y, x, c) → permute#(isZero(x), x, b)
permute#(y, x, c) → permute#(x, y, a)