TIMEOUT

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

The following DP Processors were used


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

The following open problems remain:



Open Dependency Pair Problem 2

Dependency Pairs

count#(n, x) → if#(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x))if#(false, false, n, m, x, y) → count#(m, x)
if#(false, true, n, m, x, y) → count#(n, y)

Rewrite Rules

isEmpty(empty) → trueisEmpty(node(l, r)) → false
left(empty) → emptyleft(node(l, r)) → l
right(empty) → emptyright(node(l, r)) → r
inc(0) → s(0)inc(s(x)) → s(inc(x))
count(n, x) → if(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x))if(true, b, n, m, x, y) → x
if(false, false, n, m, x, y) → count(m, x)if(false, true, n, m, x, y) → count(n, y)
nrOfNodes(n) → count(n, 0)

Original Signature

Termination of terms over the following signature is verified: nrOfNodes, count, true, isEmpty, node, 0, s, inc, if, empty, false, left, right


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

count#(n, x) → if#(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x))if#(false, false, n, m, x, y) → count#(m, x)
nrOfNodes#(n) → count#(n, 0)count#(n, x) → isEmpty#(left(n))
if#(false, true, n, m, x, y) → count#(n, y)count#(n, x) → isEmpty#(n)
count#(n, x) → right#(n)count#(n, x) → left#(n)
inc#(s(x)) → inc#(x)count#(n, x) → inc#(x)
count#(n, x) → left#(left(n))count#(n, x) → right#(left(n))

Rewrite Rules

isEmpty(empty) → trueisEmpty(node(l, r)) → false
left(empty) → emptyleft(node(l, r)) → l
right(empty) → emptyright(node(l, r)) → r
inc(0) → s(0)inc(s(x)) → s(inc(x))
count(n, x) → if(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x))if(true, b, n, m, x, y) → x
if(false, false, n, m, x, y) → count(m, x)if(false, true, n, m, x, y) → count(n, y)
nrOfNodes(n) → count(n, 0)

Original Signature

Termination of terms over the following signature is verified: nrOfNodes, count, true, isEmpty, node, 0, s, inc, if, empty, false, left, right

Strategy


The following SCCs where found

inc#(s(x)) → inc#(x)

if#(false, false, n, m, x, y) → count#(m, x)count#(n, x) → if#(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x))
if#(false, true, n, m, x, y) → count#(n, y)

Problem 2: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

if#(false, false, n, m, x, y) → count#(m, x)count#(n, x) → if#(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x))
if#(false, true, n, m, x, y) → count#(n, y)

Rewrite Rules

isEmpty(empty) → trueisEmpty(node(l, r)) → false
left(empty) → emptyleft(node(l, r)) → l
right(empty) → emptyright(node(l, r)) → r
inc(0) → s(0)inc(s(x)) → s(inc(x))
count(n, x) → if(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x))if(true, b, n, m, x, y) → x
if(false, false, n, m, x, y) → count(m, x)if(false, true, n, m, x, y) → count(n, y)
nrOfNodes(n) → count(n, 0)

Original Signature

Termination of terms over the following signature is verified: nrOfNodes, count, true, isEmpty, node, 0, s, inc, if, empty, false, left, right

Strategy


Instantiation

For all potential predecessors l → r of the rule count#(n, x) → if#(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x)) on dependency pair chains it holds that: Thus, count#(n, x) → if#(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x)) is replaced by instances determined through the above matching. These instances are:
count#(_n, _y) → if#(isEmpty(_n), isEmpty(left(_n)), right(_n), node(left(left(_n)), node(right(left(_n)), right(_n))), _y, inc(_y))count#(_m, _x) → if#(isEmpty(_m), isEmpty(left(_m)), right(_m), node(left(left(_m)), node(right(left(_m)), right(_m))), _x, inc(_x))

Problem 4: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

if#(false, false, n, m, x, y) → count#(m, x)if#(false, true, n, m, x, y) → count#(n, y)
count#(_n, _y) → if#(isEmpty(_n), isEmpty(left(_n)), right(_n), node(left(left(_n)), node(right(left(_n)), right(_n))), _y, inc(_y))count#(_m, _x) → if#(isEmpty(_m), isEmpty(left(_m)), right(_m), node(left(left(_m)), node(right(left(_m)), right(_m))), _x, inc(_x))

