TIMEOUT
The TRS could not be proven terminating. The proof attempt took 60000 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (59ms).
| Problem 2 was processed with processor ForwardNarrowing (2ms).
| | Problem 7 remains open; application of the following processors failed [ForwardNarrowing (0ms), BackwardInstantiation (2ms), ForwardInstantiation (3ms), Propagation (1ms), ForwardNarrowing (1ms), BackwardInstantiation (1ms), ForwardInstantiation (1ms), Propagation (1ms)].
| Problem 3 was processed with processor SubtermCriterion (1ms).
| Problem 4 was processed with processor SubtermCriterion (1ms).
| Problem 5 was processed with processor SubtermCriterion (1ms).
| Problem 6 was processed with processor SubtermCriterion (0ms).
The following open problems remain:
Open Dependency Pair Problem 2
Dependency Pairs
| log#(x, s(s(y))) | → | cond#(le(x, s(s(y))), x, y) | | cond#(false, x, y) | → | log#(x, square(s(s(y)))) |
Rewrite Rules
| log(x, s(s(y))) | → | cond(le(x, s(s(y))), x, y) | | cond(true, x, y) | → | s(0) |
| cond(false, x, y) | → | double(log(x, square(s(s(y))))) | | le(0, v) | → | true |
| le(s(u), 0) | → | false | | le(s(u), s(v)) | → | le(u, v) |
| double(0) | → | 0 | | double(s(x)) | → | s(s(double(x))) |
| square(0) | → | 0 | | square(s(x)) | → | s(plus(square(x), double(x))) |
| plus(n, 0) | → | n | | plus(n, s(m)) | → | s(plus(n, m)) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, s, le, false, true, square, double, log, cond
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
| log#(x, s(s(y))) | → | cond#(le(x, s(s(y))), x, y) | | cond#(false, x, y) | → | double#(log(x, square(s(s(y))))) |
| le#(s(u), s(v)) | → | le#(u, v) | | square#(s(x)) | → | double#(x) |
| square#(s(x)) | → | square#(x) | | log#(x, s(s(y))) | → | le#(x, s(s(y))) |
| double#(s(x)) | → | double#(x) | | plus#(n, s(m)) | → | plus#(n, m) |
| cond#(false, x, y) | → | square#(s(s(y))) | | square#(s(x)) | → | plus#(square(x), double(x)) |
| cond#(false, x, y) | → | log#(x, square(s(s(y)))) |
Rewrite Rules
| log(x, s(s(y))) | → | cond(le(x, s(s(y))), x, y) | | cond(true, x, y) | → | s(0) |
| cond(false, x, y) | → | double(log(x, square(s(s(y))))) | | le(0, v) | → | true |
| le(s(u), 0) | → | false | | le(s(u), s(v)) | → | le(u, v) |
| double(0) | → | 0 | | double(s(x)) | → | s(s(double(x))) |
| square(0) | → | 0 | | square(s(x)) | → | s(plus(square(x), double(x))) |
| plus(n, 0) | → | n | | plus(n, s(m)) | → | s(plus(n, m)) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, le, s, true, false, square, double, cond, log
Strategy
The following SCCs where found
| le#(s(u), s(v)) → le#(u, v) |
| square#(s(x)) → square#(x) |
| double#(s(x)) → double#(x) |
| log#(x, s(s(y))) → cond#(le(x, s(s(y))), x, y) | cond#(false, x, y) → log#(x, square(s(s(y)))) |
| plus#(n, s(m)) → plus#(n, m) |
Problem 2: ForwardNarrowing
Dependency Pair Problem
Dependency Pairs
| log#(x, s(s(y))) | → | cond#(le(x, s(s(y))), x, y) | | cond#(false, x, y) | → | log#(x, square(s(s(y)))) |
Rewrite Rules
| log(x, s(s(y))) | → | cond(le(x, s(s(y))), x, y) | | cond(true, x, y) | → | s(0) |
| cond(false, x, y) | → | double(log(x, square(s(s(y))))) | | le(0, v) | → | true |
| le(s(u), 0) | → | false | | le(s(u), s(v)) | → | le(u, v) |
| double(0) | → | 0 | | double(s(x)) | → | s(s(double(x))) |
| square(0) | → | 0 | | square(s(x)) | → | s(plus(square(x), double(x))) |
| plus(n, 0) | → | n | | plus(n, s(m)) | → | s(plus(n, m)) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, le, s, true, false, square, double, cond, log
Strategy
The right-hand side of the rule cond
#(false,
x,
y) → log
#(
x, square(s(s(
y)))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
| Relevant Terms | Irrelevant Terms |
|---|
| log#(x, s(plus(square(s(y)), double(s(y))))) | |
Thus, the rule cond
#(false,
x,
y) → log
#(
x, square(s(s(
y)))) is replaced by the following rules:
| cond#(false, x, y) → log#(x, s(plus(square(s(y)), double(s(y))))) |
Problem 3: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| le#(s(u), s(v)) | → | le#(u, v) |
Rewrite Rules
| log(x, s(s(y))) | → | cond(le(x, s(s(y))), x, y) | | cond(true, x, y) | → | s(0) |
| cond(false, x, y) | → | double(log(x, square(s(s(y))))) | | le(0, v) | → | true |
| le(s(u), 0) | → | false | | le(s(u), s(v)) | → | le(u, v) |
| double(0) | → | 0 | | double(s(x)) | → | s(s(double(x))) |
| square(0) | → | 0 | | square(s(x)) | → | s(plus(square(x), double(x))) |
| plus(n, 0) | → | n | | plus(n, s(m)) | → | s(plus(n, m)) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, le, s, true, false, square, double, cond, log
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| le#(s(u), s(v)) | → | le#(u, v) |
Problem 4: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| double#(s(x)) | → | double#(x) |
Rewrite Rules
| log(x, s(s(y))) | → | cond(le(x, s(s(y))), x, y) | | cond(true, x, y) | → | s(0) |
| cond(false, x, y) | → | double(log(x, square(s(s(y))))) | | le(0, v) | → | true |
| le(s(u), 0) | → | false | | le(s(u), s(v)) | → | le(u, v) |
| double(0) | → | 0 | | double(s(x)) | → | s(s(double(x))) |
| square(0) | → | 0 | | square(s(x)) | → | s(plus(square(x), double(x))) |
| plus(n, 0) | → | n | | plus(n, s(m)) | → | s(plus(n, m)) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, le, s, true, false, square, double, cond, log
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| double#(s(x)) | → | double#(x) |
Problem 5: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| plus#(n, s(m)) | → | plus#(n, m) |
Rewrite Rules
| log(x, s(s(y))) | → | cond(le(x, s(s(y))), x, y) | | cond(true, x, y) | → | s(0) |
| cond(false, x, y) | → | double(log(x, square(s(s(y))))) | | le(0, v) | → | true |
| le(s(u), 0) | → | false | | le(s(u), s(v)) | → | le(u, v) |
| double(0) | → | 0 | | double(s(x)) | → | s(s(double(x))) |
| square(0) | → | 0 | | square(s(x)) | → | s(plus(square(x), double(x))) |
| plus(n, 0) | → | n | | plus(n, s(m)) | → | s(plus(n, m)) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, le, s, true, false, square, double, cond, log
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| plus#(n, s(m)) | → | plus#(n, m) |
Problem 6: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| square#(s(x)) | → | square#(x) |
Rewrite Rules
| log(x, s(s(y))) | → | cond(le(x, s(s(y))), x, y) | | cond(true, x, y) | → | s(0) |
| cond(false, x, y) | → | double(log(x, square(s(s(y))))) | | le(0, v) | → | true |
| le(s(u), 0) | → | false | | le(s(u), s(v)) | → | le(u, v) |
| double(0) | → | 0 | | double(s(x)) | → | s(s(double(x))) |
| square(0) | → | 0 | | square(s(x)) | → | s(plus(square(x), double(x))) |
| plus(n, 0) | → | n | | plus(n, s(m)) | → | s(plus(n, m)) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, le, s, true, false, square, double, cond, log
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| square#(s(x)) | → | square#(x) |