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 (87ms).
 | – Problem 2 was processed with processor BackwardInstantiation (4ms).
 |    | – Problem 5 was processed with processor ForwardInstantiation (2ms).
 |    |    | – Problem 6 was processed with processor Propagation (4ms).
 |    |    |    | – Problem 7 remains open; application of the following processors failed [ForwardNarrowing (1ms), BackwardInstantiation (1ms), ForwardInstantiation (1ms), Propagation (1ms)].
 | – Problem 3 was processed with processor PolynomialLinearRange4iUR (112ms).
 |    | – Problem 4 was processed with processor PolynomialLinearRange4iUR (60ms).

The following open problems remain:



Open Dependency Pair Problem 2

Dependency Pairs

if2#(false, x)weight#(sum(x, cons(0, tail(tail(x)))))weight#(x)if#(empty(x), empty(tail(x)), x)
if#(false, b, x)if2#(b, x)

Rewrite Rules

sum(cons(s(n), x), cons(m, y))sum(cons(n, x), cons(s(m), y))sum(cons(0, x), y)sum(x, y)
sum(nil, y)yempty(nil)true
empty(cons(n, x))falsetail(nil)nil
tail(cons(n, x))xhead(cons(n, x))n
weight(x)if(empty(x), empty(tail(x)), x)if(true, b, x)weight_undefined_error
if(false, b, x)if2(b, x)if2(true, x)head(x)
if2(false, x)weight(sum(x, cons(0, tail(tail(x)))))

Original Signature

Termination of terms over the following signature is verified: weight, weight_undefined_error, sum, true, if2, tail, 0, s, if, empty, false, head, cons, nil


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

sum#(cons(s(n), x), cons(m, y))sum#(cons(n, x), cons(s(m), y))sum#(cons(0, x), y)sum#(x, y)
if2#(true, x)head#(x)if2#(false, x)tail#(tail(x))
if2#(false, x)tail#(x)if2#(false, x)weight#(sum(x, cons(0, tail(tail(x)))))
if2#(false, x)sum#(x, cons(0, tail(tail(x))))weight#(x)if#(empty(x), empty(tail(x)), x)
weight#(x)tail#(x)weight#(x)empty#(x)
weight#(x)empty#(tail(x))if#(false, b, x)if2#(b, x)

Rewrite Rules

sum(cons(s(n), x), cons(m, y))sum(cons(n, x), cons(s(m), y))sum(cons(0, x), y)sum(x, y)
sum(nil, y)yempty(nil)true
empty(cons(n, x))falsetail(nil)nil
tail(cons(n, x))xhead(cons(n, x))n
weight(x)if(empty(x), empty(tail(x)), x)if(true, b, x)weight_undefined_error
if(false, b, x)if2(b, x)if2(true, x)head(x)
if2(false, x)weight(sum(x, cons(0, tail(tail(x)))))

Original Signature

Termination of terms over the following signature is verified: weight, weight_undefined_error, sum, true, if2, tail, 0, s, if, empty, false, head, nil, cons

Strategy


The following SCCs where found

if2#(false, x) → weight#(sum(x, cons(0, tail(tail(x)))))weight#(x) → if#(empty(x), empty(tail(x)), x)
if#(false, b, x) → if2#(b, x)

sum#(cons(s(n), x), cons(m, y)) → sum#(cons(n, x), cons(s(m), y))sum#(cons(0, x), y) → sum#(x, y)

Problem 2: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

if2#(false, x)weight#(sum(x, cons(0, tail(tail(x)))))weight#(x)if#(empty(x), empty(tail(x)), x)
if#(false, b, x)if2#(b, x)

Rewrite Rules

sum(cons(s(n), x), cons(m, y))sum(cons(n, x), cons(s(m), y))sum(cons(0, x), y)sum(x, y)
sum(nil, y)yempty(nil)true
empty(cons(n, x))falsetail(nil)nil
tail(cons(n, x))xhead(cons(n, x))n
weight(x)if(empty(x), empty(tail(x)), x)if(true, b, x)weight_undefined_error
if(false, b, x)if2(b, x)if2(true, x)head(x)
if2(false, x)weight(sum(x, cons(0, tail(tail(x)))))

Original Signature

Termination of terms over the following signature is verified: weight, weight_undefined_error, sum, true, if2, tail, 0, s, if, empty, false, head, nil, cons

Strategy


Instantiation

For all potential predecessors l → r of the rule weight#(x) → if#(empty(x), empty(tail(x)), x) on dependency pair chains it holds that: Thus, weight#(x) → if#(empty(x), empty(tail(x)), x) is replaced by instances determined through the above matching. These instances are:
weight#(sum(_x, cons(0, tail(tail(_x))))) → if#(empty(sum(_x, cons(0, tail(tail(_x))))), empty(tail(sum(_x, cons(0, tail(tail(_x)))))), sum(_x, cons(0, tail(tail(_x)))))

Problem 5: ForwardInstantiation



Dependency Pair Problem

Dependency Pairs

weight#(sum(_x, cons(0, tail(tail(_x)))))if#(empty(sum(_x, cons(0, tail(tail(_x))))), empty(tail(sum(_x, cons(0, tail(tail(_x)))))), sum(_x, cons(0, tail(tail(_x)))))if2#(false, x)weight#(sum(x, cons(0, tail(tail(x)))))
if#(false, b, x)if2#(b, x)

