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

The following open problems remain:



Open Dependency Pair Problem 3

Dependency Pairs

ifTimes#(false, x, y, z, u) → timesIter#(x, y, u)timesIter#(x, y, z) → ifTimes#(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))

Rewrite Rules

inc(s(x)) → s(inc(x))inc(0) → s(0)
plus(x, y) → ifPlus(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus(false, x, y, z) → plus(x, z)
ifPlus(true, x, y, z) → yminus(s(x), s(y)) → minus(x, y)
minus(0, x) → 0minus(x, 0) → x
minus(x, x) → 0eq(s(x), s(y)) → eq(x, y)
eq(0, s(x)) → falseeq(s(x), 0) → false
eq(0, 0) → trueeq(x, x) → true
times(x, y) → timesIter(x, y, 0)timesIter(x, y, z) → ifTimes(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))
ifTimes(true, x, y, z, u) → zifTimes(false, x, y, z, u) → timesIter(x, y, u)
f → gf → h

Original Signature

Termination of terms over the following signature is verified: f, g, plus, ifTimes, minus, true, h, ifPlus, timesIter, 0, inc, s, times, false, eq




Open Dependency Pair Problem 5

Dependency Pairs

plus#(x, y) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus#(false, x, y, z) → plus#(x, z)

Rewrite Rules

inc(s(x)) → s(inc(x))inc(0) → s(0)
plus(x, y) → ifPlus(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus(false, x, y, z) → plus(x, z)
ifPlus(true, x, y, z) → yminus(s(x), s(y)) → minus(x, y)
minus(0, x) → 0minus(x, 0) → x
minus(x, x) → 0eq(s(x), s(y)) → eq(x, y)
eq(0, s(x)) → falseeq(s(x), 0) → false
eq(0, 0) → trueeq(x, x) → true
times(x, y) → timesIter(x, y, 0)timesIter(x, y, z) → ifTimes(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))
ifTimes(true, x, y, z, u) → zifTimes(false, x, y, z, u) → timesIter(x, y, u)
f → gf → h

Original Signature

Termination of terms over the following signature is verified: f, g, plus, ifTimes, minus, true, h, ifPlus, timesIter, 0, inc, s, times, false, eq


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

plus#(x, y) → minus#(x, s(0))plus#(x, y) → eq#(x, 0)
ifTimes#(false, x, y, z, u) → timesIter#(x, y, u)timesIter#(x, y, z) → plus#(y, z)
plus#(x, y) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x))timesIter#(x, y, z) → minus#(x, s(0))
ifPlus#(false, x, y, z) → plus#(x, z)times#(x, y) → timesIter#(x, y, 0)
timesIter#(x, y, z) → eq#(x, 0)minus#(s(x), s(y)) → minus#(x, y)
inc#(s(x)) → inc#(x)eq#(s(x), s(y)) → eq#(x, y)
timesIter#(x, y, z) → ifTimes#(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))plus#(x, y) → inc#(x)

Rewrite Rules

inc(s(x)) → s(inc(x))inc(0) → s(0)
plus(x, y) → ifPlus(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus(false, x, y, z) → plus(x, z)
ifPlus(true, x, y, z) → yminus(s(x), s(y)) → minus(x, y)
minus(0, x) → 0minus(x, 0) → x
minus(x, x) → 0eq(s(x), s(y)) → eq(x, y)
eq(0, s(x)) → falseeq(s(x), 0) → false
eq(0, 0) → trueeq(x, x) → true
times(x, y) → timesIter(x, y, 0)timesIter(x, y, z) → ifTimes(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))
ifTimes(true, x, y, z, u) → zifTimes(false, x, y, z, u) → timesIter(x, y, u)
f → gf → h

Original Signature

Termination of terms over the following signature is verified: f, g, plus, ifTimes, minus, true, h, ifPlus, timesIter, 0, inc, s, times, false, eq

Strategy


The following SCCs where found

plus#(x, y) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus#(false, x, y, z) → plus#(x, z)

ifTimes#(false, x, y, z, u) → timesIter#(x, y, u)timesIter#(x, y, z) → ifTimes#(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))

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

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

