TIMEOUT

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (880ms).
 | – Problem 2 was processed with processor SubtermCriterion (4ms).
 | – Problem 3 was processed with processor SubtermCriterion (1ms).
 | – Problem 4 was processed with processor SubtermCriterion (1ms).
 | – Problem 5 was processed with processor ForwardNarrowing (5ms).
 |    | – Problem 10 was processed with processor ForwardNarrowing (8ms).
 |    |    | – Problem 11 was processed with processor ForwardNarrowing (6ms).
 |    |    |    | – Problem 12 was processed with processor ForwardNarrowing (7ms).
 |    |    |    |    | – Problem 13 was processed with processor ForwardNarrowing (8ms).
 |    |    |    |    |    | – Problem 14 was processed with processor ForwardNarrowing (2ms).
 |    |    |    |    |    |    | – Problem 15 was processed with processor ForwardNarrowing (9ms).
 |    |    |    |    |    |    |    | – Problem 16 was processed with processor ForwardNarrowing (11ms).
 |    |    |    |    |    |    |    |    | – Problem 17 was processed with processor ForwardNarrowing (10ms).
 |    |    |    |    |    |    |    |    |    | – Problem 18 was processed with processor ForwardNarrowing (10ms).
 |    |    |    |    |    |    |    |    |    |    | – Problem 19 was processed with processor ForwardNarrowing (17ms).
 |    |    |    |    |    |    |    |    |    |    |    | – Problem 20 was processed with processor ForwardNarrowing (26ms).
 |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 21 was processed with processor ForwardNarrowing (20ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 22 was processed with processor ForwardNarrowing (6ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 23 was processed with processor ForwardNarrowing (24ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 24 was processed with processor ForwardNarrowing (21ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 25 was processed with processor ForwardNarrowing (16ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 26 was processed with processor ForwardNarrowing (14ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 27 was processed with processor ForwardNarrowing (28ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 28 was processed with processor ForwardNarrowing (29ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 29 was processed with processor ForwardNarrowing (98ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 30 remains open; application of the following processors failed [ForwardNarrowing (76ms), ForwardNarrowing (57ms), ForwardNarrowing (96ms), ForwardNarrowing (69ms), ForwardNarrowing (80ms), ForwardNarrowing (51ms), ForwardNarrowing (97ms), ForwardNarrowing (98ms), ForwardNarrowing (98ms), ForwardNarrowing (73ms), ForwardNarrowing (98ms), ForwardNarrowing (105ms), ForwardNarrowing (73ms), ForwardNarrowing (108ms), ForwardNarrowing (67ms), ForwardNarrowing (123ms), ForwardNarrowing (timeout)].
 | – Problem 6 was processed with processor SubtermCriterion (1ms).
 | – Problem 7 was processed with processor SubtermCriterion (1ms).
 | – Problem 8 was processed with processor SubtermCriterion (3ms).
 | – Problem 9 was processed with processor SubtermCriterion (0ms).

The following open problems remain:



Open Dependency Pair Problem 5

Dependency Pairs

top#(mark(X))top#(proper(X))top#(ok(X))top#(active(X))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, top, cons


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

active#(pairs)cons#(0, incr(odds))proper#(cons(X1, X2))proper#(X1)
proper#(head(X))proper#(X)top#(ok(X))top#(active(X))
proper#(tail(X))proper#(X)incr#(ok(X))incr#(X)
cons#(mark(X1), X2)cons#(X1, X2)active#(pairs)incr#(odds)
cons#(ok(X1), ok(X2))cons#(X1, X2)proper#(incr(X))incr#(proper(X))
active#(nats)cons#(0, incr(nats))top#(ok(X))active#(X)
active#(cons(X1, X2))cons#(active(X1), X2)tail#(ok(X))tail#(X)
active#(tail(X))tail#(active(X))proper#(incr(X))proper#(X)
incr#(mark(X))incr#(X)active#(head(X))active#(X)
top#(mark(X))proper#(X)top#(mark(X))top#(proper(X))
active#(incr(X))active#(X)proper#(cons(X1, X2))proper#(X2)
active#(incr(cons(X, XS)))cons#(s(X), incr(XS))head#(mark(X))head#(X)
active#(incr(X))incr#(active(X))active#(head(X))head#(active(X))
active#(nats)incr#(nats)tail#(mark(X))tail#(X)
active#(s(X))s#(active(X))s#(ok(X))s#(X)
active#(incr(cons(X, XS)))s#(X)s#(mark(X))s#(X)
head#(ok(X))head#(X)proper#(s(X))proper#(X)
proper#(tail(X))tail#(proper(X))proper#(head(X))head#(proper(X))
proper#(cons(X1, X2))cons#(proper(X1), proper(X2))active#(s(X))active#(X)
proper#(s(X))s#(proper(X))active#(tail(X))active#(X)
active#(odds)incr#(pairs)active#(incr(cons(X, XS)))incr#(XS)
active#(cons(X1, X2))active#(X1)

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


The following SCCs where found

cons#(mark(X1), X2) → cons#(X1, X2)cons#(ok(X1), ok(X2)) → cons#(X1, X2)

head#(ok(X)) → head#(X)head#(mark(X)) → head#(X)

active#(incr(X)) → active#(X)active#(s(X)) → active#(X)
active#(tail(X)) → active#(X)active#(head(X)) → active#(X)
active#(cons(X1, X2)) → active#(X1)

proper#(s(X)) → proper#(X)proper#(cons(X1, X2)) → proper#(X1)
proper#(head(X)) → proper#(X)proper#(cons(X1, X2)) → proper#(X2)
proper#(incr(X)) → proper#(X)proper#(tail(X)) → proper#(X)

tail#(ok(X)) → tail#(X)tail#(mark(X)) → tail#(X)

incr#(ok(X)) → incr#(X)incr#(mark(X)) → incr#(X)

top#(mark(X)) → top#(proper(X))top#(ok(X)) → top#(active(X))

s#(mark(X)) → s#(X)s#(ok(X)) → s#(X)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

active#(incr(X))active#(X)active#(s(X))active#(X)
active#(tail(X))active#(X)active#(head(X))active#(X)
active#(cons(X1, X2))active#(X1)

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

active#(incr(X))active#(X)active#(s(X))active#(X)
active#(tail(X))active#(X)active#(head(X))active#(X)
active#(cons(X1, X2))active#(X1)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

incr#(ok(X))incr#(X)incr#(mark(X))incr#(X)

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

incr#(ok(X))incr#(X)incr#(mark(X))incr#(X)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

cons#(mark(X1), X2)cons#(X1, X2)cons#(ok(X1), ok(X2))cons#(X1, X2)

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

cons#(mark(X1), X2)cons#(X1, X2)cons#(ok(X1), ok(X2))cons#(X1, X2)

Problem 5: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(X))top#(proper(X))top#(ok(X))top#(active(X))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


The right-hand side of the rule top#(mark(X)) → top#(proper(X)) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(ok(0)) 
top#(tail(proper(_x21))) 
top#(ok(nats)) 
top#(cons(proper(_x21), proper(_x22))) 
top#(s(proper(_x21))) 
top#(head(proper(_x21))) 
top#(ok(pairs)) 
top#(ok(odds)) 
top#(incr(proper(_x21))) 
Thus, the rule top#(mark(X)) → top#(proper(X)) is replaced by the following rules:
top#(mark(tail(_x21))) → top#(tail(proper(_x21)))top#(mark(nats)) → top#(ok(nats))
top#(mark(0)) → top#(ok(0))top#(mark(incr(_x21))) → top#(incr(proper(_x21)))
top#(mark(head(_x21))) → top#(head(proper(_x21)))top#(mark(odds)) → top#(ok(odds))
top#(mark(cons(_x21, _x22))) → top#(cons(proper(_x21), proper(_x22)))top#(mark(s(_x21))) → top#(s(proper(_x21)))
top#(mark(pairs)) → top#(ok(pairs))

Problem 10: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(tail(_x21)))top#(tail(proper(_x21)))top#(mark(nats))top#(ok(nats))
top#(mark(0))top#(ok(0))top#(ok(X))top#(active(X))
top#(mark(incr(_x21)))top#(incr(proper(_x21)))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(odds))top#(ok(odds))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, top, cons

Strategy


The right-hand side of the rule top#(mark(tail(_x21))) → top#(tail(proper(_x21))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(tail(ok(nats))) 
top#(tail(head(proper(_x41)))) 
top#(tail(incr(proper(_x41)))) 
top#(tail(ok(pairs))) 
top#(tail(tail(proper(_x41)))) 
top#(tail(ok(0))) 
top#(tail(cons(proper(_x41), proper(_x42)))) 
top#(tail(s(proper(_x41)))) 
top#(tail(ok(odds))) 
Thus, the rule top#(mark(tail(_x21))) → top#(tail(proper(_x21))) is replaced by the following rules:
top#(mark(tail(0))) → top#(tail(ok(0)))top#(mark(tail(odds))) → top#(tail(ok(odds)))
top#(mark(tail(pairs))) → top#(tail(ok(pairs)))top#(mark(tail(head(_x41)))) → top#(tail(head(proper(_x41))))
top#(mark(tail(s(_x41)))) → top#(tail(s(proper(_x41))))top#(mark(tail(nats))) → top#(tail(ok(nats)))
top#(mark(tail(incr(_x41)))) → top#(tail(incr(proper(_x41))))top#(mark(tail(cons(_x41, _x42)))) → top#(tail(cons(proper(_x41), proper(_x42))))
top#(mark(tail(tail(_x41)))) → top#(tail(tail(proper(_x41))))

Problem 11: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(nats))top#(ok(nats))top#(mark(0))top#(ok(0))
top#(mark(incr(_x21)))top#(incr(proper(_x21)))top#(ok(X))top#(active(X))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))
top#(mark(head(_x21)))top#(head(proper(_x21)))top#(mark(odds))top#(ok(odds))
top#(mark(tail(nats)))top#(tail(ok(nats)))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))
top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))top#(mark(tail(0)))top#(tail(ok(0)))
top#(mark(tail(odds)))top#(tail(ok(odds)))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(mark(pairs))top#(ok(pairs))top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


The right-hand side of the rule top#(mark(incr(_x21))) → top#(incr(proper(_x21))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(ok(pairs))) 
top#(incr(s(proper(_x41)))) 
top#(incr(ok(0))) 
top#(incr(tail(proper(_x41)))) 
top#(incr(incr(proper(_x41)))) 
top#(incr(ok(odds))) 
top#(incr(cons(proper(_x41), proper(_x42)))) 
top#(incr(ok(nats))) 
top#(incr(head(proper(_x41)))) 
Thus, the rule top#(mark(incr(_x21))) → top#(incr(proper(_x21))) is replaced by the following rules:
top#(mark(incr(odds))) → top#(incr(ok(odds)))top#(mark(incr(head(_x41)))) → top#(incr(head(proper(_x41))))
top#(mark(incr(pairs))) → top#(incr(ok(pairs)))top#(mark(incr(tail(_x41)))) → top#(incr(tail(proper(_x41))))
top#(mark(incr(s(_x41)))) → top#(incr(s(proper(_x41))))top#(mark(incr(0))) → top#(incr(ok(0)))
top#(mark(incr(nats))) → top#(incr(ok(nats)))top#(mark(incr(incr(_x41)))) → top#(incr(incr(proper(_x41))))
top#(mark(incr(cons(_x41, _x42)))) → top#(incr(cons(proper(_x41), proper(_x42))))

Problem 12: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(head(_x41))))top#(incr(head(proper(_x41))))top#(mark(0))top#(ok(0))
top#(ok(X))top#(active(X))top#(mark(incr(pairs)))top#(incr(ok(pairs)))
top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(odds))top#(ok(odds))top#(mark(incr(0)))top#(incr(ok(0)))
top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))
top#(mark(tail(0)))top#(tail(ok(0)))top#(mark(tail(odds)))top#(tail(ok(odds)))
top#(mark(tail(pairs)))top#(tail(ok(pairs)))top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))
top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))
top#(mark(nats))top#(ok(nats))top#(mark(incr(odds)))top#(incr(ok(odds)))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(tail(nats)))top#(tail(ok(nats)))
top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))
top#(mark(incr(nats)))top#(incr(ok(nats)))top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, top, cons

Strategy


The right-hand side of the rule top#(mark(incr(head(_x41)))) → top#(incr(head(proper(_x41)))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(head(tail(proper(_x51))))) 
top#(incr(head(head(proper(_x51))))) 
top#(incr(head(ok(nats)))) 
top#(incr(head(ok(0)))) 
top#(incr(head(incr(proper(_x51))))) 
top#(incr(head(ok(odds)))) 
top#(incr(head(ok(pairs)))) 
top#(incr(head(s(proper(_x51))))) 
top#(incr(head(cons(proper(_x51), proper(_x52))))) 
Thus, the rule top#(mark(incr(head(_x41)))) → top#(incr(head(proper(_x41)))) is replaced by the following rules:
top#(mark(incr(head(tail(_x51))))) → top#(incr(head(tail(proper(_x51)))))top#(mark(incr(head(incr(_x51))))) → top#(incr(head(incr(proper(_x51)))))
top#(mark(incr(head(odds)))) → top#(incr(head(ok(odds))))top#(mark(incr(head(head(_x51))))) → top#(incr(head(head(proper(_x51)))))
top#(mark(incr(head(s(_x51))))) → top#(incr(head(s(proper(_x51)))))top#(mark(incr(head(0)))) → top#(incr(head(ok(0))))
top#(mark(incr(head(pairs)))) → top#(incr(head(ok(pairs))))top#(mark(incr(head(cons(_x51, _x52))))) → top#(incr(head(cons(proper(_x51), proper(_x52)))))
top#(mark(incr(head(nats)))) → top#(incr(head(ok(nats))))

Problem 13: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(0))top#(ok(0))top#(ok(X))top#(active(X))
top#(mark(incr(pairs)))top#(incr(ok(pairs)))top#(mark(incr(head(incr(_x51)))))top#(incr(head(incr(proper(_x51)))))
top#(mark(head(_x21)))top#(head(proper(_x21)))top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))
top#(mark(odds))top#(ok(odds))top#(mark(incr(0)))top#(incr(ok(0)))
top#(mark(incr(head(s(_x51)))))top#(incr(head(s(proper(_x51)))))top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))
top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))
top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))top#(mark(tail(0)))top#(tail(ok(0)))
top#(mark(tail(odds)))top#(tail(ok(odds)))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))
top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))
top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))
top#(mark(nats))top#(ok(nats))top#(mark(incr(odds)))top#(incr(ok(odds)))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))
top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))top#(mark(tail(nats)))top#(tail(ok(nats)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))top#(mark(incr(head(0))))top#(incr(head(ok(0))))
top#(mark(incr(nats)))top#(incr(ok(nats)))top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


The right-hand side of the rule top#(ok(X)) → top#(active(X)) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(mark(cons(s(_x22), incr(_x21)))) 
top#(s(active(_x21))) 
top#(mark(_x21)) 
top#(mark(cons(0, incr(nats)))) 
top#(tail(active(_x21))) 
top#(cons(active(_x21), _x22)) 
top#(mark(cons(0, incr(odds)))) 
top#(incr(active(_x21))) 
top#(mark(_x22)) 
top#(head(active(_x21))) 
top#(mark(incr(pairs))) 
Thus, the rule top#(ok(X)) → top#(active(X)) is replaced by the following rules:
top#(ok(head(_x21))) → top#(head(active(_x21)))top#(ok(tail(_x21))) → top#(tail(active(_x21)))
top#(ok(s(_x21))) → top#(s(active(_x21)))top#(ok(incr(_x21))) → top#(incr(active(_x21)))
top#(ok(tail(cons(_x22, _x21)))) → top#(mark(_x21))top#(ok(head(cons(_x22, _x21)))) → top#(mark(_x22))
top#(ok(cons(_x21, _x22))) → top#(cons(active(_x21), _x22))top#(ok(incr(cons(_x22, _x21)))) → top#(mark(cons(s(_x22), incr(_x21))))
top#(ok(odds)) → top#(mark(incr(pairs)))top#(ok(nats)) → top#(mark(cons(0, incr(nats))))
top#(ok(pairs)) → top#(mark(cons(0, incr(odds))))

Problem 14: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(0))top#(ok(0))top#(ok(tail(_x21)))top#(tail(active(_x21)))
top#(mark(incr(head(incr(_x51)))))top#(incr(head(incr(proper(_x51)))))top#(mark(incr(pairs)))top#(incr(ok(pairs)))
top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(ok(incr(_x21)))top#(incr(active(_x21)))top#(mark(odds))top#(ok(odds))
top#(mark(incr(head(s(_x51)))))top#(incr(head(s(proper(_x51)))))top#(mark(incr(0)))top#(incr(ok(0)))
top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))
top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))
top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))top#(mark(tail(0)))top#(tail(ok(0)))
top#(mark(tail(odds)))top#(tail(ok(odds)))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(ok(nats))top#(mark(cons(0, incr(nats))))
top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))
top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))top#(mark(nats))top#(ok(nats))
top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))top#(mark(incr(odds)))top#(incr(ok(odds)))
top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(tail(nats)))top#(tail(ok(nats)))top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))
top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))
top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))top#(ok(odds))top#(mark(incr(pairs)))
top#(ok(pairs))top#(mark(cons(0, incr(odds))))top#(ok(head(_x21)))top#(head(active(_x21)))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(mark(incr(head(0))))top#(incr(head(ok(0))))
top#(mark(incr(nats)))top#(incr(ok(nats)))top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, top, cons

Strategy


The right-hand side of the rule top#(mark(0)) → top#(ok(0)) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
Thus, the rule top#(mark(0)) → top#(ok(0)) is deleted.

Problem 15: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(ok(tail(_x21)))top#(tail(active(_x21)))top#(mark(incr(pairs)))top#(incr(ok(pairs)))
top#(mark(incr(head(incr(_x51)))))top#(incr(head(incr(proper(_x51)))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))top#(ok(incr(_x21)))top#(incr(active(_x21)))
top#(mark(odds))top#(ok(odds))top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))
top#(mark(incr(0)))top#(incr(ok(0)))top#(mark(incr(head(s(_x51)))))top#(incr(head(s(proper(_x51)))))
top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))
top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))
top#(mark(tail(0)))top#(tail(ok(0)))top#(mark(tail(odds)))top#(tail(ok(odds)))
top#(mark(tail(pairs)))top#(tail(ok(pairs)))top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))
top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(ok(nats))top#(mark(cons(0, incr(nats))))top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))
top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))
top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))top#(mark(nats))top#(ok(nats))
top#(mark(incr(odds)))top#(incr(ok(odds)))top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))
top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))
top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))top#(mark(tail(nats)))top#(tail(ok(nats)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(ok(odds))top#(mark(incr(pairs)))top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))
top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))top#(ok(pairs))top#(mark(cons(0, incr(odds))))
top#(ok(head(_x21)))top#(head(active(_x21)))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(incr(head(0))))top#(incr(head(ok(0))))top#(mark(incr(nats)))top#(incr(ok(nats)))
top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


The right-hand side of the rule top#(ok(tail(_x21))) → top#(tail(active(_x21))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(tail(mark(cons(s(_x42), incr(_x41))))) 
top#(tail(mark(incr(pairs)))) 
top#(tail(head(active(_x41)))) 
top#(tail(incr(active(_x41)))) 
top#(tail(cons(active(_x41), _x42))) 
top#(tail(tail(active(_x41)))) 
top#(tail(mark(cons(0, incr(odds))))) 
top#(tail(mark(_x42))) 
top#(tail(mark(cons(0, incr(nats))))) 
top#(tail(mark(_x41))) 
top#(tail(s(active(_x41)))) 
Thus, the rule top#(ok(tail(_x21))) → top#(tail(active(_x21))) is replaced by the following rules:
top#(ok(tail(nats))) → top#(tail(mark(cons(0, incr(nats)))))top#(ok(tail(cons(_x41, _x42)))) → top#(tail(cons(active(_x41), _x42)))
top#(ok(tail(tail(cons(_x42, _x41))))) → top#(tail(mark(_x41)))top#(ok(tail(head(_x41)))) → top#(tail(head(active(_x41))))
top#(ok(tail(incr(_x41)))) → top#(tail(incr(active(_x41))))top#(ok(tail(head(cons(_x42, _x41))))) → top#(tail(mark(_x42)))
top#(ok(tail(s(_x41)))) → top#(tail(s(active(_x41))))top#(ok(tail(pairs))) → top#(tail(mark(cons(0, incr(odds)))))
top#(ok(tail(incr(cons(_x42, _x41))))) → top#(tail(mark(cons(s(_x42), incr(_x41)))))top#(ok(tail(odds))) → top#(tail(mark(incr(pairs))))
top#(ok(tail(tail(_x41)))) → top#(tail(tail(active(_x41))))

Problem 16: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(ok(tail(cons(_x41, _x42))))top#(tail(cons(active(_x41), _x42)))top#(mark(incr(head(incr(_x51)))))top#(incr(head(incr(proper(_x51)))))
top#(mark(incr(pairs)))top#(incr(ok(pairs)))top#(ok(incr(_x21)))top#(incr(active(_x21)))
top#(mark(incr(head(s(_x51)))))top#(incr(head(s(proper(_x51)))))top#(mark(incr(0)))top#(incr(ok(0)))
top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))
top#(ok(tail(head(_x41))))top#(tail(head(active(_x41))))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(ok(tail(pairs)))top#(tail(mark(cons(0, incr(odds)))))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(ok(nats))top#(mark(cons(0, incr(nats))))top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))
top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))top#(mark(incr(odds)))top#(incr(ok(odds)))
top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))top#(mark(tail(nats)))top#(tail(ok(nats)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))
top#(ok(odds))top#(mark(incr(pairs)))top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))
top#(ok(pairs))top#(mark(cons(0, incr(odds))))top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(mark(incr(head(0))))top#(incr(head(ok(0))))
top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(odds))top#(ok(odds))top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))
top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))
top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))top#(mark(tail(0)))top#(tail(ok(0)))
top#(mark(tail(odds)))top#(tail(ok(odds)))top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))
top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))
top#(mark(nats))top#(ok(nats))top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))
top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))
top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))
top#(ok(head(_x21)))top#(head(active(_x21)))top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))
top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))top#(mark(incr(nats)))top#(incr(ok(nats)))
top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, top, cons

Strategy


The right-hand side of the rule top#(ok(tail(cons(_x41, _x42)))) → top#(tail(cons(active(_x41), _x42))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(tail(cons(mark(_x51), _x42))) 
top#(tail(cons(head(active(_x51)), _x42))) 
top#(tail(cons(incr(active(_x51)), _x42))) 
top#(tail(cons(tail(active(_x51)), _x42))) 
top#(tail(cons(mark(_x52), _x42))) 
top#(tail(cons(s(active(_x51)), _x42))) 
top#(tail(cons(mark(cons(0, incr(odds))), _x42))) 
top#(tail(cons(cons(active(_x51), _x52), _x42))) 
top#(tail(cons(mark(cons(0, incr(nats))), _x42))) 
top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42))) 
top#(tail(cons(mark(incr(pairs)), _x42))) 
Thus, the rule top#(ok(tail(cons(_x41, _x42)))) → top#(tail(cons(active(_x41), _x42))) is replaced by the following rules:
top#(ok(tail(cons(s(_x51), _x42)))) → top#(tail(cons(s(active(_x51)), _x42)))top#(ok(tail(cons(nats, _x42)))) → top#(tail(cons(mark(cons(0, incr(nats))), _x42)))
top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42)))) → top#(tail(cons(mark(_x51), _x42)))top#(ok(tail(cons(cons(_x51, _x52), _x42)))) → top#(tail(cons(cons(active(_x51), _x52), _x42)))
top#(ok(tail(cons(incr(_x51), _x42)))) → top#(tail(cons(incr(active(_x51)), _x42)))top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42)))) → top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))
top#(ok(tail(cons(head(cons(_x52, _x51)), _x42)))) → top#(tail(cons(mark(_x52), _x42)))top#(ok(tail(cons(odds, _x42)))) → top#(tail(cons(mark(incr(pairs)), _x42)))
top#(ok(tail(cons(pairs, _x42)))) → top#(tail(cons(mark(cons(0, incr(odds))), _x42)))top#(ok(tail(cons(tail(_x51), _x42)))) → top#(tail(cons(tail(active(_x51)), _x42)))
top#(ok(tail(cons(head(_x51), _x42)))) → top#(tail(cons(head(active(_x51)), _x42)))

Problem 17: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(head(incr(_x51)))))top#(incr(head(incr(proper(_x51)))))top#(mark(incr(pairs)))top#(incr(ok(pairs)))
top#(ok(incr(_x21)))top#(incr(active(_x21)))top#(mark(incr(head(s(_x51)))))top#(incr(head(s(proper(_x51)))))
top#(mark(incr(0)))top#(incr(ok(0)))top#(ok(tail(cons(tail(_x51), _x42))))top#(tail(cons(tail(active(_x51)), _x42)))
top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))
top#(ok(tail(head(_x41))))top#(tail(head(active(_x41))))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(ok(tail(pairs)))top#(tail(mark(cons(0, incr(odds)))))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))top#(ok(nats))top#(mark(cons(0, incr(nats))))
top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))top#(mark(incr(odds)))top#(incr(ok(odds)))
top#(ok(tail(cons(s(_x51), _x42))))top#(tail(cons(s(active(_x51)), _x42)))top#(ok(tail(cons(cons(_x51, _x52), _x42))))top#(tail(cons(cons(active(_x51), _x52), _x42)))
top#(ok(tail(cons(pairs, _x42))))top#(tail(cons(mark(cons(0, incr(odds))), _x42)))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(tail(nats)))top#(tail(ok(nats)))top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))
top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))
top#(ok(odds))top#(mark(incr(pairs)))top#(ok(pairs))top#(mark(cons(0, incr(odds))))
top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(ok(tail(cons(odds, _x42))))top#(tail(cons(mark(incr(pairs)), _x42)))top#(mark(incr(head(0))))top#(incr(head(ok(0))))
top#(ok(tail(cons(nats, _x42))))top#(tail(cons(mark(cons(0, incr(nats))), _x42)))top#(ok(tail(cons(incr(_x51), _x42))))top#(tail(cons(incr(active(_x51)), _x42)))
top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(odds))top#(ok(odds))top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))
top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))
top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))top#(mark(tail(0)))top#(tail(ok(0)))
top#(mark(tail(odds)))top#(tail(ok(odds)))top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))
top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))top#(ok(tail(cons(head(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x52), _x42)))
top#(ok(tail(cons(head(_x51), _x42))))top#(tail(cons(head(active(_x51)), _x42)))top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))
top#(mark(nats))top#(ok(nats))top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))
top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))
top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))
top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))
top#(ok(head(_x21)))top#(head(active(_x21)))top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))
top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x51), _x42)))top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))
top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))top#(mark(incr(nats)))top#(incr(ok(nats)))
top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


The right-hand side of the rule top#(mark(incr(head(incr(_x51))))) → top#(incr(head(incr(proper(_x51))))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(head(incr(cons(proper(_x61), proper(_x62)))))) 
top#(incr(head(incr(incr(proper(_x61)))))) 
top#(incr(head(incr(ok(0))))) 
top#(incr(head(incr(tail(proper(_x61)))))) 
top#(incr(head(incr(head(proper(_x61)))))) 
top#(incr(head(incr(ok(pairs))))) 
top#(incr(head(incr(ok(odds))))) 
top#(incr(head(incr(s(proper(_x61)))))) 
top#(incr(head(incr(ok(nats))))) 
Thus, the rule top#(mark(incr(head(incr(_x51))))) → top#(incr(head(incr(proper(_x51))))) is replaced by the following rules:
top#(mark(incr(head(incr(odds))))) → top#(incr(head(incr(ok(odds)))))top#(mark(incr(head(incr(cons(_x61, _x62)))))) → top#(incr(head(incr(cons(proper(_x61), proper(_x62))))))
top#(mark(incr(head(incr(incr(_x61)))))) → top#(incr(head(incr(incr(proper(_x61))))))top#(mark(incr(head(incr(tail(_x61)))))) → top#(incr(head(incr(tail(proper(_x61))))))
top#(mark(incr(head(incr(head(_x61)))))) → top#(incr(head(incr(head(proper(_x61))))))top#(mark(incr(head(incr(pairs))))) → top#(incr(head(incr(ok(pairs)))))
top#(mark(incr(head(incr(0))))) → top#(incr(head(incr(ok(0)))))top#(mark(incr(head(incr(s(_x61)))))) → top#(incr(head(incr(s(proper(_x61))))))
top#(mark(incr(head(incr(nats))))) → top#(incr(head(incr(ok(nats)))))

Problem 18: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(head(incr(odds)))))top#(incr(head(incr(ok(odds)))))top#(mark(incr(head(incr(cons(_x61, _x62))))))top#(incr(head(incr(cons(proper(_x61), proper(_x62))))))
top#(mark(incr(pairs)))top#(incr(ok(pairs)))top#(ok(incr(_x21)))top#(incr(active(_x21)))
top#(mark(incr(head(incr(0)))))top#(incr(head(incr(ok(0)))))top#(mark(incr(head(s(_x51)))))top#(incr(head(s(proper(_x51)))))
top#(mark(incr(0)))top#(incr(ok(0)))top#(ok(tail(cons(tail(_x51), _x42))))top#(tail(cons(tail(active(_x51)), _x42)))
top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))
top#(ok(tail(head(_x41))))top#(tail(head(active(_x41))))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(ok(tail(pairs)))top#(tail(mark(cons(0, incr(odds)))))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(ok(nats))top#(mark(cons(0, incr(nats))))top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))
top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))top#(ok(tail(cons(s(_x51), _x42))))top#(tail(cons(s(active(_x51)), _x42)))
top#(mark(incr(odds)))top#(incr(ok(odds)))top#(ok(tail(cons(cons(_x51, _x52), _x42))))top#(tail(cons(cons(active(_x51), _x52), _x42)))
top#(ok(tail(cons(pairs, _x42))))top#(tail(cons(mark(cons(0, incr(odds))), _x42)))top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))
top#(mark(tail(nats)))top#(tail(ok(nats)))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))
top#(ok(odds))top#(mark(incr(pairs)))top#(ok(pairs))top#(mark(cons(0, incr(odds))))
top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(ok(tail(cons(odds, _x42))))top#(tail(cons(mark(incr(pairs)), _x42)))top#(mark(incr(head(incr(nats)))))top#(incr(head(incr(ok(nats)))))
top#(mark(incr(head(0))))top#(incr(head(ok(0))))top#(ok(tail(cons(nats, _x42))))top#(tail(cons(mark(cons(0, incr(nats))), _x42)))
top#(ok(tail(cons(incr(_x51), _x42))))top#(tail(cons(incr(active(_x51)), _x42)))top#(mark(incr(head(incr(head(_x61))))))top#(incr(head(incr(head(proper(_x61))))))
top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(incr(head(incr(s(_x61))))))top#(incr(head(incr(s(proper(_x61))))))top#(mark(odds))top#(ok(odds))
top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))
top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))
top#(mark(tail(0)))top#(tail(ok(0)))top#(mark(tail(odds)))top#(tail(ok(odds)))
top#(mark(incr(head(incr(incr(_x61))))))top#(incr(head(incr(incr(proper(_x61))))))top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))
top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))top#(ok(tail(cons(head(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x52), _x42)))
top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))top#(ok(tail(cons(head(_x51), _x42))))top#(tail(cons(head(active(_x51)), _x42)))
top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))top#(mark(nats))top#(ok(nats))
top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))top#(mark(incr(head(incr(pairs)))))top#(incr(head(incr(ok(pairs)))))
top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))
top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))
top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))top#(ok(head(_x21)))top#(head(active(_x21)))
top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x51), _x42)))top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))
top#(mark(incr(head(incr(tail(_x61))))))top#(incr(head(incr(tail(proper(_x61))))))top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))
top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))top#(mark(incr(nats)))top#(incr(ok(nats)))
top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, top, cons

Strategy


The right-hand side of the rule top#(mark(incr(head(incr(odds))))) → top#(incr(head(incr(ok(odds))))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(head(ok(incr(odds))))) 
Thus, the rule top#(mark(incr(head(incr(odds))))) → top#(incr(head(incr(ok(odds))))) is replaced by the following rules:
top#(mark(incr(head(incr(odds))))) → top#(incr(head(ok(incr(odds)))))

Problem 19: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(head(incr(cons(_x61, _x62))))))top#(incr(head(incr(cons(proper(_x61), proper(_x62))))))top#(mark(incr(pairs)))top#(incr(ok(pairs)))
top#(ok(incr(_x21)))top#(incr(active(_x21)))top#(mark(incr(head(incr(0)))))top#(incr(head(incr(ok(0)))))
top#(mark(incr(head(s(_x51)))))top#(incr(head(s(proper(_x51)))))top#(mark(incr(0)))top#(incr(ok(0)))
top#(ok(tail(cons(tail(_x51), _x42))))top#(tail(cons(tail(active(_x51)), _x42)))top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))
top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))top#(ok(tail(head(_x41))))top#(tail(head(active(_x41))))
top#(mark(tail(pairs)))top#(tail(ok(pairs)))top#(ok(tail(pairs)))top#(tail(mark(cons(0, incr(odds)))))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))
top#(ok(nats))top#(mark(cons(0, incr(nats))))top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))
top#(mark(incr(head(incr(odds)))))top#(incr(head(ok(incr(odds)))))top#(mark(incr(odds)))top#(incr(ok(odds)))
top#(ok(tail(cons(s(_x51), _x42))))top#(tail(cons(s(active(_x51)), _x42)))top#(ok(tail(cons(cons(_x51, _x52), _x42))))top#(tail(cons(cons(active(_x51), _x52), _x42)))
top#(ok(tail(cons(pairs, _x42))))top#(tail(cons(mark(cons(0, incr(odds))), _x42)))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(tail(nats)))top#(tail(ok(nats)))top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))
top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))
top#(ok(odds))top#(mark(incr(pairs)))top#(ok(pairs))top#(mark(cons(0, incr(odds))))
top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(ok(tail(cons(odds, _x42))))top#(tail(cons(mark(incr(pairs)), _x42)))top#(mark(incr(head(incr(nats)))))top#(incr(head(incr(ok(nats)))))
top#(mark(incr(head(0))))top#(incr(head(ok(0))))top#(ok(tail(cons(nats, _x42))))top#(tail(cons(mark(cons(0, incr(nats))), _x42)))
top#(ok(tail(cons(incr(_x51), _x42))))top#(tail(cons(incr(active(_x51)), _x42)))top#(mark(incr(head(incr(head(_x61))))))top#(incr(head(incr(head(proper(_x61))))))
top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(incr(head(incr(s(_x61))))))top#(incr(head(incr(s(proper(_x61))))))top#(mark(odds))top#(ok(odds))
top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))
top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))
top#(mark(tail(0)))top#(tail(ok(0)))top#(mark(tail(odds)))top#(tail(ok(odds)))
top#(mark(incr(head(incr(incr(_x61))))))top#(incr(head(incr(incr(proper(_x61))))))top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))
top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))top#(ok(tail(cons(head(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x52), _x42)))
top#(ok(tail(cons(head(_x51), _x42))))top#(tail(cons(head(active(_x51)), _x42)))top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))
top#(mark(nats))top#(ok(nats))top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))
top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))top#(mark(incr(head(incr(pairs)))))top#(incr(head(incr(ok(pairs)))))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))
top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))
top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))top#(ok(head(_x21)))top#(head(active(_x21)))
top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x51), _x42)))
top#(mark(incr(head(incr(tail(_x61))))))top#(incr(head(incr(tail(proper(_x61))))))top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))
top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))top#(mark(incr(nats)))top#(incr(ok(nats)))
top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


The right-hand side of the rule top#(mark(incr(head(incr(cons(_x61, _x62)))))) → top#(incr(head(incr(cons(proper(_x61), proper(_x62)))))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(head(incr(cons(proper(_x61), ok(odds)))))) 
top#(incr(head(incr(cons(proper(_x61), cons(proper(_x71), proper(_x72))))))) 
top#(incr(head(incr(cons(ok(pairs), proper(_x62)))))) 
top#(incr(head(incr(cons(ok(0), proper(_x62)))))) 
top#(incr(head(incr(cons(proper(_x61), head(proper(_x71))))))) 
top#(incr(head(incr(cons(proper(_x61), ok(nats)))))) 
top#(incr(head(incr(cons(ok(odds), proper(_x62)))))) 
top#(incr(head(incr(cons(ok(nats), proper(_x62)))))) 
top#(incr(head(incr(cons(proper(_x61), incr(proper(_x71))))))) 
top#(incr(head(incr(cons(proper(_x61), tail(proper(_x71))))))) 
top#(incr(head(incr(cons(proper(_x61), s(proper(_x71))))))) 
top#(incr(head(incr(cons(s(proper(_x71)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(proper(_x61), ok(pairs)))))) 
top#(incr(head(incr(cons(proper(_x61), ok(0)))))) 
top#(incr(head(incr(cons(head(proper(_x71)), proper(_x62)))))) 
top#(incr(head(incr(cons(incr(proper(_x71)), proper(_x62)))))) 
top#(incr(head(incr(cons(tail(proper(_x71)), proper(_x62)))))) 
Thus, the rule top#(mark(incr(head(incr(cons(_x61, _x62)))))) → top#(incr(head(incr(cons(proper(_x61), proper(_x62)))))) is replaced by the following rules:
top#(mark(incr(head(incr(cons(_x61, s(_x71))))))) → top#(incr(head(incr(cons(proper(_x61), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(_x61, odds)))))) → top#(incr(head(incr(cons(proper(_x61), ok(odds))))))top#(mark(incr(head(incr(cons(_x61, pairs)))))) → top#(incr(head(incr(cons(proper(_x61), ok(pairs))))))
top#(mark(incr(head(incr(cons(_x61, nats)))))) → top#(incr(head(incr(cons(proper(_x61), ok(nats))))))top#(mark(incr(head(incr(cons(_x61, tail(_x71))))))) → top#(incr(head(incr(cons(proper(_x61), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(0, _x62)))))) → top#(incr(head(incr(cons(ok(0), proper(_x62))))))top#(mark(incr(head(incr(cons(pairs, _x62)))))) → top#(incr(head(incr(cons(ok(pairs), proper(_x62))))))
top#(mark(incr(head(incr(cons(odds, _x62)))))) → top#(incr(head(incr(cons(ok(odds), proper(_x62))))))top#(mark(incr(head(incr(cons(_x61, head(_x71))))))) → top#(incr(head(incr(cons(proper(_x61), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(head(_x71), _x62)))))) → top#(incr(head(incr(cons(head(proper(_x71)), proper(_x62))))))top#(mark(incr(head(incr(cons(_x61, 0)))))) → top#(incr(head(incr(cons(proper(_x61), ok(0))))))
top#(mark(incr(head(incr(cons(_x61, cons(_x71, _x72))))))) → top#(incr(head(incr(cons(proper(_x61), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(cons(incr(_x71), _x62)))))) → top#(incr(head(incr(cons(incr(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(cons(s(_x71), _x62)))))) → top#(incr(head(incr(cons(s(proper(_x71)), proper(_x62))))))top#(mark(incr(head(incr(cons(tail(_x71), _x62)))))) → top#(incr(head(incr(cons(tail(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(cons(nats, _x62)))))) → top#(incr(head(incr(cons(ok(nats), proper(_x62))))))top#(mark(incr(head(incr(cons(_x61, incr(_x71))))))) → top#(incr(head(incr(cons(proper(_x61), incr(proper(_x71)))))))

Problem 20: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(head(incr(cons(cons(_x71, _x72), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(_x61, nats))))))top#(incr(head(incr(cons(proper(_x61), ok(nats))))))
top#(mark(incr(pairs)))top#(incr(ok(pairs)))top#(ok(incr(_x21)))top#(incr(active(_x21)))
top#(mark(incr(head(incr(0)))))top#(incr(head(incr(ok(0)))))top#(mark(incr(head(s(_x51)))))top#(incr(head(s(proper(_x51)))))
top#(mark(incr(0)))top#(incr(ok(0)))top#(ok(tail(cons(tail(_x51), _x42))))top#(tail(cons(tail(active(_x51)), _x42)))
top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))
top#(ok(tail(head(_x41))))top#(tail(head(active(_x41))))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(ok(tail(pairs)))top#(tail(mark(cons(0, incr(odds)))))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(incr(head(incr(cons(nats, _x62))))))top#(incr(head(incr(cons(ok(nats), proper(_x62))))))top#(ok(nats))top#(mark(cons(0, incr(nats))))
top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))top#(mark(incr(head(incr(odds)))))top#(incr(head(ok(incr(odds)))))
top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))top#(ok(tail(cons(s(_x51), _x42))))top#(tail(cons(s(active(_x51)), _x42)))
top#(mark(incr(odds)))top#(incr(ok(odds)))top#(ok(tail(cons(cons(_x51, _x52), _x42))))top#(tail(cons(cons(active(_x51), _x52), _x42)))
top#(mark(incr(head(incr(cons(_x61, odds))))))top#(incr(head(incr(cons(proper(_x61), ok(odds))))))top#(ok(tail(cons(pairs, _x42))))top#(tail(cons(mark(cons(0, incr(odds))), _x42)))
top#(mark(incr(head(incr(cons(pairs, _x62))))))top#(incr(head(incr(cons(ok(pairs), proper(_x62))))))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(tail(nats)))top#(tail(ok(nats)))top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))
top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))
top#(ok(odds))top#(mark(incr(pairs)))top#(mark(incr(head(incr(cons(odds, _x62))))))top#(incr(head(incr(cons(ok(odds), proper(_x62))))))
top#(ok(pairs))top#(mark(cons(0, incr(odds))))top#(mark(incr(head(incr(cons(_x61, head(_x71)))))))top#(incr(head(incr(cons(proper(_x61), head(proper(_x71)))))))
top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(ok(tail(cons(odds, _x42))))top#(tail(cons(mark(incr(pairs)), _x42)))top#(mark(incr(head(incr(cons(s(_x71), _x62))))))top#(incr(head(incr(cons(s(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(nats)))))top#(incr(head(incr(ok(nats)))))top#(mark(incr(head(0))))top#(incr(head(ok(0))))
top#(mark(incr(head(incr(cons(_x61, s(_x71)))))))top#(incr(head(incr(cons(proper(_x61), s(proper(_x71)))))))top#(ok(tail(cons(nats, _x42))))top#(tail(cons(mark(cons(0, incr(nats))), _x42)))
top#(ok(tail(cons(incr(_x51), _x42))))top#(tail(cons(incr(active(_x51)), _x42)))top#(mark(incr(head(incr(cons(_x61, pairs))))))top#(incr(head(incr(cons(proper(_x61), ok(pairs))))))
top#(mark(incr(head(incr(head(_x61))))))top#(incr(head(incr(head(proper(_x61))))))top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))
top#(mark(head(_x21)))top#(head(proper(_x21)))top#(mark(incr(head(incr(cons(_x61, tail(_x71)))))))top#(incr(head(incr(cons(proper(_x61), tail(proper(_x71)))))))
top#(mark(odds))top#(ok(odds))top#(mark(incr(head(incr(s(_x61))))))top#(incr(head(incr(s(proper(_x61))))))
top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))
top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))
top#(mark(tail(0)))top#(tail(ok(0)))top#(mark(tail(odds)))top#(tail(ok(odds)))
top#(mark(incr(head(incr(cons(_x61, cons(_x71, _x72)))))))top#(incr(head(incr(cons(proper(_x61), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(incr(_x61))))))top#(incr(head(incr(incr(proper(_x61))))))
top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))
top#(ok(tail(cons(head(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x52), _x42)))top#(mark(incr(head(incr(cons(tail(_x71), _x62))))))top#(incr(head(incr(cons(tail(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(cons(_x61, incr(_x71)))))))top#(incr(head(incr(cons(proper(_x61), incr(proper(_x71)))))))top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))
top#(ok(tail(cons(head(_x51), _x42))))top#(tail(cons(head(active(_x51)), _x42)))top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))
top#(mark(nats))top#(ok(nats))top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))
top#(mark(incr(head(incr(pairs)))))top#(incr(head(incr(ok(pairs)))))top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(incr(head(incr(cons(0, _x62))))))top#(incr(head(incr(cons(ok(0), proper(_x62))))))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))
top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))
top#(mark(incr(head(incr(cons(head(_x71), _x62))))))top#(incr(head(incr(cons(head(proper(_x71)), proper(_x62))))))top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))
top#(ok(head(_x21)))top#(head(active(_x21)))top#(mark(incr(head(incr(cons(_x61, 0))))))top#(incr(head(incr(cons(proper(_x61), ok(0))))))
top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x51), _x42)))top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))
top#(mark(incr(head(incr(cons(incr(_x71), _x62))))))top#(incr(head(incr(cons(incr(proper(_x71)), proper(_x62))))))top#(mark(incr(head(incr(tail(_x61))))))top#(incr(head(incr(tail(proper(_x61))))))
top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))
top#(mark(incr(nats)))top#(incr(ok(nats)))top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, top, cons

Strategy


The right-hand side of the rule top#(mark(incr(head(incr(cons(cons(_x71, _x72), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), proper(_x62)))))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), incr(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(0)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), cons(proper(_x71), proper(_x72))))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(ok(0), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(ok(pairs), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(nats)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(odds)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(odds)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(0)))))) 
top#(incr(head(incr(cons(cons(tail(proper(_x81)), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(ok(nats), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), incr(proper(_x81))), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(head(proper(_x81)), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), head(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(ok(odds), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), tail(proper(_x81))), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), s(proper(_x81))), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(incr(proper(_x81)), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), tail(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(proper(_x71), cons(proper(_x81), proper(_x82))), proper(_x62)))))) 
Thus, the rule top#(mark(incr(head(incr(cons(cons(_x71, _x72), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), proper(_x62)))))) is replaced by the following rules:
top#(mark(incr(head(incr(cons(cons(_x71, _x72), nats)))))) → top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(nats))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), pairs)))))) → top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), head(_x71))))))) → top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, incr(_x81)), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), incr(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(tail(_x81), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(tail(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), tail(_x71))))))) → top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, s(_x81)), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), s(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, _x72), _x62)))))) → top#(incr(head(incr(cons(cons(ok(odds), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(incr(_x81), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(incr(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(head(_x81), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(head(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), s(_x71))))))) → top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), incr(_x71))))))) → top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), odds)))))) → top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(odds))))))top#(mark(incr(head(incr(cons(cons(nats, _x72), _x62)))))) → top#(incr(head(incr(cons(cons(ok(nats), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, odds), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(odds)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), cons(_x71, _x72))))))) → top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), 0)))))) → top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(0))))))top#(mark(incr(head(incr(cons(cons(_x71, tail(_x81)), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), tail(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, cons(_x81, _x82)), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), cons(proper(_x81), proper(_x82))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(pairs, _x72), _x62)))))) → top#(incr(head(incr(cons(cons(ok(pairs), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, 0), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(0)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(0, _x72), _x62)))))) → top#(incr(head(incr(cons(cons(ok(0), proper(_x72)), proper(_x62))))))

Problem 21: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(head(incr(cons(cons(_x71, pairs), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), proper(_x62))))))top#(mark(incr(pairs)))top#(incr(ok(pairs)))
top#(mark(incr(head(incr(cons(cons(_x71, nats), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(s(_x51)))))top#(incr(head(s(proper(_x51)))))top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))
top#(ok(tail(head(_x41))))top#(tail(head(active(_x41))))top#(ok(tail(pairs)))top#(tail(mark(cons(0, incr(odds)))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), s(proper(_x71)))))))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(nats, _x62))))))top#(incr(head(incr(cons(ok(nats), proper(_x62))))))
top#(ok(nats))top#(mark(cons(0, incr(nats))))top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))
top#(mark(incr(odds)))top#(incr(ok(odds)))top#(ok(tail(cons(s(_x51), _x42))))top#(tail(cons(s(active(_x51)), _x42)))
top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), proper(_x62))))))top#(ok(tail(cons(cons(_x51, _x52), _x42))))top#(tail(cons(cons(active(_x51), _x52), _x42)))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))
top#(mark(tail(nats)))top#(tail(ok(nats)))top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))
top#(ok(odds))top#(mark(incr(pairs)))top#(mark(incr(head(incr(cons(odds, _x62))))))top#(incr(head(incr(cons(ok(odds), proper(_x62))))))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(mark(incr(head(0))))top#(incr(head(ok(0))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(nats))))))top#(ok(tail(cons(incr(_x51), _x42))))top#(tail(cons(incr(active(_x51)), _x42)))
top#(mark(incr(head(incr(cons(_x61, pairs))))))top#(incr(head(incr(cons(proper(_x61), ok(pairs))))))top#(mark(incr(head(incr(head(_x61))))))top#(incr(head(incr(head(proper(_x61))))))
top#(mark(incr(head(incr(cons(cons(_x71, incr(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), incr(proper(_x81))), proper(_x62))))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(incr(head(incr(cons(_x61, tail(_x71)))))))top#(incr(head(incr(cons(proper(_x61), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), tail(proper(_x71)))))))
top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))
top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))top#(mark(incr(head(incr(cons(cons(_x71, s(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), s(proper(_x81))), proper(_x62))))))
top#(mark(tail(0)))top#(tail(ok(0)))top#(mark(tail(odds)))top#(tail(ok(odds)))
top#(mark(incr(head(incr(cons(cons(odds, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(tail(_x71), _x62))))))top#(incr(head(incr(cons(tail(proper(_x71)), proper(_x62))))))
top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))top#(ok(tail(cons(head(_x51), _x42))))top#(tail(cons(head(active(_x51)), _x42)))
top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(odds))))))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, odds), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(odds)), proper(_x62))))))
top#(mark(incr(head(incr(cons(0, _x62))))))top#(incr(head(incr(cons(ok(0), proper(_x62))))))top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))
top#(mark(incr(head(incr(cons(cons(_x71, cons(_x81, _x82)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), cons(proper(_x81), proper(_x82))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, tail(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), tail(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(head(_x71), _x62))))))top#(incr(head(incr(cons(head(proper(_x71)), proper(_x62))))))top#(ok(head(_x21)))top#(head(active(_x21)))
top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(_x61, nats))))))top#(incr(head(incr(cons(proper(_x61), ok(nats))))))
top#(ok(incr(_x21)))top#(incr(active(_x21)))top#(mark(incr(head(incr(0)))))top#(incr(head(incr(ok(0)))))
top#(mark(incr(0)))top#(incr(ok(0)))top#(ok(tail(cons(tail(_x51), _x42))))top#(tail(cons(tail(active(_x51)), _x42)))
top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))top#(mark(incr(head(incr(cons(cons(incr(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(tail(pairs)))top#(tail(ok(pairs)))top#(mark(incr(head(incr(cons(cons(head(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))top#(mark(incr(head(incr(odds)))))top#(incr(head(ok(incr(odds)))))
top#(mark(incr(head(incr(cons(_x61, odds))))))top#(incr(head(incr(cons(proper(_x61), ok(odds))))))top#(mark(incr(head(incr(cons(cons(nats, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(pairs, _x62))))))top#(incr(head(incr(cons(ok(pairs), proper(_x62))))))top#(ok(tail(cons(pairs, _x42))))top#(tail(cons(mark(cons(0, incr(odds))), _x42)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))
top#(ok(pairs))top#(mark(cons(0, incr(odds))))top#(mark(incr(head(incr(cons(_x61, head(_x71)))))))top#(incr(head(incr(cons(proper(_x61), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(pairs, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), proper(_x72)), proper(_x62))))))top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))
top#(mark(incr(head(incr(cons(cons(_x71, 0), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(0)), proper(_x62))))))top#(ok(tail(cons(odds, _x42))))top#(tail(cons(mark(incr(pairs)), _x42)))
top#(mark(incr(head(incr(cons(s(_x71), _x62))))))top#(incr(head(incr(cons(s(proper(_x71)), proper(_x62))))))top#(mark(incr(head(incr(nats)))))top#(incr(head(incr(ok(nats)))))
top#(mark(incr(head(incr(cons(_x61, s(_x71)))))))top#(incr(head(incr(cons(proper(_x61), s(proper(_x71)))))))top#(ok(tail(cons(nats, _x42))))top#(tail(cons(mark(cons(0, incr(nats))), _x42)))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(pairs))))))top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(s(_x61))))))top#(incr(head(incr(s(proper(_x61))))))
top#(mark(odds))top#(ok(odds))top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))
top#(mark(incr(head(incr(cons(_x61, cons(_x71, _x72)))))))top#(incr(head(incr(cons(proper(_x61), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(incr(_x61))))))top#(incr(head(incr(incr(proper(_x61))))))
top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))
top#(ok(tail(cons(head(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x52), _x42)))top#(mark(incr(head(incr(cons(_x61, incr(_x71)))))))top#(incr(head(incr(cons(proper(_x61), incr(proper(_x71)))))))
top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))top#(mark(nats))top#(ok(nats))
top#(mark(incr(head(incr(pairs)))))top#(incr(head(incr(ok(pairs)))))top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(0))))))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))
top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))top#(mark(incr(head(incr(cons(_x61, 0))))))top#(incr(head(incr(cons(proper(_x61), ok(0))))))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), _x72), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), proper(_x72)), proper(_x62))))))top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x51), _x42)))
top#(mark(incr(head(incr(cons(incr(_x71), _x62))))))top#(incr(head(incr(cons(incr(proper(_x71)), proper(_x62))))))top#(mark(incr(head(incr(tail(_x61))))))top#(incr(head(incr(tail(proper(_x61))))))
top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))top#(mark(incr(head(incr(cons(cons(0, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(0), proper(_x72)), proper(_x62))))))
top#(mark(incr(nats)))top#(incr(ok(nats)))top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


The right-hand side of the rule top#(mark(incr(head(incr(cons(cons(_x71, pairs), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), proper(_x62)))))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(odds)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(0)))))) 
top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(pairs)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(pairs)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(ok(odds), ok(pairs)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), cons(proper(_x71), proper(_x72))))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), tail(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(ok(nats), ok(pairs)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(pairs)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(ok(0), ok(pairs)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(pairs)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(nats)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), incr(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(ok(pairs), ok(pairs)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), head(proper(_x71))))))) 
Thus, the rule top#(mark(incr(head(incr(cons(cons(_x71, pairs), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), proper(_x62)))))) is replaced by the following rules:
top#(mark(incr(head(incr(cons(cons(nats, pairs), _x62)))))) → top#(incr(head(incr(cons(cons(ok(nats), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), pairs)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(0, pairs), _x62)))))) → top#(incr(head(incr(cons(cons(ok(0), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(pairs, pairs), _x62)))))) → top#(incr(head(incr(cons(cons(ok(pairs), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), odds)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), incr(_x71))))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), head(_x71))))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), nats)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(nats))))))top#(mark(incr(head(incr(cons(cons(odds, pairs), _x62)))))) → top#(incr(head(incr(cons(cons(ok(odds), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), cons(_x71, _x72))))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), 0)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(0))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), tail(_x71))))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(tail(_x81), pairs), _x62)))))) → top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), s(_x71))))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(incr(_x81), pairs), _x62)))))) → top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), pairs), _x62)))))) → top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(head(_x81), pairs), _x62)))))) → top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(pairs)), proper(_x62))))))

Problem 22: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(pairs)))top#(incr(ok(pairs)))top#(mark(incr(head(incr(cons(cons(_x71, nats), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), proper(_x62))))))
top#(mark(incr(head(s(_x51)))))top#(incr(head(s(proper(_x51)))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(ok(tail(head(_x41))))top#(tail(head(active(_x41))))top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))
top#(mark(incr(head(incr(cons(cons(odds, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), ok(pairs)), proper(_x62))))))top#(ok(tail(pairs)))top#(tail(mark(cons(0, incr(odds)))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), incr(proper(_x71)))))))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(mark(incr(head(incr(cons(nats, _x62))))))top#(incr(head(incr(cons(ok(nats), proper(_x62))))))
top#(ok(nats))top#(mark(cons(0, incr(nats))))top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))
top#(mark(incr(odds)))top#(incr(ok(odds)))top#(ok(tail(cons(s(_x51), _x42))))top#(tail(cons(s(active(_x51)), _x42)))
top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), proper(_x62))))))top#(ok(tail(cons(cons(_x51, _x52), _x42))))top#(tail(cons(cons(active(_x51), _x52), _x42)))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(odds))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))top#(mark(tail(nats)))top#(tail(ok(nats)))
top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))top#(ok(odds))top#(mark(incr(pairs)))
top#(mark(incr(head(incr(cons(odds, _x62))))))top#(incr(head(incr(cons(ok(odds), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(0))))))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(mark(incr(head(incr(cons(cons(_x71, pairs), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(0))))top#(incr(head(ok(0))))
top#(mark(incr(head(incr(cons(cons(head(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(0, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(pairs)), proper(_x62))))))
top#(ok(tail(cons(incr(_x51), _x42))))top#(tail(cons(incr(active(_x51)), _x42)))top#(mark(incr(head(incr(head(_x61))))))top#(incr(head(incr(head(proper(_x61))))))
top#(mark(incr(head(incr(cons(_x61, pairs))))))top#(incr(head(incr(cons(proper(_x61), ok(pairs))))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(incr(head(incr(cons(cons(_x71, incr(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), incr(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(_x61, tail(_x71)))))))top#(incr(head(incr(cons(proper(_x61), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), tail(proper(_x71)))))))top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))
top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))
top#(mark(tail(0)))top#(tail(ok(0)))top#(mark(incr(head(incr(cons(cons(_x71, s(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), s(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), proper(_x72)), proper(_x62))))))top#(mark(tail(odds)))top#(tail(ok(odds)))
top#(mark(incr(head(incr(cons(cons(tail(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(tail(_x71), _x62))))))top#(incr(head(incr(cons(tail(proper(_x71)), proper(_x62))))))
top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))top#(ok(tail(cons(head(_x51), _x42))))top#(tail(cons(head(active(_x51)), _x42)))
top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(pairs, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(pairs)), proper(_x62))))))
top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(odds))))))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, odds), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(odds)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(0, _x62))))))top#(incr(head(incr(cons(ok(0), proper(_x62))))))
top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))top#(mark(incr(head(incr(cons(cons(_x71, cons(_x81, _x82)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), cons(proper(_x81), proper(_x82))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, tail(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), tail(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(head(_x71), _x62))))))top#(incr(head(incr(cons(head(proper(_x71)), proper(_x62))))))
top#(ok(head(_x21)))top#(head(active(_x21)))top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))
top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))top#(mark(incr(head(incr(cons(cons(nats, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(_x61, nats))))))top#(incr(head(incr(cons(proper(_x61), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), incr(proper(_x71)))))))top#(ok(incr(_x21)))top#(incr(active(_x21)))
top#(mark(incr(head(incr(0)))))top#(incr(head(incr(ok(0)))))top#(mark(incr(0)))top#(incr(ok(0)))
top#(ok(tail(cons(tail(_x51), _x42))))top#(tail(cons(tail(active(_x51)), _x42)))top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(head(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))top#(mark(incr(head(incr(odds)))))top#(incr(head(ok(incr(odds)))))
top#(mark(incr(head(incr(cons(_x61, odds))))))top#(incr(head(incr(cons(proper(_x61), ok(odds))))))top#(mark(incr(head(incr(cons(cons(nats, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(pairs, _x62))))))top#(incr(head(incr(cons(ok(pairs), proper(_x62))))))top#(ok(tail(cons(pairs, _x42))))top#(tail(cons(mark(cons(0, incr(odds))), _x42)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(incr(head(incr(cons(cons(_x71, pairs), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(nats))))))
top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))top#(ok(pairs))top#(mark(cons(0, incr(odds))))
top#(mark(incr(head(incr(cons(_x61, head(_x71)))))))top#(incr(head(incr(cons(proper(_x61), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(pairs, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), proper(_x72)), proper(_x62))))))
top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, 0), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(0)), proper(_x62))))))
top#(ok(tail(cons(odds, _x42))))top#(tail(cons(mark(incr(pairs)), _x42)))top#(mark(incr(head(incr(cons(s(_x71), _x62))))))top#(incr(head(incr(cons(s(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(nats)))))top#(incr(head(incr(ok(nats)))))top#(mark(incr(head(incr(cons(_x61, s(_x71)))))))top#(incr(head(incr(cons(proper(_x61), s(proper(_x71)))))))
top#(ok(tail(cons(nats, _x42))))top#(tail(cons(mark(cons(0, incr(nats))), _x42)))top#(mark(incr(head(incr(cons(cons(_x71, _x72), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))
top#(mark(odds))top#(ok(odds))top#(mark(incr(head(incr(s(_x61))))))top#(incr(head(incr(s(proper(_x61))))))
top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))top#(mark(incr(head(incr(cons(_x61, cons(_x71, _x72)))))))top#(incr(head(incr(cons(proper(_x61), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(incr(_x61))))))top#(incr(head(incr(incr(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))
top#(ok(tail(cons(head(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x52), _x42)))top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), pairs), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(_x61, incr(_x71)))))))top#(incr(head(incr(cons(proper(_x61), incr(proper(_x71)))))))top#(mark(nats))top#(ok(nats))
top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))top#(mark(incr(head(incr(pairs)))))top#(incr(head(incr(ok(pairs)))))
top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(0))))))
top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))
top#(mark(incr(head(incr(cons(_x61, 0))))))top#(incr(head(incr(cons(proper(_x61), ok(0))))))top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), _x72), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(incr(_x71), _x62))))))top#(incr(head(incr(cons(incr(proper(_x71)), proper(_x62))))))top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x51), _x42)))
top#(mark(incr(head(incr(tail(_x61))))))top#(incr(head(incr(tail(proper(_x61))))))top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))
top#(mark(incr(head(incr(cons(cons(0, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(0), proper(_x72)), proper(_x62))))))top#(mark(incr(nats)))top#(incr(ok(nats)))
top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, top, cons

Strategy


The right-hand side of the rule top#(mark(incr(pairs))) → top#(incr(ok(pairs))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(ok(incr(pairs))) 
Thus, the rule top#(mark(incr(pairs))) → top#(incr(ok(pairs))) is replaced by the following rules:
top#(mark(incr(pairs))) → top#(ok(incr(pairs)))

