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 (82ms).
| Problem 2 was processed with processor SubtermCriterion (1ms).
| Problem 3 was processed with processor BackwardInstantiation (5ms).
| | Problem 6 was processed with processor BackwardInstantiation (4ms).
| | | Problem 7 was processed with processor Propagation (7ms).
| | | | Problem 8 remains open; application of the following processors failed [ForwardNarrowing (2ms), BackwardInstantiation (2ms), ForwardInstantiation (1ms), Propagation (4ms)].
| Problem 4 was processed with processor SubtermCriterion (2ms).
| Problem 5 was processed with processor SubtermCriterion (1ms).
The following open problems remain:
Open Dependency Pair Problem 3
Dependency Pairs
if3#(false, x, y) | → | gen#(s(x)) | | if1#(true, x) | → | if2#(x, x) |
gen#(x) | → | if1#(le(x, 10), x) | | if3#(true, x, y) | → | if2#(x, s(y)) |
if2#(x, y) | → | if3#(le(y, 10), x, y) |
Rewrite Rules
table | → | gen(s(0)) | | gen(x) | → | if1(le(x, 10), x) |
if1(false, x) | → | nil | | if1(true, x) | → | if2(x, x) |
if2(x, y) | → | if3(le(y, 10), x, y) | | if3(true, x, y) | → | cons(entry(x, y, times(x, y)), if2(x, s(y))) |
if3(false, x, y) | → | gen(s(x)) | | le(0, y) | → | true |
le(s(x), 0) | → | false | | le(s(x), s(y)) | → | le(x, y) |
plus(0, y) | → | y | | plus(s(x), y) | → | s(plus(x, y)) |
times(0, y) | → | 0 | | times(s(x), y) | → | plus(y, times(x, y)) |
10 | → | s(s(s(s(s(s(s(s(s(s(0)))))))))) |
Original Signature
Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, cons, nil
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
if3#(false, x, y) | → | gen#(s(x)) | | gen#(x) | → | 10# |
if1#(true, x) | → | if2#(x, x) | | if2#(x, y) | → | le#(y, 10) |
times#(s(x), y) | → | times#(x, y) | | if2#(x, y) | → | 10# |
times#(s(x), y) | → | plus#(y, times(x, y)) | | if3#(true, x, y) | → | times#(x, y) |
table# | → | gen#(s(0)) | | le#(s(x), s(y)) | → | le#(x, y) |
plus#(s(x), y) | → | plus#(x, y) | | gen#(x) | → | if1#(le(x, 10), x) |
if3#(true, x, y) | → | if2#(x, s(y)) | | gen#(x) | → | le#(x, 10) |
if2#(x, y) | → | if3#(le(y, 10), x, y) |
Rewrite Rules
table | → | gen(s(0)) | | gen(x) | → | if1(le(x, 10), x) |
if1(false, x) | → | nil | | if1(true, x) | → | if2(x, x) |
if2(x, y) | → | if3(le(y, 10), x, y) | | if3(true, x, y) | → | cons(entry(x, y, times(x, y)), if2(x, s(y))) |
if3(false, x, y) | → | gen(s(x)) | | le(0, y) | → | true |
le(s(x), 0) | → | false | | le(s(x), s(y)) | → | le(x, y) |
plus(0, y) | → | y | | plus(s(x), y) | → | s(plus(x, y)) |
times(0, y) | → | 0 | | times(s(x), y) | → | plus(y, times(x, y)) |
10 | → | s(s(s(s(s(s(s(s(s(s(0)))))))))) |
Original Signature
Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, nil, cons
Strategy
The following SCCs where found
le#(s(x), s(y)) → le#(x, y) |
times#(s(x), y) → times#(x, y) |
plus#(s(x), y) → plus#(x, y) |
if3#(false, x, y) → gen#(s(x)) | if1#(true, x) → if2#(x, x) |
gen#(x) → if1#(le(x, 10), x) | if3#(true, x, y) → if2#(x, s(y)) |
if2#(x, y) → if3#(le(y, 10), x, y) |
Problem 2: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
plus#(s(x), y) | → | plus#(x, y) |
Rewrite Rules
table | → | gen(s(0)) | | gen(x) | → | if1(le(x, 10), x) |
if1(false, x) | → | nil | | if1(true, x) | → | if2(x, x) |
if2(x, y) | → | if3(le(y, 10), x, y) | | if3(true, x, y) | → | cons(entry(x, y, times(x, y)), if2(x, s(y))) |
if3(false, x, y) | → | gen(s(x)) | | le(0, y) | → | true |
le(s(x), 0) | → | false | | le(s(x), s(y)) | → | le(x, y) |
plus(0, y) | → | y | | plus(s(x), y) | → | s(plus(x, y)) |
times(0, y) | → | 0 | | times(s(x), y) | → | plus(y, times(x, y)) |
10 | → | s(s(s(s(s(s(s(s(s(s(0)))))))))) |
Original Signature
Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
plus#(s(x), y) | → | plus#(x, y) |
Problem 3: BackwardInstantiation
Dependency Pair Problem
Dependency Pairs
if3#(false, x, y) | → | gen#(s(x)) | | if1#(true, x) | → | if2#(x, x) |
gen#(x) | → | if1#(le(x, 10), x) | | if3#(true, x, y) | → | if2#(x, s(y)) |
if2#(x, y) | → | if3#(le(y, 10), x, y) |
Rewrite Rules
table | → | gen(s(0)) | | gen(x) | → | if1(le(x, 10), x) |
if1(false, x) | → | nil | | if1(true, x) | → | if2(x, x) |
if2(x, y) | → | if3(le(y, 10), x, y) | | if3(true, x, y) | → | cons(entry(x, y, times(x, y)), if2(x, s(y))) |
if3(false, x, y) | → | gen(s(x)) | | le(0, y) | → | true |
le(s(x), 0) | → | false | | le(s(x), s(y)) | → | le(x, y) |
plus(0, y) | → | y | | plus(s(x), y) | → | s(plus(x, y)) |
times(0, y) | → | 0 | | times(s(x), y) | → | plus(y, times(x, y)) |
10 | → | s(s(s(s(s(s(s(s(s(s(0)))))))))) |
Original Signature
Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, nil, cons
Strategy
Instantiation
For all potential predecessors l → r of the rule gen
#(
x) → if1
#(le(
x, 10),
x) on dependency pair chains it holds that:
- gen#(x) matches r,
- all variables of gen#(x) are embedded in constructor contexts, i.e., each subterm of gen#(x), containing a variable is rooted by a constructor symbol.
Thus, gen
#(
x) → if1
#(le(
x, 10),
x) is replaced by instances determined through the above matching. These instances are:
gen#(s(_x)) → if1#(le(s(_x), 10), s(_x)) |
Instantiation
For all potential predecessors l → r of the rule if2
#(
x,
y) → if3
#(le(
y, 10),
x,
y) on dependency pair chains it holds that:
- if2#(x, y) matches r,
- all variables of if2#(x, y) are embedded in constructor contexts, i.e., each subterm of if2#(x, y), containing a variable is rooted by a constructor symbol.
Thus, if2
#(
x,
y) → if3
#(le(
y, 10),
x,
y) is replaced by instances determined through the above matching. These instances are:
if2#(_x, s(_y)) → if3#(le(s(_y), 10), _x, s(_y)) | if2#(_x, _x) → if3#(le(_x, 10), _x, _x) |
Problem 6: BackwardInstantiation
Dependency Pair Problem
Dependency Pairs
if3#(false, x, y) | → | gen#(s(x)) | | gen#(s(_x)) | → | if1#(le(s(_x), 10), s(_x)) |
if1#(true, x) | → | if2#(x, x) | | if3#(true, x, y) | → | if2#(x, s(y)) |
if2#(_x, s(_y)) | → | if3#(le(s(_y), 10), _x, s(_y)) | | if2#(_x, _x) | → | if3#(le(_x, 10), _x, _x) |
Rewrite Rules
table | → | gen(s(0)) | | gen(x) | → | if1(le(x, 10), x) |
if1(false, x) | → | nil | | if1(true, x) | → | if2(x, x) |
if2(x, y) | → | if3(le(y, 10), x, y) | | if3(true, x, y) | → | cons(entry(x, y, times(x, y)), if2(x, s(y))) |
if3(false, x, y) | → | gen(s(x)) | | le(0, y) | → | true |
le(s(x), 0) | → | false | | le(s(x), s(y)) | → | le(x, y) |
plus(0, y) | → | y | | plus(s(x), y) | → | s(plus(x, y)) |
times(0, y) | → | 0 | | times(s(x), y) | → | plus(y, times(x, y)) |
10 | → | s(s(s(s(s(s(s(s(s(s(0)))))))))) |
Original Signature
Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, cons, nil
Strategy
Instantiation
For all potential predecessors l → r of the rule gen
#(s(
_x)) → if1
#(le(s(
_x), 10), s(
_x)) on dependency pair chains it holds that:
- gen#(s(_x)) matches r,
- all variables of gen#(s(_x)) are embedded in constructor contexts, i.e., each subterm of gen#(s(_x)), containing a variable is rooted by a constructor symbol.
Thus, gen
#(s(
_x)) → if1
#(le(s(
_x), 10), s(
_x)) is replaced by instances determined through the above matching. These instances are:
gen#(s(x)) → if1#(le(s(x), 10), s(x)) |
Problem 7: Propagation
Dependency Pair Problem
Dependency Pairs
if3#(false, x, y) | → | gen#(s(x)) | | if1#(true, x) | → | if2#(x, x) |
gen#(s(x)) | → | if1#(le(s(x), 10), s(x)) | | if3#(true, x, y) | → | if2#(x, s(y)) |
if2#(_x, _x) | → | if3#(le(_x, 10), _x, _x) | | if2#(_x, s(_y)) | → | if3#(le(s(_y), 10), _x, s(_y)) |
Rewrite Rules
table | → | gen(s(0)) | | gen(x) | → | if1(le(x, 10), x) |
if1(false, x) | → | nil | | if1(true, x) | → | if2(x, x) |
if2(x, y) | → | if3(le(y, 10), x, y) | | if3(true, x, y) | → | cons(entry(x, y, times(x, y)), if2(x, s(y))) |
if3(false, x, y) | → | gen(s(x)) | | le(0, y) | → | true |
le(s(x), 0) | → | false | | le(s(x), s(y)) | → | le(x, y) |
plus(0, y) | → | y | | plus(s(x), y) | → | s(plus(x, y)) |
times(0, y) | → | 0 | | times(s(x), y) | → | plus(y, times(x, y)) |
10 | → | s(s(s(s(s(s(s(s(s(s(0)))))))))) |
Original Signature
Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, nil, cons
Strategy
The dependency pairs if3
#(false,
x,
y) → gen
#(s(
x)) and gen
#(s(
x)) → if1
#(le(s(
x), 10), s(
x)) are consolidated into the rule if3
#(false,
x,
y) → if1
#(le(s(
x), 10), s(
x)) .
This is possible as
- all subterms of gen#(s(x)) containing variables are rooted by a constructor symbol,
- there is no variable that is replacing in gen#(s(x)), but non-replacing in both if3#(false, x, y) and if1#(le(s(x), 10), s(x))
The dependency pairs if3
#(false,
x,
y) → gen
#(s(
x)) and gen
#(s(
x)) → if1
#(le(s(
x), 10), s(
x)) are consolidated into the rule if3
#(false,
x,
y) → if1
#(le(s(
x), 10), s(
x)) .
This is possible as
- all subterms of gen#(s(x)) containing variables are rooted by a constructor symbol,
- there is no variable that is replacing in gen#(s(x)), but non-replacing in both if3#(false, x, y) and if1#(le(s(x), 10), s(x))
The dependency pairs if3
#(false,
x,
y) → gen
#(s(
x)) and gen
#(s(
x)) → if1
#(le(s(
x), 10), s(
x)) are consolidated into the rule if3
#(false,
x,
y) → if1
#(le(s(
x), 10), s(
x)) .
This is possible as
- all subterms of gen#(s(x)) containing variables are rooted by a constructor symbol,
- there is no variable that is replacing in gen#(s(x)), but non-replacing in both if3#(false, x, y) and if1#(le(s(x), 10), s(x))
The dependency pairs if3
#(false,
x,
y) → gen
#(s(
x)) and gen
#(s(
x)) → if1
#(le(s(
x), 10), s(
x)) are consolidated into the rule if3
#(false,
x,
y) → if1
#(le(s(
x), 10), s(
x)) .
This is possible as
- all subterms of gen#(s(x)) containing variables are rooted by a constructor symbol,
- there is no variable that is replacing in gen#(s(x)), but non-replacing in both if3#(false, x, y) and if1#(le(s(x), 10), s(x))
The dependency pairs if3
#(false,
x,
y) → gen
#(s(
x)) and gen
#(s(
x)) → if1
#(le(s(
x), 10), s(
x)) are consolidated into the rule if3
#(false,
x,
y) → if1
#(le(s(
x), 10), s(
x)) .
This is possible as
- all subterms of gen#(s(x)) containing variables are rooted by a constructor symbol,
- there is no variable that is replacing in gen#(s(x)), but non-replacing in both if3#(false, x, y) and if1#(le(s(x), 10), s(x))
The dependency pairs if3
#(false,
x,
y) → gen
#(s(
x)) and gen
#(s(
x)) → if1
#(le(s(
x), 10), s(
x)) are consolidated into the rule if3
#(false,
x,
y) → if1
#(le(s(
x), 10), s(
x)) .
This is possible as
- all subterms of gen#(s(x)) containing variables are rooted by a constructor symbol,
- there is no variable that is replacing in gen#(s(x)), but non-replacing in both if3#(false, x, y) and if1#(le(s(x), 10), s(x))
Summary
Removed Dependency Pairs | Added Dependency Pairs |
---|
if3#(false, x, y) → gen#(s(x)) | if3#(false, x, y) → if1#(le(s(x), 10), s(x)) |
gen#(s(x)) → if1#(le(s(x), 10), s(x)) | |
Problem 4: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
times#(s(x), y) | → | times#(x, y) |
Rewrite Rules
table | → | gen(s(0)) | | gen(x) | → | if1(le(x, 10), x) |
if1(false, x) | → | nil | | if1(true, x) | → | if2(x, x) |
if2(x, y) | → | if3(le(y, 10), x, y) | | if3(true, x, y) | → | cons(entry(x, y, times(x, y)), if2(x, s(y))) |
if3(false, x, y) | → | gen(s(x)) | | le(0, y) | → | true |
le(s(x), 0) | → | false | | le(s(x), s(y)) | → | le(x, y) |
plus(0, y) | → | y | | plus(s(x), y) | → | s(plus(x, y)) |
times(0, y) | → | 0 | | times(s(x), y) | → | plus(y, times(x, y)) |
10 | → | s(s(s(s(s(s(s(s(s(s(0)))))))))) |
Original Signature
Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
times#(s(x), y) | → | times#(x, y) |
Problem 5: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
le#(s(x), s(y)) | → | le#(x, y) |
Rewrite Rules
table | → | gen(s(0)) | | gen(x) | → | if1(le(x, 10), x) |
if1(false, x) | → | nil | | if1(true, x) | → | if2(x, x) |
if2(x, y) | → | if3(le(y, 10), x, y) | | if3(true, x, y) | → | cons(entry(x, y, times(x, y)), if2(x, s(y))) |
if3(false, x, y) | → | gen(s(x)) | | le(0, y) | → | true |
le(s(x), 0) | → | false | | le(s(x), s(y)) | → | le(x, y) |
plus(0, y) | → | y | | plus(s(x), y) | → | s(plus(x, y)) |
times(0, y) | → | 0 | | times(s(x), y) | → | plus(y, times(x, y)) |
10 | → | s(s(s(s(s(s(s(s(s(s(0)))))))))) |
Original Signature
Termination of terms over the following signature is verified: plus, gen, if3, true, if1, table, if2, 10, 0, s, le, times, entry, false, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
le#(s(x), s(y)) | → | le#(x, y) |