TIMEOUT

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

The following DP Processors were used


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

The following open problems remain:



Open Dependency Pair Problem 3

Dependency Pairs

if3#(false, x, y) → gen#(s(x))if1#(true, x) → if2#(x, x)
gen#(x) → if1#(le(x, 10), x)if3#(true, x, y) → if2#(x, s(y))
if2#(x, y) → if3#(le(y, 10), x, y)

Rewrite Rules

table → gen(s(0))gen(x) → if1(le(x, 10), x)
if1(false, x) → nilif1(true, x) → if2(x, x)
if2(x, y) → if3(le(y, 10), x, y)if3(true, x, y) → cons(entry(x, y, times(x, y)), if2(x, s(y)))
if3(false, x, y) → gen(s(x))le(0, y) → true
le(s(x), 0) → falsele(s(x), s(y)) → le(x, y)
plus(0, y) → yplus(s(x), y) → s(plus(x, y))
times(0, y) → 0times(s(x), y) → plus(y, times(x, y))
10 → s(s(s(s(s(s(s(s(s(s(0))))))))))

Original Signature

Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, cons, nil


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

if3#(false, x, y) → gen#(s(x))gen#(x) → 10#
if1#(true, x) → if2#(x, x)if2#(x, y) → le#(y, 10)
times#(s(x), y) → times#(x, y)if2#(x, y) → 10#
times#(s(x), y) → plus#(y, times(x, y))if3#(true, x, y) → times#(x, y)
table# → gen#(s(0))le#(s(x), s(y)) → le#(x, y)
plus#(s(x), y) → plus#(x, y)gen#(x) → if1#(le(x, 10), x)
if3#(true, x, y) → if2#(x, s(y))gen#(x) → le#(x, 10)
if2#(x, y) → if3#(le(y, 10), x, y)

Rewrite Rules

table → gen(s(0))gen(x) → if1(le(x, 10), x)
if1(false, x) → nilif1(true, x) → if2(x, x)
if2(x, y) → if3(le(y, 10), x, y)if3(true, x, y) → cons(entry(x, y, times(x, y)), if2(x, s(y)))
if3(false, x, y) → gen(s(x))le(0, y) → true
le(s(x), 0) → falsele(s(x), s(y)) → le(x, y)
plus(0, y) → yplus(s(x), y) → s(plus(x, y))
times(0, y) → 0times(s(x), y) → plus(y, times(x, y))
10 → s(s(s(s(s(s(s(s(s(s(0))))))))))

Original Signature

Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, nil, cons

Strategy


The following SCCs where found

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

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

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

if3#(false, x, y) → gen#(s(x))if1#(true, x) → if2#(x, x)
gen#(x) → if1#(le(x, 10), x)if3#(true, x, y) → if2#(x, s(y))
if2#(x, y) → if3#(le(y, 10), x, y)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

table → gen(s(0))gen(x) → if1(le(x, 10), x)
if1(false, x) → nilif1(true, x) → if2(x, x)
if2(x, y) → if3(le(y, 10), x, y)if3(true, x, y) → cons(entry(x, y, times(x, y)), if2(x, s(y)))
if3(false, x, y) → gen(s(x))le(0, y) → true
le(s(x), 0) → falsele(s(x), s(y)) → le(x, y)
plus(0, y) → yplus(s(x), y) → s(plus(x, y))
times(0, y) → 0times(s(x), y) → plus(y, times(x, y))
10 → s(s(s(s(s(s(s(s(s(s(0))))))))))

Original Signature

Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 3: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

if3#(false, x, y) → gen#(s(x))if1#(true, x) → if2#(x, x)
gen#(x) → if1#(le(x, 10), x)if3#(true, x, y) → if2#(x, s(y))
if2#(x, y) → if3#(le(y, 10), x, y)

Rewrite Rules

table → gen(s(0))gen(x) → if1(le(x, 10), x)
if1(false, x) → nilif1(true, x) → if2(x, x)
if2(x, y) → if3(le(y, 10), x, y)if3(true, x, y) → cons(entry(x, y, times(x, y)), if2(x, s(y)))
if3(false, x, y) → gen(s(x))le(0, y) → true
le(s(x), 0) → falsele(s(x), s(y)) → le(x, y)
plus(0, y) → yplus(s(x), y) → s(plus(x, y))
times(0, y) → 0times(s(x), y) → plus(y, times(x, y))
10 → s(s(s(s(s(s(s(s(s(s(0))))))))))

Original Signature

Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, nil, cons

Strategy


Instantiation

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

Instantiation

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

Problem 6: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

if3#(false, x, y) → gen#(s(x))gen#(s(_x)) → if1#(le(s(_x), 10), s(_x))
if1#(true, x) → if2#(x, x)if3#(true, x, y) → if2#(x, s(y))
if2#(_x, s(_y)) → if3#(le(s(_y), 10), _x, s(_y))if2#(_x, _x) → if3#(le(_x, 10), _x, _x)

Rewrite Rules

