TIMEOUT
The TRS could not be proven terminating. The proof attempt took 60016 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (45ms).
| Problem 2 was processed with processor BackwardInstantiation (2ms).
| | Problem 4 remains open; application of the following processors failed [ForwardInstantiation (2ms), Propagation (0ms), ForwardNarrowing (1ms), BackwardInstantiation (1ms), ForwardInstantiation (1ms), Propagation (1ms)].
| Problem 3 was processed with processor SubtermCriterion (1ms).
The following open problems remain:
Open Dependency Pair Problem 2
Dependency Pairs
if#(true, x, y) | → | rand#(p(x), id_inc(y)) | | rand#(x, y) | → | if#(nonZero(x), x, y) |
Rewrite Rules
nonZero(0) | → | false | | nonZero(s(x)) | → | true |
p(s(0)) | → | 0 | | p(s(s(x))) | → | s(p(s(x))) |
id_inc(x) | → | x | | id_inc(x) | → | s(x) |
random(x) | → | rand(x, 0) | | rand(x, y) | → | if(nonZero(x), x, y) |
if(false, x, y) | → | y | | if(true, x, y) | → | rand(p(x), id_inc(y)) |
Original Signature
Termination of terms over the following signature is verified: id_inc, 0, nonZero, s, if, p, random, true, false, rand
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
if#(true, x, y) | → | id_inc#(y) | | if#(true, x, y) | → | rand#(p(x), id_inc(y)) |
random#(x) | → | rand#(x, 0) | | rand#(x, y) | → | if#(nonZero(x), x, y) |
rand#(x, y) | → | nonZero#(x) | | p#(s(s(x))) | → | p#(s(x)) |
if#(true, x, y) | → | p#(x) |
Rewrite Rules
nonZero(0) | → | false | | nonZero(s(x)) | → | true |
p(s(0)) | → | 0 | | p(s(s(x))) | → | s(p(s(x))) |
id_inc(x) | → | x | | id_inc(x) | → | s(x) |
random(x) | → | rand(x, 0) | | rand(x, y) | → | if(nonZero(x), x, y) |
if(false, x, y) | → | y | | if(true, x, y) | → | rand(p(x), id_inc(y)) |
Original Signature
Termination of terms over the following signature is verified: nonZero, 0, id_inc, s, if, p, random, false, true, rand
Strategy
The following SCCs where found
if#(true, x, y) → rand#(p(x), id_inc(y)) | rand#(x, y) → if#(nonZero(x), x, y) |
Problem 2: BackwardInstantiation
Dependency Pair Problem
Dependency Pairs
if#(true, x, y) | → | rand#(p(x), id_inc(y)) | | rand#(x, y) | → | if#(nonZero(x), x, y) |
Rewrite Rules
nonZero(0) | → | false | | nonZero(s(x)) | → | true |
p(s(0)) | → | 0 | | p(s(s(x))) | → | s(p(s(x))) |
id_inc(x) | → | x | | id_inc(x) | → | s(x) |
random(x) | → | rand(x, 0) | | rand(x, y) | → | if(nonZero(x), x, y) |
if(false, x, y) | → | y | | if(true, x, y) | → | rand(p(x), id_inc(y)) |
Original Signature
Termination of terms over the following signature is verified: nonZero, 0, id_inc, s, if, p, random, false, true, rand
Strategy
Instantiation
For all potential predecessors l → r of the rule rand
#(
x,
y) → if
#(nonZero(
x),
x,
y) on dependency pair chains it holds that:
- rand#(x, y) matches r,
- all variables of rand#(x, y) are embedded in constructor contexts, i.e., each subterm of rand#(x, y), containing a variable is rooted by a constructor symbol.
Thus, rand
#(
x,
y) → if
#(nonZero(
x),
x,
y) is replaced by instances determined through the above matching. These instances are:
rand#(p(_x), id_inc(_y)) → if#(nonZero(p(_x)), p(_x), id_inc(_y)) |
Problem 3: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
Rewrite Rules
nonZero(0) | → | false | | nonZero(s(x)) | → | true |
p(s(0)) | → | 0 | | p(s(s(x))) | → | s(p(s(x))) |
id_inc(x) | → | x | | id_inc(x) | → | s(x) |
random(x) | → | rand(x, 0) | | rand(x, y) | → | if(nonZero(x), x, y) |
if(false, x, y) | → | y | | if(true, x, y) | → | rand(p(x), id_inc(y)) |
Original Signature
Termination of terms over the following signature is verified: nonZero, 0, id_inc, s, if, p, random, false, true, rand
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed: