TIMEOUT

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

The following DP Processors were used


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

The following open problems remain:



Open Dependency Pair Problem 4

Dependency Pairs

d#(x) → if#(le(x, nr), x)if#(true, x) → d#(s(x))

Rewrite Rules

numbers → d(0)d(x) → if(le(x, nr), x)
if(true, x) → cons(x, d(s(x)))if(false, x) → nil
le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)nr → ack(s(s(s(s(s(s(0)))))), 0)
ack(0, x) → s(x)ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))

Original Signature

Termination of terms over the following signature is verified: d, nr, 0, s, le, numbers, ack, if, false, true, nil, cons


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

numbers# → d#(0)le#(s(x), s(y)) → le#(x, y)
d#(x) → if#(le(x, nr), x)ack#(s(x), s(y)) → ack#(x, ack(s(x), y))
ack#(s(x), s(y)) → ack#(s(x), y)ack#(s(x), 0) → ack#(x, s(0))
nr# → ack#(s(s(s(s(s(s(0)))))), 0)d#(x) → le#(x, nr)
if#(true, x) → d#(s(x))d#(x) → nr#

Rewrite Rules

numbers → d(0)d(x) → if(le(x, nr), x)
if(true, x) → cons(x, d(s(x)))if(false, x) → nil
le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)nr → ack(s(s(s(s(s(s(0)))))), 0)
ack(0, x) → s(x)ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))

Original Signature

Termination of terms over the following signature is verified: d, 0, nr, le, s, numbers, if, ack, true, false, cons, nil

Strategy


The following SCCs where found

d#(x) → if#(le(x, nr), x)if#(true, x) → d#(s(x))

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

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))

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

numbers → d(0)d(x) → if(le(x, nr), x)
if(true, x) → cons(x, d(s(x)))if(false, x) → nil
le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)nr → ack(s(s(s(s(s(s(0)))))), 0)
ack(0, x) → s(x)ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))

Original Signature

Termination of terms over the following signature is verified: d, 0, nr, le, s, numbers, if, ack, true, false, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

le#(s(x), s(y)) → le#(x, 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

numbers → d(0)d(x) → if(le(x, nr), x)
if(true, x) → cons(x, d(s(x)))if(false, x) → nil
le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)nr → ack(s(s(s(s(s(s(0)))))), 0)
ack(0, x) → s(x)ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))

Original Signature

Termination of terms over the following signature is verified: d, 0, nr, le, s, numbers, if, ack, true, false, cons, nil

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

numbers → d(0)d(x) → if(le(x, nr), x)
if(true, x) → cons(x, d(s(x)))if(false, x) → nil
le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)nr → ack(s(s(s(s(s(s(0)))))), 0)
ack(0, x) → s(x)ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))

Original Signature

Termination of terms over the following signature is verified: d, nr, 0, s, le, numbers, ack, if, false, true, nil, cons

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: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

d#(x) → if#(le(x, nr), x)if#(true, x) → d#(s(x))

Rewrite Rules

numbers → d(0)d(x) → if(le(x, nr), x)
if(true, x) → cons(x, d(s(x)))if(false, x) → nil
le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)nr → ack(s(s(s(s(s(s(0)))))), 0)
ack(0, x) → s(x)ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))

Original Signature

Termination of terms over the following signature is verified: d, 0, nr, le, s, numbers, if, ack, true, false, cons, nil

Strategy


Instantiation

For all potential predecessors l → r of the rule d#(x) → if#(le(x, nr), x) on dependency pair chains it holds that: Thus, d#(x) → if#(le(x, nr), x) is replaced by instances determined through the above matching. These instances are:
d#(s(_x)) → if#(le(s(_x), nr), s(_x))

Problem 6: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

d#(s(_x)) → if#(le(s(_x), nr), s(_x))if#(true, x) → d#(s(x))

Rewrite Rules

numbers → d(0)d(x) → if(le(x, nr), x)
if(true, x) → cons(x, d(s(x)))if(false, x) → nil
le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)nr → ack(s(s(s(s(s(s(0)))))), 0)
ack(0, x) → s(x)ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))

Original Signature

Termination of terms over the following signature is verified: d, nr, 0, s, le, numbers, ack, if, false, true, nil, cons

Strategy


Instantiation

For all potential predecessors l → r of the rule d#(s(_x)) → if#(le(s(_x), nr), s(_x)) on dependency pair chains it holds that: Thus, d#(s(_x)) → if#(le(s(_x), nr), s(_x)) is replaced by instances determined through the above matching. These instances are:
d#(s(x)) → if#(le(s(x), nr), s(x))

Problem 7: Propagation



Dependency Pair Problem

Dependency Pairs

d#(s(x)) → if#(le(s(x), nr), s(x))if#(true, x) → d#(s(x))

Rewrite Rules

numbers → d(0)d(x) → if(le(x, nr), x)
if(true, x) → cons(x, d(s(x)))if(false, x) → nil
le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)nr → ack(s(s(s(s(s(s(0)))))), 0)
ack(0, x) → s(x)ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))

Original Signature

Termination of terms over the following signature is verified: d, 0, nr, le, s, numbers, if, ack, true, false, cons, nil

Strategy


The dependency pairs if#(true, x) → d#(s(x)) and d#(s(x)) → if#(le(s(x), nr), s(x)) are consolidated into the rule if#(true, x) → if#(le(s(x), nr), s(x)) .

This is possible as

The dependency pairs if#(true, x) → d#(s(x)) and d#(s(x)) → if#(le(s(x), nr), s(x)) are consolidated into the rule if#(true, x) → if#(le(s(x), nr), s(x)) .

This is possible as


Summary

Removed Dependency PairsAdded Dependency Pairs
d#(s(x)) → if#(le(s(x), nr), s(x))if#(true, x) → if#(le(s(x), nr), s(x))
if#(true, x) → d#(s(x))