table → gen(s(0))gen(x) → if1(le(x, 10), x)
if1(false, x) → nilif1(true, x) → if2(x, x)
if2(x, y) → if3(le(y, 10), x, y)if3(true, x, y) → cons(entry(x, y, times(x, y)), if2(x, s(y)))
if3(false, x, y) → gen(s(x))le(0, y) → true
le(s(x), 0) → falsele(s(x), s(y)) → le(x, y)
plus(0, y) → yplus(s(x), y) → s(plus(x, y))
times(0, y) → 0times(s(x), y) → plus(y, times(x, y))
10 → s(s(s(s(s(s(s(s(s(s(0))))))))))

Original Signature

Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, cons, nil

Strategy


Instantiation

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

Problem 7: Propagation



Dependency Pair Problem

Dependency Pairs

if3#(false, x, y) → gen#(s(x))if1#(true, x) → if2#(x, x)
gen#(s(x)) → if1#(le(s(x), 10), s(x))if3#(true, x, y) → if2#(x, s(y))
if2#(_x, _x) → if3#(le(_x, 10), _x, _x)if2#(_x, s(_y)) → if3#(le(s(_y), 10), _x, s(_y))

Rewrite Rules

table → gen(s(0))gen(x) → if1(le(x, 10), x)
if1(false, x) → nilif1(true, x) → if2(x, x)
if2(x, y) → if3(le(y, 10), x, y)if3(true, x, y) → cons(entry(x, y, times(x, y)), if2(x, s(y)))
if3(false, x, y) → gen(s(x))le(0, y) → true
le(s(x), 0) → falsele(s(x), s(y)) → le(x, y)
plus(0, y) → yplus(s(x), y) → s(plus(x, y))
times(0, y) → 0times(s(x), y) → plus(y, times(x, y))
10 → s(s(s(s(s(s(s(s(s(s(0))))))))))

Original Signature

Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, nil, cons

Strategy


The dependency pairs if3#(false, x, y) → gen#(s(x)) and gen#(s(x)) → if1#(le(s(x), 10), s(x)) are consolidated into the rule if3#(false, x, y) → if1#(le(s(x), 10), s(x)) .

This is possible as

The dependency pairs if3#(false, x, y) → gen#(s(x)) and gen#(s(x)) → if1#(le(s(x), 10), s(x)) are consolidated into the rule if3#(false, x, y) → if1#(le(s(x), 10), s(x)) .

This is possible as

The dependency pairs if3#(false, x, y) → gen#(s(x)) and gen#(s(x)) → if1#(le(s(x), 10), s(x)) are consolidated into the rule if3#(false, x, y) → if1#(le(s(x), 10), s(x)) .

This is possible as

The dependency pairs if3#(false, x, y) → gen#(s(x)) and gen#(s(x)) → if1#(le(s(x), 10), s(x)) are consolidated into the rule if3#(false, x, y) → if1#(le(s(x), 10), s(x)) .

This is possible as

The dependency pairs if3#(false, x, y) → gen#(s(x)) and gen#(s(x)) → if1#(le(s(x), 10), s(x)) are consolidated into the rule if3#(false, x, y) → if1#(le(s(x), 10), s(x)) .

This is possible as

The dependency pairs if3#(false, x, y) → gen#(s(x)) and gen#(s(x)) → if1#(le(s(x), 10), s(x)) are consolidated into the rule if3#(false, x, y) → if1#(le(s(x), 10), s(x)) .

This is possible as


Summary

Removed Dependency PairsAdded Dependency Pairs
if3#(false, x, y) → gen#(s(x))if3#(false, x, y) → if1#(le(s(x), 10), s(x))
gen#(s(x)) → if1#(le(s(x), 10), s(x)) 

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

table → gen(s(0))gen(x) → if1(le(x, 10), x)
if1(false, x) → nilif1(true, x) → if2(x, x)
if2(x, y) → if3(le(y, 10), x, y)if3(true, x, y) → cons(entry(x, y, times(x, y)), if2(x, s(y)))
if3(false, x, y) → gen(s(x))le(0, y) → true
le(s(x), 0) → falsele(s(x), s(y)) → le(x, y)
plus(0, y) → yplus(s(x), y) → s(plus(x, y))
times(0, y) → 0times(s(x), y) → plus(y, times(x, y))
10 → s(s(s(s(s(s(s(s(s(s(0))))))))))

Original Signature

Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

table → gen(s(0))gen(x) → if1(le(x, 10), x)
if1(false, x) → nilif1(true, x) → if2(x, x)
if2(x, y) → if3(le(y, 10), x, y)if3(true, x, y) → cons(entry(x, y, times(x, y)), if2(x, s(y)))
if3(false, x, y) → gen(s(x))le(0, y) → true
le(s(x), 0) → falsele(s(x), s(y)) → le(x, y)
plus(0, y) → yplus(s(x), y) → s(plus(x, y))
times(0, y) → 0times(s(x), y) → plus(y, times(x, y))
10 → s(s(s(s(s(s(s(s(s(s(0))))))))))

Original Signature

Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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