inc#(s(x)) → inc#(x)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

inc#(s(x)) → inc#(x)

Rewrite Rules

inc(s(x)) → s(inc(x))inc(0) → s(0)
plus(x, y) → ifPlus(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus(false, x, y, z) → plus(x, z)
ifPlus(true, x, y, z) → yminus(s(x), s(y)) → minus(x, y)
minus(0, x) → 0minus(x, 0) → x
minus(x, x) → 0eq(s(x), s(y)) → eq(x, y)
eq(0, s(x)) → falseeq(s(x), 0) → false
eq(0, 0) → trueeq(x, x) → true
times(x, y) → timesIter(x, y, 0)timesIter(x, y, z) → ifTimes(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))
ifTimes(true, x, y, z, u) → zifTimes(false, x, y, z, u) → timesIter(x, y, u)
f → gf → h

Original Signature

Termination of terms over the following signature is verified: f, g, plus, ifTimes, minus, true, h, ifPlus, timesIter, 0, inc, s, times, false, eq

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

inc#(s(x)) → inc#(x)

Problem 3: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

ifTimes#(false, x, y, z, u) → timesIter#(x, y, u)timesIter#(x, y, z) → ifTimes#(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))

Rewrite Rules

inc(s(x)) → s(inc(x))inc(0) → s(0)
plus(x, y) → ifPlus(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus(false, x, y, z) → plus(x, z)
ifPlus(true, x, y, z) → yminus(s(x), s(y)) → minus(x, y)
minus(0, x) → 0minus(x, 0) → x
minus(x, x) → 0eq(s(x), s(y)) → eq(x, y)
eq(0, s(x)) → falseeq(s(x), 0) → false
eq(0, 0) → trueeq(x, x) → true
times(x, y) → timesIter(x, y, 0)timesIter(x, y, z) → ifTimes(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))
ifTimes(true, x, y, z, u) → zifTimes(false, x, y, z, u) → timesIter(x, y, u)
f → gf → h

Original Signature

Termination of terms over the following signature is verified: f, g, plus, ifTimes, minus, true, h, ifPlus, timesIter, 0, inc, s, times, false, eq

Strategy


Instantiation

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

Problem 7: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

ifTimes#(false, x, y, z, u) → timesIter#(x, y, u)timesIter#(_x, _y, _u) → ifTimes#(eq(_x, 0), minus(_x, s(0)), _y, _u, plus(_y, _u))

Rewrite Rules

inc(s(x)) → s(inc(x))inc(0) → s(0)
plus(x, y) → ifPlus(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus(false, x, y, z) → plus(x, z)
ifPlus(true, x, y, z) → yminus(s(x), s(y)) → minus(x, y)
minus(0, x) → 0minus(x, 0) → x
minus(x, x) → 0eq(s(x), s(y)) → eq(x, y)
eq(0, s(x)) → falseeq(s(x), 0) → false
eq(0, 0) → trueeq(x, x) → true
times(x, y) → timesIter(x, y, 0)timesIter(x, y, z) → ifTimes(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))
ifTimes(true, x, y, z, u) → zifTimes(false, x, y, z, u) → timesIter(x, y, u)
f → gf → h

Original Signature

Termination of terms over the following signature is verified: f, g, plus, ifTimes, minus, true, h, ifPlus, timesIter, 0, inc, s, times, false, eq

Strategy


Instantiation

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

Problem 9: Propagation



Dependency Pair Problem

Dependency Pairs

ifTimes#(false, x, y, z, u) → timesIter#(x, y, u)timesIter#(x, y, u) → ifTimes#(eq(x, 0), minus(x, s(0)), y, u, plus(y, u))

Rewrite Rules

inc(s(x)) → s(inc(x))inc(0) → s(0)
plus(x, y) → ifPlus(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus(false, x, y, z) → plus(x, z)
ifPlus(true, x, y, z) → yminus(s(x), s(y)) → minus(x, y)
minus(0, x) → 0minus(x, 0) → x
minus(x, x) → 0eq(s(x), s(y)) → eq(x, y)
eq(0, s(x)) → falseeq(s(x), 0) → false
eq(0, 0) → trueeq(x, x) → true
times(x, y) → timesIter(x, y, 0)timesIter(x, y, z) → ifTimes(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))
ifTimes(true, x, y, z, u) → zifTimes(false, x, y, z, u) → timesIter(x, y, u)
f → gf → h