Problem 23: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(head(incr(cons(cons(_x71, nats), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(s(_x51)))))top#(incr(head(s(proper(_x51)))))top#(mark(incr(head(incr(cons(cons(odds, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), ok(pairs)), proper(_x62))))))
top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))top#(ok(tail(head(_x41))))top#(tail(head(active(_x41))))
top#(ok(tail(pairs)))top#(tail(mark(cons(0, incr(odds)))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), s(proper(_x71)))))))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(mark(incr(head(incr(cons(cons(_x71, _x72), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(nats, _x62))))))top#(incr(head(incr(cons(ok(nats), proper(_x62))))))top#(ok(nats))top#(mark(cons(0, incr(nats))))
top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))top#(mark(incr(odds)))top#(incr(ok(odds)))
top#(ok(tail(cons(s(_x51), _x42))))top#(tail(cons(s(active(_x51)), _x42)))top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), proper(_x62))))))
top#(ok(tail(cons(cons(_x51, _x52), _x42))))top#(tail(cons(cons(active(_x51), _x52), _x42)))top#(mark(incr(head(incr(cons(cons(_x71, pairs), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))
top#(mark(tail(nats)))top#(tail(ok(nats)))top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))
top#(ok(odds))top#(mark(incr(pairs)))top#(mark(incr(head(incr(cons(odds, _x62))))))top#(incr(head(incr(cons(ok(odds), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(0))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), s(proper(_x71)))))))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(mark(incr(head(incr(cons(cons(incr(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(0))))top#(incr(head(ok(0))))top#(mark(incr(head(incr(cons(cons(head(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(nats))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(0, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(pairs)), proper(_x62))))))top#(ok(tail(cons(incr(_x51), _x42))))top#(tail(cons(incr(active(_x51)), _x42)))
top#(mark(incr(head(incr(cons(_x61, pairs))))))top#(incr(head(incr(cons(proper(_x61), ok(pairs))))))top#(mark(incr(head(incr(head(_x61))))))top#(incr(head(incr(head(proper(_x61))))))
top#(mark(incr(head(incr(cons(cons(_x71, incr(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), incr(proper(_x81))), proper(_x62))))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(incr(head(incr(cons(_x61, tail(_x71)))))))top#(incr(head(incr(cons(proper(_x61), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), tail(proper(_x71)))))))
top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))
top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))top#(mark(incr(head(incr(cons(cons(_x71, s(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), s(proper(_x81))), proper(_x62))))))
top#(mark(tail(0)))top#(tail(ok(0)))top#(mark(incr(pairs)))top#(ok(incr(pairs)))
top#(mark(tail(odds)))top#(tail(ok(odds)))top#(mark(incr(head(incr(cons(cons(odds, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(tail(_x71), _x62))))))top#(incr(head(incr(cons(tail(proper(_x71)), proper(_x62))))))
top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))top#(ok(tail(cons(head(_x51), _x42))))top#(tail(cons(head(active(_x51)), _x42)))
top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(pairs, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(pairs)), proper(_x62))))))
top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(odds))))))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, odds), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(odds)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(0, _x62))))))top#(incr(head(incr(cons(ok(0), proper(_x62))))))
top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))top#(mark(incr(head(incr(cons(cons(_x71, cons(_x81, _x82)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), cons(proper(_x81), proper(_x82))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, tail(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), tail(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(head(_x71), _x62))))))top#(incr(head(incr(cons(head(proper(_x71)), proper(_x62))))))
top#(ok(head(_x21)))top#(head(active(_x21)))top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))
top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))top#(mark(incr(head(incr(cons(cons(nats, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(_x61, nats))))))top#(incr(head(incr(cons(proper(_x61), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), incr(proper(_x71)))))))top#(ok(incr(_x21)))top#(incr(active(_x21)))
top#(mark(incr(head(incr(0)))))top#(incr(head(incr(ok(0)))))top#(mark(incr(0)))top#(incr(ok(0)))
top#(ok(tail(cons(tail(_x51), _x42))))top#(tail(cons(tail(active(_x51)), _x42)))top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(head(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))top#(mark(incr(head(incr(odds)))))top#(incr(head(ok(incr(odds)))))
top#(mark(incr(head(incr(cons(_x61, odds))))))top#(incr(head(incr(cons(proper(_x61), ok(odds))))))top#(mark(incr(head(incr(cons(cons(nats, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(pairs, _x62))))))top#(incr(head(incr(cons(ok(pairs), proper(_x62))))))top#(ok(tail(cons(pairs, _x42))))top#(tail(cons(mark(cons(0, incr(odds))), _x42)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(incr(head(incr(cons(cons(_x71, pairs), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(nats))))))
top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))top#(ok(pairs))top#(mark(cons(0, incr(odds))))
top#(mark(incr(head(incr(cons(_x61, head(_x71)))))))top#(incr(head(incr(cons(proper(_x61), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(pairs, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), proper(_x72)), proper(_x62))))))
top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, 0), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(0)), proper(_x62))))))
top#(ok(tail(cons(odds, _x42))))top#(tail(cons(mark(incr(pairs)), _x42)))top#(mark(incr(head(incr(cons(s(_x71), _x62))))))top#(incr(head(incr(cons(s(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(nats)))))top#(incr(head(incr(ok(nats)))))top#(mark(incr(head(incr(cons(_x61, s(_x71)))))))top#(incr(head(incr(cons(proper(_x61), s(proper(_x71)))))))
top#(ok(tail(cons(nats, _x42))))top#(tail(cons(mark(cons(0, incr(nats))), _x42)))top#(mark(incr(head(incr(cons(cons(_x71, _x72), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(pairs))))))
top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))top#(mark(incr(head(incr(cons(cons(tail(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(s(_x61))))))top#(incr(head(incr(s(proper(_x61))))))top#(mark(odds))top#(ok(odds))
top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))top#(mark(incr(head(incr(cons(_x61, cons(_x71, _x72)))))))top#(incr(head(incr(cons(proper(_x61), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(incr(_x61))))))top#(incr(head(incr(incr(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))
top#(ok(tail(cons(head(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x52), _x42)))top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), pairs), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(_x61, incr(_x71)))))))top#(incr(head(incr(cons(proper(_x61), incr(proper(_x71)))))))top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))
top#(mark(nats))top#(ok(nats))top#(mark(incr(head(incr(pairs)))))top#(incr(head(incr(ok(pairs)))))
top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(0))))))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))
top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))
top#(mark(incr(head(incr(cons(_x61, 0))))))top#(incr(head(incr(cons(proper(_x61), ok(0))))))top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), _x72), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), proper(_x72)), proper(_x62))))))
top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x51), _x42)))top#(mark(incr(head(incr(cons(incr(_x71), _x62))))))top#(incr(head(incr(cons(incr(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(tail(_x61))))))top#(incr(head(incr(tail(proper(_x61))))))top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))
top#(mark(incr(head(incr(cons(cons(0, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(0), proper(_x72)), proper(_x62))))))top#(mark(incr(nats)))top#(incr(ok(nats)))
top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


The right-hand side of the rule top#(mark(incr(head(incr(cons(cons(_x71, nats), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), proper(_x62)))))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), head(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(odds)))))) 
top#(incr(head(incr(cons(cons(ok(nats), ok(nats)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(nats)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(0)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(nats)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), incr(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(nats)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), tail(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(nats)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(ok(0), ok(nats)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(ok(pairs), ok(nats)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), cons(proper(_x71), proper(_x72))))))) 
top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(nats)), proper(_x62)))))) 
Thus, the rule top#(mark(incr(head(incr(cons(cons(_x71, nats), _x62)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), proper(_x62)))))) is replaced by the following rules:
top#(mark(incr(head(incr(cons(cons(_x71, nats), odds)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(odds))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), cons(_x71, _x72))))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), pairs)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(incr(_x81), nats), _x62)))))) → top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), s(_x71))))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), tail(_x71))))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), 0)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(0))))))top#(mark(incr(head(incr(cons(cons(odds, nats), _x62)))))) → top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), nats), _x62)))))) → top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(tail(_x81), nats), _x62)))))) → top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(head(_x81), nats), _x62)))))) → top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(0, nats), _x62)))))) → top#(incr(head(incr(cons(cons(ok(0), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(pairs, nats), _x62)))))) → top#(incr(head(incr(cons(cons(ok(pairs), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(nats, nats), _x62)))))) → top#(incr(head(incr(cons(cons(ok(nats), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), head(_x71))))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), nats)))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), incr(_x71))))))) → top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(_x81), nats), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), proper(_x62))))))

Problem 24: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(head(incr(cons(cons(odds, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), proper(_x62))))))top#(mark(incr(head(s(_x51)))))top#(incr(head(s(proper(_x51)))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), proper(_x62))))))top#(ok(tail(head(_x41))))top#(tail(head(active(_x41))))
top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))top#(mark(incr(head(incr(cons(cons(odds, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), ok(pairs)), proper(_x62))))))
top#(ok(tail(pairs)))top#(tail(mark(cons(0, incr(odds)))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), incr(proper(_x71)))))))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(incr(head(incr(cons(nats, _x62))))))top#(incr(head(incr(cons(ok(nats), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), incr(proper(_x71)))))))
top#(ok(nats))top#(mark(cons(0, incr(nats))))top#(mark(incr(head(incr(cons(cons(s(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), proper(_x62))))))
top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))top#(mark(incr(odds)))top#(incr(ok(odds)))
top#(ok(tail(cons(s(_x51), _x42))))top#(tail(cons(s(active(_x51)), _x42)))top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), proper(_x62))))))
top#(ok(tail(cons(cons(_x51, _x52), _x42))))top#(tail(cons(cons(active(_x51), _x52), _x42)))top#(mark(incr(head(incr(cons(cons(_x71, pairs), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))
top#(mark(tail(nats)))top#(tail(ok(nats)))top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))
top#(ok(odds))top#(mark(incr(pairs)))top#(mark(incr(head(incr(cons(odds, _x62))))))top#(incr(head(incr(cons(ok(odds), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(0))))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(incr(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(0))))top#(incr(head(ok(0))))top#(mark(incr(head(incr(cons(cons(_x71, nats), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(head(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(0, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(pairs)), proper(_x62))))))
top#(ok(tail(cons(incr(_x51), _x42))))top#(tail(cons(incr(active(_x51)), _x42)))top#(mark(incr(head(incr(head(_x61))))))top#(incr(head(incr(head(proper(_x61))))))
top#(mark(incr(head(incr(cons(_x61, pairs))))))top#(incr(head(incr(cons(proper(_x61), ok(pairs))))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(incr(head(incr(cons(cons(_x71, incr(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), incr(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(_x61, tail(_x71)))))))top#(incr(head(incr(cons(proper(_x61), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(0))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), tail(proper(_x71)))))))
top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))
top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))top#(mark(incr(head(incr(cons(cons(head(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, s(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), s(proper(_x81))), proper(_x62))))))top#(mark(tail(0)))top#(tail(ok(0)))
top#(mark(incr(pairs)))top#(ok(incr(pairs)))top#(mark(tail(odds)))top#(tail(ok(odds)))
top#(mark(incr(head(incr(cons(cons(odds, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(tail(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(tail(_x71), _x62))))))top#(incr(head(incr(cons(tail(proper(_x71)), proper(_x62))))))top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))
top#(ok(tail(cons(head(_x51), _x42))))top#(tail(cons(head(active(_x51)), _x42)))top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(pairs, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(pairs)), proper(_x62))))))top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(odds))))))top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(_x71, odds), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(odds)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(0, _x62))))))top#(incr(head(incr(cons(ok(0), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(tail(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(nats)), proper(_x62))))))
top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))top#(mark(incr(head(incr(cons(cons(_x71, cons(_x81, _x82)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), cons(proper(_x81), proper(_x82))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, tail(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), tail(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(head(_x71), _x62))))))top#(incr(head(incr(cons(head(proper(_x71)), proper(_x62))))))
top#(ok(head(_x21)))top#(head(active(_x21)))top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))
top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))top#(mark(incr(head(incr(cons(cons(nats, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(_x61, nats))))))top#(incr(head(incr(cons(proper(_x61), ok(nats))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), incr(proper(_x71)))))))top#(ok(incr(_x21)))top#(incr(active(_x21)))
top#(mark(incr(head(incr(0)))))top#(incr(head(incr(ok(0)))))top#(mark(incr(0)))top#(incr(ok(0)))
top#(ok(tail(cons(tail(_x51), _x42))))top#(tail(cons(tail(active(_x51)), _x42)))top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(head(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(nats))))))top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))
top#(mark(incr(head(incr(odds)))))top#(incr(head(ok(incr(odds)))))top#(mark(incr(head(incr(cons(_x61, odds))))))top#(incr(head(incr(cons(proper(_x61), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(nats, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(incr(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(pairs, _x62))))))top#(incr(head(incr(cons(ok(pairs), proper(_x62))))))
top#(ok(tail(cons(pairs, _x42))))top#(tail(cons(mark(cons(0, incr(odds))), _x42)))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(nats))))))
top#(ok(pairs))top#(mark(cons(0, incr(odds))))top#(mark(incr(head(incr(cons(_x61, head(_x71)))))))top#(incr(head(incr(cons(proper(_x61), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(pairs, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), proper(_x72)), proper(_x62))))))top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))
top#(mark(incr(head(incr(cons(cons(pairs, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(nats)), proper(_x62))))))top#(ok(tail(cons(odds, _x42))))top#(tail(cons(mark(incr(pairs)), _x42)))
top#(mark(incr(head(incr(cons(cons(_x71, 0), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(0)), proper(_x62))))))top#(mark(incr(head(incr(cons(s(_x71), _x62))))))top#(incr(head(incr(cons(s(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(nats)))))top#(incr(head(incr(ok(nats)))))top#(mark(incr(head(incr(cons(_x61, s(_x71)))))))top#(incr(head(incr(cons(proper(_x61), s(proper(_x71)))))))
top#(ok(tail(cons(nats, _x42))))top#(tail(cons(mark(cons(0, incr(nats))), _x42)))top#(mark(incr(head(incr(cons(cons(_x71, _x72), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(tail(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))top#(mark(odds))top#(ok(odds))
top#(mark(incr(head(incr(s(_x61))))))top#(incr(head(incr(s(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), nats), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(nats)), proper(_x62))))))
top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))top#(mark(incr(head(incr(cons(_x61, cons(_x71, _x72)))))))top#(incr(head(incr(cons(proper(_x61), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(incr(_x61))))))top#(incr(head(incr(incr(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))
top#(ok(tail(cons(head(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x52), _x42)))top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), pairs), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(_x61, incr(_x71)))))))top#(incr(head(incr(cons(proper(_x61), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(odds))))))
top#(mark(nats))top#(ok(nats))top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))
top#(mark(incr(head(incr(pairs)))))top#(incr(head(incr(ok(pairs)))))top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(0))))))top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))
top#(mark(incr(head(incr(cons(cons(0, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(nats)), proper(_x62))))))top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))
top#(mark(incr(head(incr(cons(_x61, 0))))))top#(incr(head(incr(cons(proper(_x61), ok(0))))))top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), _x72), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(incr(_x71), _x62))))))top#(incr(head(incr(cons(incr(proper(_x71)), proper(_x62))))))top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x51), _x42)))
top#(mark(incr(head(incr(tail(_x61))))))top#(incr(head(incr(tail(proper(_x61))))))top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))
top#(mark(incr(head(incr(cons(cons(nats, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(0, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(0), proper(_x72)), proper(_x62))))))
top#(mark(incr(nats)))top#(incr(ok(nats)))top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, top, cons

Strategy


The right-hand side of the rule top#(mark(incr(head(incr(cons(cons(odds, nats), _x62)))))) → top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), proper(_x62)))))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), head(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), cons(proper(_x71), proper(_x72))))))) 
top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(odds)))))) 
top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(0)))))) 
top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(nats)))))) 
top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), tail(proper(_x71))))))) 
top#(incr(head(incr(cons(ok(cons(odds, nats)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), incr(proper(_x71))))))) 
Thus, the rule top#(mark(incr(head(incr(cons(cons(odds, nats), _x62)))))) → top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), proper(_x62)))))) is replaced by the following rules:
top#(mark(incr(head(incr(cons(cons(odds, nats), odds)))))) → top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(odds))))))top#(mark(incr(head(incr(cons(cons(odds, nats), head(_x71))))))) → top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), incr(_x71))))))) → top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, nats), nats)))))) → top#(incr(head(incr(cons(ok(cons(odds, nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), s(_x71))))))) → top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, nats), nats)))))) → top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), 0)))))) → top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(0))))))top#(mark(incr(head(incr(cons(cons(odds, nats), pairs)))))) → top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), cons(_x71, _x72))))))) → top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(cons(cons(odds, nats), tail(_x71))))))) → top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), tail(proper(_x71)))))))

Problem 25: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(s(_x51)))))top#(incr(head(s(proper(_x51)))))
top#(mark(incr(head(incr(cons(cons(odds, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), ok(pairs)), proper(_x62))))))top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))
top#(ok(tail(head(_x41))))top#(tail(head(active(_x41))))top#(ok(tail(pairs)))top#(tail(mark(cons(0, incr(odds)))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), s(proper(_x71)))))))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(nats, _x62))))))top#(incr(head(incr(cons(ok(nats), proper(_x62))))))top#(ok(nats))top#(mark(cons(0, incr(nats))))
top#(mark(incr(head(incr(cons(cons(s(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))
top#(mark(incr(odds)))top#(incr(ok(odds)))top#(ok(tail(cons(s(_x51), _x42))))top#(tail(cons(s(active(_x51)), _x42)))
top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), proper(_x62))))))top#(ok(tail(cons(cons(_x51, _x52), _x42))))top#(tail(cons(cons(active(_x51), _x52), _x42)))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(odds))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))top#(mark(tail(nats)))top#(tail(ok(nats)))
top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))top#(ok(odds))top#(mark(incr(pairs)))
top#(mark(incr(head(incr(cons(odds, _x62))))))top#(incr(head(incr(cons(ok(odds), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(odds, nats), odds))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(0))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), s(proper(_x71)))))))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(mark(incr(head(incr(cons(cons(incr(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), head(proper(_x71)))))))top#(mark(incr(head(0))))top#(incr(head(ok(0))))
top#(mark(incr(head(incr(cons(cons(head(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(odds, nats), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(nats))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(0, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(pairs)), proper(_x62))))))top#(ok(tail(cons(incr(_x51), _x42))))top#(tail(cons(incr(active(_x51)), _x42)))
top#(mark(incr(head(incr(cons(_x61, pairs))))))top#(incr(head(incr(cons(proper(_x61), ok(pairs))))))top#(mark(incr(head(incr(head(_x61))))))top#(incr(head(incr(head(proper(_x61))))))
top#(mark(incr(head(incr(cons(cons(_x71, incr(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), incr(proper(_x81))), proper(_x62))))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(incr(head(incr(cons(cons(_x71, nats), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(0))))))top#(mark(incr(head(incr(cons(_x61, tail(_x71)))))))top#(incr(head(incr(cons(proper(_x61), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), tail(proper(_x71)))))))top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))
top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))
top#(mark(incr(head(incr(cons(cons(head(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, s(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), s(proper(_x81))), proper(_x62))))))
top#(mark(tail(0)))top#(tail(ok(0)))top#(mark(incr(pairs)))top#(ok(incr(pairs)))
top#(mark(tail(odds)))top#(tail(ok(odds)))top#(mark(incr(head(incr(cons(cons(odds, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(tail(_x71), _x62))))))top#(incr(head(incr(cons(tail(proper(_x71)), proper(_x62))))))
top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))top#(ok(tail(cons(head(_x51), _x42))))top#(tail(cons(head(active(_x51)), _x42)))
top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(pairs, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(pairs)), proper(_x62))))))
top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(odds))))))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, odds), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(odds)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(0, _x62))))))top#(incr(head(incr(cons(ok(0), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))
top#(mark(incr(head(incr(cons(cons(_x71, cons(_x81, _x82)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), cons(proper(_x81), proper(_x82))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, tail(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), tail(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(head(_x71), _x62))))))top#(incr(head(incr(cons(head(proper(_x71)), proper(_x62))))))top#(ok(head(_x21)))top#(head(active(_x21)))
top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))
top#(mark(incr(head(incr(cons(cons(nats, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), nats))))))top#(incr(head(incr(cons(ok(cons(odds, nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(_x61, nats))))))top#(incr(head(incr(cons(proper(_x61), ok(nats))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), incr(proper(_x71)))))))top#(ok(incr(_x21)))top#(incr(active(_x21)))
top#(mark(incr(head(incr(0)))))top#(incr(head(incr(ok(0)))))top#(mark(incr(0)))top#(incr(ok(0)))
top#(ok(tail(cons(tail(_x51), _x42))))top#(tail(cons(tail(active(_x51)), _x42)))top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(head(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), nats))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(nats))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(nats))))))
top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))top#(mark(incr(head(incr(odds)))))top#(incr(head(ok(incr(odds)))))
top#(mark(incr(head(incr(cons(_x61, odds))))))top#(incr(head(incr(cons(proper(_x61), ok(odds))))))top#(mark(incr(head(incr(cons(cons(nats, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), s(proper(_x71)))))))
top#(ok(tail(cons(pairs, _x42))))top#(tail(cons(mark(cons(0, incr(odds))), _x42)))top#(mark(incr(head(incr(cons(pairs, _x62))))))top#(incr(head(incr(cons(ok(pairs), proper(_x62))))))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(incr(head(incr(cons(cons(_x71, pairs), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(nats))))))
top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))top#(ok(pairs))top#(mark(cons(0, incr(odds))))
top#(mark(incr(head(incr(cons(_x61, head(_x71)))))))top#(incr(head(incr(cons(proper(_x61), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(pairs, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), proper(_x72)), proper(_x62))))))
top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))top#(mark(incr(head(incr(cons(cons(pairs, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, 0), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(0)), proper(_x62))))))top#(ok(tail(cons(odds, _x42))))top#(tail(cons(mark(incr(pairs)), _x42)))
top#(mark(incr(head(incr(cons(s(_x71), _x62))))))top#(incr(head(incr(cons(s(proper(_x71)), proper(_x62))))))top#(mark(incr(head(incr(nats)))))top#(incr(head(incr(ok(nats)))))
top#(mark(incr(head(incr(cons(_x61, s(_x71)))))))top#(incr(head(incr(cons(proper(_x61), s(proper(_x71)))))))top#(ok(tail(cons(nats, _x42))))top#(tail(cons(mark(cons(0, incr(nats))), _x42)))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(odds, nats), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(pairs))))))top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(odds, nats), 0))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(0))))))
top#(mark(incr(head(incr(s(_x61))))))top#(incr(head(incr(s(proper(_x61))))))top#(mark(odds))top#(ok(odds))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), nats), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(nats)), proper(_x62))))))top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))
top#(mark(incr(head(incr(cons(cons(odds, nats), tail(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(_x61, cons(_x71, _x72)))))))top#(incr(head(incr(cons(proper(_x61), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), head(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), head(proper(_x71)))))))top#(mark(incr(head(incr(incr(_x61))))))top#(incr(head(incr(incr(proper(_x61))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))
top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))top#(ok(tail(cons(head(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x52), _x42)))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), pairs), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(_x61, incr(_x71)))))))top#(incr(head(incr(cons(proper(_x61), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(odds))))))top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))
top#(mark(nats))top#(ok(nats))top#(mark(incr(head(incr(pairs)))))top#(incr(head(incr(ok(pairs)))))
top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(0))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), pairs))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(pairs))))))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))
top#(mark(incr(head(incr(cons(cons(0, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(nats)), proper(_x62))))))top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))
top#(mark(incr(head(incr(cons(_x61, 0))))))top#(incr(head(incr(cons(proper(_x61), ok(0))))))top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), _x72), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), proper(_x72)), proper(_x62))))))
top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x51), _x42)))top#(mark(incr(head(incr(cons(incr(_x71), _x62))))))top#(incr(head(incr(cons(incr(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(tail(_x61))))))top#(incr(head(incr(tail(proper(_x61))))))top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))
top#(mark(incr(head(incr(cons(cons(odds, nats), s(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(nats, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(0, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(0), proper(_x72)), proper(_x62))))))top#(mark(incr(nats)))top#(incr(ok(nats)))
top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


