TIMEOUT

The TRS could not be proven terminating. The proof attempt took 60001 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (67ms).
 | – Problem 2 was processed with processor SubtermCriterion (1ms).
 | – Problem 3 was processed with processor SubtermCriterion (0ms).
 | – Problem 4 was processed with processor BackwardInstantiation (2ms).
 |    | – Problem 6 remains open; application of the following processors failed [ForwardInstantiation (1ms), Propagation (1ms), ForwardNarrowing (1ms), BackwardInstantiation (1ms), ForwardInstantiation (1ms), Propagation (3ms)].
 | – Problem 5 was processed with processor SubtermCriterion (0ms).

The following open problems remain:



Open Dependency Pair Problem 4

Dependency Pairs

if#(true, x, s(y), c) → help#(x, s(y), plus(c, s(y)))help#(x, s(y), c) → if#(le(c, x), x, s(y), c)

Rewrite Rules

le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)minus(x, 0) → x
minus(0, s(y)) → 0minus(s(x), s(y)) → minus(x, y)
plus(x, 0) → xplus(x, s(y)) → s(plus(x, y))
mod(s(x), 0) → 0mod(x, s(y)) → help(x, s(y), 0)
help(x, s(y), c) → if(le(c, x), x, s(y), c)if(true, x, s(y), c) → help(x, s(y), plus(c, s(y)))
if(false, x, s(y), c) → minus(x, minus(c, s(y)))

Original Signature

Termination of terms over the following signature is verified: plus, help, minus, 0, s, le, if, mod, false, true


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

le#(s(x), s(y)) → le#(x, y)plus#(x, s(y)) → plus#(x, y)
mod#(x, s(y)) → help#(x, s(y), 0)minus#(s(x), s(y)) → minus#(x, y)
if#(true, x, s(y), c) → help#(x, s(y), plus(c, s(y)))if#(false, x, s(y), c) → minus#(x, minus(c, s(y)))
help#(x, s(y), c) → if#(le(c, x), x, s(y), c)if#(false, x, s(y), c) → minus#(c, s(y))
help#(x, s(y), c) → le#(c, x)if#(true, x, s(y), c) → plus#(c, s(y))

Rewrite Rules

le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)minus(x, 0) → x
minus(0, s(y)) → 0minus(s(x), s(y)) → minus(x, y)
plus(x, 0) → xplus(x, s(y)) → s(plus(x, y))
mod(s(x), 0) → 0mod(x, s(y)) → help(x, s(y), 0)
help(x, s(y), c) → if(le(c, x), x, s(y), c)if(true, x, s(y), c) → help(x, s(y), plus(c, s(y)))
if(false, x, s(y), c) → minus(x, minus(c, s(y)))

Original Signature

Termination of terms over the following signature is verified: plus, help, 0, minus, le, s, if, mod, true, false

Strategy


The following SCCs where found

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

if#(true, x, s(y), c) → help#(x, s(y), plus(c, s(y)))help#(x, s(y), c) → if#(le(c, x), x, s(y), c)

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

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

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)minus(x, 0) → x
minus(0, s(y)) → 0minus(s(x), s(y)) → minus(x, y)
plus(x, 0) → xplus(x, s(y)) → s(plus(x, y))
mod(s(x), 0) → 0mod(x, s(y)) → help(x, s(y), 0)
help(x, s(y), c) → if(le(c, x), x, s(y), c)if(true, x, s(y), c) → help(x, s(y), plus(c, s(y)))
if(false, x, s(y), c) → minus(x, minus(c, s(y)))

Original Signature

Termination of terms over the following signature is verified: plus, help, 0, minus, le, s, if, mod, true, false

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)minus(x, 0) → x
minus(0, s(y)) → 0minus(s(x), s(y)) → minus(x, y)
plus(x, 0) → xplus(x, s(y)) → s(plus(x, y))
mod(s(x), 0) → 0mod(x, s(y)) → help(x, s(y), 0)
help(x, s(y), c) → if(le(c, x), x, s(y), c)if(true, x, s(y), c) → help(x, s(y), plus(c, s(y)))
if(false, x, s(y), c) → minus(x, minus(c, s(y)))

Original Signature

Termination of terms over the following signature is verified: plus, help, 0, minus, le, s, if, mod, true, false

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 4: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

if#(true, x, s(y), c) → help#(x, s(y), plus(c, s(y)))help#(x, s(y), c) → if#(le(c, x), x, s(y), c)

Rewrite Rules

le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)minus(x, 0) → x
minus(0, s(y)) → 0minus(s(x), s(y)) → minus(x, y)
plus(x, 0) → xplus(x, s(y)) → s(plus(x, y))
mod(s(x), 0) → 0mod(x, s(y)) → help(x, s(y), 0)
help(x, s(y), c) → if(le(c, x), x, s(y), c)if(true, x, s(y), c) → help(x, s(y), plus(c, s(y)))
if(false, x, s(y), c) → minus(x, minus(c, s(y)))

Original Signature

Termination of terms over the following signature is verified: plus, help, 0, minus, le, s, if, mod, true, false

Strategy


Instantiation

For all potential predecessors l → r of the rule help#(x, s(y), c) → if#(le(c, x), x, s(y), c) on dependency pair chains it holds that: Thus, help#(x, s(y), c) → if#(le(c, x), x, s(y), c) is replaced by instances determined through the above matching. These instances are:
help#(_x, s(_y), plus(_c, s(_y))) → if#(le(plus(_c, s(_y)), _x), _x, s(_y), plus(_c, s(_y)))

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

le(0, y) → truele(s(x), 0) → false
le(s(x), s(y)) → le(x, y)minus(x, 0) → x
minus(0, s(y)) → 0minus(s(x), s(y)) → minus(x, y)
plus(x, 0) → xplus(x, s(y)) → s(plus(x, y))
mod(s(x), 0) → 0mod(x, s(y)) → help(x, s(y), 0)
help(x, s(y), c) → if(le(c, x), x, s(y), c)if(true, x, s(y), c) → help(x, s(y), plus(c, s(y)))
if(false, x, s(y), c) → minus(x, minus(c, s(y)))

Original Signature

Termination of terms over the following signature is verified: plus, help, 0, minus, le, s, if, mod, true, false

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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