Original Signature

Termination of terms over the following signature is verified: f, g, plus, ifTimes, minus, true, h, ifPlus, timesIter, 0, inc, s, times, false, eq

Strategy


The dependency pairs ifTimes#(false, x, y, z, u) → timesIter#(x, y, u) and timesIter#(x, y, u) → ifTimes#(eq(x, 0), minus(x, s(0)), y, u, plus(y, u)) are consolidated into the rule ifTimes#(false, x, y, z, u) → ifTimes#(eq(x, 0), minus(x, s(0)), y, u, plus(y, u)) .

This is possible as

The dependency pairs ifTimes#(false, x, y, z, u) → timesIter#(x, y, u) and timesIter#(x, y, u) → ifTimes#(eq(x, 0), minus(x, s(0)), y, u, plus(y, u)) are consolidated into the rule ifTimes#(false, x, y, z, u) → ifTimes#(eq(x, 0), minus(x, s(0)), y, u, plus(y, u)) .

This is possible as


Summary

Removed Dependency PairsAdded Dependency Pairs
ifTimes#(false, x, y, z, u) → timesIter#(x, y, u)ifTimes#(false, x, y, z, u) → ifTimes#(eq(x, 0), minus(x, s(0)), y, u, plus(y, u))
timesIter#(x, y, u) → ifTimes#(eq(x, 0), minus(x, s(0)), y, u, plus(y, u)) 

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

inc(s(x)) → s(inc(x))inc(0) → s(0)
plus(x, y) → ifPlus(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus(false, x, y, z) → plus(x, z)
ifPlus(true, x, y, z) → yminus(s(x), s(y)) → minus(x, y)
minus(0, x) → 0minus(x, 0) → x
minus(x, x) → 0eq(s(x), s(y)) → eq(x, y)
eq(0, s(x)) → falseeq(s(x), 0) → false
eq(0, 0) → trueeq(x, x) → true
times(x, y) → timesIter(x, y, 0)timesIter(x, y, z) → ifTimes(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))
ifTimes(true, x, y, z, u) → zifTimes(false, x, y, z, u) → timesIter(x, y, u)
f → gf → h

Original Signature

Termination of terms over the following signature is verified: f, g, plus, ifTimes, minus, true, h, ifPlus, timesIter, 0, inc, s, times, false, eq

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 5: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

plus#(x, y) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus#(false, x, y, z) → plus#(x, z)

Rewrite Rules

inc(s(x)) → s(inc(x))inc(0) → s(0)
plus(x, y) → ifPlus(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus(false, x, y, z) → plus(x, z)
ifPlus(true, x, y, z) → yminus(s(x), s(y)) → minus(x, y)
minus(0, x) → 0minus(x, 0) → x
minus(x, x) → 0eq(s(x), s(y)) → eq(x, y)
eq(0, s(x)) → falseeq(s(x), 0) → false
eq(0, 0) → trueeq(x, x) → true
times(x, y) → timesIter(x, y, 0)timesIter(x, y, z) → ifTimes(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))
ifTimes(true, x, y, z, u) → zifTimes(false, x, y, z, u) → timesIter(x, y, u)
f → gf → h

Original Signature

Termination of terms over the following signature is verified: f, g, plus, ifTimes, minus, true, h, ifPlus, timesIter, 0, inc, s, times, false, eq

Strategy


Instantiation

For all potential predecessors l → r of the rule plus#(x, y) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x)) on dependency pair chains it holds that: Thus, plus#(x, y) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x)) is replaced by instances determined through the above matching. These instances are:
plus#(_x, _z) → ifPlus#(eq(_x, 0), minus(_x, s(0)), _x, inc(_x))

Problem 8: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

plus#(_x, _z) → ifPlus#(eq(_x, 0), minus(_x, s(0)), _x, inc(_x))ifPlus#(false, x, y, z) → plus#(x, z)

Rewrite Rules

