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

The following open problems remain:



Open Dependency Pair Problem 4

Dependency Pairs

if#(false, false, l, t, n) → lessE#(l, t, s(n))lessE#(l, t, n) → if#(le(length(l), n), le(length(toList(t)), n), l, t, n)

Rewrite Rules

lessElements(l, t) → lessE(l, t, 0)lessE(l, t, n) → if(le(length(l), n), le(length(toList(t)), n), l, t, n)
if(true, b, l, t, n) → lif(false, true, l, t, n) → t
if(false, false, l, t, n) → lessE(l, t, s(n))length(nil) → 0
length(cons(n, l)) → s(length(l))toList(leaf) → nil
toList(node(t1, n, t2)) → append(toList(t1), cons(n, toList(t2)))append(nil, l2) → l2
append(cons(n, l1), l2) → cons(n, append(l1, l2))le(s(n), 0) → false
le(0, m) → truele(s(n), s(m)) → le(n, m)
a → ca → d

Original Signature

Termination of terms over the following signature is verified: append, d, c, a, true, lessE, leaf, node, 0, le, s, if, length, false, toList, lessElements, nil, cons


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

toList#(node(t1, n, t2)) → toList#(t2)le#(s(n), s(m)) → le#(n, m)
lessE#(l, t, n) → length#(l)append#(cons(n, l1), l2) → append#(l1, l2)
lessE#(l, t, n) → le#(length(l), n)lessE#(l, t, n) → toList#(t)
lessElements#(l, t) → lessE#(l, t, 0)toList#(node(t1, n, t2)) → append#(toList(t1), cons(n, toList(t2)))
if#(false, false, l, t, n) → lessE#(l, t, s(n))lessE#(l, t, n) → length#(toList(t))
length#(cons(n, l)) → length#(l)toList#(node(t1, n, t2)) → toList#(t1)
lessE#(l, t, n) → le#(length(toList(t)), n)lessE#(l, t, n) → if#(le(length(l), n), le(length(toList(t)), n), l, t, n)

Rewrite Rules

lessElements(l, t) → lessE(l, t, 0)lessE(l, t, n) → if(le(length(l), n), le(length(toList(t)), n), l, t, n)
if(true, b, l, t, n) → lif(false, true, l, t, n) → t
if(false, false, l, t, n) → lessE(l, t, s(n))length(nil) → 0
length(cons(n, l)) → s(length(l))toList(leaf) → nil
toList(node(t1, n, t2)) → append(toList(t1), cons(n, toList(t2)))append(nil, l2) → l2
append(cons(n, l1), l2) → cons(n, append(l1, l2))le(s(n), 0) → false
le(0, m) → truele(s(n), s(m)) → le(n, m)
a → ca → d

Original Signature

Termination of terms over the following signature is verified: append, d, c, a, true, lessE, leaf, node, 0, le, s, if, length, false, toList, lessElements, cons, nil

Strategy


The following SCCs where found

length#(cons(n, l)) → length#(l)

le#(s(n), s(m)) → le#(n, m)

append#(cons(n, l1), l2) → append#(l1, l2)

if#(false, false, l, t, n) → lessE#(l, t, s(n))lessE#(l, t, n) → if#(le(length(l), n), le(length(toList(t)), n), l, t, n)

toList#(node(t1, n, t2)) → toList#(t2)toList#(node(t1, n, t2)) → toList#(t1)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

toList#(node(t1, n, t2)) → toList#(t2)toList#(node(t1, n, t2)) → toList#(t1)

Rewrite Rules

lessElements(l, t) → lessE(l, t, 0)lessE(l, t, n) → if(le(length(l), n), le(length(toList(t)), n), l, t, n)
if(true, b, l, t, n) → lif(false, true, l, t, n) → t
if(false, false, l, t, n) → lessE(l, t, s(n))length(nil) → 0
length(cons(n, l)) → s(length(l))toList(leaf) → nil
toList(node(t1, n, t2)) → append(toList(t1), cons(n, toList(t2)))append(nil, l2) → l2
append(cons(n, l1), l2) → cons(n, append(l1, l2))le(s(n), 0) → false
le(0, m) → truele(s(n), s(m)) → le(n, m)
a → ca → d

Original Signature

Termination of terms over the following signature is verified: append, d, c, a, true, lessE, leaf, node, 0, le, s, if, length, false, toList, lessElements, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