The right-hand side of the rule top#(mark(incr(head(s(_x51))))) → top#(incr(head(s(proper(_x51))))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(head(s(s(proper(_x61)))))) 
top#(incr(head(s(ok(nats))))) 
top#(incr(head(s(incr(proper(_x61)))))) 
top#(incr(head(s(head(proper(_x61)))))) 
top#(incr(head(s(ok(pairs))))) 
top#(incr(head(s(ok(0))))) 
top#(incr(head(s(tail(proper(_x61)))))) 
top#(incr(head(s(cons(proper(_x61), proper(_x62)))))) 
top#(incr(head(s(ok(odds))))) 
Thus, the rule top#(mark(incr(head(s(_x51))))) → top#(incr(head(s(proper(_x51))))) is replaced by the following rules:
top#(mark(incr(head(s(nats))))) → top#(incr(head(s(ok(nats)))))top#(mark(incr(head(s(s(_x61)))))) → top#(incr(head(s(s(proper(_x61))))))
top#(mark(incr(head(s(pairs))))) → top#(incr(head(s(ok(pairs)))))top#(mark(incr(head(s(odds))))) → top#(incr(head(s(ok(odds)))))
top#(mark(incr(head(s(cons(_x61, _x62)))))) → top#(incr(head(s(cons(proper(_x61), proper(_x62))))))top#(mark(incr(head(s(tail(_x61)))))) → top#(incr(head(s(tail(proper(_x61))))))
top#(mark(incr(head(s(incr(_x61)))))) → top#(incr(head(s(incr(proper(_x61))))))top#(mark(incr(head(s(0))))) → top#(incr(head(s(ok(0)))))
top#(mark(incr(head(s(head(_x61)))))) → top#(incr(head(s(head(proper(_x61))))))

Problem 26: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(head(s(pairs)))))top#(incr(head(s(ok(pairs)))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(ok(tail(head(_x41))))top#(tail(head(active(_x41))))top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))
top#(mark(incr(head(incr(cons(cons(odds, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), ok(pairs)), proper(_x62))))))top#(ok(tail(pairs)))top#(tail(mark(cons(0, incr(odds)))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), incr(proper(_x71)))))))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(mark(incr(head(incr(cons(nats, _x62))))))top#(incr(head(incr(cons(ok(nats), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), incr(proper(_x71)))))))top#(ok(nats))top#(mark(cons(0, incr(nats))))
top#(mark(incr(head(s(head(_x61))))))top#(incr(head(s(head(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(s(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), proper(_x62))))))
top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))top#(mark(incr(odds)))top#(incr(ok(odds)))
top#(ok(tail(cons(s(_x51), _x42))))top#(tail(cons(s(active(_x51)), _x42)))top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), proper(_x62))))))
top#(ok(tail(cons(cons(_x51, _x52), _x42))))top#(tail(cons(cons(active(_x51), _x52), _x42)))top#(mark(incr(head(incr(cons(cons(_x71, pairs), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))
top#(mark(tail(nats)))top#(tail(ok(nats)))top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))
top#(ok(odds))top#(mark(incr(pairs)))top#(mark(incr(head(incr(cons(odds, _x62))))))top#(incr(head(incr(cons(ok(odds), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), odds))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(odds))))))top#(mark(incr(head(s(s(_x61))))))top#(incr(head(s(s(proper(_x61))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(0))))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(incr(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(0))))top#(incr(head(ok(0))))top#(mark(incr(head(incr(cons(cons(_x71, nats), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(cons(cons(head(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(nats))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(0, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(pairs)), proper(_x62))))))top#(ok(tail(cons(incr(_x51), _x42))))top#(tail(cons(incr(active(_x51)), _x42)))
top#(mark(incr(head(incr(head(_x61))))))top#(incr(head(incr(head(proper(_x61))))))top#(mark(incr(head(incr(cons(_x61, pairs))))))top#(incr(head(incr(cons(proper(_x61), ok(pairs))))))
top#(mark(head(_x21)))top#(head(proper(_x21)))top#(mark(incr(head(incr(cons(cons(_x71, incr(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), incr(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(_x61, tail(_x71)))))))top#(incr(head(incr(cons(proper(_x61), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(0))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), tail(proper(_x71)))))))top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))
top#(mark(incr(head(s(tail(_x61))))))top#(incr(head(s(tail(proper(_x61))))))top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))
top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))top#(mark(incr(head(incr(cons(cons(head(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, s(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), s(proper(_x81))), proper(_x62))))))top#(mark(tail(0)))top#(tail(ok(0)))
top#(mark(incr(pairs)))top#(ok(incr(pairs)))top#(mark(tail(odds)))top#(tail(ok(odds)))
top#(mark(incr(head(incr(cons(cons(odds, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(tail(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(s(odds)))))top#(incr(head(s(ok(odds)))))top#(mark(incr(head(incr(cons(tail(_x71), _x62))))))top#(incr(head(incr(cons(tail(proper(_x71)), proper(_x62))))))
top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))top#(ok(tail(cons(head(_x51), _x42))))top#(tail(cons(head(active(_x51)), _x42)))
top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(pairs, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(pairs)), proper(_x62))))))
top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(odds))))))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, odds), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(odds)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(0, _x62))))))top#(incr(head(incr(cons(ok(0), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))
top#(mark(incr(head(incr(cons(cons(_x71, cons(_x81, _x82)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), cons(proper(_x81), proper(_x82))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, tail(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), tail(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(head(_x71), _x62))))))top#(incr(head(incr(cons(head(proper(_x71)), proper(_x62))))))top#(ok(head(_x21)))top#(head(active(_x21)))
top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))
top#(mark(incr(head(incr(cons(cons(nats, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), nats))))))top#(incr(head(incr(cons(ok(cons(odds, nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(_x61, nats))))))top#(incr(head(incr(cons(proper(_x61), ok(nats))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), incr(proper(_x71)))))))top#(ok(incr(_x21)))top#(incr(active(_x21)))
top#(mark(incr(head(incr(0)))))top#(incr(head(incr(ok(0)))))top#(mark(incr(0)))top#(incr(ok(0)))
top#(ok(tail(cons(tail(_x51), _x42))))top#(tail(cons(tail(active(_x51)), _x42)))top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(head(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), nats))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(nats))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(nats))))))
top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))top#(mark(incr(head(incr(odds)))))top#(incr(head(ok(incr(odds)))))
top#(mark(incr(head(incr(cons(_x61, odds))))))top#(incr(head(incr(cons(proper(_x61), ok(odds))))))top#(mark(incr(head(incr(cons(cons(nats, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(pairs, _x62))))))top#(incr(head(incr(cons(ok(pairs), proper(_x62))))))top#(ok(tail(cons(pairs, _x42))))top#(tail(cons(mark(cons(0, incr(odds))), _x42)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(nats))))))top#(ok(pairs))top#(mark(cons(0, incr(odds))))
top#(mark(incr(head(incr(cons(_x61, head(_x71)))))))top#(incr(head(incr(cons(proper(_x61), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(pairs, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), proper(_x72)), proper(_x62))))))
top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))top#(mark(incr(head(incr(cons(cons(pairs, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(nats)), proper(_x62))))))
top#(ok(tail(cons(odds, _x42))))top#(tail(cons(mark(incr(pairs)), _x42)))top#(mark(incr(head(incr(cons(cons(_x71, 0), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(0)), proper(_x62))))))
top#(mark(incr(head(s(cons(_x61, _x62))))))top#(incr(head(s(cons(proper(_x61), proper(_x62))))))top#(mark(incr(head(incr(cons(s(_x71), _x62))))))top#(incr(head(incr(cons(s(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(nats)))))top#(incr(head(incr(ok(nats)))))top#(mark(incr(head(s(0)))))top#(incr(head(s(ok(0)))))
top#(mark(incr(head(incr(cons(_x61, s(_x71)))))))top#(incr(head(incr(cons(proper(_x61), s(proper(_x71)))))))top#(ok(tail(cons(nats, _x42))))top#(tail(cons(mark(cons(0, incr(nats))), _x42)))
top#(mark(incr(head(incr(cons(cons(odds, nats), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(odds, nats), 0))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(0))))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))
top#(mark(odds))top#(ok(odds))top#(mark(incr(head(incr(s(_x61))))))top#(incr(head(incr(s(proper(_x61))))))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), nats), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(nats)), proper(_x62))))))top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))
top#(mark(incr(head(s(incr(_x61))))))top#(incr(head(s(incr(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(odds, nats), tail(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), head(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(_x61, cons(_x71, _x72)))))))top#(incr(head(incr(cons(proper(_x61), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(incr(_x61))))))top#(incr(head(incr(incr(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))
top#(ok(tail(cons(head(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x52), _x42)))top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), pairs), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(_x61, incr(_x71)))))))top#(incr(head(incr(cons(proper(_x61), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(odds))))))
top#(mark(nats))top#(ok(nats))top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))
top#(mark(incr(head(incr(pairs)))))top#(incr(head(incr(ok(pairs)))))top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))
top#(mark(incr(head(incr(cons(cons(odds, nats), pairs))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(0))))))
top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))top#(mark(incr(head(incr(cons(cons(0, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(nats)), proper(_x62))))))
top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))top#(mark(incr(head(incr(cons(_x61, 0))))))top#(incr(head(incr(cons(proper(_x61), ok(0))))))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), _x72), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(s(nats)))))top#(incr(head(s(ok(nats)))))
top#(mark(incr(head(incr(cons(incr(_x71), _x62))))))top#(incr(head(incr(cons(incr(proper(_x71)), proper(_x62))))))top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x51), _x42)))
top#(mark(incr(head(incr(tail(_x61))))))top#(incr(head(incr(tail(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(odds, nats), s(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), s(proper(_x71)))))))
top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))top#(mark(incr(head(incr(cons(cons(nats, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(0, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(0), proper(_x72)), proper(_x62))))))top#(mark(incr(nats)))top#(incr(ok(nats)))
top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, top, cons

Strategy


The right-hand side of the rule top#(mark(incr(head(s(pairs))))) → top#(incr(head(s(ok(pairs))))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(head(ok(s(pairs))))) 
Thus, the rule top#(mark(incr(head(s(pairs))))) → top#(incr(head(s(ok(pairs))))) is replaced by the following rules:
top#(mark(incr(head(s(pairs))))) → top#(incr(head(ok(s(pairs)))))

Problem 27: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(odds, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), ok(pairs)), proper(_x62))))))
top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))top#(ok(tail(head(_x41))))top#(tail(head(active(_x41))))
top#(ok(tail(pairs)))top#(tail(mark(cons(0, incr(odds)))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), s(proper(_x71)))))))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(mark(incr(head(incr(cons(cons(_x71, _x72), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(nats, _x62))))))top#(incr(head(incr(cons(ok(nats), proper(_x62))))))
top#(mark(incr(head(s(head(_x61))))))top#(incr(head(s(head(proper(_x61))))))top#(ok(nats))top#(mark(cons(0, incr(nats))))
top#(mark(incr(head(incr(cons(cons(s(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))
top#(mark(incr(odds)))top#(incr(ok(odds)))top#(ok(tail(cons(s(_x51), _x42))))top#(tail(cons(s(active(_x51)), _x42)))
top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), proper(_x62))))))top#(ok(tail(cons(cons(_x51, _x52), _x42))))top#(tail(cons(cons(active(_x51), _x52), _x42)))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(odds))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))top#(mark(tail(nats)))top#(tail(ok(nats)))
top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))top#(ok(odds))top#(mark(incr(pairs)))
top#(mark(incr(head(incr(cons(odds, _x62))))))top#(incr(head(incr(cons(ok(odds), proper(_x62))))))top#(mark(incr(head(s(s(_x61))))))top#(incr(head(s(s(proper(_x61))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), odds))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(odds))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(0))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), s(proper(_x71)))))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(incr(head(incr(cons(cons(incr(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), head(proper(_x71)))))))
top#(mark(incr(head(0))))top#(incr(head(ok(0))))top#(mark(incr(head(incr(cons(cons(head(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(0, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(pairs)), proper(_x62))))))
top#(ok(tail(cons(incr(_x51), _x42))))top#(tail(cons(incr(active(_x51)), _x42)))top#(mark(incr(head(incr(cons(_x61, pairs))))))top#(incr(head(incr(cons(proper(_x61), ok(pairs))))))
top#(mark(incr(head(incr(head(_x61))))))top#(incr(head(incr(head(proper(_x61))))))top#(mark(incr(head(s(pairs)))))top#(incr(head(ok(s(pairs)))))
top#(mark(incr(head(incr(cons(cons(_x71, incr(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), incr(proper(_x81))), proper(_x62))))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(incr(head(incr(cons(cons(_x71, nats), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(0))))))top#(mark(incr(head(incr(cons(_x61, tail(_x71)))))))top#(incr(head(incr(cons(proper(_x61), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), tail(proper(_x71)))))))top#(mark(incr(head(s(tail(_x61))))))top#(incr(head(s(tail(proper(_x61))))))
top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))
top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))top#(mark(incr(head(incr(cons(cons(head(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, s(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), s(proper(_x81))), proper(_x62))))))top#(mark(tail(0)))top#(tail(ok(0)))
top#(mark(incr(pairs)))top#(ok(incr(pairs)))top#(mark(tail(odds)))top#(tail(ok(odds)))
top#(mark(incr(head(incr(cons(cons(odds, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(tail(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(s(odds)))))top#(incr(head(s(ok(odds)))))top#(mark(incr(head(incr(cons(tail(_x71), _x62))))))top#(incr(head(incr(cons(tail(proper(_x71)), proper(_x62))))))
top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))top#(ok(tail(cons(head(_x51), _x42))))top#(tail(cons(head(active(_x51)), _x42)))
top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(pairs, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(pairs)), proper(_x62))))))
top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(odds))))))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, odds), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(odds)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(0, _x62))))))top#(incr(head(incr(cons(ok(0), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))
top#(mark(incr(head(incr(cons(cons(_x71, cons(_x81, _x82)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), cons(proper(_x81), proper(_x82))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, tail(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), tail(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(head(_x71), _x62))))))top#(incr(head(incr(cons(head(proper(_x71)), proper(_x62))))))top#(ok(head(_x21)))top#(head(active(_x21)))
top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))
top#(mark(incr(head(incr(cons(cons(nats, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), nats))))))top#(incr(head(incr(cons(ok(cons(odds, nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(_x61, nats))))))top#(incr(head(incr(cons(proper(_x61), ok(nats))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), incr(proper(_x71)))))))top#(ok(incr(_x21)))top#(incr(active(_x21)))
top#(mark(incr(head(incr(0)))))top#(incr(head(incr(ok(0)))))top#(mark(incr(0)))top#(incr(ok(0)))
top#(ok(tail(cons(tail(_x51), _x42))))top#(tail(cons(tail(active(_x51)), _x42)))top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(head(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), nats))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(nats))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(nats))))))
top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))top#(mark(incr(head(incr(odds)))))top#(incr(head(ok(incr(odds)))))
top#(mark(incr(head(incr(cons(_x61, odds))))))top#(incr(head(incr(cons(proper(_x61), ok(odds))))))top#(mark(incr(head(incr(cons(cons(nats, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), s(proper(_x71)))))))
top#(ok(tail(cons(pairs, _x42))))top#(tail(cons(mark(cons(0, incr(odds))), _x42)))top#(mark(incr(head(incr(cons(pairs, _x62))))))top#(incr(head(incr(cons(ok(pairs), proper(_x62))))))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(incr(head(incr(cons(cons(_x71, pairs), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(nats))))))
top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))top#(ok(pairs))top#(mark(cons(0, incr(odds))))
top#(mark(incr(head(incr(cons(_x61, head(_x71)))))))top#(incr(head(incr(cons(proper(_x61), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(pairs, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), proper(_x72)), proper(_x62))))))
top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))top#(mark(incr(head(incr(cons(cons(pairs, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, 0), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(0)), proper(_x62))))))top#(ok(tail(cons(odds, _x42))))top#(tail(cons(mark(incr(pairs)), _x42)))
top#(mark(incr(head(s(cons(_x61, _x62))))))top#(incr(head(s(cons(proper(_x61), proper(_x62))))))top#(mark(incr(head(incr(cons(s(_x71), _x62))))))top#(incr(head(incr(cons(s(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(nats)))))top#(incr(head(incr(ok(nats)))))top#(mark(incr(head(s(0)))))top#(incr(head(s(ok(0)))))
top#(mark(incr(head(incr(cons(_x61, s(_x71)))))))top#(incr(head(incr(cons(proper(_x61), s(proper(_x71)))))))top#(ok(tail(cons(nats, _x42))))top#(tail(cons(mark(cons(0, incr(nats))), _x42)))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(odds, nats), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(pairs))))))top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(odds, nats), 0))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(0))))))
top#(mark(incr(head(incr(s(_x61))))))top#(incr(head(incr(s(proper(_x61))))))top#(mark(odds))top#(ok(odds))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), nats), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(nats)), proper(_x62))))))top#(mark(incr(head(s(incr(_x61))))))top#(incr(head(s(incr(proper(_x61))))))
top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))top#(mark(incr(head(incr(cons(cons(odds, nats), tail(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(_x61, cons(_x71, _x72)))))))top#(incr(head(incr(cons(proper(_x61), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(cons(cons(odds, nats), head(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), head(proper(_x71)))))))
top#(mark(incr(head(incr(incr(_x61))))))top#(incr(head(incr(incr(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))
top#(ok(tail(cons(head(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x52), _x42)))top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), pairs), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(_x61, incr(_x71)))))))top#(incr(head(incr(cons(proper(_x61), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(odds))))))
top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))top#(mark(nats))top#(ok(nats))
top#(mark(incr(head(incr(pairs)))))top#(incr(head(incr(ok(pairs)))))top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(0))))))top#(mark(incr(head(incr(cons(cons(odds, nats), pairs))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(pairs))))))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))
top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))top#(mark(incr(head(incr(cons(cons(0, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(nats)), proper(_x62))))))
top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))top#(mark(incr(head(incr(cons(_x61, 0))))))top#(incr(head(incr(cons(proper(_x61), ok(0))))))
top#(mark(incr(head(s(nats)))))top#(incr(head(s(ok(nats)))))top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), _x72), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), proper(_x72)), proper(_x62))))))
top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x51), _x42)))top#(mark(incr(head(incr(cons(incr(_x71), _x62))))))top#(incr(head(incr(cons(incr(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(tail(_x61))))))top#(incr(head(incr(tail(proper(_x61))))))top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))
top#(mark(incr(head(incr(cons(cons(odds, nats), s(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(nats, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(0, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(0), proper(_x72)), proper(_x62))))))top#(mark(incr(nats)))top#(incr(ok(nats)))
top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