inc(s(x)) → s(inc(x))inc(0) → s(0)
plus(x, y) → ifPlus(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus(false, x, y, z) → plus(x, z)
ifPlus(true, x, y, z) → yminus(s(x), s(y)) → minus(x, y)
minus(0, x) → 0minus(x, 0) → x
minus(x, x) → 0eq(s(x), s(y)) → eq(x, y)
eq(0, s(x)) → falseeq(s(x), 0) → false
eq(0, 0) → trueeq(x, x) → true
times(x, y) → timesIter(x, y, 0)timesIter(x, y, z) → ifTimes(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))
ifTimes(true, x, y, z, u) → zifTimes(false, x, y, z, u) → timesIter(x, y, u)
f → gf → h

Original Signature

Termination of terms over the following signature is verified: f, g, plus, ifTimes, minus, true, h, ifPlus, timesIter, 0, inc, s, times, false, eq

Strategy


Instantiation

For all potential predecessors l → r of the rule plus#(_x, _z) → ifPlus#(eq(_x, 0), minus(_x, s(0)), _x, inc(_x)) on dependency pair chains it holds that: Thus, plus#(_x, _z) → ifPlus#(eq(_x, 0), minus(_x, s(0)), _x, inc(_x)) is replaced by instances determined through the above matching. These instances are:
plus#(x, z) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x))

Problem 10: Propagation



Dependency Pair Problem

Dependency Pairs

plus#(x, z) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus#(false, x, y, z) → plus#(x, z)

Rewrite Rules

inc(s(x)) → s(inc(x))inc(0) → s(0)
plus(x, y) → ifPlus(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus(false, x, y, z) → plus(x, z)
ifPlus(true, x, y, z) → yminus(s(x), s(y)) → minus(x, y)
minus(0, x) → 0minus(x, 0) → x
minus(x, x) → 0eq(s(x), s(y)) → eq(x, y)
eq(0, s(x)) → falseeq(s(x), 0) → false
eq(0, 0) → trueeq(x, x) → true
times(x, y) → timesIter(x, y, 0)timesIter(x, y, z) → ifTimes(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))
ifTimes(true, x, y, z, u) → zifTimes(false, x, y, z, u) → timesIter(x, y, u)
f → gf → h

Original Signature

Termination of terms over the following signature is verified: f, g, plus, ifTimes, minus, true, h, ifPlus, timesIter, 0, inc, s, times, false, eq

Strategy


The dependency pairs ifPlus#(false, x, y, z) → plus#(x, z) and plus#(x, z) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x)) are consolidated into the rule ifPlus#(false, x, y, z) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x)) .

This is possible as

The dependency pairs ifPlus#(false, x, y, z) → plus#(x, z) and plus#(x, z) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x)) are consolidated into the rule ifPlus#(false, x, y, z) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x)) .

This is possible as


Summary

Removed Dependency PairsAdded Dependency Pairs
plus#(x, z) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus#(false, x, y, z) → ifPlus#(eq(x, 0), minus(x, s(0)), x, inc(x))
ifPlus#(false, x, y, z) → plus#(x, z) 

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

inc(s(x)) → s(inc(x))inc(0) → s(0)
plus(x, y) → ifPlus(eq(x, 0), minus(x, s(0)), x, inc(x))ifPlus(false, x, y, z) → plus(x, z)
ifPlus(true, x, y, z) → yminus(s(x), s(y)) → minus(x, y)
minus(0, x) → 0minus(x, 0) → x
minus(x, x) → 0eq(s(x), s(y)) → eq(x, y)
eq(0, s(x)) → falseeq(s(x), 0) → false
eq(0, 0) → trueeq(x, x) → true
times(x, y) → timesIter(x, y, 0)timesIter(x, y, z) → ifTimes(eq(x, 0), minus(x, s(0)), y, z, plus(y, z))
ifTimes(true, x, y, z, u) → zifTimes(false, x, y, z, u) → timesIter(x, y, u)
f → gf → h

Original Signature

Termination of terms over the following signature is verified: f, g, plus, ifTimes, minus, true, h, ifPlus, timesIter, 0, inc, s, times, false, eq

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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