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