The right-hand side of the rule top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), proper(_x62)))))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(head(incr(cons(cons(s(proper(_x81)), head(proper(_x81))), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), head(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(s(proper(_x91))), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(odds)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(tail(proper(_x91))), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), cons(proper(_x81), proper(_x82))), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), tail(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(nats)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(0)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), cons(proper(_x71), proper(_x72))))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(cons(proper(_x91), proper(_x92))), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(ok(pairs)), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), tail(proper(_x81))), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), incr(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), incr(proper(_x81))), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(ok(0)), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(ok(nats)), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), proper(_x62)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(odds)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), s(proper(_x81))), proper(_x62)))))) 
Thus, the rule top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), proper(_x62)))))) is replaced by the following rules:
top#(mark(incr(head(incr(cons(cons(s(0), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(s(ok(0)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), head(_x71))))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), pairs)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(s(cons(_x91, _x92)), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(s(cons(proper(_x91), proper(_x92))), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(tail(_x91)), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(s(tail(proper(_x91))), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), odds)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), s(_x71))))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), tail(_x71))))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), tail(_x81)), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), tail(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), incr(_x71))))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), nats), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), nats)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(nats))))))top#(mark(incr(head(incr(cons(cons(s(_x81), odds), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(odds)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), incr(_x81)), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), incr(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(pairs), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(s(ok(pairs)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(nats), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(s(ok(nats)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), 0), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(odds), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(head(_x91)), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), 0)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(0))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), head(_x81)), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), head(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), s(_x81)), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), s(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), cons(_x81, _x82)), _x62)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), cons(proper(_x81), proper(_x82))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(s(_x91)), _x72), _x62)))))) → top#(incr(head(incr(cons(cons(s(s(proper(_x91))), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), cons(_x71, _x72))))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), cons(proper(_x71), proper(_x72)))))))

Problem 28: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), pairs))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(pairs))))))top#(ok(tail(head(_x41))))top#(tail(head(active(_x41))))
top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))top#(mark(incr(head(incr(cons(cons(odds, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), s(proper(_x71)))))))top#(ok(tail(pairs)))top#(tail(mark(cons(0, incr(odds)))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), incr(proper(_x71)))))))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(incr(head(incr(cons(cons(s(_x81), tail(_x81)), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), tail(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(nats, _x62))))))top#(incr(head(incr(cons(ok(nats), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), incr(proper(_x71)))))))top#(mark(incr(head(s(head(_x61))))))top#(incr(head(s(head(proper(_x61))))))
top#(ok(nats))top#(mark(cons(0, incr(nats))))top#(mark(incr(head(incr(cons(cons(s(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), proper(_x62))))))
top#(mark(incr(head(nats))))top#(incr(head(ok(nats))))top#(mark(incr(odds)))top#(incr(ok(odds)))
top#(ok(tail(cons(s(_x51), _x42))))top#(tail(cons(s(active(_x51)), _x42)))top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), proper(_x62))))))
top#(ok(tail(cons(cons(_x51, _x52), _x42))))top#(tail(cons(cons(active(_x51), _x52), _x42)))top#(mark(incr(head(incr(cons(cons(s(_x81), incr(_x81)), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), incr(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(nats), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(ok(nats)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), cons(proper(_x71), proper(_x72)))))))top#(mark(tail(nats)))top#(tail(ok(nats)))
top#(mark(incr(s(_x41))))top#(incr(s(proper(_x41))))top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))
top#(ok(odds))top#(mark(incr(pairs)))top#(mark(incr(head(incr(cons(cons(s(head(_x91)), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(odds, _x62))))))top#(incr(head(incr(cons(ok(odds), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(odds, nats), odds))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(odds))))))
top#(mark(incr(head(s(s(_x61))))))top#(incr(head(s(s(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(0))))))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(mark(incr(head(incr(cons(cons(_x71, pairs), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), cons(_x81, _x82)), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), cons(proper(_x81), proper(_x82))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(incr(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(0))))top#(incr(head(ok(0))))top#(mark(incr(head(incr(cons(cons(_x71, nats), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(cons(cons(odds, nats), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(head(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(0, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(pairs)), proper(_x62))))))
top#(ok(tail(cons(incr(_x51), _x42))))top#(tail(cons(incr(active(_x51)), _x42)))top#(mark(incr(head(incr(head(_x61))))))top#(incr(head(incr(head(proper(_x61))))))
top#(mark(incr(head(incr(cons(_x61, pairs))))))top#(incr(head(incr(cons(proper(_x61), ok(pairs))))))top#(mark(incr(head(s(pairs)))))top#(incr(head(ok(s(pairs)))))
top#(mark(incr(head(incr(cons(cons(_x71, incr(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), incr(proper(_x81))), proper(_x62))))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(incr(head(incr(cons(cons(_x71, nats), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(0))))))top#(mark(incr(head(incr(cons(_x61, tail(_x71)))))))top#(incr(head(incr(cons(proper(_x61), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), tail(proper(_x71)))))))top#(mark(incr(head(s(tail(_x61))))))top#(incr(head(s(tail(proper(_x61))))))
top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))
top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))top#(mark(incr(head(incr(cons(cons(head(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(tail(_x91)), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(tail(proper(_x91))), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, s(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), s(proper(_x81))), proper(_x62))))))
top#(mark(tail(0)))top#(tail(ok(0)))top#(mark(incr(pairs)))top#(ok(incr(pairs)))
top#(mark(tail(odds)))top#(tail(ok(odds)))top#(mark(incr(head(incr(cons(cons(odds, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(s(odds)))))top#(incr(head(s(ok(odds)))))
top#(mark(incr(head(incr(cons(tail(_x71), _x62))))))top#(incr(head(incr(cons(tail(proper(_x71)), proper(_x62))))))top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))
top#(ok(tail(cons(head(_x51), _x42))))top#(tail(cons(head(active(_x51)), _x42)))top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), nats))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(nats))))))top#(mark(incr(head(incr(cons(cons(pairs, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(pairs)), proper(_x62))))))
top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(odds))))))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, odds), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(odds)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(odds), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(0, _x62))))))top#(incr(head(incr(cons(ok(0), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(tail(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(nats)), proper(_x62))))))
top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))top#(mark(incr(head(incr(cons(cons(_x71, cons(_x81, _x82)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), cons(proper(_x81), proper(_x82))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, tail(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), tail(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), 0))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(0))))))
top#(mark(incr(head(incr(cons(head(_x71), _x62))))))top#(incr(head(incr(cons(head(proper(_x71)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), head(proper(_x81))), proper(_x62))))))
top#(ok(head(_x21)))top#(head(active(_x21)))top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))
top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))top#(mark(incr(head(incr(cons(cons(nats, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), head(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), nats))))))top#(incr(head(incr(cons(ok(cons(odds, nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(_x61, nats))))))top#(incr(head(incr(cons(proper(_x61), ok(nats))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), tail(proper(_x71)))))))top#(ok(incr(_x21)))top#(incr(active(_x21)))
top#(mark(incr(head(incr(0)))))top#(incr(head(incr(ok(0)))))top#(mark(incr(0)))top#(incr(ok(0)))
top#(ok(tail(cons(tail(_x51), _x42))))top#(tail(cons(tail(active(_x51)), _x42)))top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(s(cons(_x91, _x92)), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(cons(proper(_x91), proper(_x92))), proper(_x72)), proper(_x62))))))top#(mark(tail(pairs)))top#(tail(ok(pairs)))
top#(mark(incr(head(incr(cons(cons(incr(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(head(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, nats), nats))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(nats))))))top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))
top#(mark(incr(head(incr(odds)))))top#(incr(head(ok(incr(odds)))))top#(mark(incr(head(incr(cons(_x61, odds))))))top#(incr(head(incr(cons(proper(_x61), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(nats, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(pairs), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(ok(pairs)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), 0), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), proper(_x62))))))top#(mark(incr(head(incr(cons(pairs, _x62))))))top#(incr(head(incr(cons(ok(pairs), proper(_x62))))))
top#(ok(tail(cons(pairs, _x42))))top#(tail(cons(mark(cons(0, incr(odds))), _x42)))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(nats))))))
top#(ok(pairs))top#(mark(cons(0, incr(odds))))top#(mark(incr(head(incr(cons(_x61, head(_x71)))))))top#(incr(head(incr(cons(proper(_x61), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(pairs, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), s(_x81)), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), s(proper(_x81))), proper(_x62))))))
top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))top#(mark(incr(head(incr(cons(cons(pairs, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(nats)), proper(_x62))))))
top#(ok(tail(cons(odds, _x42))))top#(tail(cons(mark(incr(pairs)), _x42)))top#(mark(incr(head(incr(cons(cons(_x71, 0), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(0)), proper(_x62))))))
top#(mark(incr(head(s(cons(_x61, _x62))))))top#(incr(head(s(cons(proper(_x61), proper(_x62))))))top#(mark(incr(head(incr(cons(s(_x71), _x62))))))top#(incr(head(incr(cons(s(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(s(_x91)), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(s(proper(_x91))), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(nats)))))top#(incr(head(incr(ok(nats)))))
top#(mark(incr(head(s(0)))))top#(incr(head(s(ok(0)))))top#(mark(incr(head(incr(cons(_x61, s(_x71)))))))top#(incr(head(incr(cons(proper(_x61), s(proper(_x71)))))))
top#(ok(tail(cons(nats, _x42))))top#(tail(cons(mark(cons(0, incr(nats))), _x42)))top#(mark(incr(head(incr(cons(cons(s(0), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(ok(0)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(odds, nats), 0))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(0))))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))
top#(mark(odds))top#(ok(odds))top#(mark(incr(head(incr(s(_x61))))))top#(incr(head(incr(s(proper(_x61))))))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), nats), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(nats)), proper(_x62))))))top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))
top#(mark(incr(head(s(incr(_x61))))))top#(incr(head(s(incr(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(odds, nats), tail(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), odds))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(odds))))))top#(mark(incr(head(incr(cons(cons(odds, nats), head(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(_x61, cons(_x71, _x72)))))))top#(incr(head(incr(cons(proper(_x61), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(incr(_x61))))))top#(incr(head(incr(incr(proper(_x61))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))
top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))top#(ok(tail(cons(head(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x52), _x42)))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), pairs), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(_x61, incr(_x71)))))))top#(incr(head(incr(cons(proper(_x61), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), incr(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(odds))))))
top#(mark(nats))top#(ok(nats))top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))
top#(mark(incr(head(incr(pairs)))))top#(incr(head(incr(ok(pairs)))))top#(mark(incr(head(incr(cons(cons(s(_x81), odds), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(odds)), proper(_x62))))))
top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))top#(mark(incr(head(incr(cons(cons(odds, nats), pairs))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(0))))))top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))
top#(mark(incr(head(incr(cons(cons(0, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), proper(_x72)), proper(_x62))))))
top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))top#(mark(incr(head(incr(cons(_x61, 0))))))top#(incr(head(incr(cons(proper(_x61), ok(0))))))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), _x72), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(s(nats)))))top#(incr(head(s(ok(nats)))))
top#(mark(incr(head(incr(cons(incr(_x71), _x62))))))top#(incr(head(incr(cons(incr(proper(_x71)), proper(_x62))))))top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x51), _x42)))
top#(mark(incr(head(incr(tail(_x61))))))top#(incr(head(incr(tail(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(odds, nats), s(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), s(proper(_x71)))))))
top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))top#(mark(incr(head(incr(cons(cons(nats, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(0, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(0), proper(_x72)), proper(_x62))))))top#(mark(incr(nats)))top#(incr(ok(nats)))
top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, top, cons

Strategy


The right-hand side of the rule top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), pairs)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(pairs)))))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(ok(nats)), proper(_x72)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), proper(_x72)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(odds)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(ok(pairs)), proper(_x72)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), cons(proper(_x81), proper(_x82))), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(tail(proper(_x91))), proper(_x72)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(cons(proper(_x91), proper(_x92))), proper(_x72)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), tail(proper(_x81))), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), incr(proper(_x81))), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(ok(0)), proper(_x72)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), s(proper(_x81))), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), head(proper(_x81))), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(s(proper(_x91))), proper(_x72)), ok(pairs)))))) 
top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), ok(pairs)))))) 
Thus, the rule top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), pairs)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(pairs)))))) is replaced by the following rules:
top#(mark(incr(head(incr(cons(cons(s(_x81), incr(_x81)), pairs)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), incr(proper(_x81))), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(s(pairs), _x72), pairs)))))) → top#(incr(head(incr(cons(cons(s(ok(pairs)), proper(_x72)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), 0), pairs)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(s(_x81), cons(_x81, _x82)), pairs)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), cons(proper(_x81), proper(_x82))), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(nats), _x72), pairs)))))) → top#(incr(head(incr(cons(cons(s(ok(nats)), proper(_x72)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), _x72), pairs)))))) → top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), proper(_x72)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), odds), pairs)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(odds)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(s(_x81), s(_x81)), pairs)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), s(proper(_x81))), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), head(_x81)), pairs)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), head(proper(_x81))), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(s(cons(_x91, _x92)), _x72), pairs)))))) → top#(incr(head(incr(cons(cons(s(cons(proper(_x91), proper(_x92))), proper(_x72)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(tail(_x91)), _x72), pairs)))))) → top#(incr(head(incr(cons(cons(s(tail(proper(_x91))), proper(_x72)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(s(odds), _x72), pairs)))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), tail(_x81)), pairs)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), tail(proper(_x81))), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(s(head(_x91)), _x72), pairs)))))) → top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), nats), pairs)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(s(0), _x72), pairs)))))) → top#(incr(head(incr(cons(cons(s(ok(0)), proper(_x72)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(s(_x91)), _x72), pairs)))))) → top#(incr(head(incr(cons(cons(s(s(proper(_x91))), proper(_x72)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), pairs)))))) → top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), ok(pairs))))))