Rewrite Rules

isEmpty(empty) → trueisEmpty(node(l, r)) → false
left(empty) → emptyleft(node(l, r)) → l
right(empty) → emptyright(node(l, r)) → r
inc(0) → s(0)inc(s(x)) → s(inc(x))
count(n, x) → if(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x))if(true, b, n, m, x, y) → x
if(false, false, n, m, x, y) → count(m, x)if(false, true, n, m, x, y) → count(n, y)
nrOfNodes(n) → count(n, 0)

Original Signature

Termination of terms over the following signature is verified: nrOfNodes, count, true, isEmpty, node, 0, s, inc, if, empty, false, left, right

Strategy


Instantiation

For all potential predecessors l → r of the rule count#(_n, _y) → if#(isEmpty(_n), isEmpty(left(_n)), right(_n), node(left(left(_n)), node(right(left(_n)), right(_n))), _y, inc(_y)) on dependency pair chains it holds that: Thus, count#(_n, _y) → if#(isEmpty(_n), isEmpty(left(_n)), right(_n), node(left(left(_n)), node(right(left(_n)), right(_n))), _y, inc(_y)) is replaced by instances determined through the above matching. These instances are:
count#(m, x) → if#(isEmpty(m), isEmpty(left(m)), right(m), node(left(left(m)), node(right(left(m)), right(m))), x, inc(x))count#(n, y) → if#(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), y, inc(y))

Instantiation

For all potential predecessors l → r of the rule count#(_m, _x) → if#(isEmpty(_m), isEmpty(left(_m)), right(_m), node(left(left(_m)), node(right(left(_m)), right(_m))), _x, inc(_x)) on dependency pair chains it holds that: Thus, count#(_m, _x) → if#(isEmpty(_m), isEmpty(left(_m)), right(_m), node(left(left(_m)), node(right(left(_m)), right(_m))), _x, inc(_x)) is replaced by instances determined through the above matching. These instances are:
count#(m, x) → if#(isEmpty(m), isEmpty(left(m)), right(m), node(left(left(m)), node(right(left(m)), right(m))), x, inc(x))count#(n, y) → if#(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), y, inc(y))

Problem 5: ForwardInstantiation



Dependency Pair Problem

Dependency Pairs

if#(false, false, n, m, x, y) → count#(m, x)if#(false, true, n, m, x, y) → count#(n, y)
count#(m, x) → if#(isEmpty(m), isEmpty(left(m)), right(m), node(left(left(m)), node(right(left(m)), right(m))), x, inc(x))count#(n, y) → if#(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), y, inc(y))

Rewrite Rules

isEmpty(empty) → trueisEmpty(node(l, r)) → false
left(empty) → emptyleft(node(l, r)) → l
right(empty) → emptyright(node(l, r)) → r
inc(0) → s(0)inc(s(x)) → s(inc(x))
count(n, x) → if(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x))if(true, b, n, m, x, y) → x
if(false, false, n, m, x, y) → count(m, x)if(false, true, n, m, x, y) → count(n, y)
nrOfNodes(n) → count(n, 0)

Original Signature

Termination of terms over the following signature is verified: nrOfNodes, count, true, isEmpty, node, 0, s, inc, if, empty, false, left, right

Strategy


Instantiation

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

Instantiation

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

Problem 6: Propagation



Dependency Pair Problem

Dependency Pairs

if#(false, false, n, m, x, y) → count#(m, x)if#(false, true, n, m, x, y) → count#(n, y)
if#(false, false, m, m, x, x) → count#(m, x)count#(m, x) → if#(isEmpty(m), isEmpty(left(m)), right(m), node(left(left(m)), node(right(left(m)), right(m))), x, inc(x))
count#(n, y) → if#(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), y, inc(y))if#(false, true, n, n, y, y) → count#(n, y)

Rewrite Rules

isEmpty(empty) → trueisEmpty(node(l, r)) → false
left(empty) → emptyleft(node(l, r)) → l
right(empty) → emptyright(node(l, r)) → r
inc(0) → s(0)inc(s(x)) → s(inc(x))
count(n, x) → if(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x))if(true, b, n, m, x, y) → x
if(false, false, n, m, x, y) → count(m, x)if(false, true, n, m, x, y) → count(n, y)
nrOfNodes(n) → count(n, 0)

Original Signature

Termination of terms over the following signature is verified: nrOfNodes, count, true, isEmpty, node, 0, s, inc, if, empty, false, left, right

Strategy


The dependency pairs if#(false, false, n, m, x, y) → count#(m, x) and count#(m, x) → if#(isEmpty(m), isEmpty(left(m)), right(m), node(left(left(m)), node(right(left(m)), right(m))), x, inc(x)) are consolidated into the rule if#(false, false, n, m, x, y) → if#(isEmpty(m), isEmpty(left(m)), right(m), node(left(left(m)), node(right(left(m)), right(m))), x, inc(x)) .

This is possible as


Summary

Removed Dependency PairsAdded Dependency Pairs
if#(false, false, n, m, x, y) → count#(m, x)if#(false, false, n, m, x, y) → if#(isEmpty(m), isEmpty(left(m)), right(m), node(left(left(m)), node(right(left(m)), right(m))), x, inc(x))
count#(m, x) → if#(isEmpty(m), isEmpty(left(m)), right(m), node(left(left(m)), node(right(left(m)), right(m))), x, inc(x)) 

Problem 7: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

if#(false, true, n, m, x, y) → count#(n, y)if#(false, false, m, m, x, x) → count#(m, x)
count#(n, y) → if#(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), y, inc(y))if#(false, false, n, m, x, y) → if#(isEmpty(m), isEmpty(left(m)), right(m), node(left(left(m)), node(right(left(m)), right(m))), x, inc(x))
if#(false, true, n, n, y, y) → count#(n, y)

Rewrite Rules

isEmpty(empty) → trueisEmpty(node(l, r)) → false
left(empty) → emptyleft(node(l, r)) → l
right(empty) → emptyright(node(l, r)) → r
inc(0) → s(0)inc(s(x)) → s(inc(x))
count(n, x) → if(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x))if(true, b, n, m, x, y) → x
if(false, false, n, m, x, y) → count(m, x)if(false, true, n, m, x, y) → count(n, y)
nrOfNodes(n) → count(n, 0)

Original Signature

Termination of terms over the following signature is verified: nrOfNodes, count, true, isEmpty, node, 0, s, inc, if, empty, false, left, right

Strategy


Instantiation

For all potential predecessors l → r of the rule count#(n, y) → if#(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), y, inc(y)) on dependency pair chains it holds that: Thus, count#(n, y) → if#(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), y, inc(y)) is replaced by instances determined through the above matching. These instances are:
count#(m, x) → if#(isEmpty(m), isEmpty(left(m)), right(m), node(left(left(m)), node(right(left(m)), right(m))), x, inc(x))count#(_n, _y) → if#(isEmpty(_n), isEmpty(left(_n)), right(_n), node(left(left(_n)), node(right(left(_n)), right(_n))), _y, inc(_y))

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

inc#(s(x)) → inc#(x)

Rewrite Rules

isEmpty(empty) → trueisEmpty(node(l, r)) → false
left(empty) → emptyleft(node(l, r)) → l
right(empty) → emptyright(node(l, r)) → r
inc(0) → s(0)inc(s(x)) → s(inc(x))
count(n, x) → if(isEmpty(n), isEmpty(left(n)), right(n), node(left(left(n)), node(right(left(n)), right(n))), x, inc(x))if(true, b, n, m, x, y) → x
if(false, false, n, m, x, y) → count(m, x)if(false, true, n, m, x, y) → count(n, y)
nrOfNodes(n) → count(n, 0)

Original Signature

Termination of terms over the following signature is verified: nrOfNodes, count, true, isEmpty, node, 0, s, inc, if, empty, false, left, right

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

inc#(s(x)) → inc#(x)