TIMEOUT

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

The following DP Processors were used


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

The following open problems remain:



Open Dependency Pair Problem 2

Dependency Pairs

help#(x, y) → ifb#(lt(y, x), x, y)ifb#(true, x, y) → help#(half(x), s(y))

Rewrite Rules

lt(0, s(x)) → truelt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)logarithm(x) → ifa(lt(0, x), x)
ifa(true, x) → help(x, 1)ifa(false, x) → logZeroError
help(x, y) → ifb(lt(y, x), x, y)ifb(true, x, y) → help(half(x), s(y))
ifb(false, x, y) → yhalf(0) → 0
half(s(0)) → 0half(s(s(x))) → s(half(x))

Original Signature

Termination of terms over the following signature is verified: 1, help, 0, s, logarithm, half, false, true, lt, logZeroError, ifb, ifa


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

logarithm#(x) → lt#(0, x)logarithm#(x) → ifa#(lt(0, x), x)
ifa#(true, x) → help#(x, 1)half#(s(s(x))) → half#(x)
ifb#(true, x, y) → half#(x)lt#(s(x), s(y)) → lt#(x, y)
help#(x, y) → ifb#(lt(y, x), x, y)help#(x, y) → lt#(y, x)
ifb#(true, x, y) → help#(half(x), s(y))

Rewrite Rules

lt(0, s(x)) → truelt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)logarithm(x) → ifa(lt(0, x), x)
ifa(true, x) → help(x, 1)ifa(false, x) → logZeroError
help(x, y) → ifb(lt(y, x), x, y)ifb(true, x, y) → help(half(x), s(y))
ifb(false, x, y) → yhalf(0) → 0
half(s(0)) → 0half(s(s(x))) → s(half(x))

Original Signature

Termination of terms over the following signature is verified: help, 1, 0, s, logarithm, true, false, half, lt, logZeroError, ifb, ifa

Strategy


The following SCCs where found

help#(x, y) → ifb#(lt(y, x), x, y)ifb#(true, x, y) → help#(half(x), s(y))

half#(s(s(x))) → half#(x)

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

Problem 2: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

help#(x, y) → ifb#(lt(y, x), x, y)ifb#(true, x, y) → help#(half(x), s(y))

Rewrite Rules

lt(0, s(x)) → truelt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)logarithm(x) → ifa(lt(0, x), x)
ifa(true, x) → help(x, 1)ifa(false, x) → logZeroError
help(x, y) → ifb(lt(y, x), x, y)ifb(true, x, y) → help(half(x), s(y))
ifb(false, x, y) → yhalf(0) → 0
half(s(0)) → 0half(s(s(x))) → s(half(x))

Original Signature

Termination of terms over the following signature is verified: help, 1, 0, s, logarithm, true, false, half, lt, logZeroError, ifb, ifa

Strategy


Instantiation

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

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

half#(s(s(x))) → half#(x)

Rewrite Rules

lt(0, s(x)) → truelt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)logarithm(x) → ifa(lt(0, x), x)
ifa(true, x) → help(x, 1)ifa(false, x) → logZeroError
help(x, y) → ifb(lt(y, x), x, y)ifb(true, x, y) → help(half(x), s(y))
ifb(false, x, y) → yhalf(0) → 0
half(s(0)) → 0half(s(s(x))) → s(half(x))

Original Signature

Termination of terms over the following signature is verified: help, 1, 0, s, logarithm, true, false, half, lt, logZeroError, ifb, ifa

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

half#(s(s(x))) → half#(x)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

lt(0, s(x)) → truelt(x, 0) → false
lt(s(x), s(y)) → lt(x, y)logarithm(x) → ifa(lt(0, x), x)
ifa(true, x) → help(x, 1)ifa(false, x) → logZeroError
help(x, y) → ifb(lt(y, x), x, y)ifb(true, x, y) → help(half(x), s(y))
ifb(false, x, y) → yhalf(0) → 0
half(s(0)) → 0half(s(s(x))) → s(half(x))

Original Signature

Termination of terms over the following signature is verified: help, 1, 0, s, logarithm, true, false, half, lt, logZeroError, ifb, ifa

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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