Problem 29: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(incr(head(incr(cons(cons(s(_x81), incr(_x81)), s(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), incr(proper(_x81))), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(_x81), head(_x81)), s(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), head(proper(_x81))), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(head(_x91)), _x72), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(cons(cons(s(odds), _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(s(_x111)))), incr(0)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(s(proper(_x111))))), incr(ok(0)))))))top#(mark(incr(head(incr(cons(cons(odds, head(nats)), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(ok(nats))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(pairs)), proper(_x62))))))top#(ok(cons(head(incr(_x61)), _x22)))top#(cons(head(incr(active(_x61))), _x22))
top#(mark(incr(head(incr(cons(cons(_x71, nats), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, nats), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(s(_x111)))), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(s(proper(_x111))))), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(head(_x91)), _x72), 0))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), ok(0))))))
top#(mark(incr(head(incr(head(_x61))))))top#(incr(head(incr(head(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(odds, head(tail(_x101))), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(tail(proper(_x101)))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(0), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(ok(0)), ok(0)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), 0), s(pairs)))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), ok(0)), s(ok(pairs)))))))
top#(mark(incr(head(s(tail(_x61))))))top#(incr(head(s(tail(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(odds, head(_x81)), head(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(proper(_x81))), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(head(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(tail(_x91)), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(tail(proper(_x91))), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), tail(0)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), tail(ok(0)))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(s(_x111)))), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(s(proper(_x111))))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(pairs))), incr(pairs)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(pairs)))), incr(ok(pairs)))))))top#(ok(cons(head(odds), _x22)))top#(cons(head(mark(incr(pairs))), _x22))
top#(mark(incr(head(incr(cons(cons(s(s(_x91)), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(s(proper(_x91))), ok(0)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(tail(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(s(odds)))))top#(incr(head(s(ok(odds)))))top#(mark(incr(head(incr(cons(cons(s(_x81), tail(_x81)), pairs))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), tail(proper(_x81))), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(head(_x91)), _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(_x81), nats), pairs))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(s(_x91)), _x72), pairs))))))top#(incr(head(incr(cons(cons(s(s(proper(_x91))), proper(_x72)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(nats))), incr(cons(_x91, _x92))))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(nats)))), incr(cons(proper(_x91), proper(_x92))))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), incr(_x81)), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), incr(proper(_x81))), tail(proper(_x71)))))))top#(ok(tail(incr(_x41))))top#(tail(incr(active(_x41))))
top#(ok(tail(cons(cons(incr(_x61), _x52), _x42))))top#(tail(cons(cons(incr(active(_x61)), _x52), _x42)))top#(mark(incr(head(incr(cons(cons(_x71, odds), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(odds)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(nats), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(ok(nats)), ok(0)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, cons(_x81, _x82)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), cons(proper(_x81), proper(_x82))), proper(_x62))))))
top#(mark(incr(head(incr(cons(head(_x71), _x62))))))top#(incr(head(incr(cons(head(proper(_x71)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), head(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, head(nats)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(ok(nats))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, head(tail(_x101))), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), head(tail(proper(_x101)))), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), 0), s(s(_x91))))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), ok(0)), s(s(proper(_x91))))))))top#(mark(incr(head(incr(cons(cons(s(s(_x91)), _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(s(proper(_x91))), proper(_x72)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(cons(_x91, _x92)), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(cons(proper(_x91), proper(_x92))), ok(0)), s(proper(_x71)))))))top#(ok(tail(odds)))top#(tail(mark(incr(pairs))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(0))), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(0)))), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(head(_x111)))), incr(0)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(head(proper(_x111))))), incr(ok(0)))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(nats), _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(s(ok(nats)), proper(_x72)), s(proper(_x71)))))))
top#(ok(incr(_x21)))top#(incr(active(_x21)))top#(mark(incr(head(incr(cons(cons(s(incr(0)), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(incr(ok(0))), ok(0)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(incr(_x111)))), incr(pairs)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(incr(proper(_x111))))), incr(ok(pairs)))))))top#(mark(incr(head(incr(cons(cons(_x71, head(tail(_x101))), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(tail(proper(_x101)))), proper(_x62))))))
top#(mark(incr(0)))top#(incr(ok(0)))top#(mark(incr(head(incr(cons(cons(odds, head(head(head(_x111)))), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(head(proper(_x111))))), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), s(odds)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), s(ok(odds)))))))top#(mark(incr(head(incr(cons(cons(s(cons(_x91, _x92)), _x72), pairs))))))top#(incr(head(incr(cons(cons(s(cons(proper(_x91), proper(_x92))), proper(_x72)), ok(pairs))))))
top#(mark(tail(pairs)))top#(tail(ok(pairs)))top#(mark(incr(head(incr(cons(cons(_x71, pairs), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), s(tail(_x91))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), s(tail(proper(_x91))))))))top#(mark(incr(head(incr(cons(cons(odds, nats), nats))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(s(head(_x91)), _x72), pairs))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(s(pairs), 0), pairs))))))top#(incr(head(incr(cons(cons(s(ok(pairs)), ok(0)), ok(pairs))))))
top#(mark(incr(head(incr(odds)))))top#(incr(head(ok(incr(odds)))))top#(mark(incr(head(incr(cons(cons(s(tail(_x91)), _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(tail(proper(_x91))), proper(_x72)), tail(proper(_x71)))))))
top#(ok(tail(cons(cons(tail(_x61), _x52), _x42))))top#(tail(cons(cons(tail(active(_x61)), _x52), _x42)))top#(mark(incr(head(incr(cons(cons(s(incr(nats)), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(incr(ok(nats))), ok(0)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), odds), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(odds)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(_x81), cons(_x81, _x82)), pairs))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), cons(proper(_x81), proper(_x82))), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(nats))), incr(incr(_x91))))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(nats)))), incr(incr(proper(_x91))))))))top#(mark(incr(head(incr(cons(cons(nats, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(pairs), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(ok(pairs)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(pairs), _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(ok(pairs)), proper(_x72)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(_x81), 0), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), tail(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), tail(proper(_x71)))))))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(incr(head(incr(cons(cons(s(pairs), s(_x81)), pairs))))))top#(incr(head(incr(cons(cons(s(ok(pairs)), s(proper(_x81))), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(s(pairs), nats), pairs))))))top#(incr(head(incr(cons(ok(cons(s(pairs), nats)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(_x71, 0), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(0)), proper(_x62))))))
top#(mark(incr(head(incr(cons(s(_x71), _x62))))))top#(incr(head(incr(cons(s(proper(_x71)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), proper(_x72)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), incr(0)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), ok(incr(0)))))))top#(ok(tail(head(tail(cons(_x52, _x51))))))top#(tail(head(mark(_x51))))
top#(mark(incr(head(s(0)))))top#(incr(head(s(ok(0)))))top#(ok(cons(head(nats), _x22)))top#(cons(head(mark(cons(0, incr(nats)))), _x22))
top#(mark(incr(head(incr(cons(cons(s(_x81), odds), s(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(odds)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), incr(tail(_x91))))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), incr(tail(proper(_x91))))))))
top#(mark(incr(head(incr(cons(cons(head(_x81), head(_x81)), nats))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), head(proper(_x81))), ok(nats))))))top#(mark(incr(head(incr(cons(cons(odds, nats), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(pairs))))))top#(ok(tail(cons(cons(nats, _x52), _x42))))top#(tail(cons(cons(mark(cons(0, incr(nats))), _x52), _x42)))
top#(mark(incr(head(incr(cons(cons(_x71, nats), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(pairs))))))top#(ok(tail(head(nats))))top#(tail(head(mark(cons(0, incr(nats))))))
top#(mark(odds))top#(ok(odds))top#(mark(incr(head(incr(s(_x61))))))top#(incr(head(incr(s(proper(_x61))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), head(_x81)), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), head(proper(_x81))), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(_x81), s(_x81)), pairs))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), s(proper(_x81))), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(head(_x91)), incr(_x81)), _x62))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), incr(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), odds))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(odds))))))
top#(mark(incr(head(incr(incr(_x61))))))top#(incr(head(incr(incr(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(nats))), incr(0)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(nats)))), incr(ok(0)))))))
top#(ok(tail(head(s(_x51)))))top#(tail(head(s(active(_x51)))))top#(mark(incr(head(odds))))top#(incr(head(ok(odds))))
top#(ok(tail(cons(head(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x52), _x42)))top#(mark(incr(head(incr(cons(cons(odds, head(0)), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(ok(0))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), incr(cons(_x91, _x92))))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), incr(cons(proper(_x91), proper(_x92))))))))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), pairs), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(_x61, incr(_x71)))))))top#(incr(head(incr(cons(proper(_x61), incr(proper(_x71)))))))
top#(mark(incr(head(tail(_x51)))))top#(incr(head(tail(proper(_x51)))))top#(mark(incr(head(incr(cons(cons(s(_x81), s(_x81)), s(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), s(proper(_x81))), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), odds), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(odds)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(pairs), _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(s(ok(pairs)), proper(_x72)), s(proper(_x71)))))))
top#(mark(incr(head(head(_x51)))))top#(incr(head(head(proper(_x51)))))top#(mark(incr(head(incr(cons(cons(s(nats), _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(ok(nats)), proper(_x72)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), pairs))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, head(0)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(ok(0))), proper(_x62))))))top#(mark(incr(head(nats))))top#(incr(ok(head(nats))))
top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(0, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(odds))), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(odds)))), proper(_x62))))))top#(mark(incr(head(incr(cons(_x61, 0))))))top#(incr(head(incr(cons(proper(_x61), ok(0))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), tail(pairs)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), tail(ok(pairs)))))))top#(mark(incr(head(s(nats)))))top#(incr(head(s(ok(nats)))))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), _x72), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), proper(_x72)), proper(_x62))))))top#(ok(cons(head(tail(_x61)), _x22)))top#(cons(head(tail(active(_x61))), _x22))
top#(mark(incr(head(incr(tail(_x61))))))top#(incr(head(incr(tail(proper(_x61))))))top#(ok(tail(cons(cons(odds, _x52), _x42))))top#(tail(cons(cons(mark(incr(pairs)), _x52), _x42)))
top#(mark(incr(head(incr(cons(cons(odds, nats), s(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(s(_x111)))), incr(pairs)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(s(proper(_x111))))), incr(ok(pairs)))))))
top#(mark(incr(head(incr(cons(cons(nats, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(nats)), proper(_x62))))))top#(mark(incr(nats)))top#(incr(ok(nats)))
top#(mark(incr(head(incr(cons(cons(s(_x81), 0), s(s(_x91))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), s(s(proper(_x91))))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), incr(incr(_x91))))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), incr(incr(proper(_x91))))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), 0), pairs))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(s(incr(s(_x101))), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(incr(s(proper(_x101)))), ok(0)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), tail(cons(_x91, _x92))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), tail(cons(proper(_x91), proper(_x92))))))))top#(mark(incr(head(incr(cons(cons(odds, head(_x81)), tail(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(proper(_x81))), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(0))), incr(0)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(0)))), incr(ok(0)))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(nats))), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(ok(head(nats)))), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(head(_x91)), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), ok(0)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(0))), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(0)))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(head(cons(_x101, _x102))), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(head(cons(proper(_x101), proper(_x102)))), proper(_x72)), proper(_x62))))))
top#(ok(cons(tail(cons(_x42, _x41)), _x22)))top#(cons(mark(_x41), _x22))top#(mark(incr(head(incr(cons(cons(s(incr(head(_x101))), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(incr(head(proper(_x101)))), ok(0)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(nats, _x62))))))top#(incr(head(incr(cons(ok(nats), proper(_x62))))))top#(mark(incr(head(s(head(_x61))))))top#(incr(head(s(head(proper(_x61))))))
top#(ok(nats))top#(mark(cons(0, incr(nats))))top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), ok(0))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(tail(_x91)), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(tail(proper(_x91))), ok(0)), s(proper(_x71)))))))
top#(ok(cons(tail(_x41), _x22)))top#(cons(tail(active(_x41)), _x22))top#(mark(incr(head(incr(cons(cons(odds, head(head(cons(_x111, _x112)))), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(cons(proper(_x111), proper(_x112))))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), 0))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), ok(0))))))top#(mark(incr(head(incr(cons(cons(s(head(_x91)), _x72), odds))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(s(incr(odds)), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(incr(ok(odds))), ok(0)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, _x72), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(0))), incr(pairs)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(0)))), incr(ok(pairs)))))))
top#(ok(tail(head(tail(_x51)))))top#(tail(head(tail(active(_x51)))))top#(ok(tail(incr(cons(_x42, _x41)))))top#(tail(mark(cons(s(_x42), incr(_x41)))))
top#(mark(incr(head(incr(cons(cons(s(_x81), 0), s(cons(_x91, _x92))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), s(cons(proper(_x91), proper(_x92))))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), tail(s(_x91))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), tail(s(proper(_x91))))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(0))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(tail(_x111)))), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(tail(proper(_x111))))), incr(proper(_x71)))))))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(ok(tail(cons(cons(head(_x61), _x52), _x42))))top#(tail(cons(cons(head(active(_x61)), _x52), _x42)))
top#(ok(cons(head(s(_x61)), _x22)))top#(cons(head(s(active(_x61))), _x22))top#(mark(incr(head(incr(cons(cons(_x71, head(incr(_x101))), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), head(incr(proper(_x101)))), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), s(s(_x91))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), s(s(proper(_x91))))))))top#(ok(cons(cons(_x41, _x42), _x22)))top#(cons(cons(active(_x41), _x42), _x22))
top#(mark(incr(head(incr(cons(cons(_x71, nats), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(0))))))top#(ok(tail(cons(cons(incr(cons(_x62, _x61)), _x52), _x42))))top#(tail(cons(cons(mark(cons(s(_x62), incr(_x61))), _x52), _x42)))
top#(mark(incr(head(cons(_x51, _x52)))))top#(incr(head(cons(proper(_x51), proper(_x52)))))top#(mark(incr(head(incr(cons(cons(odds, head(_x81)), 0))))))top#(incr(head(incr(cons(cons(ok(odds), head(proper(_x81))), ok(0))))))
top#(mark(incr(head(incr(cons(cons(s(cons(_x91, _x92)), _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(cons(proper(_x91), proper(_x92))), proper(_x72)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, head(s(_x101))), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(s(proper(_x101)))), proper(_x62))))))
top#(ok(tail(cons(head(_x51), _x42))))top#(tail(cons(head(active(_x51)), _x42)))top#(mark(incr(head(incr(cons(cons(s(_x81), 0), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(cons(_x91, _x92)), _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(s(cons(proper(_x91), proper(_x92))), proper(_x72)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(head(pairs)), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(head(ok(pairs))), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(head(_x111)))), incr(pairs)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(head(proper(_x111))))), incr(ok(pairs)))))))top#(mark(incr(head(incr(cons(cons(s(odds), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, tail(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), tail(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(incr(_x111)))), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(incr(proper(_x111))))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), 0))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(0))))))top#(ok(tail(head(cons(_x42, _x41)))))top#(tail(mark(_x42)))
top#(mark(incr(head(incr(cons(cons(odds, head(head(nats))), incr(s(_x91))))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(nats)))), incr(s(proper(_x91))))))))top#(mark(incr(head(incr(cons(cons(s(head(_x91)), _x72), nats))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(odds))), incr(0)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(odds)))), incr(ok(0)))))))top#(ok(cons(pairs, _x22)))top#(cons(mark(cons(0, incr(odds))), _x22))
top#(mark(incr(head(incr(cons(cons(s(_x81), 0), s(incr(_x91))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), s(incr(proper(_x91))))))))top#(mark(incr(head(incr(cons(cons(s(head(_x91)), 0), _x62))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), ok(0)), proper(_x62))))))
top#(mark(incr(head(incr(cons(_x61, nats))))))top#(incr(head(incr(cons(proper(_x61), ok(nats))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(nats))), incr(head(_x91))))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(nats)))), incr(head(proper(_x91))))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), tail(nats)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), tail(ok(nats)))))))top#(mark(incr(head(incr(cons(cons(s(_x81), 0), s(head(_x91))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), s(head(proper(_x91))))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), s(incr(_x91))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), s(incr(proper(_x91))))))))top#(ok(tail(head(incr(_x51)))))top#(tail(head(incr(active(_x51)))))
top#(mark(incr(head(incr(cons(cons(odds, head(cons(_x101, _x102))), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(cons(proper(_x101), proper(_x102)))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), s(0)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), s(ok(0)))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(nats))), incr(nats)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(nats)))), incr(ok(nats)))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(_x71, head(s(_x101))), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(s(proper(_x101)))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(s(_x91)), _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(s(s(proper(_x91))), proper(_x72)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(nats))), incr(pairs)))))))top#(incr(head(incr(cons(cons(ok(odds), head(ok(head(nats)))), incr(ok(pairs)))))))top#(mark(incr(s(nats))))top#(incr(s(ok(nats))))
top#(mark(incr(head(incr(cons(cons(_x71, head(s(_x101))), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), head(s(proper(_x101)))), ok(nats))))))top#(mark(incr(head(incr(cons(cons(pairs, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), head(_x81)), pairs))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), head(proper(_x81))), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(s(_x81), s(_x81)), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), s(proper(_x81))), proper(_x62))))))
top#(ok(tail(s(_x41))))top#(tail(s(active(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, head(cons(_x101, _x102))), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(cons(proper(_x101), proper(_x102)))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(nats, head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), head(proper(_x81))), proper(_x62))))))top#(ok(tail(cons(odds, _x42))))top#(tail(cons(mark(incr(pairs)), _x42)))
top#(mark(incr(head(incr(cons(cons(s(_x81), 0), s(odds)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), s(ok(odds)))))))top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), 0), s(0)))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), ok(0)), s(ok(0)))))))
top#(mark(incr(head(incr(cons(cons(s(0), _x72), pairs))))))top#(incr(head(incr(cons(cons(s(ok(0)), proper(_x72)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(cons(_x111, _x112)))), incr(0)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(cons(proper(_x111), proper(_x112))))), incr(ok(0)))))))
top#(mark(incr(head(incr(nats)))))top#(incr(head(incr(ok(nats)))))top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), incr(pairs)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), ok(incr(pairs)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), s(nats)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), s(ok(nats)))))))top#(mark(incr(head(incr(cons(_x61, s(_x71)))))))top#(incr(head(incr(cons(proper(_x61), s(proper(_x71)))))))
top#(mark(tail(s(_x41))))top#(tail(s(proper(_x41))))top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), nats), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), ok(nats)), proper(_x62))))))
top#(mark(incr(head(s(incr(_x61))))))top#(incr(head(s(incr(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(s(pairs), pairs), pairs))))))top#(incr(head(incr(cons(cons(s(ok(pairs)), ok(pairs)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(tail(_x111)))), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(tail(proper(_x111))))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), pairs))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(_x71, nats), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(_x71, head(odds)), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), head(ok(odds))), ok(nats))))))top#(mark(nats))top#(ok(nats))
top#(mark(incr(head(incr(cons(cons(s(_x81), incr(_x81)), pairs))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), incr(proper(_x81))), ok(pairs))))))top#(ok(tail(cons(cons(cons(_x61, _x62), _x52), _x42))))top#(tail(cons(cons(cons(active(_x61), _x62), _x52), _x42)))
top#(mark(incr(head(incr(cons(cons(s(head(tail(_x101))), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(head(tail(proper(_x101)))), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(0), _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(s(ok(0)), proper(_x72)), s(proper(_x71)))))))
top#(ok(tail(cons(_x22, _x21))))top#(mark(_x21))top#(mark(incr(head(incr(cons(cons(odds, head(head(cons(_x111, _x112)))), incr(pairs)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(cons(proper(_x111), proper(_x112))))), incr(ok(pairs)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), s(head(_x91))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), s(head(proper(_x91))))))))top#(mark(incr(head(incr(cons(cons(s(head(odds)), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(head(ok(odds))), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(nats))), incr(tail(_x91))))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(nats)))), incr(tail(proper(_x91))))))))top#(ok(cons(head(head(_x61)), _x22)))top#(cons(head(head(active(_x61))), _x22))
top#(mark(incr(head(incr(cons(cons(_x71, head(incr(_x101))), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(incr(proper(_x101)))), proper(_x62))))))top#(ok(cons(nats, _x22)))top#(cons(mark(cons(0, incr(nats))), _x22))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), tail(incr(_x91))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), tail(incr(proper(_x91))))))))top#(mark(incr(head(incr(cons(cons(0, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(0), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(head(_x91)), pairs), _x62))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(head(_x91)), _x72), head(_x71)))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), head(proper(_x71)))))))
top#(mark(incr(s(0))))top#(incr(s(ok(0))))top#(ok(cons(head(pairs), _x22)))top#(cons(head(mark(cons(0, incr(odds)))), _x22))
top#(ok(cons(head(head(cons(_x62, _x61))), _x22)))top#(cons(head(mark(_x62)), _x22))top#(mark(incr(head(incr(cons(cons(_x71, _x72), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), tail(_x81)), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), tail(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), incr(_x81)), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), incr(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(nats), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(ok(nats)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(s(pairs), cons(_x81, _x82)), pairs))))))top#(incr(head(incr(cons(cons(s(ok(pairs)), cons(proper(_x81), proper(_x82))), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(odds, head(_x81)), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(ok(odds), head(proper(_x81))), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), head(_x81)), nats))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), head(proper(_x81))), ok(nats))))))top#(ok(odds))top#(mark(incr(pairs)))
top#(mark(incr(s(head(_x51)))))top#(incr(s(head(proper(_x51)))))top#(mark(incr(head(incr(cons(cons(s(incr(cons(_x101, _x102))), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(incr(cons(proper(_x101), proper(_x102)))), ok(0)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), tail(tail(_x91))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), tail(tail(proper(_x91))))))))top#(mark(incr(head(incr(cons(cons(s(_x81), cons(_x81, _x82)), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), cons(proper(_x81), proper(_x82))), proper(_x62))))))
top#(mark(incr(head(0))))top#(incr(head(ok(0))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(odds, head(_x81)), pairs))))))top#(incr(head(incr(cons(cons(ok(odds), head(proper(_x81))), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(head(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(incr(pairs)), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(incr(ok(pairs))), ok(0)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, head(odds)), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(ok(odds))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(nats))), incr(pairs)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(nats)))), ok(incr(pairs)))))))top#(mark(incr(s(cons(_x51, _x52)))))top#(incr(s(cons(proper(_x51), proper(_x52)))))
top#(mark(incr(head(incr(cons(cons(s(head(_x91)), nats), _x62))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), ok(nats)), proper(_x62))))))top#(mark(incr(head(s(pairs)))))top#(incr(head(ok(s(pairs)))))
top#(ok(cons(odds, _x22)))top#(cons(mark(incr(pairs)), _x22))top#(mark(incr(head(incr(cons(cons(_x71, head(pairs)), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), head(ok(pairs))), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), tail(proper(_x71)))))))top#(ok(head(cons(_x22, _x21))))top#(mark(_x22))
top#(mark(incr(head(incr(cons(cons(odds, head(head(pairs))), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(pairs)))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), odds), pairs))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(odds)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(_x71, s(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), s(proper(_x81))), proper(_x62))))))top#(mark(tail(0)))top#(tail(ok(0)))
top#(mark(incr(pairs)))top#(ok(incr(pairs)))top#(mark(incr(head(incr(cons(cons(_x71, head(0)), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), head(ok(0))), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(s(odds), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(ok(odds)), ok(0)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(tail(_x71), _x62))))))top#(incr(head(incr(cons(tail(proper(_x71)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(0, head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(ok(0), head(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(head(head(_x101))), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(head(head(proper(_x101)))), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(pairs, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(pairs)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), nats))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(nats))), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(nats)))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), head(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(0, _x62))))))top#(incr(head(incr(cons(ok(0), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(head(_x91)), odds), _x62))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), ok(odds)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(head(_x91)), tail(_x81)), _x62))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), tail(proper(_x81))), proper(_x62))))))top#(mark(tail(cons(_x41, _x42))))top#(tail(cons(proper(_x41), proper(_x42))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), odds))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), ok(odds))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(odds))), incr(pairs)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(odds)))), incr(ok(pairs)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), tail(_x81)), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), tail(proper(_x81))), tail(proper(_x71)))))))top#(ok(cons(head(cons(_x61, _x62)), _x22)))top#(cons(head(cons(active(_x61), _x62)), _x22))
top#(mark(incr(head(incr(cons(cons(odds, head(_x81)), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(proper(_x81))), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(head(_x91)), _x72), incr(_x71)))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(head(_x91)), cons(_x81, _x82)), _x62))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), cons(proper(_x81), proper(_x82))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), tail(odds)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), tail(ok(odds)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), head(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), 0), s(0)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), s(ok(0)))))))top#(mark(incr(head(incr(cons(cons(s(cons(_x91, _x92)), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(cons(proper(_x91), proper(_x92))), proper(_x72)), proper(_x62))))))
top#(mark(incr(incr(_x41))))top#(incr(incr(proper(_x41))))top#(mark(incr(head(incr(cons(cons(s(pairs), incr(_x81)), pairs))))))top#(incr(head(incr(cons(cons(s(ok(pairs)), incr(proper(_x81))), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(0, head(_x81)), nats))))))top#(incr(head(incr(cons(cons(ok(0), head(proper(_x81))), ok(nats))))))top#(mark(tail(tail(_x41))))top#(tail(tail(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(s(head(0)), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(head(ok(0))), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(_x61, odds))))))top#(incr(head(incr(cons(proper(_x61), ok(odds))))))
top#(ok(tail(head(head(_x51)))))top#(tail(head(head(active(_x51)))))top#(mark(incr(head(incr(cons(cons(incr(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(pairs, _x62))))))top#(incr(head(incr(cons(ok(pairs), proper(_x62))))))top#(mark(incr(s(pairs))))top#(incr(s(ok(pairs))))
top#(ok(incr(cons(_x22, _x21))))top#(mark(cons(s(_x22), incr(_x21))))top#(ok(pairs))top#(mark(cons(0, incr(odds))))
top#(mark(incr(head(incr(cons(cons(s(_x81), 0), s(pairs)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), s(ok(pairs)))))))top#(mark(incr(head(s(cons(_x61, _x62))))))top#(incr(head(s(cons(proper(_x61), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(s(_x91)), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(s(proper(_x91))), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(0), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(ok(0)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(pairs))), incr(0)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(pairs)))), incr(ok(0)))))))top#(mark(incr(head(incr(cons(cons(odds, nats), 0))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), ok(0))))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, head(pairs)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(ok(pairs))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), nats), s(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(_x61, cons(_x71, _x72)))))))top#(incr(head(incr(cons(proper(_x61), cons(proper(_x71), proper(_x72)))))))
top#(mark(incr(head(incr(cons(cons(s(0), _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(ok(0)), proper(_x72)), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), pairs))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(head(_x81), head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), head(proper(_x81))), proper(_x62))))))top#(mark(incr(tail(_x41))))top#(incr(tail(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), s(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(head(incr(_x101))), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(head(incr(proper(_x101)))), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), head(proper(_x81))), proper(_x62))))))top#(ok(tail(head(head(cons(_x52, _x51))))))top#(tail(head(mark(_x52))))
top#(mark(incr(head(incr(cons(cons(s(head(nats)), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(head(ok(nats))), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), incr(nats)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), incr(ok(nats)))))))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(incr(head(incr(cons(cons(s(tail(_x91)), _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(s(tail(proper(_x91))), proper(_x72)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), head(proper(_x81))), proper(_x62))))))top#(ok(tail(nats)))top#(tail(mark(cons(0, incr(nats)))))
top#(ok(cons(head(tail(cons(_x62, _x61))), _x22)))top#(cons(head(mark(_x61)), _x22))top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), 0), s(nats)))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), ok(0)), s(ok(nats)))))))
top#(mark(incr(head(incr(cons(cons(_x71, head(odds)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(ok(odds))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(tail(_x81), head(_x81)), nats))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), head(proper(_x81))), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), tail(proper(_x71)))))))top#(ok(cons(head(incr(cons(_x62, _x61))), _x22)))top#(cons(head(mark(cons(s(_x62), incr(_x61)))), _x22))
top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), head(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(head(s(_x101))), _x72), _x62))))))top#(incr(head(incr(cons(cons(s(head(s(proper(_x101)))), proper(_x72)), proper(_x62))))))
top#(ok(tail(pairs)))top#(mark(tail(cons(0, incr(odds)))))top#(mark(incr(head(incr(cons(cons(s(odds), _x72), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(_x71, head(head(_x101))), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), head(head(proper(_x101)))), ok(nats))))))top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(pairs), tail(_x81)), pairs))))))top#(incr(head(incr(cons(cons(s(ok(pairs)), tail(proper(_x81))), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), incr(s(_x91))))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), incr(s(proper(_x91))))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), cons(_x81, _x82)), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), cons(proper(_x81), proper(_x82))), tail(proper(_x71)))))))top#(ok(tail(cons(cons(s(_x61), _x52), _x42))))top#(tail(cons(cons(s(active(_x61)), _x52), _x42)))
top#(ok(tail(tail(cons(_x42, _x41)))))top#(tail(mark(_x41)))top#(mark(incr(head(incr(cons(cons(s(tail(_x91)), _x72), pairs))))))top#(incr(head(incr(cons(cons(s(tail(proper(_x91))), proper(_x72)), ok(pairs))))))
top#(ok(tail(cons(cons(head(cons(_x62, _x61)), _x52), _x42))))top#(tail(cons(cons(mark(_x62), _x52), _x42)))top#(mark(incr(head(incr(cons(cons(s(pairs), _x72), pairs))))))top#(incr(head(incr(cons(cons(ok(s(pairs)), proper(_x72)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, head(_x81)), odds))))))top#(incr(head(incr(cons(cons(ok(odds), head(proper(_x81))), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(_x71, nats), incr(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(nats)), incr(proper(_x71)))))))top#(mark(incr(s(tail(_x51)))))top#(incr(s(tail(proper(_x51)))))
top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), 0), s(tail(_x91))))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), ok(0)), s(tail(proper(_x91))))))))top#(ok(tail(cons(s(_x51), _x42))))top#(tail(cons(s(active(_x51)), _x42)))
top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), incr(odds)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), incr(ok(odds)))))))top#(mark(incr(head(incr(cons(cons(s(_x81), 0), s(tail(_x91))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), s(tail(proper(_x91))))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(incr(_x111)))), incr(0)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(incr(proper(_x111))))), incr(ok(0)))))))top#(ok(tail(cons(cons(tail(cons(_x62, _x61)), _x52), _x42))))top#(tail(cons(cons(mark(_x61), _x52), _x42)))
top#(ok(tail(head(odds))))top#(tail(mark(head(incr(pairs)))))top#(mark(incr(head(incr(cons(cons(s(nats), _x72), pairs))))))top#(incr(head(incr(cons(cons(s(ok(nats)), proper(_x72)), ok(pairs))))))
top#(ok(cons(s(_x41), _x22)))top#(cons(s(active(_x41)), _x22))top#(mark(incr(head(incr(cons(odds, _x62))))))top#(incr(head(incr(cons(ok(odds), proper(_x62))))))
top#(mark(incr(head(s(s(_x61))))))top#(incr(head(s(s(proper(_x61))))))top#(mark(incr(head(incr(cons(cons(_x71, pairs), s(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), s(proper(_x71)))))))
top#(mark(incr(s(odds))))top#(incr(s(ok(odds))))top#(mark(incr(head(incr(cons(cons(odds, head(head(odds))), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(odds)))), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, head(_x81)), s(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(proper(_x81))), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(_x71, head(cons(_x101, _x102))), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), head(cons(proper(_x101), proper(_x102)))), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(_x71, pairs), pairs))))))top#(incr(head(incr(cons(cons(proper(_x71), ok(pairs)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), incr(head(_x91))))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), incr(head(proper(_x91))))))))
top#(mark(incr(head(incr(cons(cons(0, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(0), ok(pairs)), proper(_x62))))))top#(ok(tail(cons(incr(_x51), _x42))))top#(tail(cons(incr(active(_x51)), _x42)))
top#(mark(incr(s(s(_x51)))))top#(incr(s(s(proper(_x51)))))top#(mark(incr(head(incr(cons(_x61, pairs))))))top#(incr(head(incr(cons(proper(_x61), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), nats), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(nats)), tail(proper(_x71)))))))top#(mark(head(_x21)))top#(head(proper(_x21)))
top#(mark(incr(head(incr(cons(cons(_x71, incr(_x81)), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), incr(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(_x61, tail(_x71)))))))top#(incr(head(incr(cons(proper(_x61), tail(proper(_x71)))))))
top#(ok(tail(head(pairs))))top#(tail(head(mark(cons(0, incr(odds))))))top#(mark(tail(incr(_x41))))top#(tail(incr(proper(_x41))))
top#(mark(incr(head(incr(cons(cons(nats, head(_x81)), nats))))))top#(incr(head(incr(cons(cons(ok(nats), head(proper(_x81))), ok(nats))))))top#(mark(tail(odds)))top#(tail(ok(odds)))
top#(mark(incr(head(incr(cons(cons(odds, _x72), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), s(cons(_x91, _x92))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), s(cons(proper(_x91), proper(_x92))))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), cons(_x71, _x72)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), cons(proper(_x71), proper(_x72)))))))top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), proper(_x72)), s(proper(_x71)))))))
top#(mark(incr(cons(_x41, _x42))))top#(incr(cons(proper(_x41), proper(_x42))))top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), _x62))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(odds))))))top#(mark(incr(head(incr(cons(cons(cons(_x81, _x82), head(_x81)), nats))))))top#(incr(head(incr(cons(cons(cons(proper(_x81), proper(_x82)), head(proper(_x81))), ok(nats))))))
top#(mark(tail(head(_x41))))top#(tail(head(proper(_x41))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), tail(head(_x91))))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), tail(head(proper(_x91))))))))
top#(mark(incr(head(incr(cons(cons(tail(_x81), nats), _x62))))))top#(incr(head(incr(cons(cons(tail(proper(_x81)), ok(nats)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(nats))), incr(odds)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(nats)))), incr(ok(odds)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), head(_x81)), nats))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), head(proper(_x81))), ok(nats))))))top#(mark(incr(head(incr(cons(cons(odds, head(incr(_x101))), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(incr(proper(_x101)))), proper(_x62))))))
top#(ok(head(_x21)))top#(head(active(_x21)))top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), 0), s(cons(_x91, _x92))))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), ok(0)), s(cons(proper(_x91), proper(_x92))))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(pairs))), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(ok(pairs)))), incr(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, head(_x81)), nats))))))top#(incr(head(incr(cons(cons(ok(odds), head(proper(_x81))), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(s(pairs), head(_x81)), pairs))))))top#(incr(head(incr(cons(cons(s(ok(pairs)), head(proper(_x81))), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(nats, pairs), _x62))))))top#(incr(head(incr(cons(cons(ok(nats), ok(pairs)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(incr(incr(_x101))), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(incr(incr(proper(_x101)))), ok(0)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, nats), nats))))))top#(incr(head(incr(cons(ok(cons(odds, nats)), proper(_x62))))))
top#(ok(tail(head(cons(_x51, _x52)))))top#(tail(head(cons(active(_x51), _x52))))top#(mark(incr(head(incr(0)))))top#(incr(head(incr(ok(0)))))
top#(ok(tail(cons(tail(_x51), _x42))))top#(tail(cons(tail(active(_x51)), _x42)))top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), 0), s(incr(_x91))))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), ok(0)), s(incr(proper(_x91))))))))
top#(mark(incr(head(incr(cons(cons(incr(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(incr(proper(_x81)), proper(_x72)), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(head(_x81), _x72), _x62))))))top#(incr(head(incr(cons(cons(head(proper(_x81)), proper(_x72)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(head(_x91)), _x72), s(_x71)))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), proper(_x72)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(pairs), odds), pairs))))))top#(incr(head(incr(cons(cons(s(ok(pairs)), ok(odds)), ok(pairs))))))
top#(ok(cons(incr(cons(_x42, _x41)), _x22)))top#(cons(mark(cons(s(_x42), incr(_x41))), _x22))top#(mark(tail(nats)))top#(ok(tail(nats)))
top#(mark(incr(odds)))top#(ok(incr(odds)))top#(mark(incr(head(incr(cons(cons(odds, head(pairs)), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(ok(pairs))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), tail(_x81)), s(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), tail(proper(_x81))), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(pairs, head(_x81)), nats))))))top#(incr(head(incr(cons(cons(ok(pairs), head(proper(_x81))), ok(nats))))))
top#(ok(tail(cons(pairs, _x42))))top#(tail(cons(mark(cons(0, incr(odds))), _x42)))top#(mark(incr(s(incr(_x51)))))top#(incr(s(incr(proper(_x51)))))
top#(ok(tail(cons(cons(pairs, _x42), _x42))))top#(tail(cons(mark(cons(cons(0, incr(odds)), _x42)), _x42)))top#(mark(incr(head(incr(cons(_x61, head(_x71)))))))top#(incr(head(incr(cons(proper(_x61), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), cons(_x81, _x82)), s(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), cons(proper(_x81), proper(_x82))), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(incr(_x111)))), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(incr(proper(_x111))))), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), pairs), s(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(pairs)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(pairs, nats), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), ok(nats)), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(tail(_x111)))), incr(pairs)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(tail(proper(_x111))))), incr(ok(pairs)))))))top#(mark(incr(head(incr(cons(cons(s(head(_x91)), s(_x81)), _x62))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), s(proper(_x81))), proper(_x62))))))
top#(mark(incr(head(incr(cons(cons(s(incr(tail(_x101))), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(incr(tail(proper(_x101)))), ok(0)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(head(_x91)), head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(s(head(proper(_x91))), head(proper(_x81))), proper(_x62))))))
top#(ok(cons(head(cons(_x42, _x41)), _x22)))top#(cons(mark(_x42), _x22))top#(ok(tail(cons(nats, _x42))))top#(tail(cons(mark(cons(0, incr(nats))), _x42)))
top#(mark(incr(head(incr(cons(cons(s(pairs), 0), s(_x71)))))))top#(incr(head(incr(cons(cons(s(ok(pairs)), ok(0)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(_x81), s(_x81)), tail(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), s(proper(_x81))), tail(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), _x72), pairs))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), proper(_x72)), ok(pairs))))))top#(mark(incr(head(incr(cons(cons(_x71, head(head(_x101))), _x62))))))top#(incr(head(incr(cons(cons(proper(_x71), head(head(proper(_x101)))), proper(_x62))))))
top#(mark(incr(head(pairs))))top#(incr(head(ok(pairs))))top#(mark(incr(head(incr(cons(cons(odds, nats), tail(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), tail(proper(_x71)))))))
top#(ok(tail(head(incr(cons(_x52, _x51))))))top#(tail(head(mark(cons(s(_x52), incr(_x51))))))top#(mark(incr(head(incr(cons(cons(odds, nats), head(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), ok(nats)), head(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(odds, nats), odds))))))top#(incr(head(incr(cons(ok(cons(odds, nats)), ok(odds))))))top#(mark(incr(head(incr(cons(cons(s(odds), _x72), pairs))))))top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), ok(pairs))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(tail(_x111)))), incr(0)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(tail(proper(_x111))))), incr(ok(0)))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(cons(_x111, _x112)))), incr(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(cons(proper(_x111), proper(_x112))))), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(pairs, head(_x81)), _x62))))))top#(incr(head(incr(cons(cons(ok(pairs), head(proper(_x81))), proper(_x62))))))top#(mark(incr(head(incr(cons(cons(_x71, head(nats)), nats))))))top#(incr(head(incr(cons(cons(proper(_x71), head(ok(nats))), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), head(_x71)))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), head(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), incr(_x71)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), incr(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), _x72), s(pairs)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), proper(_x72)), s(ok(pairs)))))))top#(ok(cons(incr(_x41), _x22)))top#(cons(incr(active(_x41)), _x22))
top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), 0), s(head(_x91))))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), ok(0)), s(head(proper(_x91))))))))top#(mark(incr(head(incr(pairs)))))top#(incr(head(incr(ok(pairs)))))
top#(mark(incr(head(incr(cons(cons(_x71, _x72), 0))))))top#(incr(head(incr(cons(cons(proper(_x71), proper(_x72)), ok(0))))))top#(mark(incr(head(incr(cons(cons(s(incr(_x91)), 0), s(odds)))))))top#(incr(head(incr(cons(cons(s(incr(proper(_x91))), ok(0)), s(ok(odds)))))))
top#(ok(tail(tail(_x41))))top#(tail(tail(active(_x41))))top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), odds))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), ok(odds))))))
top#(mark(incr(head(incr(cons(cons(_x71, head(_x81)), tail(_x71)))))))top#(incr(head(incr(cons(cons(proper(_x71), head(proper(_x81))), tail(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(odds, head(head(head(_x111)))), _x62))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(head(proper(_x111))))), proper(_x62))))))
top#(ok(tail(cons(tail(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(_x51), _x42)))top#(mark(incr(head(incr(cons(incr(_x71), _x62))))))top#(incr(head(incr(cons(incr(proper(_x71)), proper(_x62))))))
top#(ok(tail(cons(incr(cons(_x52, _x51)), _x42))))top#(tail(cons(mark(cons(s(_x52), incr(_x51))), _x42)))top#(mark(incr(head(incr(cons(cons(odds, head(head(_x101))), nats))))))top#(incr(head(incr(cons(cons(ok(odds), head(head(proper(_x101)))), ok(nats))))))
top#(mark(incr(head(incr(cons(cons(s(_x81), 0), s(nats)))))))top#(incr(head(incr(cons(cons(s(proper(_x81)), ok(0)), s(ok(nats)))))))top#(mark(pairs))top#(ok(pairs))

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


