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) |