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 (64ms).
 | – Problem 2 was processed with processor BackwardInstantiation (2ms).
 |    | – Problem 5 was processed with processor BackwardInstantiation (4ms).
 |    |    | – Problem 6 was processed with processor Propagation (2ms).
 |    |    |    | – Problem 7 remains open; application of the following processors failed [ForwardNarrowing (0ms), BackwardInstantiation (1ms), ForwardInstantiation (2ms), Propagation (0ms)].
 | – Problem 3 was processed with processor SubtermCriterion (0ms).
 | – Problem 4 was processed with processor SubtermCriterion (1ms).

The following open problems remain:



Open Dependency Pair Problem 2

Dependency Pairs

cond#(true, x, y) → minus#(x, s(y))minus#(x, y) → cond#(equal(min(x, y), y), x, y)

Rewrite Rules

minus(x, y) → cond(equal(min(x, y), y), x, y)cond(true, x, y) → s(minus(x, s(y)))
min(0, v) → 0min(u, 0) → 0
min(s(u), s(v)) → s(min(u, v))equal(0, 0) → true
equal(s(x), 0) → falseequal(0, s(y)) → false
equal(s(x), s(y)) → equal(x, y)

Original Signature

Termination of terms over the following signature is verified: min, 0, minus, s, false, true, equal, cond


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

minus#(x, y) → min#(x, y)cond#(true, x, y) → minus#(x, s(y))
minus#(x, y) → equal#(min(x, y), y)equal#(s(x), s(y)) → equal#(x, y)
minus#(x, y) → cond#(equal(min(x, y), y), x, y)min#(s(u), s(v)) → min#(u, v)

Rewrite Rules

minus(x, y) → cond(equal(min(x, y), y), x, y)cond(true, x, y) → s(minus(x, s(y)))
min(0, v) → 0min(u, 0) → 0
min(s(u), s(v)) → s(min(u, v))equal(0, 0) → true
equal(s(x), 0) → falseequal(0, s(y)) → false
equal(s(x), s(y)) → equal(x, y)

Original Signature

Termination of terms over the following signature is verified: min, minus, 0, s, true, false, equal, cond

Strategy


The following SCCs where found

equal#(s(x), s(y)) → equal#(x, y)

cond#(true, x, y) → minus#(x, s(y))minus#(x, y) → cond#(equal(min(x, y), y), x, y)

min#(s(u), s(v)) → min#(u, v)

Problem 2: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

cond#(true, x, y) → minus#(x, s(y))minus#(x, y) → cond#(equal(min(x, y), y), x, y)

Rewrite Rules

minus(x, y) → cond(equal(min(x, y), y), x, y)cond(true, x, y) → s(minus(x, s(y)))
min(0, v) → 0min(u, 0) → 0
min(s(u), s(v)) → s(min(u, v))equal(0, 0) → true
equal(s(x), 0) → falseequal(0, s(y)) → false
equal(s(x), s(y)) → equal(x, y)

Original Signature

Termination of terms over the following signature is verified: min, minus, 0, s, true, false, equal, cond

Strategy


Instantiation

For all potential predecessors l → r of the rule minus#(x, y) → cond#(equal(min(x, y), y), x, y) on dependency pair chains it holds that: Thus, minus#(x, y) → cond#(equal(min(x, y), y), x, y) is replaced by instances determined through the above matching. These instances are:
minus#(_x, s(_y)) → cond#(equal(min(_x, s(_y)), s(_y)), _x, s(_y))

Problem 5: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

cond#(true, x, y) → minus#(x, s(y))minus#(_x, s(_y)) → cond#(equal(min(_x, s(_y)), s(_y)), _x, s(_y))

Rewrite Rules

minus(x, y) → cond(equal(min(x, y), y), x, y)cond(true, x, y) → s(minus(x, s(y)))
min(0, v) → 0min(u, 0) → 0
min(s(u), s(v)) → s(min(u, v))equal(0, 0) → true
equal(s(x), 0) → falseequal(0, s(y)) → false
equal(s(x), s(y)) → equal(x, y)

Original Signature

Termination of terms over the following signature is verified: min, 0, minus, s, false, true, equal, cond

Strategy


Instantiation

For all potential predecessors l → r of the rule minus#(_x, s(_y)) → cond#(equal(min(_x, s(_y)), s(_y)), _x, s(_y)) on dependency pair chains it holds that: Thus, minus#(_x, s(_y)) → cond#(equal(min(_x, s(_y)), s(_y)), _x, s(_y)) is replaced by instances determined through the above matching. These instances are:
minus#(x, s(y)) → cond#(equal(min(x, s(y)), s(y)), x, s(y))

Problem 6: Propagation



Dependency Pair Problem

Dependency Pairs

cond#(true, x, y) → minus#(x, s(y))minus#(x, s(y)) → cond#(equal(min(x, s(y)), s(y)), x, s(y))

Rewrite Rules

minus(x, y) → cond(equal(min(x, y), y), x, y)cond(true, x, y) → s(minus(x, s(y)))
min(0, v) → 0min(u, 0) → 0
min(s(u), s(v)) → s(min(u, v))equal(0, 0) → true
equal(s(x), 0) → falseequal(0, s(y)) → false
equal(s(x), s(y)) → equal(x, y)

Original Signature

Termination of terms over the following signature is verified: min, minus, 0, s, true, false, equal, cond

Strategy


The dependency pairs cond#(true, x, y) → minus#(x, s(y)) and minus#(x, s(y)) → cond#(equal(min(x, s(y)), s(y)), x, s(y)) are consolidated into the rule cond#(true, x, y) → cond#(equal(min(x, s(y)), s(y)), x, s(y)) .

This is possible as

The dependency pairs cond#(true, x, y) → minus#(x, s(y)) and minus#(x, s(y)) → cond#(equal(min(x, s(y)), s(y)), x, s(y)) are consolidated into the rule cond#(true, x, y) → cond#(equal(min(x, s(y)), s(y)), x, s(y)) .

This is possible as


Summary

Removed Dependency PairsAdded Dependency Pairs
cond#(true, x, y) → minus#(x, s(y))cond#(true, x, y) → cond#(equal(min(x, s(y)), s(y)), x, s(y))
minus#(x, s(y)) → cond#(equal(min(x, s(y)), s(y)), x, s(y)) 

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

min#(s(u), s(v)) → min#(u, v)

Rewrite Rules

minus(x, y) → cond(equal(min(x, y), y), x, y)cond(true, x, y) → s(minus(x, s(y)))
min(0, v) → 0min(u, 0) → 0
min(s(u), s(v)) → s(min(u, v))equal(0, 0) → true
equal(s(x), 0) → falseequal(0, s(y)) → false
equal(s(x), s(y)) → equal(x, y)

Original Signature

Termination of terms over the following signature is verified: min, minus, 0, s, true, false, equal, cond

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

min#(s(u), s(v)) → min#(u, v)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

equal#(s(x), s(y)) → equal#(x, y)

Rewrite Rules

minus(x, y) → cond(equal(min(x, y), y), x, y)cond(true, x, y) → s(minus(x, s(y)))
min(0, v) → 0min(u, 0) → 0
min(s(u), s(v)) → s(min(u, v))equal(0, 0) → true
equal(s(x), 0) → falseequal(0, s(y)) → false
equal(s(x), s(y)) → equal(x, y)

Original Signature

Termination of terms over the following signature is verified: min, minus, 0, s, true, false, equal, cond

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

equal#(s(x), s(y)) → equal#(x, y)