The right-hand side of the rule top#(mark(incr(head(incr(cons(cons(s(odds), _x72), s(_x71))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(proper(_x71))))))) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(incr(head(incr(cons(cons(s(ok(odds)), incr(proper(_x81))), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), cons(proper(_x81), proper(_x82))), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(s(proper(_x91)))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(ok(nats))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), ok(odds)), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(ok(odds))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), s(proper(_x81))), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(incr(proper(_x91)))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(tail(proper(_x91)))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), head(proper(_x81))), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(ok(s(odds)), proper(_x72)), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), tail(proper(_x81))), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(cons(proper(_x91), proper(_x92)))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(head(proper(_x91)))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), ok(0)), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(ok(pairs))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), ok(nats)), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), ok(pairs)), s(proper(_x71))))))) 
top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(ok(0))))))) 
Thus, the rule top#(mark(incr(head(incr(cons(cons(s(odds), _x72), s(_x71))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(proper(_x71))))))) is replaced by the following rules:
top#(mark(incr(head(incr(cons(cons(s(odds), s(_x81)), s(_x71))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), s(proper(_x81))), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(odds), pairs), s(_x71))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), ok(pairs)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(odds), _x72), s(nats))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(ok(nats)))))))top#(mark(incr(head(incr(cons(cons(s(odds), incr(_x81)), s(_x71))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), incr(proper(_x81))), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(odds), nats), s(_x71))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), ok(nats)), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(odds), _x72), s(s(_x91)))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(s(proper(_x91))))))))
top#(mark(incr(head(incr(cons(cons(s(odds), _x72), s(pairs))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(ok(pairs)))))))top#(mark(incr(head(incr(cons(cons(s(odds), _x72), s(odds))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(ok(odds)))))))
top#(mark(incr(head(incr(cons(cons(s(odds), cons(_x81, _x82)), s(_x71))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), cons(proper(_x81), proper(_x82))), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(odds), odds), s(_x71))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), ok(odds)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(odds), _x72), s(cons(_x91, _x92)))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(cons(proper(_x91), proper(_x92))))))))top#(mark(incr(head(incr(cons(cons(s(odds), _x72), s(odds))))))) → top#(incr(head(incr(cons(cons(ok(s(odds)), proper(_x72)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(odds), head(_x81)), s(_x71))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), head(proper(_x81))), s(proper(_x71)))))))top#(mark(incr(head(incr(cons(cons(s(odds), _x72), s(0))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(ok(0)))))))
top#(mark(incr(head(incr(cons(cons(s(odds), _x72), s(tail(_x91)))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(tail(proper(_x91))))))))top#(mark(incr(head(incr(cons(cons(s(odds), 0), s(_x71))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), ok(0)), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(odds), _x72), s(head(_x91)))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(head(proper(_x91))))))))top#(mark(incr(head(incr(cons(cons(s(odds), tail(_x81)), s(_x71))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), tail(proper(_x81))), s(proper(_x71)))))))
top#(mark(incr(head(incr(cons(cons(s(odds), _x72), s(incr(_x91)))))))) → top#(incr(head(incr(cons(cons(s(ok(odds)), proper(_x72)), s(incr(proper(_x91))))))))

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

proper#(s(X))proper#(X)proper#(cons(X1, X2))proper#(X1)
proper#(head(X))proper#(X)proper#(cons(X1, X2))proper#(X2)
proper#(incr(X))proper#(X)proper#(tail(X))proper#(X)

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

proper#(s(X))proper#(X)proper#(cons(X1, X2))proper#(X1)
proper#(head(X))proper#(X)proper#(cons(X1, X2))proper#(X2)
proper#(tail(X))proper#(X)proper#(incr(X))proper#(X)

Problem 7: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

head#(ok(X))head#(X)head#(mark(X))head#(X)

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

head#(ok(X))head#(X)head#(mark(X))head#(X)

Problem 8: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

s#(mark(X))s#(X)s#(ok(X))s#(X)

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

s#(mark(X))s#(X)s#(ok(X))s#(X)

Problem 9: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

tail#(ok(X))tail#(X)tail#(mark(X))tail#(X)

Rewrite Rules

active(nats)mark(cons(0, incr(nats)))active(pairs)mark(cons(0, incr(odds)))
active(odds)mark(incr(pairs))active(incr(cons(X, XS)))mark(cons(s(X), incr(XS)))
active(head(cons(X, XS)))mark(X)active(tail(cons(X, XS)))mark(XS)
active(cons(X1, X2))cons(active(X1), X2)active(incr(X))incr(active(X))
active(s(X))s(active(X))active(head(X))head(active(X))
active(tail(X))tail(active(X))cons(mark(X1), X2)mark(cons(X1, X2))
incr(mark(X))mark(incr(X))s(mark(X))mark(s(X))
head(mark(X))mark(head(X))tail(mark(X))mark(tail(X))
proper(nats)ok(nats)proper(cons(X1, X2))cons(proper(X1), proper(X2))
proper(0)ok(0)proper(incr(X))incr(proper(X))
proper(pairs)ok(pairs)proper(odds)ok(odds)
proper(s(X))s(proper(X))proper(head(X))head(proper(X))
proper(tail(X))tail(proper(X))cons(ok(X1), ok(X2))ok(cons(X1, X2))
incr(ok(X))ok(incr(X))s(ok(X))ok(s(X))
head(ok(X))ok(head(X))tail(ok(X))ok(tail(X))
top(mark(X))top(proper(X))top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: pairs, mark, odds, tail, nats, 0, s, active, ok, incr, proper, head, cons, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

tail#(ok(X))tail#(X)tail#(mark(X))tail#(X)