toList#(node(t1, n, t2)) → toList#(t2)toList#(node(t1, n, t2)) → toList#(t1)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

append#(cons(n, l1), l2) → append#(l1, l2)

Rewrite Rules

lessElements(l, t) → lessE(l, t, 0)lessE(l, t, n) → if(le(length(l), n), le(length(toList(t)), n), l, t, n)
if(true, b, l, t, n) → lif(false, true, l, t, n) → t
if(false, false, l, t, n) → lessE(l, t, s(n))length(nil) → 0
length(cons(n, l)) → s(length(l))toList(leaf) → nil
toList(node(t1, n, t2)) → append(toList(t1), cons(n, toList(t2)))append(nil, l2) → l2
append(cons(n, l1), l2) → cons(n, append(l1, l2))le(s(n), 0) → false
le(0, m) → truele(s(n), s(m)) → le(n, m)
a → ca → d

Original Signature

Termination of terms over the following signature is verified: append, d, c, a, true, lessE, leaf, node, 0, le, s, if, length, false, toList, lessElements, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

append#(cons(n, l1), l2) → append#(l1, l2)

Problem 4: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

if#(false, false, l, t, n) → lessE#(l, t, s(n))lessE#(l, t, n) → if#(le(length(l), n), le(length(toList(t)), n), l, t, n)

Rewrite Rules

lessElements(l, t) → lessE(l, t, 0)lessE(l, t, n) → if(le(length(l), n), le(length(toList(t)), n), l, t, n)
if(true, b, l, t, n) → lif(false, true, l, t, n) → t
if(false, false, l, t, n) → lessE(l, t, s(n))length(nil) → 0
length(cons(n, l)) → s(length(l))toList(leaf) → nil
toList(node(t1, n, t2)) → append(toList(t1), cons(n, toList(t2)))append(nil, l2) → l2
append(cons(n, l1), l2) → cons(n, append(l1, l2))le(s(n), 0) → false
le(0, m) → truele(s(n), s(m)) → le(n, m)
a → ca → d

Original Signature

Termination of terms over the following signature is verified: append, d, c, a, true, lessE, leaf, node, 0, le, s, if, length, false, toList, lessElements, cons, nil

Strategy


Instantiation

For all potential predecessors l → r of the rule lessE#(l, t, n) → if#(le(length(l), n), le(length(toList(t)), n), l, t, n) on dependency pair chains it holds that: Thus, lessE#(l, t, n) → if#(le(length(l), n), le(length(toList(t)), n), l, t, n) is replaced by instances determined through the above matching. These instances are:
lessE#(_l, _t, s(_n)) → if#(le(length(_l), s(_n)), le(length(toList(_t)), s(_n)), _l, _t, s(_n))

Problem 7: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

if#(false, false, l, t, n) → lessE#(l, t, s(n))lessE#(_l, _t, s(_n)) → if#(le(length(_l), s(_n)), le(length(toList(_t)), s(_n)), _l, _t, s(_n))

Rewrite Rules

lessElements(l, t) → lessE(l, t, 0)lessE(l, t, n) → if(le(length(l), n), le(length(toList(t)), n), l, t, n)
if(true, b, l, t, n) → lif(false, true, l, t, n) → t
if(false, false, l, t, n) → lessE(l, t, s(n))length(nil) → 0
length(cons(n, l)) → s(length(l))toList(leaf) → nil
toList(node(t1, n, t2)) → append(toList(t1), cons(n, toList(t2)))append(nil, l2) → l2
append(cons(n, l1), l2) → cons(n, append(l1, l2))le(s(n), 0) → false
le(0, m) → truele(s(n), s(m)) → le(n, m)
a → ca → d

Original Signature

Termination of terms over the following signature is verified: append, d, c, a, true, lessE, leaf, node, 0, le, s, if, length, false, toList, lessElements, nil, cons

Strategy


Instantiation

For all potential predecessors l → r of the rule lessE#(_l, _t, s(_n)) → if#(le(length(_l), s(_n)), le(length(toList(_t)), s(_n)), _l, _t, s(_n)) on dependency pair chains it holds that: Thus, lessE#(_l, _t, s(_n)) → if#(le(length(_l), s(_n)), le(length(toList(_t)), s(_n)), _l, _t, s(_n)) is replaced by instances determined through the above matching. These instances are:
lessE#(l, t, s(n)) → if#(le(length(l), s(n)), le(length(toList(t)), s(n)), l, t, s(n))