Rewrite Rules

sum(cons(s(n), x), cons(m, y))sum(cons(n, x), cons(s(m), y))sum(cons(0, x), y)sum(x, y)
sum(nil, y)yempty(nil)true
empty(cons(n, x))falsetail(nil)nil
tail(cons(n, x))xhead(cons(n, x))n
weight(x)if(empty(x), empty(tail(x)), x)if(true, b, x)weight_undefined_error
if(false, b, x)if2(b, x)if2(true, x)head(x)
if2(false, x)weight(sum(x, cons(0, tail(tail(x)))))

Original Signature

Termination of terms over the following signature is verified: weight, weight_undefined_error, sum, true, if2, tail, 0, s, if, empty, false, head, cons, nil

Strategy


Instantiation

For all potential successors l → r of the rule if#(false, b, x) → if2#(b, x) on dependency pair chains it holds that: Thus, if#(false, b, x) → if2#(b, x) is replaced by instances determined through the above matching. These instances are:
if#(false, false, x) → if2#(false, x)

Problem 6: Propagation



Dependency Pair Problem

Dependency Pairs

weight#(sum(_x, cons(0, tail(tail(_x)))))if#(empty(sum(_x, cons(0, tail(tail(_x))))), empty(tail(sum(_x, cons(0, tail(tail(_x)))))), sum(_x, cons(0, tail(tail(_x)))))if#(false, false, x)if2#(false, x)
if2#(false, x)weight#(sum(x, cons(0, tail(tail(x)))))

Rewrite Rules

sum(cons(s(n), x), cons(m, y))sum(cons(n, x), cons(s(m), y))sum(cons(0, x), y)sum(x, y)
sum(nil, y)yempty(nil)true
empty(cons(n, x))falsetail(nil)nil
tail(cons(n, x))xhead(cons(n, x))n
weight(x)if(empty(x), empty(tail(x)), x)if(true, b, x)weight_undefined_error
if(false, b, x)if2(b, x)if2(true, x)head(x)
if2(false, x)weight(sum(x, cons(0, tail(tail(x)))))

Original Signature

Termination of terms over the following signature is verified: weight, weight_undefined_error, sum, true, if2, tail, 0, s, if, empty, false, head, nil, cons

Strategy


The dependency pairs if#(false, false, x) → if2#(false, x) and if2#(false, x) → weight#(sum(x, cons(0, tail(tail(x))))) are consolidated into the rule if#(false, false, x) → weight#(sum(x, cons(0, tail(tail(x))))) .

This is possible as

The dependency pairs if#(false, false, x) → if2#(false, x) and if2#(false, x) → weight#(sum(x, cons(0, tail(tail(x))))) are consolidated into the rule if#(false, false, x) → weight#(sum(x, cons(0, tail(tail(x))))) .

This is possible as

The dependency pairs if#(false, false, x) → if2#(false, x) and if2#(false, x) → weight#(sum(x, cons(0, tail(tail(x))))) are consolidated into the rule if#(false, false, x) → weight#(sum(x, cons(0, tail(tail(x))))) .

This is possible as


Summary

Removed Dependency PairsAdded Dependency Pairs
if#(false, false, x) → if2#(false, x)if#(false, false, x) → weight#(sum(x, cons(0, tail(tail(x)))))
if2#(false, x) → weight#(sum(x, cons(0, tail(tail(x))))) 

Problem 3: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

sum#(cons(s(n), x), cons(m, y))sum#(cons(n, x), cons(s(m), y))sum#(cons(0, x), y)sum#(x, y)

Rewrite Rules

sum(cons(s(n), x), cons(m, y))sum(cons(n, x), cons(s(m), y))sum(cons(0, x), y)sum(x, y)
sum(nil, y)yempty(nil)true
empty(cons(n, x))falsetail(nil)nil
tail(cons(n, x))xhead(cons(n, x))n
weight(x)if(empty(x), empty(tail(x)), x)if(true, b, x)weight_undefined_error
if(false, b, x)if2(b, x)if2(true, x)head(x)
if2(false, x)weight(sum(x, cons(0, tail(tail(x)))))

Original Signature

Termination of terms over the following signature is verified: weight, weight_undefined_error, sum, true, if2, tail, 0, s, if, empty, false, head, 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:

sum#(cons(0, x), y)sum#(x, y)

Problem 4: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

sum#(cons(s(n), x), cons(m, y))sum#(cons(n, x), cons(s(m), y))

Rewrite Rules

sum(cons(s(n), x), cons(m, y))sum(cons(n, x), cons(s(m), y))sum(cons(0, x), y)sum(x, y)
sum(nil, y)yempty(nil)true
empty(cons(n, x))falsetail(nil)nil
tail(cons(n, x))xhead(cons(n, x))n
weight(x)if(empty(x), empty(tail(x)), x)if(true, b, x)weight_undefined_error
if(false, b, x)if2(b, x)if2(true, x)head(x)
if2(false, x)weight(sum(x, cons(0, tail(tail(x)))))

Original Signature

Termination of terms over the following signature is verified: weight, weight_undefined_error, sum, true, if2, tail, 0, s, if, empty, false, head, cons, nil

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:

sum#(cons(s(n), x), cons(m, y))sum#(cons(n, x), cons(s(m), y))