TIMEOUT
The TRS could not be proven terminating. The proof attempt took 60047 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (151ms).
| Problem 2 remains open; application of the following processors failed [SubtermCriterion (1ms), DependencyGraph (2ms), PolynomialLinearRange4iUR (170ms), DependencyGraph (2ms), PolynomialLinearRange8NegiUR (391ms), DependencyGraph (3ms), ReductionPairSAT (1828ms)].
| Problem 3 remains open; application of the following processors failed [SubtermCriterion (1ms), DependencyGraph (5ms), PolynomialLinearRange4iUR (488ms), DependencyGraph (5ms), PolynomialLinearRange8NegiUR (3321ms), DependencyGraph (3ms), ReductionPairSAT (timeout)].
| Problem 4 was processed with processor SubtermCriterion (1ms).
| Problem 5 was processed with processor SubtermCriterion (1ms).
| Problem 6 was processed with processor SubtermCriterion (1ms).
The following open problems remain:
Open Dependency Pair Problem 2
Dependency Pairs
ifPlus#(false, x, y, z) | → | plusIter#(x, s(y), s(z)) | | plusIter#(x, y, z) | → | ifPlus#(le(x, z), x, y, z) |
Rewrite Rules
div(x, y) | → | div2(x, y, 0) | | div2(x, y, i) | → | if1(le(y, 0), le(y, x), x, y, plus(i, 0), inc(i)) |
if1(true, b, x, y, i, j) | → | divZeroError | | if1(false, b, x, y, i, j) | → | if2(b, x, y, i, j) |
if2(true, x, y, i, j) | → | div2(minus(x, y), y, j) | | if2(false, x, y, i, j) | → | i |
inc(0) | → | 0 | | inc(s(i)) | → | s(inc(i)) |
le(s(x), 0) | → | false | | le(0, y) | → | true |
le(s(x), s(y)) | → | le(x, y) | | minus(x, 0) | → | x |
minus(0, y) | → | 0 | | minus(s(x), s(y)) | → | minus(x, y) |
plus(x, y) | → | plusIter(x, y, 0) | | plusIter(x, y, z) | → | ifPlus(le(x, z), x, y, z) |
ifPlus(true, x, y, z) | → | y | | ifPlus(false, x, y, z) | → | plusIter(x, s(y), s(z)) |
a | → | c | | a | → | d |
Original Signature
Termination of terms over the following signature is verified: plus, d, minus, c, plusIter, divZeroError, a, div, true, if1, if2, ifPlus, 0, le, inc, s, false, div2
Open Dependency Pair Problem 3
Dependency Pairs
if1#(false, b, x, y, i, j) | → | if2#(b, x, y, i, j) | | div2#(x, y, i) | → | if1#(le(y, 0), le(y, x), x, y, plus(i, 0), inc(i)) |
if2#(true, x, y, i, j) | → | div2#(minus(x, y), y, j) |
Rewrite Rules
div(x, y) | → | div2(x, y, 0) | | div2(x, y, i) | → | if1(le(y, 0), le(y, x), x, y, plus(i, 0), inc(i)) |
if1(true, b, x, y, i, j) | → | divZeroError | | if1(false, b, x, y, i, j) | → | if2(b, x, y, i, j) |
if2(true, x, y, i, j) | → | div2(minus(x, y), y, j) | | if2(false, x, y, i, j) | → | i |
inc(0) | → | 0 | | inc(s(i)) | → | s(inc(i)) |
le(s(x), 0) | → | false | | le(0, y) | → | true |
le(s(x), s(y)) | → | le(x, y) | | minus(x, 0) | → | x |
minus(0, y) | → | 0 | | minus(s(x), s(y)) | → | minus(x, y) |
plus(x, y) | → | plusIter(x, y, 0) | | plusIter(x, y, z) | → | ifPlus(le(x, z), x, y, z) |
ifPlus(true, x, y, z) | → | y | | ifPlus(false, x, y, z) | → | plusIter(x, s(y), s(z)) |
a | → | c | | a | → | d |
Original Signature
Termination of terms over the following signature is verified: plus, d, minus, c, plusIter, divZeroError, a, div, true, if1, if2, ifPlus, 0, le, inc, s, false, div2
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
if1#(false, b, x, y, i, j) | → | if2#(b, x, y, i, j) | | ifPlus#(false, x, y, z) | → | plusIter#(x, s(y), s(z)) |
div2#(x, y, i) | → | inc#(i) | | plusIter#(x, y, z) | → | ifPlus#(le(x, z), x, y, z) |
inc#(s(i)) | → | inc#(i) | | if2#(true, x, y, i, j) | → | minus#(x, y) |
div2#(x, y, i) | → | le#(y, x) | | div#(x, y) | → | div2#(x, y, 0) |
div2#(x, y, i) | → | plus#(i, 0) | | le#(s(x), s(y)) | → | le#(x, y) |
div2#(x, y, i) | → | if1#(le(y, 0), le(y, x), x, y, plus(i, 0), inc(i)) | | plusIter#(x, y, z) | → | le#(x, z) |
minus#(s(x), s(y)) | → | minus#(x, y) | | if2#(true, x, y, i, j) | → | div2#(minus(x, y), y, j) |
div2#(x, y, i) | → | le#(y, 0) | | plus#(x, y) | → | plusIter#(x, y, 0) |
Rewrite Rules
div(x, y) | → | div2(x, y, 0) | | div2(x, y, i) | → | if1(le(y, 0), le(y, x), x, y, plus(i, 0), inc(i)) |
if1(true, b, x, y, i, j) | → | divZeroError | | if1(false, b, x, y, i, j) | → | if2(b, x, y, i, j) |
if2(true, x, y, i, j) | → | div2(minus(x, y), y, j) | | if2(false, x, y, i, j) | → | i |
inc(0) | → | 0 | | inc(s(i)) | → | s(inc(i)) |
le(s(x), 0) | → | false | | le(0, y) | → | true |
le(s(x), s(y)) | → | le(x, y) | | minus(x, 0) | → | x |
minus(0, y) | → | 0 | | minus(s(x), s(y)) | → | minus(x, y) |
plus(x, y) | → | plusIter(x, y, 0) | | plusIter(x, y, z) | → | ifPlus(le(x, z), x, y, z) |
ifPlus(true, x, y, z) | → | y | | ifPlus(false, x, y, z) | → | plusIter(x, s(y), s(z)) |
a | → | c | | a | → | d |
Original Signature
Termination of terms over the following signature is verified: plus, d, minus, c, plusIter, divZeroError, a, div, true, if1, if2, ifPlus, 0, s, inc, le, false, div2
Strategy
The following SCCs where found
if1#(false, b, x, y, i, j) → if2#(b, x, y, i, j) | div2#(x, y, i) → if1#(le(y, 0), le(y, x), x, y, plus(i, 0), inc(i)) |
if2#(true, x, y, i, j) → div2#(minus(x, y), y, j) |
le#(s(x), s(y)) → le#(x, y) |
minus#(s(x), s(y)) → minus#(x, y) |
ifPlus#(false, x, y, z) → plusIter#(x, s(y), s(z)) | plusIter#(x, y, z) → ifPlus#(le(x, z), x, y, z) |
Problem 4: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
minus#(s(x), s(y)) | → | minus#(x, y) |
Rewrite Rules
div(x, y) | → | div2(x, y, 0) | | div2(x, y, i) | → | if1(le(y, 0), le(y, x), x, y, plus(i, 0), inc(i)) |
if1(true, b, x, y, i, j) | → | divZeroError | | if1(false, b, x, y, i, j) | → | if2(b, x, y, i, j) |
if2(true, x, y, i, j) | → | div2(minus(x, y), y, j) | | if2(false, x, y, i, j) | → | i |
inc(0) | → | 0 | | inc(s(i)) | → | s(inc(i)) |
le(s(x), 0) | → | false | | le(0, y) | → | true |
le(s(x), s(y)) | → | le(x, y) | | minus(x, 0) | → | x |
minus(0, y) | → | 0 | | minus(s(x), s(y)) | → | minus(x, y) |
plus(x, y) | → | plusIter(x, y, 0) | | plusIter(x, y, z) | → | ifPlus(le(x, z), x, y, z) |
ifPlus(true, x, y, z) | → | y | | ifPlus(false, x, y, z) | → | plusIter(x, s(y), s(z)) |
a | → | c | | a | → | d |
Original Signature
Termination of terms over the following signature is verified: plus, d, minus, c, plusIter, divZeroError, a, div, true, if1, if2, ifPlus, 0, s, inc, le, false, div2
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
minus#(s(x), s(y)) | → | minus#(x, y) |
Problem 5: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
Rewrite Rules
div(x, y) | → | div2(x, y, 0) | | div2(x, y, i) | → | if1(le(y, 0), le(y, x), x, y, plus(i, 0), inc(i)) |
if1(true, b, x, y, i, j) | → | divZeroError | | if1(false, b, x, y, i, j) | → | if2(b, x, y, i, j) |
if2(true, x, y, i, j) | → | div2(minus(x, y), y, j) | | if2(false, x, y, i, j) | → | i |
inc(0) | → | 0 | | inc(s(i)) | → | s(inc(i)) |
le(s(x), 0) | → | false | | le(0, y) | → | true |
le(s(x), s(y)) | → | le(x, y) | | minus(x, 0) | → | x |
minus(0, y) | → | 0 | | minus(s(x), s(y)) | → | minus(x, y) |
plus(x, y) | → | plusIter(x, y, 0) | | plusIter(x, y, z) | → | ifPlus(le(x, z), x, y, z) |
ifPlus(true, x, y, z) | → | y | | ifPlus(false, x, y, z) | → | plusIter(x, s(y), s(z)) |
a | → | c | | a | → | d |
Original Signature
Termination of terms over the following signature is verified: plus, d, minus, c, plusIter, divZeroError, a, div, true, if1, if2, ifPlus, 0, s, inc, le, false, div2
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
Problem 6: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
le#(s(x), s(y)) | → | le#(x, y) |
Rewrite Rules
div(x, y) | → | div2(x, y, 0) | | div2(x, y, i) | → | if1(le(y, 0), le(y, x), x, y, plus(i, 0), inc(i)) |
if1(true, b, x, y, i, j) | → | divZeroError | | if1(false, b, x, y, i, j) | → | if2(b, x, y, i, j) |
if2(true, x, y, i, j) | → | div2(minus(x, y), y, j) | | if2(false, x, y, i, j) | → | i |
inc(0) | → | 0 | | inc(s(i)) | → | s(inc(i)) |
le(s(x), 0) | → | false | | le(0, y) | → | true |
le(s(x), s(y)) | → | le(x, y) | | minus(x, 0) | → | x |
minus(0, y) | → | 0 | | minus(s(x), s(y)) | → | minus(x, y) |
plus(x, y) | → | plusIter(x, y, 0) | | plusIter(x, y, z) | → | ifPlus(le(x, z), x, y, z) |
ifPlus(true, x, y, z) | → | y | | ifPlus(false, x, y, z) | → | plusIter(x, s(y), s(z)) |
a | → | c | | a | → | d |
Original Signature
Termination of terms over the following signature is verified: plus, d, minus, c, plusIter, divZeroError, a, div, true, if1, if2, ifPlus, 0, s, inc, le, false, div2
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
le#(s(x), s(y)) | → | le#(x, y) |