Problem 8: Propagation



Dependency Pair Problem

Dependency Pairs

lessE#(l, t, s(n)) → if#(le(length(l), s(n)), le(length(toList(t)), s(n)), l, t, s(n))if#(false, false, l, t, n) → lessE#(l, t, s(n))

Rewrite Rules

lessElements(l, t) → lessE(l, t, 0)lessE(l, t, n) → if(le(length(l), n), le(length(toList(t)), n), l, t, n)
if(true, b, l, t, n) → lif(false, true, l, t, n) → t
if(false, false, l, t, n) → lessE(l, t, s(n))length(nil) → 0
length(cons(n, l)) → s(length(l))toList(leaf) → nil
toList(node(t1, n, t2)) → append(toList(t1), cons(n, toList(t2)))append(nil, l2) → l2
append(cons(n, l1), l2) → cons(n, append(l1, l2))le(s(n), 0) → false
le(0, m) → truele(s(n), s(m)) → le(n, m)
a → ca → d

Original Signature

Termination of terms over the following signature is verified: append, d, c, a, true, lessE, leaf, node, 0, le, s, if, length, false, toList, lessElements, cons, nil

Strategy


The dependency pairs if#(false, false, l, t, n) → lessE#(l, t, s(n)) and lessE#(l, t, s(n)) → if#(le(length(l), s(n)), le(length(toList(t)), s(n)), l, t, s(n)) are consolidated into the rule if#(false, false, l, t, n) → if#(le(length(l), s(n)), le(length(toList(t)), s(n)), l, t, s(n)) .

This is possible as

The dependency pairs if#(false, false, l, t, n) → lessE#(l, t, s(n)) and lessE#(l, t, s(n)) → if#(le(length(l), s(n)), le(length(toList(t)), s(n)), l, t, s(n)) are consolidated into the rule if#(false, false, l, t, n) → if#(le(length(l), s(n)), le(length(toList(t)), s(n)), l, t, s(n)) .

This is possible as


Summary

Removed Dependency PairsAdded Dependency Pairs
lessE#(l, t, s(n)) → if#(le(length(l), s(n)), le(length(toList(t)), s(n)), l, t, s(n))if#(false, false, l, t, n) → if#(le(length(l), s(n)), le(length(toList(t)), s(n)), l, t, s(n))
if#(false, false, l, t, n) → lessE#(l, t, s(n)) 

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

length#(cons(n, l)) → length#(l)

Rewrite Rules

lessElements(l, t) → lessE(l, t, 0)lessE(l, t, n) → if(le(length(l), n), le(length(toList(t)), n), l, t, n)
if(true, b, l, t, n) → lif(false, true, l, t, n) → t
if(false, false, l, t, n) → lessE(l, t, s(n))length(nil) → 0
length(cons(n, l)) → s(length(l))toList(leaf) → nil
toList(node(t1, n, t2)) → append(toList(t1), cons(n, toList(t2)))append(nil, l2) → l2
append(cons(n, l1), l2) → cons(n, append(l1, l2))le(s(n), 0) → false
le(0, m) → truele(s(n), s(m)) → le(n, m)
a → ca → d

Original Signature

Termination of terms over the following signature is verified: append, d, c, a, true, lessE, leaf, node, 0, le, s, if, length, false, toList, lessElements, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

length#(cons(n, l)) → length#(l)

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

le#(s(n), s(m)) → le#(n, m)

Rewrite Rules

lessElements(l, t) → lessE(l, t, 0)lessE(l, t, n) → if(le(length(l), n), le(length(toList(t)), n), l, t, n)
if(true, b, l, t, n) → lif(false, true, l, t, n) → t
if(false, false, l, t, n) → lessE(l, t, s(n))length(nil) → 0
length(cons(n, l)) → s(length(l))toList(leaf) → nil
toList(node(t1, n, t2)) → append(toList(t1), cons(n, toList(t2)))append(nil, l2) → l2
append(cons(n, l1), l2) → cons(n, append(l1, l2))le(s(n), 0) → false
le(0, m) → truele(s(n), s(m)) → le(n, m)
a → ca → d

Original Signature

Termination of terms over the following signature is verified: append, d, c, a, true, lessE, leaf, node, 0, le, s, if, length, false, toList, lessElements, cons, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

le#(s(n), s(m)) → le#(n, m)