TIMEOUT

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (914ms).
 | – 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 (8ms).
 |    | – Problem 10 was processed with processor ForwardNarrowing (13ms).
 |    |    | – Problem 11 was processed with processor ForwardNarrowing (20ms).
 |    |    |    | – Problem 12 was processed with processor ForwardNarrowing (17ms).
 |    |    |    |    | – Problem 13 was processed with processor ForwardNarrowing (46ms).
 |    |    |    |    |    | – Problem 14 was processed with processor ForwardNarrowing (9ms).
 |    |    |    |    |    |    | – Problem 15 was processed with processor ForwardNarrowing (16ms).
 |    |    |    |    |    |    |    | – Problem 16 was processed with processor ForwardNarrowing (11ms).
 |    |    |    |    |    |    |    |    | – Problem 17 was processed with processor ForwardNarrowing (13ms).
 |    |    |    |    |    |    |    |    |    | – Problem 18 was processed with processor ForwardNarrowing (23ms).
 |    |    |    |    |    |    |    |    |    |    | – Problem 19 was processed with processor ForwardNarrowing (20ms).
 |    |    |    |    |    |    |    |    |    |    |    | – Problem 20 was processed with processor ForwardNarrowing (19ms).
 |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 21 was processed with processor ForwardNarrowing (23ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 22 was processed with processor ForwardNarrowing (23ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 23 was processed with processor ForwardNarrowing (25ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 24 was processed with processor ForwardNarrowing (26ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 25 was processed with processor ForwardNarrowing (21ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 26 was processed with processor ForwardNarrowing (25ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 27 was processed with processor ForwardNarrowing (22ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 28 was processed with processor ForwardNarrowing (80ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 29 was processed with processor ForwardNarrowing (134ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 30 remains open; application of the following processors failed [ForwardNarrowing (131ms), ForwardNarrowing (46ms), ForwardNarrowing (141ms), ForwardNarrowing (150ms), ForwardNarrowing (146ms), ForwardNarrowing (92ms), ForwardNarrowing (85ms), ForwardNarrowing (185ms), ForwardNarrowing (120ms), ForwardNarrowing (85ms), ForwardNarrowing (168ms), ForwardNarrowing (101ms), ForwardNarrowing (101ms), ForwardNarrowing (200ms), ForwardNarrowing (175ms), ForwardNarrowing (208ms), ForwardNarrowing (220ms), ForwardNarrowing (337ms), ForwardNarrowing (138ms), ForwardNarrowing (242ms), ForwardNarrowing (141ms), ForwardNarrowing (330ms), ForwardNarrowing (287ms), ForwardNarrowing (320ms), ForwardNarrowing (395ms), ForwardNarrowing (400ms), ForwardNarrowing (455ms), ForwardNarrowing (295ms), ForwardNarrowing (526ms), ForwardNarrowing (189ms), ForwardNarrowing (247ms), ForwardNarrowing (270ms), ForwardNarrowing (380ms), ForwardNarrowing (268ms), ForwardNarrowing (345ms), ForwardNarrowing (440ms), ForwardNarrowing (299ms), ForwardNarrowing (323ms), ForwardNarrowing (461ms)].
 | – Problem 6 was processed with processor SubtermCriterion (3ms).
 | – Problem 7 was processed with processor SubtermCriterion (1ms).
 | – Problem 8 was processed with processor SubtermCriterion (1ms).
 | – Problem 9 was processed with processor SubtermCriterion (1ms).

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(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, top, cons, nil


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

proper#(cons(X1, X2))proper#(X1)proper#(length(X))length#(proper(X))
proper#(U11(X1, X2))proper#(X1)top#(ok(X))top#(active(X))
cons#(mark(X1), X2)cons#(X1, X2)U12#(ok(X1), ok(X2))U12#(X1, X2)
U11#(ok(X1), ok(X2))U11#(X1, X2)proper#(U12(X1, X2))proper#(X2)
cons#(ok(X1), ok(X2))cons#(X1, X2)proper#(U11(X1, X2))U11#(proper(X1), proper(X2))
U11#(mark(X1), X2)U11#(X1, X2)top#(ok(X))active#(X)
active#(cons(X1, X2))cons#(active(X1), X2)proper#(U11(X1, X2))proper#(X2)
active#(U11(tt, L))U12#(tt, L)length#(ok(X))length#(X)
U12#(mark(X1), X2)U12#(X1, X2)top#(mark(X))proper#(X)
active#(U11(X1, X2))active#(X1)length#(mark(X))length#(X)
proper#(U12(X1, X2))proper#(X1)top#(mark(X))top#(proper(X))
active#(length(X))length#(active(X))proper#(cons(X1, X2))proper#(X2)
active#(U12(X1, X2))active#(X1)active#(U12(tt, L))length#(L)
active#(length(cons(N, L)))U11#(tt, L)active#(length(X))active#(X)
active#(U11(X1, X2))U11#(active(X1), X2)active#(s(X))s#(active(X))
s#(ok(X))s#(X)s#(mark(X))s#(X)
active#(U12(tt, L))s#(length(L))active#(U12(X1, X2))U12#(active(X1), X2)
proper#(s(X))proper#(X)proper#(length(X))proper#(X)
proper#(cons(X1, X2))cons#(proper(X1), proper(X2))active#(s(X))active#(X)
proper#(s(X))s#(proper(X))active#(zeros)cons#(0, zeros)
proper#(U12(X1, X2))U12#(proper(X1), proper(X2))active#(cons(X1, X2))active#(X1)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

Strategy


The following SCCs where found

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

length#(mark(X)) → length#(X)length#(ok(X)) → length#(X)

proper#(s(X)) → proper#(X)proper#(length(X)) → proper#(X)
proper#(U12(X1, X2)) → proper#(X1)proper#(cons(X1, X2)) → proper#(X1)
proper#(U11(X1, X2)) → proper#(X2)proper#(U11(X1, X2)) → proper#(X1)
proper#(cons(X1, X2)) → proper#(X2)proper#(U12(X1, X2)) → proper#(X2)

active#(U12(X1, X2)) → active#(X1)active#(s(X)) → active#(X)
active#(length(X)) → active#(X)active#(U11(X1, X2)) → active#(X1)
active#(cons(X1, X2)) → active#(X1)

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

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

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

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

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

proper#(s(X))proper#(X)proper#(length(X))proper#(X)
proper#(U12(X1, X2))proper#(X1)proper#(cons(X1, X2))proper#(X1)
proper#(U11(X1, X2))proper#(X2)proper#(U11(X1, X2))proper#(X1)
proper#(cons(X1, X2))proper#(X2)proper#(U12(X1, X2))proper#(X2)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

proper#(length(X))proper#(X)proper#(s(X))proper#(X)
proper#(cons(X1, X2))proper#(X1)proper#(U12(X1, X2))proper#(X1)
proper#(U11(X1, X2))proper#(X2)proper#(U11(X1, X2))proper#(X1)
proper#(cons(X1, X2))proper#(X2)proper#(U12(X1, X2))proper#(X2)

Problem 5: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

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#(U11(proper(_x21), proper(_x22))) 
top#(cons(proper(_x21), proper(_x22))) 
top#(ok(zeros)) 
top#(U12(proper(_x21), proper(_x22))) 
top#(s(proper(_x21))) 
top#(ok(tt)) 
top#(length(proper(_x21))) 
top#(ok(nil)) 
Thus, the rule top#(mark(X)) → top#(proper(X)) is replaced by the following rules:
top#(mark(zeros)) → top#(ok(zeros))top#(mark(U11(_x21, _x22))) → top#(U11(proper(_x21), proper(_x22)))
top#(mark(0)) → top#(ok(0))top#(mark(U12(_x21, _x22))) → top#(U12(proper(_x21), proper(_x22)))
top#(mark(nil)) → top#(ok(nil))top#(mark(cons(_x21, _x22))) → top#(cons(proper(_x21), proper(_x22)))
top#(mark(s(_x21))) → top#(s(proper(_x21)))top#(mark(tt)) → top#(ok(tt))
top#(mark(length(_x21))) → top#(length(proper(_x21)))

Problem 10: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(zeros))top#(ok(zeros))top#(mark(U11(_x21, _x22)))top#(U11(proper(_x21), proper(_x22)))
top#(mark(0))top#(ok(0))top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))
top#(ok(X))top#(active(X))top#(mark(nil))top#(ok(nil))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(tt))top#(ok(tt))top#(mark(length(_x21)))top#(length(proper(_x21)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, cons, nil, top

Strategy


The right-hand side of the rule top#(mark(U11(_x21, _x22))) → top#(U11(proper(_x21), proper(_x22))) 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#(U11(ok(nil), proper(_x22))) 
top#(U11(proper(_x21), cons(proper(_x51), proper(_x52)))) 
top#(U11(ok(zeros), proper(_x22))) 
top#(U11(proper(_x21), ok(tt))) 
top#(U11(cons(proper(_x41), proper(_x42)), proper(_x22))) 
top#(U11(ok(tt), proper(_x22))) 
top#(U11(proper(_x21), ok(zeros))) 
top#(U11(length(proper(_x41)), proper(_x22))) 
top#(U11(proper(_x21), length(proper(_x51)))) 
top#(U11(proper(_x21), s(proper(_x51)))) 
top#(U11(proper(_x21), U12(proper(_x51), proper(_x52)))) 
top#(U11(proper(_x21), ok(nil))) 
top#(U11(proper(_x21), ok(0))) 
top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22))) 
top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22))) 
top#(U11(ok(0), proper(_x22))) 
top#(U11(proper(_x21), U11(proper(_x51), proper(_x52)))) 
top#(U11(s(proper(_x41)), proper(_x22))) 
Thus, the rule top#(mark(U11(_x21, _x22))) → top#(U11(proper(_x21), proper(_x22))) is replaced by the following rules:
top#(mark(U11(_x21, nil))) → top#(U11(proper(_x21), ok(nil)))top#(mark(U11(cons(_x41, _x42), _x22))) → top#(U11(cons(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(length(_x41), _x22))) → top#(U11(length(proper(_x41)), proper(_x22)))top#(mark(U11(U12(_x41, _x42), _x22))) → top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(_x21, 0))) → top#(U11(proper(_x21), ok(0)))top#(mark(U11(_x21, tt))) → top#(U11(proper(_x21), ok(tt)))
top#(mark(U11(U11(_x41, _x42), _x22))) → top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(s(_x41), _x22))) → top#(U11(s(proper(_x41)), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, _x52)))) → top#(U11(proper(_x21), U12(proper(_x51), proper(_x52))))top#(mark(U11(tt, _x22))) → top#(U11(ok(tt), proper(_x22)))
top#(mark(U11(_x21, zeros))) → top#(U11(proper(_x21), ok(zeros)))top#(mark(U11(zeros, _x22))) → top#(U11(ok(zeros), proper(_x22)))
top#(mark(U11(_x21, length(_x51)))) → top#(U11(proper(_x21), length(proper(_x51))))top#(mark(U11(_x21, s(_x51)))) → top#(U11(proper(_x21), s(proper(_x51))))
top#(mark(U11(_x21, cons(_x51, _x52)))) → top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U11(_x51, _x52)))) → top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))
top#(mark(U11(0, _x22))) → top#(U11(ok(0), proper(_x22)))top#(mark(U11(nil, _x22))) → top#(U11(ok(nil), proper(_x22)))

Problem 11: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(cons(_x41, _x42), _x22)))top#(U11(cons(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(0))top#(ok(0))
top#(mark(U11(length(_x41), _x22)))top#(U11(length(proper(_x41)), proper(_x22)))top#(ok(X))top#(active(X))
top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(_x21, tt)))top#(U11(proper(_x21), ok(tt)))
top#(mark(U11(_x21, U12(_x51, _x52))))top#(U11(proper(_x21), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(_x41), _x22)))top#(U11(s(proper(_x41)), proper(_x22)))
top#(mark(tt))top#(ok(tt))top#(mark(length(_x21)))top#(length(proper(_x21)))
top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))
top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))
top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))top#(mark(nil))top#(ok(nil))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))top#(mark(zeros))top#(ok(zeros))
top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))
top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, top, cons, nil

Strategy


The right-hand side of the rule top#(mark(U11(cons(_x41, _x42), _x22))) → top#(U11(cons(proper(_x41), proper(_x42)), proper(_x22))) 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#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22))) 
top#(U11(cons(ok(nil), proper(_x42)), proper(_x22))) 
top#(U11(cons(proper(_x41), proper(_x42)), ok(nil))) 
top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros))) 
top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22))) 
top#(U11(cons(proper(_x41), proper(_x42)), ok(0))) 
top#(U11(cons(proper(_x41), ok(0)), proper(_x22))) 
top#(U11(cons(proper(_x41), proper(_x42)), ok(tt))) 
top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52)))) 
top#(U11(cons(proper(_x41), ok(nil)), proper(_x22))) 
top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22))) 
top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22))) 
top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52)))) 
top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52)))) 
top#(U11(cons(ok(0), proper(_x42)), proper(_x22))) 
top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51)))) 
top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22))) 
top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22))) 
top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22))) 
top#(U11(cons(ok(tt), proper(_x42)), proper(_x22))) 
top#(U11(cons(proper(_x41), ok(tt)), proper(_x22))) 
top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22))) 
top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22))) 
top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22))) 
top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22))) 
top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22))) 
top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51)))) 
Thus, the rule top#(mark(U11(cons(_x41, _x42), _x22))) → top#(U11(cons(proper(_x41), proper(_x42)), proper(_x22))) is replaced by the following rules:
top#(mark(U11(cons(_x41, nil), _x22))) → top#(U11(cons(proper(_x41), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52)))) → top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(length(_x61), _x42), _x22))) → top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, tt), _x22))) → top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))
top#(mark(U11(cons(_x41, zeros), _x22))) → top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22))) → top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(zeros, _x42), _x22))) → top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), nil))) → top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))
top#(mark(U11(cons(_x41, s(_x71)), _x22))) → top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))top#(mark(U11(cons(_x41, _x42), zeros))) → top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(cons(nil, _x42), _x22))) → top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52)))) → top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22))) → top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22))) → top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, length(_x71)), _x22))) → top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))top#(mark(U11(cons(_x41, _x42), s(_x51)))) → top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))
top#(mark(U11(cons(tt, _x42), _x22))) → top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), tt))) → top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(cons(0, _x42), _x22))) → top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22))) → top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), 0))) → top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))top#(mark(U11(cons(s(_x61), _x42), _x22))) → top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, 0), _x22))) → top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22))) → top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22))) → top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(cons(_x41, _x42), length(_x51)))) → top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))
top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52)))) → top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))

Problem 12: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(cons(_x41, nil), _x22)))top#(U11(cons(proper(_x41), ok(nil)), proper(_x22)))top#(mark(U11(length(_x41), _x22)))top#(U11(length(proper(_x41)), proper(_x22)))
top#(mark(0))top#(ok(0))top#(ok(X))top#(active(X))
top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))top#(mark(U11(_x21, tt)))top#(U11(proper(_x21), ok(tt)))
top#(mark(U11(s(_x41), _x22)))top#(U11(s(proper(_x41)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, _x52))))top#(U11(proper(_x21), U12(proper(_x51), proper(_x52))))
top#(mark(tt))top#(ok(tt))top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))
top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))
top#(mark(zeros))top#(ok(zeros))top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))
top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))
top#(mark(length(_x21)))top#(length(proper(_x21)))top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))
top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))
top#(mark(nil))top#(ok(nil))top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))
top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))
top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

Strategy


The right-hand side of the rule top#(mark(U11(cons(_x41, nil), _x22))) → top#(U11(cons(proper(_x41), ok(nil)), proper(_x22))) 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#(U11(cons(ok(0), ok(nil)), proper(_x22))) 
top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22))) 
top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52)))) 
top#(U11(cons(ok(tt), ok(nil)), proper(_x22))) 
top#(U11(cons(ok(zeros), ok(nil)), proper(_x22))) 
top#(U11(cons(proper(_x41), ok(nil)), ok(zeros))) 
top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51)))) 
top#(U11(cons(proper(_x41), ok(nil)), ok(0))) 
top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52)))) 
top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22))) 
top#(U11(cons(proper(_x41), ok(nil)), ok(nil))) 
top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22))) 
top#(U11(cons(ok(nil), ok(nil)), proper(_x22))) 
top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22))) 
top#(U11(cons(proper(_x41), ok(nil)), ok(tt))) 
top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52)))) 
top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51)))) 
top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22))) 
Thus, the rule top#(mark(U11(cons(_x41, nil), _x22))) → top#(U11(cons(proper(_x41), ok(nil)), proper(_x22))) is replaced by the following rules:
top#(mark(U11(cons(_x41, nil), nil))) → top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))top#(mark(U11(cons(_x41, nil), U12(_x51, _x52)))) → top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(U11(_x61, _x62), nil), _x22))) → top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, nil), 0))) → top#(U11(cons(proper(_x41), ok(nil)), ok(0)))
top#(mark(U11(cons(length(_x61), nil), _x22))) → top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))top#(mark(U11(cons(tt, nil), _x22))) → top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), s(_x51)))) → top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))top#(mark(U11(cons(zeros, nil), _x22))) → top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))
top#(mark(U11(cons(nil, nil), _x22))) → top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, nil), cons(_x51, _x52)))) → top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, nil), length(_x51)))) → top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))top#(mark(U11(cons(0, nil), _x22))) → top#(U11(cons(ok(0), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), tt))) → top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))top#(mark(U11(cons(_x41, nil), U11(_x51, _x52)))) → top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(cons(U12(_x61, _x62), nil), _x22))) → top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(cons(_x61, _x62), nil), _x22))) → top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), zeros))) → top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))top#(mark(U11(cons(s(_x61), nil), _x22))) → top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))

Problem 13: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(length(_x41), _x22)))top#(U11(length(proper(_x41)), proper(_x22)))top#(mark(0))top#(ok(0))
top#(ok(X))top#(active(X))top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))
top#(mark(U11(_x21, tt)))top#(U11(proper(_x21), ok(tt)))top#(mark(U11(s(_x41), _x22)))top#(U11(s(proper(_x41)), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, _x52))))top#(U11(proper(_x21), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(tt))top#(ok(tt))top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))
top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))
top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))
top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))
top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))
top#(mark(zeros))top#(ok(zeros))top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))
top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))
top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))
top#(mark(length(_x21)))top#(length(proper(_x21)))top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))
top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))
top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))
top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))top#(mark(nil))top#(ok(nil))
top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))
top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))
top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))
top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, cons, nil, top

Strategy


The right-hand side of the rule top#(mark(U11(length(_x41), _x22))) → top#(U11(length(proper(_x41)), proper(_x22))) 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#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52)))) 
top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22))) 
top#(U11(length(ok(nil)), proper(_x22))) 
top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22))) 
top#(U11(length(proper(_x41)), ok(0))) 
top#(U11(length(proper(_x41)), s(proper(_x51)))) 
top#(U11(length(proper(_x41)), ok(tt))) 
top#(U11(length(proper(_x41)), ok(nil))) 
top#(U11(length(ok(tt)), proper(_x22))) 
top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22))) 
top#(U11(length(ok(zeros)), proper(_x22))) 
top#(U11(length(length(proper(_x61))), proper(_x22))) 
top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52)))) 
top#(U11(length(proper(_x41)), length(proper(_x51)))) 
top#(U11(length(s(proper(_x61))), proper(_x22))) 
top#(U11(length(proper(_x41)), ok(zeros))) 
top#(U11(length(ok(0)), proper(_x22))) 
top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52)))) 
Thus, the rule top#(mark(U11(length(_x41), _x22))) → top#(U11(length(proper(_x41)), proper(_x22))) is replaced by the following rules:
top#(mark(U11(length(0), _x22))) → top#(U11(length(ok(0)), proper(_x22)))top#(mark(U11(length(_x41), zeros))) → top#(U11(length(proper(_x41)), ok(zeros)))
top#(mark(U11(length(cons(_x61, _x62)), _x22))) → top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(length(_x41), tt))) → top#(U11(length(proper(_x41)), ok(tt)))
top#(mark(U11(length(U11(_x61, _x62)), _x22))) → top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(length(_x41), 0))) → top#(U11(length(proper(_x41)), ok(0)))
top#(mark(U11(length(_x41), s(_x51)))) → top#(U11(length(proper(_x41)), s(proper(_x51))))top#(mark(U11(length(length(_x61)), _x22))) → top#(U11(length(length(proper(_x61))), proper(_x22)))
top#(mark(U11(length(_x41), U11(_x51, _x52)))) → top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(U11(length(nil), _x22))) → top#(U11(length(ok(nil)), proper(_x22)))
top#(mark(U11(length(_x41), cons(_x51, _x52)))) → top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(length(_x41), U12(_x51, _x52)))) → top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(length(U12(_x61, _x62)), _x22))) → top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(length(_x41), length(_x51)))) → top#(U11(length(proper(_x41)), length(proper(_x51))))
top#(mark(U11(length(_x41), nil))) → top#(U11(length(proper(_x41)), ok(nil)))top#(mark(U11(length(zeros), _x22))) → top#(U11(length(ok(zeros)), proper(_x22)))
top#(mark(U11(length(tt), _x22))) → top#(U11(length(ok(tt)), proper(_x22)))top#(mark(U11(length(s(_x61)), _x22))) → top#(U11(length(s(proper(_x61))), proper(_x22)))

Problem 14: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(0))top#(ok(0))top#(ok(X))top#(active(X))
top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))top#(mark(U11(_x21, tt)))top#(U11(proper(_x21), ok(tt)))
top#(mark(U11(length(_x41), 0)))top#(U11(length(proper(_x41)), ok(0)))top#(mark(U11(s(_x41), _x22)))top#(U11(s(proper(_x41)), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, _x52))))top#(U11(proper(_x21), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(tt))top#(ok(tt))top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))
top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))
top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))top#(mark(zeros))top#(ok(zeros))
top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))
top#(mark(length(_x21)))top#(length(proper(_x21)))top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))
top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))
top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))
top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))
top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))
top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))
top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(nil))top#(ok(nil))
top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))
top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))
top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))
top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))
top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, top, cons, nil

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(0)) 
top#(mark(U12(tt, _x21))) 
top#(s(active(_x21))) 
top#(length(active(_x21))) 
top#(mark(cons(0, zeros))) 
top#(mark(U11(tt, _x21))) 
top#(cons(active(_x21), _x22)) 
top#(U12(active(_x21), _x22)) 
top#(mark(s(length(_x21)))) 
top#(U11(active(_x21), _x22)) 
Thus, the rule top#(ok(X)) → top#(active(X)) is replaced by the following rules:
top#(ok(U11(tt, _x21))) → top#(mark(U12(tt, _x21)))top#(ok(U12(tt, _x21))) → top#(mark(s(length(_x21))))
top#(ok(length(nil))) → top#(mark(0))top#(ok(U11(_x21, _x22))) → top#(U11(active(_x21), _x22))
top#(ok(length(cons(_x22, _x21)))) → top#(mark(U11(tt, _x21)))top#(ok(U12(_x21, _x22))) → top#(U12(active(_x21), _x22))
top#(ok(s(_x21))) → top#(s(active(_x21)))top#(ok(length(_x21))) → top#(length(active(_x21)))
top#(ok(zeros)) → top#(mark(cons(0, zeros)))top#(ok(cons(_x21, _x22))) → top#(cons(active(_x21), _x22))

Problem 15: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(ok(U11(_x21, _x22)))top#(U11(active(_x21), _x22))top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))
top#(mark(0))top#(ok(0))top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))
top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))top#(mark(U11(_x21, tt)))top#(U11(proper(_x21), ok(tt)))
top#(ok(zeros))top#(mark(cons(0, zeros)))top#(mark(U11(length(_x41), 0)))top#(U11(length(proper(_x41)), ok(0)))
top#(mark(U11(s(_x41), _x22)))top#(U11(s(proper(_x41)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, _x52))))top#(U11(proper(_x21), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))top#(mark(tt))top#(ok(tt))
top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))
top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))
top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))
top#(ok(length(_x21)))top#(length(active(_x21)))top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))
top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))top#(mark(zeros))top#(ok(zeros))
top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))
top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))
top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))
top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))
top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))top#(mark(length(_x21)))top#(length(proper(_x21)))
top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))
top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))
top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))
top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))
top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))
top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))
top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))
top#(mark(nil))top#(ok(nil))top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))
top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))top#(ok(length(nil)))top#(mark(0))
top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

Strategy


The right-hand side of the rule top#(ok(U11(_x21, _x22))) → top#(U11(active(_x21), _x22)) 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#(U11(U12(active(_x41), _x42), _x22)) 
top#(U11(mark(U11(tt, _x41)), _x22)) 
top#(U11(length(active(_x41)), _x22)) 
top#(U11(mark(s(length(_x41))), _x22)) 
top#(U11(U11(active(_x41), _x42), _x22)) 
top#(U11(mark(U12(tt, _x41)), _x22)) 
top#(U11(s(active(_x41)), _x22)) 
top#(U11(cons(active(_x41), _x42), _x22)) 
top#(U11(mark(0), _x22)) 
top#(U11(mark(cons(0, zeros)), _x22)) 
Thus, the rule top#(ok(U11(_x21, _x22))) → top#(U11(active(_x21), _x22)) is replaced by the following rules:
top#(ok(U11(length(_x41), _x22))) → top#(U11(length(active(_x41)), _x22))top#(ok(U11(s(_x41), _x22))) → top#(U11(s(active(_x41)), _x22))
top#(ok(U11(U12(_x41, _x42), _x22))) → top#(U11(U12(active(_x41), _x42), _x22))top#(ok(U11(U11(tt, _x41), _x22))) → top#(U11(mark(U12(tt, _x41)), _x22))
top#(ok(U11(U12(tt, _x41), _x22))) → top#(U11(mark(s(length(_x41))), _x22))top#(ok(U11(U11(_x41, _x42), _x22))) → top#(U11(U11(active(_x41), _x42), _x22))
top#(ok(U11(cons(_x41, _x42), _x22))) → top#(U11(cons(active(_x41), _x42), _x22))top#(ok(U11(zeros, _x22))) → top#(U11(mark(cons(0, zeros)), _x22))
top#(ok(U11(length(cons(_x42, _x41)), _x22))) → top#(U11(mark(U11(tt, _x41)), _x22))top#(ok(U11(length(nil), _x22))) → top#(U11(mark(0), _x22))

Problem 16: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(_x21, tt)))top#(U11(proper(_x21), ok(tt)))top#(ok(zeros))top#(mark(cons(0, zeros)))
top#(mark(U11(length(_x41), 0)))top#(U11(length(proper(_x41)), ok(0)))top#(mark(U11(s(_x41), _x22)))top#(U11(s(proper(_x41)), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, _x52))))top#(U11(proper(_x21), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(tt))top#(ok(tt))top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))
top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))
top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))
top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))
top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))top#(mark(zeros))top#(ok(zeros))
top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))
top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))
top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))
top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))
top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))
top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))
top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))
top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))
top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))
top#(ok(length(nil)))top#(mark(0))top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))
top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))
top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))top#(mark(0))top#(ok(0))
top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))
top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))
top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))top#(ok(length(_x21)))top#(length(active(_x21)))
top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))
top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))
top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))
top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))
top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))
top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(length(_x21)))top#(length(proper(_x21)))
top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))
top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))
top#(mark(nil))top#(ok(nil))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))
top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))
top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, cons, nil, top

Strategy


The right-hand side of the rule top#(mark(U11(_x21, tt))) → top#(U11(proper(_x21), ok(tt))) 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#(U11(cons(proper(_x41), proper(_x42)), ok(tt))) 
top#(U11(ok(0), ok(tt))) 
top#(U11(length(proper(_x41)), ok(tt))) 
top#(U11(ok(nil), ok(tt))) 
top#(U11(U12(proper(_x41), proper(_x42)), ok(tt))) 
top#(U11(U11(proper(_x41), proper(_x42)), ok(tt))) 
top#(U11(s(proper(_x41)), ok(tt))) 
top#(U11(ok(zeros), ok(tt))) 
top#(U11(ok(tt), ok(tt))) 
Thus, the rule top#(mark(U11(_x21, tt))) → top#(U11(proper(_x21), ok(tt))) is replaced by the following rules:
top#(mark(U11(0, tt))) → top#(U11(ok(0), ok(tt)))top#(mark(U11(zeros, tt))) → top#(U11(ok(zeros), ok(tt)))
top#(mark(U11(cons(_x41, _x42), tt))) → top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(s(_x41), tt))) → top#(U11(s(proper(_x41)), ok(tt)))
top#(mark(U11(U12(_x41, _x42), tt))) → top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(tt, tt))) → top#(U11(ok(tt), ok(tt)))
top#(mark(U11(U11(_x41, _x42), tt))) → top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(length(_x41), tt))) → top#(U11(length(proper(_x41)), ok(tt)))
top#(mark(U11(nil, tt))) → top#(U11(ok(nil), ok(tt)))

Problem 17: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(ok(zeros))top#(mark(cons(0, zeros)))top#(mark(U11(_x21, U12(_x51, _x52))))top#(U11(proper(_x21), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(_x41), _x22)))top#(U11(s(proper(_x41)), proper(_x22)))top#(mark(U11(length(_x41), 0)))top#(U11(length(proper(_x41)), ok(0)))
top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))top#(mark(tt))top#(ok(tt))
top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))
top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))top#(mark(U11(U12(_x41, _x42), tt)))top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))
top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))
top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(nil, tt)))top#(U11(ok(nil), ok(tt)))top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))
top#(mark(zeros))top#(ok(zeros))top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))
top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))
top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))
top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))
top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))
top#(mark(U11(0, tt)))top#(U11(ok(0), ok(tt)))top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))
top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))
top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))
top#(mark(U11(tt, tt)))top#(U11(ok(tt), ok(tt)))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))
top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))top#(ok(length(nil)))top#(mark(0))
top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))
top#(mark(0))top#(ok(0))top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))
top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))
top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))
top#(mark(U11(U11(_x41, _x42), tt)))top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))top#(ok(length(_x21)))top#(length(active(_x21)))
top#(mark(U11(s(_x41), tt)))top#(U11(s(proper(_x41)), ok(tt)))top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))
top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))
top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))
top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))
top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(length(_x21)))top#(length(proper(_x21)))top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))
top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))
top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))
top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))top#(mark(nil))top#(ok(nil))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))
top#(mark(U11(zeros, tt)))top#(U11(ok(zeros), ok(tt)))top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))
top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, top, cons, nil

Strategy


The right-hand side of the rule top#(mark(U11(length(_x41), 0))) → top#(U11(length(proper(_x41)), 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
top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0))) 
top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0))) 
top#(U11(length(ok(zeros)), ok(0))) 
top#(U11(length(length(proper(_x51))), ok(0))) 
top#(U11(length(s(proper(_x51))), ok(0))) 
top#(U11(length(ok(nil)), ok(0))) 
top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0))) 
top#(U11(length(ok(0)), ok(0))) 
top#(U11(length(ok(tt)), ok(0))) 
Thus, the rule top#(mark(U11(length(_x41), 0))) → top#(U11(length(proper(_x41)), ok(0))) is replaced by the following rules:
top#(mark(U11(length(length(_x51)), 0))) → top#(U11(length(length(proper(_x51))), ok(0)))top#(mark(U11(length(tt), 0))) → top#(U11(length(ok(tt)), ok(0)))
top#(mark(U11(length(U11(_x51, _x52)), 0))) → top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(length(U12(_x51, _x52)), 0))) → top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(length(s(_x51)), 0))) → top#(U11(length(s(proper(_x51))), ok(0)))top#(mark(U11(length(zeros), 0))) → top#(U11(length(ok(zeros)), ok(0)))
top#(mark(U11(length(nil), 0))) → top#(U11(length(ok(nil)), ok(0)))top#(mark(U11(length(cons(_x51, _x52)), 0))) → top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(length(0), 0))) → top#(U11(length(ok(0)), ok(0)))

Problem 18: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(ok(zeros))top#(mark(cons(0, zeros)))top#(mark(U11(s(_x41), _x22)))top#(U11(s(proper(_x41)), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, _x52))))top#(U11(proper(_x21), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(tt))top#(ok(tt))top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))
top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))
top#(mark(U11(length(length(_x51)), 0)))top#(U11(length(length(proper(_x51))), ok(0)))top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(U12(_x41, _x42), tt)))top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))
top#(mark(U11(length(nil), 0)))top#(U11(length(ok(nil)), ok(0)))top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(length(zeros), 0)))top#(U11(length(ok(zeros)), ok(0)))
top#(mark(U11(length(cons(_x51, _x52)), 0)))top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(nil, tt)))top#(U11(ok(nil), ok(tt)))
top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))top#(mark(zeros))top#(ok(zeros))
top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))
top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))
top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))
top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))
top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))top#(mark(U11(0, tt)))top#(U11(ok(0), ok(tt)))
top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))
top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))top#(mark(U11(length(U12(_x51, _x52)), 0)))top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))
top#(mark(U11(tt, tt)))top#(U11(ok(tt), ok(tt)))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))
top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))top#(ok(length(nil)))top#(mark(0))
top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))
top#(mark(0))top#(ok(0))top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))
top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))
top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))
top#(mark(U11(U11(_x41, _x42), tt)))top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))top#(ok(length(_x21)))top#(length(active(_x21)))
top#(mark(U11(length(s(_x51)), 0)))top#(U11(length(s(proper(_x51))), ok(0)))top#(mark(U11(s(_x41), tt)))top#(U11(s(proper(_x41)), ok(tt)))
top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))
top#(mark(U11(length(U11(_x51, _x52)), 0)))top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))
top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))
top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))
top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(length(_x21)))top#(length(proper(_x21)))top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(length(tt), 0)))top#(U11(length(ok(tt)), ok(0)))top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))
top#(mark(U11(length(0), 0)))top#(U11(length(ok(0)), ok(0)))top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))
top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))
top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))top#(mark(nil))top#(ok(nil))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))
top#(mark(U11(zeros, tt)))top#(U11(ok(zeros), ok(tt)))top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))
top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

Strategy


The right-hand side of the rule top#(mark(U11(_x21, U12(_x51, _x52)))) → top#(U11(proper(_x21), U12(proper(_x51), proper(_x52)))) 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#(U11(proper(_x21), U12(proper(_x51), U12(proper(_x81), proper(_x82))))) 
top#(U11(proper(_x21), U12(U12(proper(_x71), proper(_x72)), proper(_x52)))) 
top#(U11(proper(_x21), U12(ok(0), proper(_x52)))) 
top#(U11(proper(_x21), U12(proper(_x51), ok(tt)))) 
top#(U11(proper(_x21), U12(proper(_x51), ok(nil)))) 
top#(U11(proper(_x21), U12(proper(_x51), ok(0)))) 
top#(U11(proper(_x21), U12(ok(nil), proper(_x52)))) 
top#(U11(ok(0), U12(proper(_x51), proper(_x52)))) 
top#(U11(ok(tt), U12(proper(_x51), proper(_x52)))) 
top#(U11(proper(_x21), U12(s(proper(_x71)), proper(_x52)))) 
top#(U11(ok(zeros), U12(proper(_x51), proper(_x52)))) 
top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52)))) 
top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52)))) 
top#(U11(U12(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52)))) 
top#(U11(U11(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52)))) 
top#(U11(proper(_x21), U12(U11(proper(_x71), proper(_x72)), proper(_x52)))) 
top#(U11(proper(_x21), U12(ok(tt), proper(_x52)))) 
top#(U11(ok(nil), U12(proper(_x51), proper(_x52)))) 
top#(U11(proper(_x21), U12(proper(_x51), U11(proper(_x81), proper(_x82))))) 
top#(U11(proper(_x21), U12(proper(_x51), length(proper(_x81))))) 
top#(U11(proper(_x21), U12(length(proper(_x71)), proper(_x52)))) 
top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52)))) 
top#(U11(proper(_x21), U12(proper(_x51), s(proper(_x81))))) 
top#(U11(proper(_x21), U12(cons(proper(_x71), proper(_x72)), proper(_x52)))) 
top#(U11(proper(_x21), U12(proper(_x51), cons(proper(_x81), proper(_x82))))) 
top#(U11(proper(_x21), U12(proper(_x51), ok(zeros)))) 
top#(U11(proper(_x21), U12(ok(zeros), proper(_x52)))) 
Thus, the rule top#(mark(U11(_x21, U12(_x51, _x52)))) → top#(U11(proper(_x21), U12(proper(_x51), proper(_x52)))) is replaced by the following rules:
top#(mark(U11(_x21, U12(cons(_x71, _x72), _x52)))) → top#(U11(proper(_x21), U12(cons(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52)))) → top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(0, U12(_x51, _x52)))) → top#(U11(ok(0), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(tt, _x52)))) → top#(U11(proper(_x21), U12(ok(tt), proper(_x52))))
top#(mark(U11(U12(_x41, _x42), U12(_x51, _x52)))) → top#(U11(U12(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(nil, U12(_x51, _x52)))) → top#(U11(ok(nil), U12(proper(_x51), proper(_x52))))
top#(mark(U11(U11(_x41, _x42), U12(_x51, _x52)))) → top#(U11(U11(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(_x51, cons(_x81, _x82))))) → top#(U11(proper(_x21), U12(proper(_x51), cons(proper(_x81), proper(_x82)))))
top#(mark(U11(zeros, U12(_x51, _x52)))) → top#(U11(ok(zeros), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(length(_x71), _x52)))) → top#(U11(proper(_x21), U12(length(proper(_x71)), proper(_x52))))
top#(mark(U11(_x21, U12(_x51, s(_x81))))) → top#(U11(proper(_x21), U12(proper(_x51), s(proper(_x81)))))top#(mark(U11(_x21, U12(_x51, U11(_x81, _x82))))) → top#(U11(proper(_x21), U12(proper(_x51), U11(proper(_x81), proper(_x82)))))
top#(mark(U11(_x21, U12(U11(_x71, _x72), _x52)))) → top#(U11(proper(_x21), U12(U11(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(_x21, U12(_x51, tt)))) → top#(U11(proper(_x21), U12(proper(_x51), ok(tt))))
top#(mark(U11(_x21, U12(_x51, 0)))) → top#(U11(proper(_x21), U12(proper(_x51), ok(0))))top#(mark(U11(_x21, U12(_x51, nil)))) → top#(U11(proper(_x21), U12(proper(_x51), ok(nil))))
top#(mark(U11(_x21, U12(nil, _x52)))) → top#(U11(proper(_x21), U12(ok(nil), proper(_x52))))top#(mark(U11(_x21, U12(_x51, length(_x81))))) → top#(U11(proper(_x21), U12(proper(_x51), length(proper(_x81)))))
top#(mark(U11(_x21, U12(0, _x52)))) → top#(U11(proper(_x21), U12(ok(0), proper(_x52))))top#(mark(U11(_x21, U12(s(_x71), _x52)))) → top#(U11(proper(_x21), U12(s(proper(_x71)), proper(_x52))))
top#(mark(U11(length(_x41), U12(_x51, _x52)))) → top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(zeros, _x52)))) → top#(U11(proper(_x21), U12(ok(zeros), proper(_x52))))
top#(mark(U11(s(_x41), U12(_x51, _x52)))) → top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(_x51, zeros)))) → top#(U11(proper(_x21), U12(proper(_x51), ok(zeros))))
top#(mark(U11(tt, U12(_x51, _x52)))) → top#(U11(ok(tt), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(_x51, U12(_x81, _x82))))) → top#(U11(proper(_x21), U12(proper(_x51), U12(proper(_x81), proper(_x82)))))
top#(mark(U11(_x21, U12(U12(_x71, _x72), _x52)))) → top#(U11(proper(_x21), U12(U12(proper(_x71), proper(_x72)), proper(_x52))))

Problem 19: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(ok(zeros))top#(mark(cons(0, zeros)))top#(mark(U11(s(_x41), _x22)))top#(U11(s(proper(_x41)), proper(_x22)))
top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))top#(mark(U11(nil, U12(_x51, _x52))))top#(U11(ok(nil), U12(proper(_x51), proper(_x52))))
top#(mark(tt))top#(ok(tt))top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))
top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))
top#(mark(U11(length(length(_x51)), 0)))top#(U11(length(length(proper(_x51))), ok(0)))top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(length(nil), 0)))top#(U11(length(ok(nil)), ok(0)))top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))
top#(mark(U11(U12(_x41, _x42), tt)))top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(_x21, U12(_x51, U11(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U11(proper(_x81), proper(_x82)))))
top#(mark(U11(_x21, U12(length(_x71), _x52))))top#(U11(proper(_x21), U12(length(proper(_x71)), proper(_x52))))top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(length(zeros), 0)))top#(U11(length(ok(zeros)), ok(0)))
top#(mark(U11(length(cons(_x51, _x52)), 0)))top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(nil, tt)))top#(U11(ok(nil), ok(tt)))
top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))
top#(mark(zeros))top#(ok(zeros))top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))
top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))
top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(_x41), U12(_x51, _x52))))top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(_x51, zeros))))top#(U11(proper(_x21), U12(proper(_x51), ok(zeros))))top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, U12(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U12(proper(_x81), proper(_x82)))))top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))
top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))
top#(mark(U11(0, tt)))top#(U11(ok(0), ok(tt)))top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))
top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))
top#(mark(U11(length(U12(_x51, _x52)), 0)))top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(_x21, U12(_x51, cons(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), cons(proper(_x81), proper(_x82)))))
top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))
top#(mark(U11(tt, tt)))top#(U11(ok(tt), ok(tt)))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, nil))))top#(U11(proper(_x21), U12(proper(_x51), ok(nil))))top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))
top#(mark(U11(_x21, U12(nil, _x52))))top#(U11(proper(_x21), U12(ok(nil), proper(_x52))))top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))
top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, length(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), length(proper(_x81)))))
top#(ok(length(nil)))top#(mark(0))top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))
top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(_x21, U12(s(_x71), _x52))))top#(U11(proper(_x21), U12(s(proper(_x71)), proper(_x52))))
top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))
top#(mark(U11(_x21, U12(U12(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U12(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(0))top#(ok(0))
top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))top#(mark(U11(0, U12(_x51, _x52))))top#(U11(ok(0), U12(proper(_x51), proper(_x52))))
top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))
top#(mark(U11(_x21, U12(tt, _x52))))top#(U11(proper(_x21), U12(ok(tt), proper(_x52))))top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))
top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))top#(mark(U11(U11(_x41, _x42), tt)))top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))
top#(ok(length(_x21)))top#(length(active(_x21)))top#(mark(U11(length(s(_x51)), 0)))top#(U11(length(s(proper(_x51))), ok(0)))
top#(mark(U11(s(_x41), tt)))top#(U11(s(proper(_x41)), ok(tt)))top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(_x21, U12(_x51, s(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), s(proper(_x81)))))top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(_x21, U12(U11(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U11(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))
top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))top#(mark(U11(_x21, U12(_x51, 0))))top#(U11(proper(_x21), U12(proper(_x51), ok(0))))
top#(mark(U11(length(U11(_x51, _x52)), 0)))top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))
top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))
top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))
top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(zeros, _x52))))top#(U11(proper(_x21), U12(ok(zeros), proper(_x52))))
top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(tt, U12(_x51, _x52))))top#(U11(ok(tt), U12(proper(_x51), proper(_x52))))
top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))top#(mark(U11(_x21, U12(cons(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(cons(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))
top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))
top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(U12(_x41, _x42), U12(_x51, _x52))))top#(U11(U12(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(length(_x21)))top#(length(proper(_x21)))top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))
top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(U11(_x41, _x42), U12(_x51, _x52))))top#(U11(U11(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(length(tt), 0)))top#(U11(length(ok(tt)), ok(0)))
top#(mark(U11(zeros, U12(_x51, _x52))))top#(U11(ok(zeros), U12(proper(_x51), proper(_x52))))top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))
top#(mark(U11(length(0), 0)))top#(U11(length(ok(0)), ok(0)))top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))
top#(mark(U11(_x21, U12(_x51, tt))))top#(U11(proper(_x21), U12(proper(_x51), ok(tt))))top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))
top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))
top#(mark(nil))top#(ok(nil))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))
top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))top#(mark(U11(_x21, U12(0, _x52))))top#(U11(proper(_x21), U12(ok(0), proper(_x52))))
top#(mark(U11(zeros, tt)))top#(U11(ok(zeros), ok(tt)))top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))
top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, cons, nil, top

Strategy


The right-hand side of the rule top#(mark(U11(s(_x41), _x22))) → top#(U11(s(proper(_x41)), proper(_x22))) 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#(U11(s(length(proper(_x61))), proper(_x22))) 
top#(U11(s(proper(_x41)), ok(0))) 
top#(U11(s(proper(_x41)), cons(proper(_x51), proper(_x52)))) 
top#(U11(s(proper(_x41)), length(proper(_x51)))) 
top#(U11(s(ok(zeros)), proper(_x22))) 
top#(U11(s(proper(_x41)), s(proper(_x51)))) 
top#(U11(s(U12(proper(_x61), proper(_x62))), proper(_x22))) 
top#(U11(s(ok(0)), proper(_x22))) 
top#(U11(s(U11(proper(_x61), proper(_x62))), proper(_x22))) 
top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52)))) 
top#(U11(s(s(proper(_x61))), proper(_x22))) 
top#(U11(s(proper(_x41)), ok(zeros))) 
top#(U11(s(ok(nil)), proper(_x22))) 
top#(U11(s(proper(_x41)), U11(proper(_x51), proper(_x52)))) 
top#(U11(s(ok(tt)), proper(_x22))) 
top#(U11(s(proper(_x41)), ok(tt))) 
top#(U11(s(proper(_x41)), ok(nil))) 
top#(U11(s(cons(proper(_x61), proper(_x62))), proper(_x22))) 
Thus, the rule top#(mark(U11(s(_x41), _x22))) → top#(U11(s(proper(_x41)), proper(_x22))) is replaced by the following rules:
top#(mark(U11(s(zeros), _x22))) → top#(U11(s(ok(zeros)), proper(_x22)))top#(mark(U11(s(_x41), s(_x51)))) → top#(U11(s(proper(_x41)), s(proper(_x51))))
top#(mark(U11(s(U12(_x61, _x62)), _x22))) → top#(U11(s(U12(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(_x41), U11(_x51, _x52)))) → top#(U11(s(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(s(_x41), nil))) → top#(U11(s(proper(_x41)), ok(nil)))top#(mark(U11(s(s(_x61)), _x22))) → top#(U11(s(s(proper(_x61))), proper(_x22)))
top#(mark(U11(s(_x41), cons(_x51, _x52)))) → top#(U11(s(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(s(_x41), zeros))) → top#(U11(s(proper(_x41)), ok(zeros)))
top#(mark(U11(s(U11(_x61, _x62)), _x22))) → top#(U11(s(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(tt), _x22))) → top#(U11(s(ok(tt)), proper(_x22)))
top#(mark(U11(s(_x41), 0))) → top#(U11(s(proper(_x41)), ok(0)))top#(mark(U11(s(_x41), tt))) → top#(U11(s(proper(_x41)), ok(tt)))
top#(mark(U11(s(0), _x22))) → top#(U11(s(ok(0)), proper(_x22)))top#(mark(U11(s(cons(_x61, _x62)), _x22))) → top#(U11(s(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(_x41), U12(_x51, _x52)))) → top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(length(_x61)), _x22))) → top#(U11(s(length(proper(_x61))), proper(_x22)))
top#(mark(U11(s(_x41), length(_x51)))) → top#(U11(s(proper(_x41)), length(proper(_x51))))top#(mark(U11(s(nil), _x22))) → top#(U11(s(ok(nil)), proper(_x22)))

Problem 20: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(s(_x41), s(_x51))))top#(U11(s(proper(_x41)), s(proper(_x51))))top#(ok(zeros))top#(mark(cons(0, zeros)))
top#(mark(U11(nil, U12(_x51, _x52))))top#(U11(ok(nil), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(tt))top#(ok(tt))top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))
top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))
top#(mark(U11(length(length(_x51)), 0)))top#(U11(length(length(proper(_x51))), ok(0)))top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(U12(_x41, _x42), tt)))top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))
top#(mark(U11(length(nil), 0)))top#(U11(length(ok(nil)), ok(0)))top#(mark(U11(_x21, U12(_x51, U11(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U11(proper(_x81), proper(_x82)))))
top#(mark(U11(_x21, U12(length(_x71), _x52))))top#(U11(proper(_x21), U12(length(proper(_x71)), proper(_x52))))top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(length(zeros), 0)))top#(U11(length(ok(zeros)), ok(0)))
top#(mark(U11(length(cons(_x51, _x52)), 0)))top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(nil, tt)))top#(U11(ok(nil), ok(tt)))
top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))top#(mark(zeros))top#(ok(zeros))
top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))
top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))
top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(U11(s(_x41), 0)))top#(U11(s(proper(_x41)), ok(0)))top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))
top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(_x61, _x62)), _x22)))top#(U11(s(cons(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(_x41), U12(_x51, _x52))))top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(_x51, zeros))))top#(U11(proper(_x21), U12(proper(_x51), ok(zeros))))top#(mark(U11(_x21, U12(_x51, U12(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U12(proper(_x81), proper(_x82)))))
top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))top#(mark(U11(s(zeros), _x22)))top#(U11(s(ok(zeros)), proper(_x22)))
top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))
top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))top#(mark(U11(0, tt)))top#(U11(ok(0), ok(tt)))
top#(mark(U11(s(U11(_x61, _x62)), _x22)))top#(U11(s(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(s(tt), _x22)))top#(U11(s(ok(tt)), proper(_x22)))top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))
top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))top#(mark(U11(length(U12(_x51, _x52)), 0)))top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(_x21, U12(_x51, cons(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), cons(proper(_x81), proper(_x82)))))top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))top#(mark(U11(tt, tt)))top#(U11(ok(tt), ok(tt)))
top#(mark(U11(s(_x41), length(_x51))))top#(U11(s(proper(_x41)), length(proper(_x51))))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, nil))))top#(U11(proper(_x21), U12(proper(_x51), ok(nil))))top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))
top#(mark(U11(_x21, U12(nil, _x52))))top#(U11(proper(_x21), U12(ok(nil), proper(_x52))))top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))
top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, length(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), length(proper(_x81)))))
top#(ok(length(nil)))top#(mark(0))top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))
top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(_x21, U12(s(_x71), _x52))))top#(U11(proper(_x21), U12(s(proper(_x71)), proper(_x52))))
top#(mark(U11(s(0), _x22)))top#(U11(s(ok(0)), proper(_x22)))top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))
top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))top#(mark(U11(_x21, U12(U12(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U12(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(0))top#(ok(0))top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))
top#(mark(U11(s(U12(_x61, _x62)), _x22)))top#(U11(s(U12(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(0, U12(_x51, _x52))))top#(U11(ok(0), U12(proper(_x51), proper(_x52))))
top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))
top#(mark(U11(_x21, U12(tt, _x52))))top#(U11(proper(_x21), U12(ok(tt), proper(_x52))))top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))
top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))top#(mark(U11(U11(_x41, _x42), tt)))top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(s(_x41), cons(_x51, _x52))))top#(U11(s(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))top#(ok(length(_x21)))top#(length(active(_x21)))
top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))top#(mark(U11(s(_x41), tt)))top#(U11(s(proper(_x41)), ok(tt)))
top#(mark(U11(length(s(_x51)), 0)))top#(U11(length(s(proper(_x51))), ok(0)))top#(mark(U11(_x21, U12(_x51, s(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), s(proper(_x81)))))
top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))
top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))top#(mark(U11(_x21, U12(U11(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U11(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(_x21, U12(_x51, 0))))top#(U11(proper(_x21), U12(proper(_x51), ok(0))))top#(mark(U11(length(U11(_x51, _x52)), 0)))top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))
top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(U11(s(_x41), zeros)))top#(U11(s(proper(_x41)), ok(zeros)))top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))
top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(zeros, _x52))))top#(U11(proper(_x21), U12(ok(zeros), proper(_x52))))top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(s(nil), _x22)))top#(U11(s(ok(nil)), proper(_x22)))
top#(mark(U11(tt, U12(_x51, _x52))))top#(U11(ok(tt), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(cons(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(cons(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(_x41), nil)))top#(U11(s(proper(_x41)), ok(nil)))top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))
top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))
top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(U12(_x41, _x42), U12(_x51, _x52))))top#(U11(U12(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(length(_x21)))top#(length(proper(_x21)))top#(mark(U11(U11(_x41, _x42), U12(_x51, _x52))))top#(U11(U11(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))
top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(length(tt), 0)))top#(U11(length(ok(tt)), ok(0)))
top#(mark(U11(zeros, U12(_x51, _x52))))top#(U11(ok(zeros), U12(proper(_x51), proper(_x52))))top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))
top#(mark(U11(length(0), 0)))top#(U11(length(ok(0)), ok(0)))top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))
top#(mark(U11(_x21, U12(_x51, tt))))top#(U11(proper(_x21), U12(proper(_x51), ok(tt))))top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))
top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))
top#(mark(U11(s(_x41), U11(_x51, _x52))))top#(U11(s(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(nil))top#(ok(nil))
top#(mark(U11(s(s(_x61)), _x22)))top#(U11(s(s(proper(_x61))), proper(_x22)))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))
top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))top#(mark(U11(_x21, U12(0, _x52))))top#(U11(proper(_x21), U12(ok(0), proper(_x52))))
top#(mark(U11(zeros, tt)))top#(U11(ok(zeros), ok(tt)))top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))
top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(length(_x61)), _x22)))top#(U11(s(length(proper(_x61))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, top, cons, nil

Strategy


The right-hand side of the rule top#(mark(U11(s(_x41), s(_x51)))) → top#(U11(s(proper(_x41)), 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#(U11(s(proper(_x41)), s(ok(0)))) 
top#(U11(s(proper(_x41)), s(ok(zeros)))) 
top#(U11(s(length(proper(_x51))), s(proper(_x51)))) 
top#(U11(s(ok(zeros)), s(proper(_x51)))) 
top#(U11(s(proper(_x41)), s(s(proper(_x61))))) 
top#(U11(s(ok(tt)), s(proper(_x51)))) 
top#(U11(s(proper(_x41)), s(ok(tt)))) 
top#(U11(s(proper(_x41)), s(U12(proper(_x61), proper(_x62))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(proper(_x51)))) 
top#(U11(s(U11(proper(_x51), proper(_x52))), s(proper(_x51)))) 
top#(U11(s(ok(0)), s(proper(_x51)))) 
top#(U11(s(U12(proper(_x51), proper(_x52))), s(proper(_x51)))) 
top#(U11(s(ok(nil)), s(proper(_x51)))) 
top#(U11(s(proper(_x41)), s(ok(nil)))) 
top#(U11(s(s(proper(_x51))), s(proper(_x51)))) 
top#(U11(s(proper(_x41)), s(length(proper(_x61))))) 
top#(U11(s(proper(_x41)), s(cons(proper(_x61), proper(_x62))))) 
top#(U11(s(proper(_x41)), s(U11(proper(_x61), proper(_x62))))) 
Thus, the rule top#(mark(U11(s(_x41), s(_x51)))) → top#(U11(s(proper(_x41)), s(proper(_x51)))) is replaced by the following rules:
top#(mark(U11(s(_x41), s(cons(_x61, _x62))))) → top#(U11(s(proper(_x41)), s(cons(proper(_x61), proper(_x62)))))top#(mark(U11(s(_x41), s(0)))) → top#(U11(s(proper(_x41)), s(ok(0))))
top#(mark(U11(s(cons(_x51, _x52)), s(_x51)))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(proper(_x51))))top#(mark(U11(s(s(_x51)), s(_x51)))) → top#(U11(s(s(proper(_x51))), s(proper(_x51))))
top#(mark(U11(s(_x41), s(s(_x61))))) → top#(U11(s(proper(_x41)), s(s(proper(_x61)))))top#(mark(U11(s(_x41), s(tt)))) → top#(U11(s(proper(_x41)), s(ok(tt))))
top#(mark(U11(s(zeros), s(_x51)))) → top#(U11(s(ok(zeros)), s(proper(_x51))))top#(mark(U11(s(0), s(_x51)))) → top#(U11(s(ok(0)), s(proper(_x51))))
top#(mark(U11(s(_x41), s(zeros)))) → top#(U11(s(proper(_x41)), s(ok(zeros))))top#(mark(U11(s(_x41), s(nil)))) → top#(U11(s(proper(_x41)), s(ok(nil))))
top#(mark(U11(s(_x41), s(U11(_x61, _x62))))) → top#(U11(s(proper(_x41)), s(U11(proper(_x61), proper(_x62)))))top#(mark(U11(s(length(_x51)), s(_x51)))) → top#(U11(s(length(proper(_x51))), s(proper(_x51))))
top#(mark(U11(s(U11(_x51, _x52)), s(_x51)))) → top#(U11(s(U11(proper(_x51), proper(_x52))), s(proper(_x51))))top#(mark(U11(s(U12(_x51, _x52)), s(_x51)))) → top#(U11(s(U12(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(s(_x41), s(U12(_x61, _x62))))) → top#(U11(s(proper(_x41)), s(U12(proper(_x61), proper(_x62)))))top#(mark(U11(s(tt), s(_x51)))) → top#(U11(s(ok(tt)), s(proper(_x51))))
top#(mark(U11(s(_x41), s(length(_x61))))) → top#(U11(s(proper(_x41)), s(length(proper(_x61)))))top#(mark(U11(s(nil), s(_x51)))) → top#(U11(s(ok(nil)), s(proper(_x51))))

Problem 21: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(s(s(_x51)), s(_x51))))top#(U11(s(s(proper(_x51))), s(proper(_x51))))top#(ok(zeros))top#(mark(cons(0, zeros)))
top#(mark(U11(s(_x41), s(tt))))top#(U11(s(proper(_x41)), s(ok(tt))))top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(U11(nil, U12(_x51, _x52))))top#(U11(ok(nil), U12(proper(_x51), proper(_x52))))top#(mark(tt))top#(ok(tt))
top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))
top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))top#(mark(U11(length(length(_x51)), 0)))top#(U11(length(length(proper(_x51))), ok(0)))
top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))
top#(mark(U11(U12(_x41, _x42), tt)))top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(length(nil), 0)))top#(U11(length(ok(nil)), ok(0)))
top#(mark(U11(_x21, U12(_x51, U11(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U11(proper(_x81), proper(_x82)))))top#(mark(U11(_x21, U12(length(_x71), _x52))))top#(U11(proper(_x21), U12(length(proper(_x71)), proper(_x52))))
top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))
top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(s(_x41), s(s(_x61)))))top#(U11(s(proper(_x41)), s(s(proper(_x61)))))top#(mark(U11(length(zeros), 0)))top#(U11(length(ok(zeros)), ok(0)))
top#(mark(U11(length(cons(_x51, _x52)), 0)))top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(nil, tt)))top#(U11(ok(nil), ok(tt)))
top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))
top#(mark(zeros))top#(ok(zeros))top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))
top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))
top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))top#(mark(U11(s(_x41), 0)))top#(U11(s(proper(_x41)), ok(0)))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))
top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))top#(mark(U11(s(cons(_x61, _x62)), _x22)))top#(U11(s(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(_x41), U12(_x51, _x52))))top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(_x51, zeros))))top#(U11(proper(_x21), U12(proper(_x51), ok(zeros))))top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, U12(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U12(proper(_x81), proper(_x82)))))top#(mark(U11(s(zeros), _x22)))top#(U11(s(ok(zeros)), proper(_x22)))
top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))
top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))top#(mark(U11(0, tt)))top#(U11(ok(0), ok(tt)))
top#(mark(U11(s(U11(_x61, _x62)), _x22)))top#(U11(s(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(s(tt), _x22)))top#(U11(s(ok(tt)), proper(_x22)))top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))
top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))top#(mark(U11(length(U12(_x51, _x52)), 0)))top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(_x21, U12(_x51, cons(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), cons(proper(_x81), proper(_x82)))))top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))top#(mark(U11(tt, tt)))top#(U11(ok(tt), ok(tt)))
top#(mark(U11(s(_x41), length(_x51))))top#(U11(s(proper(_x41)), length(proper(_x51))))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(_x51, _x52)), s(_x51))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, nil))))top#(U11(proper(_x21), U12(proper(_x51), ok(nil))))
top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))top#(mark(U11(_x21, U12(nil, _x52))))top#(U11(proper(_x21), U12(ok(nil), proper(_x52))))
top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, length(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), length(proper(_x81)))))top#(ok(length(nil)))top#(mark(0))
top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))top#(mark(U11(s(length(_x51)), s(_x51))))top#(U11(s(length(proper(_x51))), s(proper(_x51))))
top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(_x21, U12(s(_x71), _x52))))top#(U11(proper(_x21), U12(s(proper(_x71)), proper(_x52))))
top#(mark(U11(s(U12(_x51, _x52)), s(_x51))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(proper(_x51))))top#(mark(U11(s(0), _x22)))top#(U11(s(ok(0)), proper(_x22)))
top#(mark(U11(s(_x41), s(U12(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U12(proper(_x61), proper(_x62)))))top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))
top#(mark(U11(s(_x41), s(length(_x61)))))top#(U11(s(proper(_x41)), s(length(proper(_x61)))))top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))
top#(mark(U11(_x21, U12(U12(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U12(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(0))top#(ok(0))
top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))top#(mark(U11(s(U12(_x61, _x62)), _x22)))top#(U11(s(U12(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(0, U12(_x51, _x52))))top#(U11(ok(0), U12(proper(_x51), proper(_x52))))top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))
top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))
top#(mark(U11(_x21, U12(tt, _x52))))top#(U11(proper(_x21), U12(ok(tt), proper(_x52))))top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))
top#(mark(U11(U11(_x41, _x42), tt)))top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(s(_x41), cons(_x51, _x52))))top#(U11(s(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))
top#(mark(U11(s(U11(_x51, _x52)), s(_x51))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(proper(_x51))))top#(ok(length(_x21)))top#(length(active(_x21)))
top#(mark(U11(length(s(_x51)), 0)))top#(U11(length(s(proper(_x51))), ok(0)))top#(mark(U11(s(_x41), tt)))top#(U11(s(proper(_x41)), ok(tt)))
top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))top#(mark(U11(_x21, U12(_x51, s(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), s(proper(_x81)))))
top#(mark(U11(s(tt), s(_x51))))top#(U11(s(ok(tt)), s(proper(_x51))))top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(_x21, U12(U11(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U11(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))
top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))top#(mark(U11(s(_x41), s(cons(_x61, _x62)))))top#(U11(s(proper(_x41)), s(cons(proper(_x61), proper(_x62)))))
top#(mark(U11(_x21, U12(_x51, 0))))top#(U11(proper(_x21), U12(proper(_x51), ok(0))))top#(mark(U11(length(U11(_x51, _x52)), 0)))top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))
top#(mark(U11(s(_x41), zeros)))top#(U11(s(proper(_x41)), ok(zeros)))top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))
top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))
top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(zeros, _x52))))top#(U11(proper(_x21), U12(ok(zeros), proper(_x52))))
top#(mark(U11(s(nil), s(_x51))))top#(U11(s(ok(nil)), s(proper(_x51))))top#(mark(U11(s(nil), _x22)))top#(U11(s(ok(nil)), proper(_x22)))
top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(tt, U12(_x51, _x52))))top#(U11(ok(tt), U12(proper(_x51), proper(_x52))))
top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))top#(mark(U11(_x21, U12(cons(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(cons(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(s(_x41), s(0))))top#(U11(s(proper(_x41)), s(ok(0))))top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(_x41), nil)))top#(U11(s(proper(_x41)), ok(nil)))top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))
top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))
top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(U12(_x41, _x42), U12(_x51, _x52))))top#(U11(U12(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(length(_x21)))top#(length(proper(_x21)))top#(mark(U11(s(0), s(_x51))))top#(U11(s(ok(0)), s(proper(_x51))))
top#(mark(U11(s(_x41), s(zeros))))top#(U11(s(proper(_x41)), s(ok(zeros))))top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))
top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(U11(_x41, _x42), U12(_x51, _x52))))top#(U11(U11(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(_x41), s(nil))))top#(U11(s(proper(_x41)), s(ok(nil))))top#(mark(U11(s(_x41), s(U11(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U11(proper(_x61), proper(_x62)))))
top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(length(tt), 0)))top#(U11(length(ok(tt)), ok(0)))
top#(mark(U11(zeros, U12(_x51, _x52))))top#(U11(ok(zeros), U12(proper(_x51), proper(_x52))))top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))
top#(mark(U11(length(0), 0)))top#(U11(length(ok(0)), ok(0)))top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))
top#(mark(U11(_x21, U12(_x51, tt))))top#(U11(proper(_x21), U12(proper(_x51), ok(tt))))top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))
top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))top#(mark(U11(s(_x41), U11(_x51, _x52))))top#(U11(s(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))top#(mark(nil))top#(ok(nil))
top#(mark(U11(s(s(_x61)), _x22)))top#(U11(s(s(proper(_x61))), proper(_x22)))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(s(zeros), s(_x51))))top#(U11(s(ok(zeros)), s(proper(_x51))))
top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))
top#(mark(U11(_x21, U12(0, _x52))))top#(U11(proper(_x21), U12(ok(0), proper(_x52))))top#(mark(U11(zeros, tt)))top#(U11(ok(zeros), ok(tt)))
top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(length(_x61)), _x22)))top#(U11(s(length(proper(_x61))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

Strategy


The right-hand side of the rule top#(mark(U11(s(_x41), s(tt)))) → top#(U11(s(proper(_x41)), s(ok(tt)))) 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#(U11(s(proper(_x41)), ok(s(tt)))) 
top#(U11(s(ok(nil)), s(ok(tt)))) 
top#(U11(s(ok(zeros)), s(ok(tt)))) 
top#(U11(s(ok(0)), s(ok(tt)))) 
top#(U11(s(U11(proper(_x51), proper(_x52))), s(ok(tt)))) 
top#(U11(s(s(proper(_x51))), s(ok(tt)))) 
top#(U11(s(ok(tt)), s(ok(tt)))) 
top#(U11(s(length(proper(_x51))), s(ok(tt)))) 
top#(U11(s(U12(proper(_x51), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(ok(tt)))) 
Thus, the rule top#(mark(U11(s(_x41), s(tt)))) → top#(U11(s(proper(_x41)), s(ok(tt)))) is replaced by the following rules:
top#(mark(U11(s(s(_x51)), s(tt)))) → top#(U11(s(s(proper(_x51))), s(ok(tt))))top#(mark(U11(s(length(_x51)), s(tt)))) → top#(U11(s(length(proper(_x51))), s(ok(tt))))
top#(mark(U11(s(U12(_x51, _x52)), s(tt)))) → top#(U11(s(U12(proper(_x51), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(_x51, _x52)), s(tt)))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(nil), s(tt)))) → top#(U11(s(ok(nil)), s(ok(tt))))top#(mark(U11(s(U11(_x51, _x52)), s(tt)))) → top#(U11(s(U11(proper(_x51), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(tt), s(tt)))) → top#(U11(s(ok(tt)), s(ok(tt))))top#(mark(U11(s(0), s(tt)))) → top#(U11(s(ok(0)), s(ok(tt))))
top#(mark(U11(s(tt), s(tt)))) → top#(U11(s(proper(_x41)), ok(s(tt))))top#(mark(U11(s(zeros), s(tt)))) → top#(U11(s(ok(zeros)), s(ok(tt))))

Problem 22: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(s(s(_x51)), s(_x51))))top#(U11(s(s(proper(_x51))), s(proper(_x51))))top#(mark(U11(s(cons(_x51, _x52)), s(tt))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, _x52)), s(tt))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(ok(tt))))top#(ok(zeros))top#(mark(cons(0, zeros)))
top#(mark(U11(nil, U12(_x51, _x52))))top#(U11(ok(nil), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(proper(_x41)), ok(s(tt))))top#(mark(tt))top#(ok(tt))
top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))
top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))top#(mark(U11(length(length(_x51)), 0)))top#(U11(length(length(proper(_x51))), ok(0)))
top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))
top#(mark(U11(U12(_x41, _x42), tt)))top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(length(nil), 0)))top#(U11(length(ok(nil)), ok(0)))
top#(mark(U11(_x21, U12(_x51, U11(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U11(proper(_x81), proper(_x82)))))top#(mark(U11(_x21, U12(length(_x71), _x52))))top#(U11(proper(_x21), U12(length(proper(_x71)), proper(_x52))))
top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))
top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(length(zeros), 0)))top#(U11(length(ok(zeros)), ok(0)))top#(mark(U11(s(_x41), s(s(_x61)))))top#(U11(s(proper(_x41)), s(s(proper(_x61)))))
top#(mark(U11(length(cons(_x51, _x52)), 0)))top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(s(0), s(tt))))top#(U11(s(ok(0)), s(ok(tt))))
top#(mark(U11(nil, tt)))top#(U11(ok(nil), ok(tt)))top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))
top#(mark(zeros))top#(ok(zeros))top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))
top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))
top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(mark(U11(s(_x41), 0)))top#(U11(s(proper(_x41)), ok(0)))
top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(_x61, _x62)), _x22)))top#(U11(s(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(_x41), U12(_x51, _x52))))top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(_x51, zeros))))top#(U11(proper(_x21), U12(proper(_x51), ok(zeros))))
top#(mark(U11(_x21, U12(_x51, U12(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U12(proper(_x81), proper(_x82)))))top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))
top#(mark(U11(s(zeros), _x22)))top#(U11(s(ok(zeros)), proper(_x22)))top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))
top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))
top#(mark(U11(s(zeros), s(tt))))top#(U11(s(ok(zeros)), s(ok(tt))))top#(mark(U11(0, tt)))top#(U11(ok(0), ok(tt)))
top#(mark(U11(s(U11(_x61, _x62)), _x22)))top#(U11(s(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(s(tt), _x22)))top#(U11(s(ok(tt)), proper(_x22)))top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))
top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))top#(mark(U11(length(U12(_x51, _x52)), 0)))top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(_x21, U12(_x51, cons(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), cons(proper(_x81), proper(_x82)))))top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))top#(mark(U11(tt, tt)))top#(U11(ok(tt), ok(tt)))
top#(mark(U11(s(_x41), length(_x51))))top#(U11(s(proper(_x41)), length(proper(_x51))))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(_x51, _x52)), s(_x51))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, nil))))top#(U11(proper(_x21), U12(proper(_x51), ok(nil))))
top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))top#(mark(U11(_x21, U12(nil, _x52))))top#(U11(proper(_x21), U12(ok(nil), proper(_x52))))
top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, length(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), length(proper(_x81)))))top#(ok(length(nil)))top#(mark(0))
top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))top#(mark(U11(s(length(_x51)), s(_x51))))top#(U11(s(length(proper(_x51))), s(proper(_x51))))
top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(_x21, U12(s(_x71), _x52))))top#(U11(proper(_x21), U12(s(proper(_x71)), proper(_x52))))
top#(mark(U11(s(U12(_x51, _x52)), s(_x51))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(proper(_x51))))top#(mark(U11(s(0), _x22)))top#(U11(s(ok(0)), proper(_x22)))
top#(mark(U11(s(_x41), s(U12(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U12(proper(_x61), proper(_x62)))))top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))
top#(mark(U11(s(_x41), s(length(_x61)))))top#(U11(s(proper(_x41)), s(length(proper(_x61)))))top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))
top#(mark(U11(_x21, U12(U12(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U12(proper(_x71), proper(_x72)), proper(_x52))))top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))
top#(mark(U11(s(U12(_x51, _x52)), s(tt))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(ok(tt))))top#(mark(0))top#(ok(0))
top#(mark(U11(s(U12(_x61, _x62)), _x22)))top#(U11(s(U12(proper(_x61), proper(_x62))), proper(_x22)))top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))
top#(mark(U11(0, U12(_x51, _x52))))top#(U11(ok(0), U12(proper(_x51), proper(_x52))))top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))
top#(mark(U11(_x21, U12(tt, _x52))))top#(U11(proper(_x21), U12(ok(tt), proper(_x52))))top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))
top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))top#(mark(U11(U11(_x41, _x42), tt)))top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(s(_x41), cons(_x51, _x52))))top#(U11(s(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))
top#(mark(U11(s(U11(_x51, _x52)), s(_x51))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(proper(_x51))))top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))
top#(ok(length(_x21)))top#(length(active(_x21)))top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(s(_x41), tt)))top#(U11(s(proper(_x41)), ok(tt)))top#(mark(U11(length(s(_x51)), 0)))top#(U11(length(s(proper(_x51))), ok(0)))
top#(mark(U11(s(tt), s(_x51))))top#(U11(s(ok(tt)), s(proper(_x51))))top#(mark(U11(_x21, U12(_x51, s(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), s(proper(_x81)))))
top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))
top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))top#(mark(U11(_x21, U12(U11(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U11(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(s(_x41), s(cons(_x61, _x62)))))top#(U11(s(proper(_x41)), s(cons(proper(_x61), proper(_x62)))))top#(mark(U11(s(s(_x51)), s(tt))))top#(U11(s(s(proper(_x51))), s(ok(tt))))
top#(mark(U11(_x21, U12(_x51, 0))))top#(U11(proper(_x21), U12(proper(_x51), ok(0))))top#(mark(U11(length(U11(_x51, _x52)), 0)))top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))
top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(U11(s(_x41), zeros)))top#(U11(s(proper(_x41)), ok(zeros)))top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))
top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(zeros, _x52))))top#(U11(proper(_x21), U12(ok(zeros), proper(_x52))))top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(s(nil), s(_x51))))top#(U11(s(ok(nil)), s(proper(_x51))))top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(s(nil), _x22)))top#(U11(s(ok(nil)), proper(_x22)))top#(mark(U11(tt, U12(_x51, _x52))))top#(U11(ok(tt), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(cons(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(cons(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))
top#(mark(U11(s(_x41), s(0))))top#(U11(s(proper(_x41)), s(ok(0))))top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(nil), s(tt))))top#(U11(s(ok(nil)), s(ok(tt))))top#(mark(U11(s(_x41), nil)))top#(U11(s(proper(_x41)), ok(nil)))
top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))
top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(U12(_x41, _x42), U12(_x51, _x52))))top#(U11(U12(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(length(_x21)))top#(length(proper(_x21)))
top#(mark(U11(s(_x41), s(zeros))))top#(U11(s(proper(_x41)), s(ok(zeros))))top#(mark(U11(s(0), s(_x51))))top#(U11(s(ok(0)), s(proper(_x51))))
top#(mark(U11(s(_x41), s(nil))))top#(U11(s(proper(_x41)), s(ok(nil))))top#(mark(U11(U11(_x41, _x42), U12(_x51, _x52))))top#(U11(U11(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))
top#(mark(U11(s(_x41), s(U11(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U11(proper(_x61), proper(_x62)))))top#(mark(U11(s(length(_x51)), s(tt))))top#(U11(s(length(proper(_x51))), s(ok(tt))))
top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(length(tt), 0)))top#(U11(length(ok(tt)), ok(0)))
top#(mark(U11(zeros, U12(_x51, _x52))))top#(U11(ok(zeros), U12(proper(_x51), proper(_x52))))top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))
top#(mark(U11(length(0), 0)))top#(U11(length(ok(0)), ok(0)))top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))
top#(mark(U11(_x21, U12(_x51, tt))))top#(U11(proper(_x21), U12(proper(_x51), ok(tt))))top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))
top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))
top#(mark(U11(s(_x41), U11(_x51, _x52))))top#(U11(s(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(tt)), s(ok(tt))))
top#(mark(nil))top#(ok(nil))top#(mark(U11(s(s(_x61)), _x22)))top#(U11(s(s(proper(_x61))), proper(_x22)))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(U11(s(zeros), s(_x51))))top#(U11(s(ok(zeros)), s(proper(_x51))))
top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))
top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))top#(mark(U11(_x21, U12(0, _x52))))top#(U11(proper(_x21), U12(ok(0), proper(_x52))))
top#(mark(U11(zeros, tt)))top#(U11(ok(zeros), ok(tt)))top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))
top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(length(_x61)), _x22)))top#(U11(s(length(proper(_x61))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, cons, nil, top

Strategy


The right-hand side of the rule top#(mark(U11(s(cons(_x51, _x52)), s(tt)))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(ok(tt)))) 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#(U11(s(cons(proper(_x51), proper(_x52))), ok(s(tt)))) 
top#(U11(s(cons(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt)))) 
top#(U11(s(cons(proper(_x51), ok(0))), s(ok(tt)))) 
top#(U11(s(cons(proper(_x51), length(proper(_x61)))), s(ok(tt)))) 
top#(U11(s(cons(ok(zeros), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt)))) 
top#(U11(s(cons(s(proper(_x61)), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(proper(_x51), ok(zeros))), s(ok(tt)))) 
top#(U11(s(cons(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt)))) 
top#(U11(s(cons(ok(nil), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(proper(_x51), s(proper(_x61)))), s(ok(tt)))) 
top#(U11(s(cons(ok(0), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(proper(_x51), ok(nil))), s(ok(tt)))) 
top#(U11(s(cons(ok(tt), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(length(proper(_x61)), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(proper(_x51), ok(tt))), s(ok(tt)))) 
top#(U11(s(cons(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt)))) 
Thus, the rule top#(mark(U11(s(cons(_x51, _x52)), s(tt)))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(ok(tt)))) is replaced by the following rules:
top#(mark(U11(s(cons(cons(_x61, _x62), _x52)), s(tt)))) → top#(U11(s(cons(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(_x61), _x52)), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(nil, _x52)), s(tt)))) → top#(U11(s(cons(ok(nil), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(_x51, nil)), s(tt)))) → top#(U11(s(cons(proper(_x51), ok(nil))), s(ok(tt))))
top#(mark(U11(s(cons(_x51, s(_x61))), s(tt)))) → top#(U11(s(cons(proper(_x51), s(proper(_x61)))), s(ok(tt))))top#(mark(U11(s(cons(_x51, zeros)), s(tt)))) → top#(U11(s(cons(proper(_x51), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(cons(0, _x52)), s(tt)))) → top#(U11(s(cons(ok(0), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(U12(_x61, _x62), _x52)), s(tt)))) → top#(U11(s(cons(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(_x51, 0)), s(tt)))) → top#(U11(s(cons(proper(_x51), ok(0))), s(ok(tt))))top#(mark(U11(s(cons(_x51, tt)), s(tt)))) → top#(U11(s(cons(proper(_x51), ok(tt))), s(ok(tt))))
top#(mark(U11(s(cons(_x51, length(_x61))), s(tt)))) → top#(U11(s(cons(proper(_x51), length(proper(_x61)))), s(ok(tt))))top#(mark(U11(s(cons(U11(_x61, _x62), _x52)), s(tt)))) → top#(U11(s(cons(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(zeros, _x52)), s(tt)))) → top#(U11(s(cons(ok(zeros), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(_x51, _x52)), s(tt)))) → top#(U11(s(cons(proper(_x51), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(cons(_x51, cons(_x61, _x62))), s(tt)))) → top#(U11(s(cons(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(cons(tt, _x52)), s(tt)))) → top#(U11(s(cons(ok(tt), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(s(_x61), _x52)), s(tt)))) → top#(U11(s(cons(s(proper(_x61)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(_x51, U12(_x61, _x62))), s(tt)))) → top#(U11(s(cons(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(cons(_x51, U11(_x61, _x62))), s(tt)))) → top#(U11(s(cons(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))

Problem 23: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(s(cons(length(_x61), _x52)), s(tt))))top#(U11(s(cons(length(proper(_x61)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x51, _x52)), s(tt))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(_x51, zeros)), s(tt))))top#(U11(s(cons(proper(_x51), ok(zeros))), s(ok(tt))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(proper(_x41)), ok(s(tt))))
top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))
top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))top#(mark(U11(length(nil), 0)))top#(U11(length(ok(nil)), ok(0)))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(mark(U11(_x21, U12(_x51, U11(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U11(proper(_x81), proper(_x82)))))
top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(s(_x41), s(s(_x61)))))top#(U11(s(proper(_x41)), s(s(proper(_x61)))))top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))
top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))top#(mark(U11(s(cons(_x51, length(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), length(proper(_x61)))), s(ok(tt))))
top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))top#(mark(U11(s(_x41), 0)))top#(U11(s(proper(_x41)), ok(0)))
top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(_x51, zeros))))top#(U11(proper(_x21), U12(proper(_x51), ok(zeros))))
top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))
top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))
top#(mark(U11(s(cons(U12(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x61, _x62)), _x22)))top#(U11(s(U11(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(0, tt)))top#(U11(ok(0), ok(tt)))top#(mark(U11(length(U12(_x51, _x52)), 0)))top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))
top#(mark(U11(tt, tt)))top#(U11(ok(tt), ok(tt)))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(_x51, _x52)), s(_x51))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, nil))))top#(U11(proper(_x21), U12(proper(_x51), ok(nil))))
top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))top#(mark(U11(_x21, U12(nil, _x52))))top#(U11(proper(_x21), U12(ok(nil), proper(_x52))))
top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))top#(mark(U11(_x21, U12(_x51, length(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), length(proper(_x81)))))
top#(ok(length(nil)))top#(mark(0))top#(mark(U11(_x21, U12(s(_x71), _x52))))top#(U11(proper(_x21), U12(s(proper(_x71)), proper(_x52))))
top#(mark(U11(s(U12(_x51, _x52)), s(_x51))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(proper(_x51))))top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))
top#(mark(U11(_x21, U12(U12(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U12(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(s(cons(_x51, U11(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))top#(mark(U11(s(U12(_x51, _x52)), s(tt))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U12(_x61, _x62)), _x22)))top#(U11(s(U12(proper(_x61), proper(_x62))), proper(_x22)))top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))
top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))
top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))
top#(ok(length(_x21)))top#(length(active(_x21)))top#(mark(U11(s(_x41), tt)))top#(U11(s(proper(_x41)), ok(tt)))
top#(mark(U11(length(s(_x51)), 0)))top#(U11(length(s(proper(_x51))), ok(0)))top#(mark(U11(s(tt), s(_x51))))top#(U11(s(ok(tt)), s(proper(_x51))))
top#(mark(U11(_x21, U12(U11(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U11(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(s(_x41), s(cons(_x61, _x62)))))top#(U11(s(proper(_x41)), s(cons(proper(_x61), proper(_x62)))))
top#(mark(U11(s(s(_x51)), s(tt))))top#(U11(s(s(proper(_x51))), s(ok(tt))))top#(mark(U11(s(cons(_x51, s(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(U11(s(cons(_x51, 0)), s(tt))))top#(U11(s(cons(proper(_x51), ok(0))), s(ok(tt))))
top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(s(nil), _x22)))top#(U11(s(ok(nil)), proper(_x22)))top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))
top#(mark(U11(s(_x41), s(0))))top#(U11(s(proper(_x41)), s(ok(0))))top#(mark(U11(s(_x41), nil)))top#(U11(s(proper(_x41)), ok(nil)))
top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))
top#(mark(U11(U12(_x41, _x42), U12(_x51, _x52))))top#(U11(U12(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(_x41), s(zeros))))top#(U11(s(proper(_x41)), s(ok(zeros))))
top#(mark(U11(s(0), s(_x51))))top#(U11(s(ok(0)), s(proper(_x51))))top#(mark(U11(s(_x41), s(nil))))top#(U11(s(proper(_x41)), s(ok(nil))))
top#(mark(U11(s(_x41), s(U11(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U11(proper(_x61), proper(_x62)))))top#(mark(U11(s(length(_x51)), s(tt))))top#(U11(s(length(proper(_x51))), s(ok(tt))))
top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))
top#(mark(U11(_x21, U12(_x51, tt))))top#(U11(proper(_x21), U12(proper(_x51), ok(tt))))top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))
top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))top#(mark(U11(s(cons(cons(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(_x51, nil)), s(tt))))top#(U11(s(cons(proper(_x51), ok(nil))), s(ok(tt))))top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))
top#(mark(U11(s(_x41), U11(_x51, _x52))))top#(U11(s(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(tt)), s(ok(tt))))
top#(mark(U11(s(s(_x61)), _x22)))top#(U11(s(s(proper(_x61))), proper(_x22)))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(_x51, tt)), s(tt))))top#(U11(s(cons(proper(_x51), ok(tt))), s(ok(tt))))
top#(mark(U11(_x21, U12(0, _x52))))top#(U11(proper(_x21), U12(ok(0), proper(_x52))))top#(mark(U11(zeros, tt)))top#(U11(ok(zeros), ok(tt)))
top#(mark(U11(s(cons(_x51, cons(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(s(_x51)), s(_x51))))top#(U11(s(s(proper(_x51))), s(proper(_x51))))
top#(mark(U11(s(cons(0, _x52)), s(tt))))top#(U11(s(cons(ok(0), proper(_x52))), s(ok(tt))))top#(ok(zeros))top#(mark(cons(0, zeros)))
top#(mark(U11(nil, U12(_x51, _x52))))top#(U11(ok(nil), U12(proper(_x51), proper(_x52))))top#(mark(tt))top#(ok(tt))
top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))top#(mark(U11(length(length(_x51)), 0)))top#(U11(length(length(proper(_x51))), ok(0)))
top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))top#(mark(U11(U12(_x41, _x42), tt)))top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))
top#(mark(U11(_x21, U12(length(_x71), _x52))))top#(U11(proper(_x21), U12(length(proper(_x71)), proper(_x52))))top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))
top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(length(zeros), 0)))top#(U11(length(ok(zeros)), ok(0)))
top#(mark(U11(length(cons(_x51, _x52)), 0)))top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(s(0), s(tt))))top#(U11(s(ok(0)), s(ok(tt))))
top#(mark(U11(nil, tt)))top#(U11(ok(nil), ok(tt)))top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))
top#(mark(zeros))top#(ok(zeros))top#(mark(U11(s(cons(zeros, _x52)), s(tt))))top#(U11(s(cons(ok(zeros), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(mark(U11(s(cons(_x61, _x62)), _x22)))top#(U11(s(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(_x41), U12(_x51, _x52))))top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, U12(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U12(proper(_x81), proper(_x82)))))top#(mark(U11(s(zeros), _x22)))top#(U11(s(ok(zeros)), proper(_x22)))
top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(s(zeros), s(tt))))top#(U11(s(ok(zeros)), s(ok(tt))))
top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))
top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))top#(mark(U11(s(tt), _x22)))top#(U11(s(ok(tt)), proper(_x22)))
top#(mark(U11(s(cons(tt, _x52)), s(tt))))top#(U11(s(cons(ok(tt), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))
top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, cons(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), cons(proper(_x81), proper(_x82)))))
top#(mark(U11(s(_x41), length(_x51))))top#(U11(s(proper(_x41)), length(proper(_x51))))top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))
top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))
top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(s(length(_x51)), s(_x51))))top#(U11(s(length(proper(_x51))), s(proper(_x51))))top#(mark(U11(s(cons(_x51, _x52)), s(tt))))top#(U11(s(cons(proper(_x51), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(0), _x22)))top#(U11(s(ok(0)), proper(_x22)))top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))
top#(mark(U11(s(_x41), s(U12(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U12(proper(_x61), proper(_x62)))))top#(mark(U11(s(_x41), s(length(_x61)))))top#(U11(s(proper(_x41)), s(length(proper(_x61)))))
top#(mark(U11(s(cons(nil, _x52)), s(tt))))top#(U11(s(cons(ok(nil), proper(_x52))), s(ok(tt))))top#(mark(0))top#(ok(0))
top#(mark(U11(0, U12(_x51, _x52))))top#(U11(ok(0), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(tt, _x52))))top#(U11(proper(_x21), U12(ok(tt), proper(_x52))))
top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))top#(mark(U11(U11(_x41, _x42), tt)))top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(s(_x41), cons(_x51, _x52))))top#(U11(s(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(U11(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, _x52)), s(_x51))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(proper(_x51))))top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(_x21, U12(_x51, s(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), s(proper(_x81)))))top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, 0))))top#(U11(proper(_x21), U12(proper(_x51), ok(0))))top#(mark(U11(length(U11(_x51, _x52)), 0)))top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0)))
top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))top#(mark(U11(s(_x41), zeros)))top#(U11(s(proper(_x41)), ok(zeros)))
top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))top#(mark(U11(s(cons(s(_x61), _x52)), s(tt))))top#(U11(s(cons(s(proper(_x61)), proper(_x52))), s(ok(tt))))
top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(zeros, _x52))))top#(U11(proper(_x21), U12(ok(zeros), proper(_x52))))
top#(mark(U11(s(nil), s(_x51))))top#(U11(s(ok(nil)), s(proper(_x51))))top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(tt, U12(_x51, _x52))))top#(U11(ok(tt), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(cons(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(cons(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(s(nil), s(tt))))top#(U11(s(ok(nil)), s(ok(tt))))top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(length(_x21)))top#(length(proper(_x21)))top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))
top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(U11(_x41, _x42), U12(_x51, _x52))))top#(U11(U11(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(length(tt), 0)))top#(U11(length(ok(tt)), ok(0)))
top#(mark(U11(zeros, U12(_x51, _x52))))top#(U11(ok(zeros), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(_x51, U12(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(length(0), 0)))top#(U11(length(ok(0)), ok(0)))top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(nil))top#(ok(nil))
top#(mark(U11(s(zeros), s(_x51))))top#(U11(s(ok(zeros)), s(proper(_x51))))top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))
top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))
top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(length(_x61)), _x22)))top#(U11(s(length(proper(_x61))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, top, cons, nil

Strategy


The right-hand side of the rule top#(mark(U11(s(cons(length(_x61), _x52)), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), proper(_x52))), s(ok(tt)))) 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#(U11(s(cons(length(proper(_x61)), cons(proper(_x61), proper(_x62)))), s(ok(tt)))) 
top#(U11(s(cons(length(proper(_x61)), ok(tt))), s(ok(tt)))) 
top#(U11(s(cons(length(s(proper(_x71))), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(length(proper(_x61)), proper(_x52))), ok(s(tt)))) 
top#(U11(s(cons(length(ok(zeros)), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(length(proper(_x61)), U11(proper(_x61), proper(_x62)))), s(ok(tt)))) 
top#(U11(s(cons(length(proper(_x61)), ok(nil))), s(ok(tt)))) 
top#(U11(s(cons(length(ok(0)), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(length(proper(_x61)), ok(zeros))), s(ok(tt)))) 
top#(U11(s(cons(length(proper(_x61)), s(proper(_x61)))), s(ok(tt)))) 
top#(U11(s(cons(length(ok(tt)), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(length(proper(_x61)), ok(0))), s(ok(tt)))) 
top#(U11(s(cons(length(U12(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(length(proper(_x61)), length(proper(_x61)))), s(ok(tt)))) 
top#(U11(s(cons(length(proper(_x61)), U12(proper(_x61), proper(_x62)))), s(ok(tt)))) 
top#(U11(s(cons(length(length(proper(_x71))), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(length(ok(nil)), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(length(cons(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(length(U11(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt)))) 
Thus, the rule top#(mark(U11(s(cons(length(_x61), _x52)), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), proper(_x52))), s(ok(tt)))) is replaced by the following rules:
top#(mark(U11(s(cons(length(0), _x52)), s(tt)))) → top#(U11(s(cons(length(ok(0)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(U11(_x71, _x72)), _x52)), s(tt)))) → top#(U11(s(cons(length(U11(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(length(U12(_x71, _x72)), _x52)), s(tt)))) → top#(U11(s(cons(length(U12(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(cons(_x71, _x72)), _x52)), s(tt)))) → top#(U11(s(cons(length(cons(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(length(zeros), _x52)), s(tt)))) → top#(U11(s(cons(length(ok(zeros)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(_x61), U11(_x61, _x62))), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(cons(length(_x61), s(_x61))), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), s(proper(_x61)))), s(ok(tt))))top#(mark(U11(s(cons(length(_x61), tt)), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), ok(tt))), s(ok(tt))))
top#(mark(U11(s(cons(length(nil), _x52)), s(tt)))) → top#(U11(s(cons(length(ok(nil)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(_x61), length(_x61))), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), length(proper(_x61)))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), _x52)), s(tt)))) → top#(U11(s(cons(length(length(proper(_x71))), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(_x61), nil)), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), ok(nil))), s(ok(tt))))
top#(mark(U11(s(cons(length(_x61), 0)), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), ok(0))), s(ok(tt))))top#(mark(U11(s(cons(length(_x61), cons(_x61, _x62))), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), cons(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(cons(length(s(_x71)), _x52)), s(tt)))) → top#(U11(s(cons(length(s(proper(_x71))), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(_x61), zeros)), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(cons(length(_x61), U12(_x61, _x62))), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(cons(length(_x61), _x52)), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(cons(length(tt), _x52)), s(tt)))) → top#(U11(s(cons(length(ok(tt)), proper(_x52))), s(ok(tt))))

Problem 24: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(s(U11(_x51, _x52)), s(tt))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(_x51, zeros)), s(tt))))top#(U11(s(cons(proper(_x51), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(cons(length(zeros), _x52)), s(tt))))top#(U11(s(cons(length(ok(zeros)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(proper(_x41)), ok(s(tt))))
top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))
top#(mark(U11(s(cons(length(length(_x71)), _x52)), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), proper(_x52))), s(ok(tt))))top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))
top#(mark(U11(length(nil), 0)))top#(U11(length(ok(nil)), ok(0)))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(U11(_x21, U12(_x51, U11(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U11(proper(_x81), proper(_x82)))))top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(s(_x41), s(s(_x61)))))top#(U11(s(proper(_x41)), s(s(proper(_x61)))))
top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))top#(mark(U11(s(cons(_x51, length(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), length(proper(_x61)))), s(ok(tt))))
top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))
top#(mark(U11(s(_x41), 0)))top#(U11(s(proper(_x41)), ok(0)))top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))
top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(_x51, zeros))))top#(U11(proper(_x21), U12(proper(_x51), ok(zeros))))top#(mark(U11(s(cons(length(_x61), _x52)), s(tt))))top#(U11(s(cons(length(proper(_x61)), proper(_x52))), ok(s(tt))))
top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))
top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))
top#(mark(U11(s(cons(U12(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x61, _x62)), _x22)))top#(U11(s(U11(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(0, tt)))top#(U11(ok(0), ok(tt)))top#(mark(U11(length(U12(_x51, _x52)), 0)))top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))
top#(mark(U11(tt, tt)))top#(U11(ok(tt), ok(tt)))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(_x51, _x52)), s(_x51))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, nil))))top#(U11(proper(_x21), U12(proper(_x51), ok(nil))))
top#(mark(U11(s(cons(length(_x61), U11(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), U11(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))
top#(mark(U11(_x21, U12(nil, _x52))))top#(U11(proper(_x21), U12(ok(nil), proper(_x52))))top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, length(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), length(proper(_x81)))))top#(mark(U11(s(cons(length(_x61), length(_x61))), s(tt))))top#(U11(s(cons(length(proper(_x61)), length(proper(_x61)))), s(ok(tt))))
top#(ok(length(nil)))top#(mark(0))top#(mark(U11(_x21, U12(s(_x71), _x52))))top#(U11(proper(_x21), U12(s(proper(_x71)), proper(_x52))))
top#(mark(U11(s(cons(length(_x61), nil)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(nil))), s(ok(tt))))top#(mark(U11(s(U12(_x51, _x52)), s(_x51))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))top#(mark(U11(_x21, U12(U12(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U12(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(s(cons(_x51, U11(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(U12(_x51, _x52)), s(tt))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(ok(tt))))
top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))top#(mark(U11(s(U12(_x61, _x62)), _x22)))top#(U11(s(U12(proper(_x61), proper(_x62))), proper(_x22)))
top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))
top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))top#(mark(U11(s(cons(length(cons(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(cons(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(length(nil), _x52)), s(tt))))top#(U11(s(cons(length(ok(nil)), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))top#(ok(length(_x21)))top#(length(active(_x21)))
top#(mark(U11(length(s(_x51)), 0)))top#(U11(length(s(proper(_x51))), ok(0)))top#(mark(U11(s(_x41), tt)))top#(U11(s(proper(_x41)), ok(tt)))
top#(mark(U11(s(tt), s(_x51))))top#(U11(s(ok(tt)), s(proper(_x51))))top#(mark(U11(_x21, U12(U11(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U11(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(s(cons(length(tt), _x52)), s(tt))))top#(U11(s(cons(length(ok(tt)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(_x41), s(cons(_x61, _x62)))))top#(U11(s(proper(_x41)), s(cons(proper(_x61), proper(_x62)))))
top#(mark(U11(s(s(_x51)), s(tt))))top#(U11(s(s(proper(_x51))), s(ok(tt))))top#(mark(U11(s(cons(_x51, s(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))top#(mark(U11(s(cons(_x51, 0)), s(tt))))top#(U11(s(cons(proper(_x51), ok(0))), s(ok(tt))))
top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(length(_x61), 0)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(0))), s(ok(tt))))top#(mark(U11(s(nil), _x22)))top#(U11(s(ok(nil)), proper(_x22)))
top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))top#(mark(U11(s(_x41), s(0))))top#(U11(s(proper(_x41)), s(ok(0))))
top#(mark(U11(s(_x41), nil)))top#(U11(s(proper(_x41)), ok(nil)))top#(mark(U11(s(cons(length(U11(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(U11(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))
top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))
top#(mark(U11(U12(_x41, _x42), U12(_x51, _x52))))top#(U11(U12(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(length(_x61), tt)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(tt))), s(ok(tt))))
top#(mark(U11(s(0), s(_x51))))top#(U11(s(ok(0)), s(proper(_x51))))top#(mark(U11(s(_x41), s(zeros))))top#(U11(s(proper(_x41)), s(ok(zeros))))
top#(mark(U11(s(_x41), s(nil))))top#(U11(s(proper(_x41)), s(ok(nil))))top#(mark(U11(s(length(_x51)), s(tt))))top#(U11(s(length(proper(_x51))), s(ok(tt))))
top#(mark(U11(s(_x41), s(U11(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U11(proper(_x61), proper(_x62)))))top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))top#(mark(U11(s(cons(length(_x61), zeros)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(zeros))), s(ok(tt))))
top#(mark(U11(_x21, U12(_x51, tt))))top#(U11(proper(_x21), U12(proper(_x51), ok(tt))))top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))
top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))top#(mark(U11(s(cons(cons(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(_x51, nil)), s(tt))))top#(U11(s(cons(proper(_x51), ok(nil))), s(ok(tt))))top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))
top#(mark(U11(s(_x41), U11(_x51, _x52))))top#(U11(s(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(tt)), s(ok(tt))))
top#(mark(U11(s(s(_x61)), _x22)))top#(U11(s(s(proper(_x61))), proper(_x22)))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(_x51, tt)), s(tt))))top#(U11(s(cons(proper(_x51), ok(tt))), s(ok(tt))))
top#(mark(U11(_x21, U12(0, _x52))))top#(U11(proper(_x21), U12(ok(0), proper(_x52))))top#(mark(U11(zeros, tt)))top#(U11(ok(zeros), ok(tt)))
top#(mark(U11(s(cons(_x51, cons(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(cons(length(_x61), U12(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), U12(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(s(_x51)), s(_x51))))top#(U11(s(s(proper(_x51))), s(proper(_x51))))top#(mark(U11(s(cons(0, _x52)), s(tt))))top#(U11(s(cons(ok(0), proper(_x52))), s(ok(tt))))
top#(ok(zeros))top#(mark(cons(0, zeros)))top#(mark(U11(nil, U12(_x51, _x52))))top#(U11(ok(nil), U12(proper(_x51), proper(_x52))))
top#(mark(tt))top#(ok(tt))top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))
top#(mark(U11(length(length(_x51)), 0)))top#(U11(length(length(proper(_x51))), ok(0)))top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(U12(_x41, _x42), tt)))top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))
top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))top#(mark(U11(_x21, U12(length(_x71), _x52))))top#(U11(proper(_x21), U12(length(proper(_x71)), proper(_x52))))
top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(length(zeros), 0)))top#(U11(length(ok(zeros)), ok(0)))top#(mark(U11(length(cons(_x51, _x52)), 0)))top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(s(0), s(tt))))top#(U11(s(ok(0)), s(ok(tt))))top#(mark(U11(nil, tt)))top#(U11(ok(nil), ok(tt)))
top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))top#(mark(zeros))top#(ok(zeros))
top#(mark(U11(s(cons(zeros, _x52)), s(tt))))top#(U11(s(cons(ok(zeros), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))
top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(U11(s(cons(_x61, _x62)), _x22)))top#(U11(s(cons(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(_x41), U12(_x51, _x52))))top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))top#(mark(U11(_x21, U12(_x51, U12(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U12(proper(_x81), proper(_x82)))))
top#(mark(U11(s(zeros), _x22)))top#(U11(s(ok(zeros)), proper(_x22)))top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(s(zeros), s(tt))))top#(U11(s(ok(zeros)), s(ok(tt))))top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))
top#(mark(U11(s(tt), _x22)))top#(U11(s(ok(tt)), proper(_x22)))top#(mark(U11(s(cons(tt, _x52)), s(tt))))top#(U11(s(cons(ok(tt), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, cons(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), cons(proper(_x81), proper(_x82)))))top#(mark(U11(s(_x41), length(_x51))))top#(U11(s(proper(_x41)), length(proper(_x51))))
top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))
top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))top#(mark(U11(s(cons(length(U12(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(U12(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))
top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(s(length(_x51)), s(_x51))))top#(U11(s(length(proper(_x51))), s(proper(_x51))))top#(mark(U11(s(cons(_x51, _x52)), s(tt))))top#(U11(s(cons(proper(_x51), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(0), _x22)))top#(U11(s(ok(0)), proper(_x22)))top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))
top#(mark(U11(s(_x41), s(U12(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U12(proper(_x61), proper(_x62)))))top#(mark(U11(s(_x41), s(length(_x61)))))top#(U11(s(proper(_x41)), s(length(proper(_x61)))))
top#(mark(U11(s(cons(nil, _x52)), s(tt))))top#(U11(s(cons(ok(nil), proper(_x52))), s(ok(tt))))top#(mark(0))top#(ok(0))
top#(mark(U11(0, U12(_x51, _x52))))top#(U11(ok(0), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(tt, _x52))))top#(U11(proper(_x21), U12(ok(tt), proper(_x52))))
top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))top#(mark(U11(U11(_x41, _x42), tt)))top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(s(_x41), cons(_x51, _x52))))top#(U11(s(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(U11(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, _x52)), s(_x51))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(proper(_x51))))top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(s(cons(length(s(_x71)), _x52)), s(tt))))top#(U11(s(cons(length(s(proper(_x71))), proper(_x52))), s(ok(tt))))top#(mark(U11(_x21, U12(_x51, s(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), s(proper(_x81)))))
top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))
top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))top#(mark(U11(_x21, U12(_x51, 0))))top#(U11(proper(_x21), U12(proper(_x51), ok(0))))
top#(mark(U11(length(U11(_x51, _x52)), 0)))top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0)))top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))
top#(mark(U11(s(_x41), zeros)))top#(U11(s(proper(_x41)), ok(zeros)))top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))
top#(mark(U11(s(cons(s(_x61), _x52)), s(tt))))top#(U11(s(cons(s(proper(_x61)), proper(_x52))), s(ok(tt))))top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(zeros, _x52))))top#(U11(proper(_x21), U12(ok(zeros), proper(_x52))))top#(mark(U11(s(nil), s(_x51))))top#(U11(s(ok(nil)), s(proper(_x51))))
top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(tt, U12(_x51, _x52))))top#(U11(ok(tt), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(cons(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(cons(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(nil), s(tt))))top#(U11(s(ok(nil)), s(ok(tt))))top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))
top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(cons(length(_x61), s(_x61))), s(tt))))top#(U11(s(cons(length(proper(_x61)), s(proper(_x61)))), s(ok(tt))))
top#(mark(length(_x21)))top#(length(proper(_x21)))top#(mark(U11(U11(_x41, _x42), U12(_x51, _x52))))top#(U11(U11(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))
top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(length(tt), 0)))top#(U11(length(ok(tt)), ok(0)))
top#(mark(U11(zeros, U12(_x51, _x52))))top#(U11(ok(zeros), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(_x51, U12(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(length(0), 0)))top#(U11(length(ok(0)), ok(0)))top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(length(0), _x52)), s(tt))))top#(U11(s(cons(length(ok(0)), proper(_x52))), s(ok(tt))))
top#(mark(nil))top#(ok(nil))top#(mark(U11(s(zeros), s(_x51))))top#(U11(s(ok(zeros)), s(proper(_x51))))
top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(cons(length(_x61), cons(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(length(_x61)), _x22)))top#(U11(s(length(proper(_x61))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

Strategy


The right-hand side of the rule top#(mark(U11(s(U11(_x51, _x52)), s(tt)))) → top#(U11(s(U11(proper(_x51), proper(_x52))), s(ok(tt)))) 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#(U11(s(U11(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt)))) 
top#(U11(s(U11(ok(nil), proper(_x52))), s(ok(tt)))) 
top#(U11(s(U11(ok(0), proper(_x52))), s(ok(tt)))) 
top#(U11(s(U11(ok(tt), proper(_x52))), s(ok(tt)))) 
top#(U11(s(U11(proper(_x51), ok(nil))), s(ok(tt)))) 
top#(U11(s(U11(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt)))) 
top#(U11(s(U11(proper(_x51), ok(tt))), s(ok(tt)))) 
top#(U11(s(U11(proper(_x51), ok(0))), s(ok(tt)))) 
top#(U11(s(U11(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt)))) 
top#(U11(s(U11(length(proper(_x61)), proper(_x52))), s(ok(tt)))) 
top#(U11(s(U11(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt)))) 
top#(U11(s(U11(proper(_x51), ok(zeros))), s(ok(tt)))) 
top#(U11(s(U11(proper(_x51), s(proper(_x61)))), s(ok(tt)))) 
top#(U11(s(U11(proper(_x51), length(proper(_x61)))), s(ok(tt)))) 
top#(U11(s(U11(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt)))) 
top#(U11(s(U11(proper(_x51), proper(_x52))), ok(s(tt)))) 
top#(U11(s(U11(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt)))) 
top#(U11(s(U11(ok(zeros), proper(_x52))), s(ok(tt)))) 
top#(U11(s(U11(s(proper(_x61)), proper(_x52))), s(ok(tt)))) 
Thus, the rule top#(mark(U11(s(U11(_x51, _x52)), s(tt)))) → top#(U11(s(U11(proper(_x51), proper(_x52))), s(ok(tt)))) is replaced by the following rules:
top#(mark(U11(s(U11(_x51, U11(_x61, _x62))), s(tt)))) → top#(U11(s(U11(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(U11(_x51, zeros)), s(tt)))) → top#(U11(s(U11(proper(_x51), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, _x52)), s(tt)))) → top#(U11(s(U11(proper(_x51), proper(_x52))), ok(s(tt))))top#(mark(U11(s(U11(cons(_x61, _x62), _x52)), s(tt)))) → top#(U11(s(U11(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, nil)), s(tt)))) → top#(U11(s(U11(proper(_x51), ok(nil))), s(ok(tt))))top#(mark(U11(s(U11(_x51, s(_x61))), s(tt)))) → top#(U11(s(U11(proper(_x51), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(s(U11(length(_x61), _x52)), s(tt)))) → top#(U11(s(U11(length(proper(_x61)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x51, 0)), s(tt)))) → top#(U11(s(U11(proper(_x51), ok(0))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, tt)), s(tt)))) → top#(U11(s(U11(proper(_x51), ok(tt))), s(ok(tt))))top#(mark(U11(s(U11(nil, _x52)), s(tt)))) → top#(U11(s(U11(ok(nil), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U11(zeros, _x52)), s(tt)))) → top#(U11(s(U11(ok(zeros), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(tt, _x52)), s(tt)))) → top#(U11(s(U11(ok(tt), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, length(_x61))), s(tt)))) → top#(U11(s(U11(proper(_x51), length(proper(_x61)))), s(ok(tt))))top#(mark(U11(s(U11(_x51, U12(_x61, _x62))), s(tt)))) → top#(U11(s(U11(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(U11(U12(_x61, _x62), _x52)), s(tt)))) → top#(U11(s(U11(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(s(_x61), _x52)), s(tt)))) → top#(U11(s(U11(s(proper(_x61)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U11(U11(_x61, _x62), _x52)), s(tt)))) → top#(U11(s(U11(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(0, _x52)), s(tt)))) → top#(U11(s(U11(ok(0), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, cons(_x61, _x62))), s(tt)))) → top#(U11(s(U11(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))

Problem 25: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(s(cons(_x51, zeros)), s(tt))))top#(U11(s(cons(proper(_x51), ok(zeros))), s(ok(tt))))top#(mark(U11(s(cons(length(zeros), _x52)), s(tt))))top#(U11(s(cons(length(ok(zeros)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(proper(_x41)), ok(s(tt))))top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))top#(mark(U11(s(cons(length(length(_x71)), _x52)), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), proper(_x52))), s(ok(tt))))
top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))top#(mark(U11(length(nil), 0)))top#(U11(length(ok(nil)), ok(0)))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(mark(U11(_x21, U12(_x51, U11(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U11(proper(_x81), proper(_x82)))))
top#(mark(U11(s(U11(s(_x61), _x52)), s(tt))))top#(U11(s(U11(s(proper(_x61)), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(s(_x41), s(s(_x61)))))top#(U11(s(proper(_x41)), s(s(proper(_x61)))))
top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))
top#(mark(U11(s(cons(_x51, length(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), length(proper(_x61)))), s(ok(tt))))top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))
top#(mark(U11(s(_x41), 0)))top#(U11(s(proper(_x41)), ok(0)))top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))
top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(_x51, zeros))))top#(U11(proper(_x21), U12(proper(_x51), ok(zeros))))top#(mark(U11(s(cons(length(_x61), _x52)), s(tt))))top#(U11(s(cons(length(proper(_x61)), proper(_x52))), ok(s(tt))))
top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))
top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))
top#(mark(U11(s(cons(U12(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x61, _x62)), _x22)))top#(U11(s(U11(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(0, tt)))top#(U11(ok(0), ok(tt)))top#(mark(U11(length(U12(_x51, _x52)), 0)))top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))
top#(mark(U11(tt, tt)))top#(U11(ok(tt), ok(tt)))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(_x51, _x52)), s(_x51))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, nil))))top#(U11(proper(_x21), U12(proper(_x51), ok(nil))))
top#(mark(U11(s(cons(length(_x61), U11(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), U11(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))
top#(mark(U11(_x21, U12(nil, _x52))))top#(U11(proper(_x21), U12(ok(nil), proper(_x52))))top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))
top#(mark(U11(s(U11(length(_x61), _x52)), s(tt))))top#(U11(s(U11(length(proper(_x61)), proper(_x52))), s(ok(tt))))top#(mark(U11(_x21, U12(_x51, length(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), length(proper(_x81)))))
top#(mark(U11(s(cons(length(_x61), length(_x61))), s(tt))))top#(U11(s(cons(length(proper(_x61)), length(proper(_x61)))), s(ok(tt))))top#(ok(length(nil)))top#(mark(0))
top#(mark(U11(s(cons(length(_x61), nil)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(nil))), s(ok(tt))))top#(mark(U11(_x21, U12(s(_x71), _x52))))top#(U11(proper(_x21), U12(s(proper(_x71)), proper(_x52))))
top#(mark(U11(s(U12(_x51, _x52)), s(_x51))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(proper(_x51))))top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))
top#(mark(U11(_x21, U12(U12(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U12(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(s(cons(_x51, U11(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))top#(mark(U11(s(U12(_x51, _x52)), s(tt))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U12(_x61, _x62)), _x22)))top#(U11(s(U12(proper(_x61), proper(_x62))), proper(_x22)))top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))
top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))
top#(mark(U11(s(cons(length(cons(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(cons(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x51, nil)), s(tt))))top#(U11(s(U11(proper(_x51), ok(nil))), s(ok(tt))))
top#(mark(U11(s(cons(length(nil), _x52)), s(tt))))top#(U11(s(cons(length(ok(nil)), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))top#(ok(length(_x21)))top#(length(active(_x21)))
top#(mark(U11(s(_x41), tt)))top#(U11(s(proper(_x41)), ok(tt)))top#(mark(U11(length(s(_x51)), 0)))top#(U11(length(s(proper(_x51))), ok(0)))
top#(mark(U11(s(tt), s(_x51))))top#(U11(s(ok(tt)), s(proper(_x51))))top#(mark(U11(s(U11(0, _x52)), s(tt))))top#(U11(s(U11(ok(0), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(length(tt), _x52)), s(tt))))top#(U11(s(cons(length(ok(tt)), proper(_x52))), s(ok(tt))))top#(mark(U11(_x21, U12(U11(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U11(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(s(_x41), s(cons(_x61, _x62)))))top#(U11(s(proper(_x41)), s(cons(proper(_x61), proper(_x62)))))top#(mark(U11(s(s(_x51)), s(tt))))top#(U11(s(s(proper(_x51))), s(ok(tt))))
top#(mark(U11(s(cons(_x51, s(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), s(proper(_x61)))), s(ok(tt))))top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))
top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(U11(s(cons(_x51, 0)), s(tt))))top#(U11(s(cons(proper(_x51), ok(0))), s(ok(tt))))top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))
top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(length(_x61), 0)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(0))), s(ok(tt))))
top#(mark(U11(s(U11(U12(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(nil), _x22)))top#(U11(s(ok(nil)), proper(_x22)))
top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))top#(mark(U11(s(_x41), s(0))))top#(U11(s(proper(_x41)), s(ok(0))))
top#(mark(U11(s(cons(length(U11(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(U11(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))top#(mark(U11(s(_x41), nil)))top#(U11(s(proper(_x41)), ok(nil)))
top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))
top#(mark(U11(U12(_x41, _x42), U12(_x51, _x52))))top#(U11(U12(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(length(_x61), tt)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(tt))), s(ok(tt))))
top#(mark(U11(s(_x41), s(zeros))))top#(U11(s(proper(_x41)), s(ok(zeros))))top#(mark(U11(s(0), s(_x51))))top#(U11(s(ok(0)), s(proper(_x51))))
top#(mark(U11(s(_x41), s(nil))))top#(U11(s(proper(_x41)), s(ok(nil))))top#(mark(U11(s(U11(nil, _x52)), s(tt))))top#(U11(s(U11(ok(nil), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(length(_x51)), s(tt))))top#(U11(s(length(proper(_x51))), s(ok(tt))))top#(mark(U11(s(_x41), s(U11(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U11(proper(_x61), proper(_x62)))))
top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))
top#(mark(U11(s(cons(length(_x61), zeros)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(zeros))), s(ok(tt))))top#(mark(U11(_x21, U12(_x51, tt))))top#(U11(proper(_x21), U12(proper(_x51), ok(tt))))
top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))
top#(mark(U11(s(cons(cons(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(_x51, nil)), s(tt))))top#(U11(s(cons(proper(_x51), ok(nil))), s(ok(tt))))
top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))top#(mark(U11(s(_x41), U11(_x51, _x52))))top#(U11(s(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(tt)), s(ok(tt))))top#(mark(U11(s(s(_x61)), _x22)))top#(U11(s(s(proper(_x61))), proper(_x22)))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(s(cons(_x51, tt)), s(tt))))top#(U11(s(cons(proper(_x51), ok(tt))), s(ok(tt))))top#(mark(U11(_x21, U12(0, _x52))))top#(U11(proper(_x21), U12(ok(0), proper(_x52))))
top#(mark(U11(zeros, tt)))top#(U11(ok(zeros), ok(tt)))top#(mark(U11(s(cons(_x51, cons(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(U11(zeros, _x52)), s(tt))))top#(U11(s(U11(ok(zeros), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(_x61), U12(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), U12(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(s(_x51)), s(_x51))))top#(U11(s(s(proper(_x51))), s(proper(_x51))))top#(mark(U11(s(cons(0, _x52)), s(tt))))top#(U11(s(cons(ok(0), proper(_x52))), s(ok(tt))))
top#(ok(zeros))top#(mark(cons(0, zeros)))top#(mark(U11(s(U11(_x51, s(_x61))), s(tt))))top#(U11(s(U11(proper(_x51), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(nil, U12(_x51, _x52))))top#(U11(ok(nil), U12(proper(_x51), proper(_x52))))top#(mark(tt))top#(ok(tt))
top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))top#(mark(U11(length(length(_x51)), 0)))top#(U11(length(length(proper(_x51))), ok(0)))
top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))top#(mark(U11(U12(_x41, _x42), tt)))top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))
top#(mark(U11(_x21, U12(length(_x71), _x52))))top#(U11(proper(_x21), U12(length(proper(_x71)), proper(_x52))))top#(mark(U11(s(U11(_x51, cons(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(U11(U11(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))
top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(s(U11(cons(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(length(zeros), 0)))top#(U11(length(ok(zeros)), ok(0)))top#(mark(U11(length(cons(_x51, _x52)), 0)))top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(s(0), s(tt))))top#(U11(s(ok(0)), s(ok(tt))))top#(mark(U11(nil, tt)))top#(U11(ok(nil), ok(tt)))
top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))top#(mark(zeros))top#(ok(zeros))
top#(mark(U11(s(cons(zeros, _x52)), s(tt))))top#(U11(s(cons(ok(zeros), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))
top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(U11(s(cons(_x61, _x62)), _x22)))top#(U11(s(cons(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(_x41), U12(_x51, _x52))))top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))top#(mark(U11(_x21, U12(_x51, U12(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U12(proper(_x81), proper(_x82)))))
top#(mark(U11(s(zeros), _x22)))top#(U11(s(ok(zeros)), proper(_x22)))top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(s(zeros), s(tt))))top#(U11(s(ok(zeros)), s(ok(tt))))top#(mark(U11(s(U11(_x51, tt)), s(tt))))top#(U11(s(U11(proper(_x51), ok(tt))), s(ok(tt))))
top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))
top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))top#(mark(U11(s(tt), _x22)))top#(U11(s(ok(tt)), proper(_x22)))
top#(mark(U11(s(cons(tt, _x52)), s(tt))))top#(U11(s(cons(ok(tt), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))
top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, cons(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), cons(proper(_x81), proper(_x82)))))
top#(mark(U11(s(_x41), length(_x51))))top#(U11(s(proper(_x41)), length(proper(_x51))))top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))
top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))
top#(mark(U11(s(cons(length(U12(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(U12(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))
top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(s(length(_x51)), s(_x51))))top#(U11(s(length(proper(_x51))), s(proper(_x51))))
top#(mark(U11(s(cons(_x51, _x52)), s(tt))))top#(U11(s(cons(proper(_x51), proper(_x52))), ok(s(tt))))top#(mark(U11(s(0), _x22)))top#(U11(s(ok(0)), proper(_x22)))
top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))top#(mark(U11(s(_x41), s(U12(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U12(proper(_x61), proper(_x62)))))
top#(mark(U11(s(_x41), s(length(_x61)))))top#(U11(s(proper(_x41)), s(length(proper(_x61)))))top#(mark(U11(s(cons(nil, _x52)), s(tt))))top#(U11(s(cons(ok(nil), proper(_x52))), s(ok(tt))))
top#(mark(0))top#(ok(0))top#(mark(U11(0, U12(_x51, _x52))))top#(U11(ok(0), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(tt, _x52))))top#(U11(proper(_x21), U12(ok(tt), proper(_x52))))top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))
top#(mark(U11(U11(_x41, _x42), tt)))top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(s(_x41), cons(_x51, _x52))))top#(U11(s(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(U11(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x51, _x52)), s(_x51))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(s(U11(_x51, length(_x61))), s(tt))))top#(U11(s(U11(proper(_x51), length(proper(_x61)))), s(ok(tt))))top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(s(U11(_x51, U12(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(cons(length(s(_x71)), _x52)), s(tt))))top#(U11(s(cons(length(s(proper(_x71))), proper(_x52))), s(ok(tt))))
top#(mark(U11(_x21, U12(_x51, s(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), s(proper(_x81)))))top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, 0))))top#(U11(proper(_x21), U12(proper(_x51), ok(0))))top#(mark(U11(length(U11(_x51, _x52)), 0)))top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0)))
top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))top#(mark(U11(s(U11(_x51, _x52)), s(tt))))top#(U11(s(U11(proper(_x51), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(_x41), zeros)))top#(U11(s(proper(_x41)), ok(zeros)))top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))
top#(mark(U11(s(cons(s(_x61), _x52)), s(tt))))top#(U11(s(cons(s(proper(_x61)), proper(_x52))), s(ok(tt))))top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(zeros, _x52))))top#(U11(proper(_x21), U12(ok(zeros), proper(_x52))))top#(mark(U11(s(nil), s(_x51))))top#(U11(s(ok(nil)), s(proper(_x51))))
top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(tt, U12(_x51, _x52))))top#(U11(ok(tt), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(cons(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(cons(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(s(U11(_x51, U11(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(nil), s(tt))))top#(U11(s(ok(nil)), s(ok(tt))))top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(U11(_x51, zeros)), s(tt))))top#(U11(s(U11(proper(_x51), ok(zeros))), s(ok(tt))))top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))
top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(cons(length(_x61), s(_x61))), s(tt))))top#(U11(s(cons(length(proper(_x61)), s(proper(_x61)))), s(ok(tt))))
top#(mark(length(_x21)))top#(length(proper(_x21)))top#(mark(U11(s(U11(_x51, 0)), s(tt))))top#(U11(s(U11(proper(_x51), ok(0))), s(ok(tt))))
top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(U11(_x41, _x42), U12(_x51, _x52))))top#(U11(U11(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(length(tt), 0)))top#(U11(length(ok(tt)), ok(0)))top#(mark(U11(zeros, U12(_x51, _x52))))top#(U11(ok(zeros), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(_x51, U12(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(length(0), 0)))top#(U11(length(ok(0)), ok(0)))
top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(s(cons(length(0), _x52)), s(tt))))top#(U11(s(cons(length(ok(0)), proper(_x52))), s(ok(tt))))top#(mark(nil))top#(ok(nil))
top#(mark(U11(s(zeros), s(_x51))))top#(U11(s(ok(zeros)), s(proper(_x51))))top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))
top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))top#(mark(U11(s(U11(tt, _x52)), s(tt))))top#(U11(s(U11(ok(tt), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(cons(length(_x61), cons(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(length(_x61)), _x22)))top#(U11(s(length(proper(_x61))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, cons, nil, top

Strategy


The right-hand side of the rule top#(mark(U11(s(cons(_x51, zeros)), s(tt)))) → top#(U11(s(cons(proper(_x51), ok(zeros))), s(ok(tt)))) 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#(U11(s(cons(ok(0), ok(zeros))), s(ok(tt)))) 
top#(U11(s(cons(ok(zeros), ok(zeros))), s(ok(tt)))) 
top#(U11(s(cons(s(proper(_x61)), ok(zeros))), s(ok(tt)))) 
top#(U11(s(cons(ok(tt), ok(zeros))), s(ok(tt)))) 
top#(U11(s(cons(length(proper(_x61)), ok(zeros))), s(ok(tt)))) 
top#(U11(s(cons(proper(_x51), ok(zeros))), ok(s(tt)))) 
top#(U11(s(cons(U12(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt)))) 
top#(U11(s(cons(ok(nil), ok(zeros))), s(ok(tt)))) 
top#(U11(s(cons(U11(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt)))) 
top#(U11(s(cons(cons(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt)))) 
Thus, the rule top#(mark(U11(s(cons(_x51, zeros)), s(tt)))) → top#(U11(s(cons(proper(_x51), ok(zeros))), s(ok(tt)))) is replaced by the following rules:
top#(mark(U11(s(cons(nil, zeros)), s(tt)))) → top#(U11(s(cons(ok(nil), ok(zeros))), s(ok(tt))))top#(mark(U11(s(cons(tt, zeros)), s(tt)))) → top#(U11(s(cons(ok(tt), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(cons(zeros, zeros)), s(tt)))) → top#(U11(s(cons(ok(zeros), ok(zeros))), s(ok(tt))))top#(mark(U11(s(cons(cons(_x61, _x62), zeros)), s(tt)))) → top#(U11(s(cons(cons(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(cons(U12(_x61, _x62), zeros)), s(tt)))) → top#(U11(s(cons(U12(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))top#(mark(U11(s(cons(_x51, zeros)), s(tt)))) → top#(U11(s(cons(proper(_x51), ok(zeros))), ok(s(tt))))
top#(mark(U11(s(cons(0, zeros)), s(tt)))) → top#(U11(s(cons(ok(0), ok(zeros))), s(ok(tt))))top#(mark(U11(s(cons(s(_x61), zeros)), s(tt)))) → top#(U11(s(cons(s(proper(_x61)), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(cons(U11(_x61, _x62), zeros)), s(tt)))) → top#(U11(s(cons(U11(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))top#(mark(U11(s(cons(length(_x61), zeros)), s(tt)))) → top#(U11(s(cons(length(proper(_x61)), ok(zeros))), s(ok(tt))))

Problem 26: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(s(cons(length(zeros), _x52)), s(tt))))top#(U11(s(cons(length(ok(zeros)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(proper(_x41)), ok(s(tt))))
top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))
top#(mark(U11(s(cons(length(length(_x71)), _x52)), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), proper(_x52))), s(ok(tt))))top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))
top#(mark(U11(length(nil), 0)))top#(U11(length(ok(nil)), ok(0)))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(U11(_x21, U12(_x51, U11(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U11(proper(_x81), proper(_x82)))))top#(mark(U11(s(U11(s(_x61), _x52)), s(tt))))top#(U11(s(U11(s(proper(_x61)), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(s(cons(0, zeros)), s(tt))))top#(U11(s(cons(ok(0), ok(zeros))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(_x61)))))top#(U11(s(proper(_x41)), s(s(proper(_x61)))))
top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))top#(mark(U11(s(cons(_x51, length(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), length(proper(_x61)))), s(ok(tt))))
top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))
top#(mark(U11(s(_x41), 0)))top#(U11(s(proper(_x41)), ok(0)))top#(mark(U11(s(cons(U12(_x61, _x62), zeros)), s(tt))))top#(U11(s(cons(U12(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))
top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(_x51, zeros))))top#(U11(proper(_x21), U12(proper(_x51), ok(zeros))))
top#(mark(U11(s(cons(length(_x61), _x52)), s(tt))))top#(U11(s(cons(length(proper(_x61)), proper(_x52))), ok(s(tt))))top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))
top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))top#(mark(U11(s(cons(U12(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U11(_x61, _x62)), _x22)))top#(U11(s(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(0, tt)))top#(U11(ok(0), ok(tt)))
top#(mark(U11(length(U12(_x51, _x52)), 0)))top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))
top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))top#(mark(U11(tt, tt)))top#(U11(ok(tt), ok(tt)))
top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(s(cons(_x51, _x52)), s(_x51))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(proper(_x51))))top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, nil))))top#(U11(proper(_x21), U12(proper(_x51), ok(nil))))top#(mark(U11(s(cons(length(_x61), U11(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))top#(mark(U11(_x21, U12(nil, _x52))))top#(U11(proper(_x21), U12(ok(nil), proper(_x52))))
top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))top#(mark(U11(s(U11(length(_x61), _x52)), s(tt))))top#(U11(s(U11(length(proper(_x61)), proper(_x52))), s(ok(tt))))
top#(mark(U11(_x21, U12(_x51, length(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), length(proper(_x81)))))top#(mark(U11(s(cons(length(_x61), length(_x61))), s(tt))))top#(U11(s(cons(length(proper(_x61)), length(proper(_x61)))), s(ok(tt))))
top#(ok(length(nil)))top#(mark(0))top#(mark(U11(_x21, U12(s(_x71), _x52))))top#(U11(proper(_x21), U12(s(proper(_x71)), proper(_x52))))
top#(mark(U11(s(cons(length(_x61), nil)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(nil))), s(ok(tt))))top#(mark(U11(s(U12(_x51, _x52)), s(_x51))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))top#(mark(U11(_x21, U12(U12(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U12(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(s(cons(_x51, U11(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(U12(_x51, _x52)), s(tt))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(ok(tt))))
top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))top#(mark(U11(s(U12(_x61, _x62)), _x22)))top#(U11(s(U12(proper(_x61), proper(_x62))), proper(_x22)))
top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))
top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))top#(mark(U11(s(cons(length(cons(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(cons(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, nil)), s(tt))))top#(U11(s(U11(proper(_x51), ok(nil))), s(ok(tt))))top#(mark(U11(s(cons(length(nil), _x52)), s(tt))))top#(U11(s(cons(length(ok(nil)), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))
top#(ok(length(_x21)))top#(length(active(_x21)))top#(mark(U11(length(s(_x51)), 0)))top#(U11(length(s(proper(_x51))), ok(0)))
top#(mark(U11(s(_x41), tt)))top#(U11(s(proper(_x41)), ok(tt)))top#(mark(U11(s(cons(_x51, zeros)), s(tt))))top#(U11(s(cons(proper(_x51), ok(zeros))), ok(s(tt))))
top#(mark(U11(s(tt), s(_x51))))top#(U11(s(ok(tt)), s(proper(_x51))))top#(mark(U11(s(U11(0, _x52)), s(tt))))top#(U11(s(U11(ok(0), proper(_x52))), s(ok(tt))))
top#(mark(U11(_x21, U12(U11(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U11(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(s(cons(length(tt), _x52)), s(tt))))top#(U11(s(cons(length(ok(tt)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(_x41), s(cons(_x61, _x62)))))top#(U11(s(proper(_x41)), s(cons(proper(_x61), proper(_x62)))))top#(mark(U11(s(s(_x51)), s(tt))))top#(U11(s(s(proper(_x51))), s(ok(tt))))
top#(mark(U11(s(cons(_x51, s(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), s(proper(_x61)))), s(ok(tt))))top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))
top#(mark(U11(s(cons(_x51, 0)), s(tt))))top#(U11(s(cons(proper(_x51), ok(0))), s(ok(tt))))top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))
top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(length(_x61), 0)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(0))), s(ok(tt))))
top#(mark(U11(s(U11(U12(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(nil), _x22)))top#(U11(s(ok(nil)), proper(_x22)))
top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))top#(mark(U11(s(_x41), s(0))))top#(U11(s(proper(_x41)), s(ok(0))))
top#(mark(U11(s(_x41), nil)))top#(U11(s(proper(_x41)), ok(nil)))top#(mark(U11(s(cons(length(U11(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(U11(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))
top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))
top#(mark(U11(U12(_x41, _x42), U12(_x51, _x52))))top#(U11(U12(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(length(_x61), tt)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(tt))), s(ok(tt))))
top#(mark(U11(s(_x41), s(zeros))))top#(U11(s(proper(_x41)), s(ok(zeros))))top#(mark(U11(s(0), s(_x51))))top#(U11(s(ok(0)), s(proper(_x51))))
top#(mark(U11(s(_x41), s(nil))))top#(U11(s(proper(_x41)), s(ok(nil))))top#(mark(U11(s(U11(nil, _x52)), s(tt))))top#(U11(s(U11(ok(nil), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(length(_x51)), s(tt))))top#(U11(s(length(proper(_x51))), s(ok(tt))))top#(mark(U11(s(_x41), s(U11(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U11(proper(_x61), proper(_x62)))))
top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))
top#(mark(U11(s(cons(length(_x61), zeros)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(zeros))), s(ok(tt))))top#(mark(U11(_x21, U12(_x51, tt))))top#(U11(proper(_x21), U12(proper(_x51), ok(tt))))
top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))
top#(mark(U11(s(cons(cons(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(_x51, nil)), s(tt))))top#(U11(s(cons(proper(_x51), ok(nil))), s(ok(tt))))
top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))top#(mark(U11(s(_x41), U11(_x51, _x52))))top#(U11(s(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(tt)), s(ok(tt))))top#(mark(U11(s(s(_x61)), _x22)))top#(U11(s(s(proper(_x61))), proper(_x22)))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(s(cons(_x51, tt)), s(tt))))top#(U11(s(cons(proper(_x51), ok(tt))), s(ok(tt))))top#(mark(U11(_x21, U12(0, _x52))))top#(U11(proper(_x21), U12(ok(0), proper(_x52))))
top#(mark(U11(zeros, tt)))top#(U11(ok(zeros), ok(tt)))top#(mark(U11(s(cons(_x51, cons(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(U11(zeros, _x52)), s(tt))))top#(U11(s(U11(ok(zeros), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(_x61), U12(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), U12(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(s(_x51)), s(_x51))))top#(U11(s(s(proper(_x51))), s(proper(_x51))))top#(mark(U11(s(cons(0, _x52)), s(tt))))top#(U11(s(cons(ok(0), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(cons(_x61, _x62), zeros)), s(tt))))top#(U11(s(cons(cons(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))top#(ok(zeros))top#(mark(cons(0, zeros)))
top#(mark(U11(s(U11(_x51, s(_x61))), s(tt))))top#(U11(s(U11(proper(_x51), s(proper(_x61)))), s(ok(tt))))top#(mark(U11(s(cons(U11(_x61, _x62), zeros)), s(tt))))top#(U11(s(cons(U11(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))
top#(mark(U11(nil, U12(_x51, _x52))))top#(U11(ok(nil), U12(proper(_x51), proper(_x52))))top#(mark(tt))top#(ok(tt))
top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))top#(mark(U11(length(length(_x51)), 0)))top#(U11(length(length(proper(_x51))), ok(0)))
top#(mark(U11(s(cons(zeros, zeros)), s(tt))))top#(U11(s(cons(ok(zeros), ok(zeros))), s(ok(tt))))top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(U12(_x41, _x42), tt)))top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))
top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))top#(mark(U11(_x21, U12(length(_x71), _x52))))top#(U11(proper(_x21), U12(length(proper(_x71)), proper(_x52))))
top#(mark(U11(s(U11(_x51, cons(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(U11(U11(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(s(U11(cons(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(length(zeros), 0)))top#(U11(length(ok(zeros)), ok(0)))
top#(mark(U11(length(cons(_x51, _x52)), 0)))top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(s(0), s(tt))))top#(U11(s(ok(0)), s(ok(tt))))
top#(mark(U11(nil, tt)))top#(U11(ok(nil), ok(tt)))top#(mark(U11(s(cons(tt, zeros)), s(tt))))top#(U11(s(cons(ok(tt), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(cons(nil, zeros)), s(tt))))top#(U11(s(cons(ok(nil), ok(zeros))), s(ok(tt))))top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))
top#(mark(zeros))top#(ok(zeros))top#(mark(U11(s(cons(zeros, _x52)), s(tt))))top#(U11(s(cons(ok(zeros), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(mark(U11(s(cons(_x61, _x62)), _x22)))top#(U11(s(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(_x41), U12(_x51, _x52))))top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, U12(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U12(proper(_x81), proper(_x82)))))top#(mark(U11(s(zeros), _x22)))top#(U11(s(ok(zeros)), proper(_x22)))
top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(s(zeros), s(tt))))top#(U11(s(ok(zeros)), s(ok(tt))))
top#(mark(U11(s(U11(_x51, tt)), s(tt))))top#(U11(s(U11(proper(_x51), ok(tt))), s(ok(tt))))top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))
top#(mark(U11(s(tt), _x22)))top#(U11(s(ok(tt)), proper(_x22)))top#(mark(U11(s(cons(tt, _x52)), s(tt))))top#(U11(s(cons(ok(tt), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, cons(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), cons(proper(_x81), proper(_x82)))))top#(mark(U11(s(_x41), length(_x51))))top#(U11(s(proper(_x41)), length(proper(_x51))))
top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))
top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))top#(mark(U11(s(cons(length(U12(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(U12(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))
top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(s(length(_x51)), s(_x51))))top#(U11(s(length(proper(_x51))), s(proper(_x51))))top#(mark(U11(s(cons(_x51, _x52)), s(tt))))top#(U11(s(cons(proper(_x51), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(0), _x22)))top#(U11(s(ok(0)), proper(_x22)))top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))
top#(mark(U11(s(_x41), s(U12(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U12(proper(_x61), proper(_x62)))))top#(mark(U11(s(cons(s(_x61), zeros)), s(tt))))top#(U11(s(cons(s(proper(_x61)), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(_x41), s(length(_x61)))))top#(U11(s(proper(_x41)), s(length(proper(_x61)))))top#(mark(U11(s(cons(nil, _x52)), s(tt))))top#(U11(s(cons(ok(nil), proper(_x52))), s(ok(tt))))
top#(mark(0))top#(ok(0))top#(mark(U11(0, U12(_x51, _x52))))top#(U11(ok(0), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(tt, _x52))))top#(U11(proper(_x21), U12(ok(tt), proper(_x52))))top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))
top#(mark(U11(U11(_x41, _x42), tt)))top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(s(_x41), cons(_x51, _x52))))top#(U11(s(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(U11(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x51, _x52)), s(_x51))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(s(U11(_x51, length(_x61))), s(tt))))top#(U11(s(U11(proper(_x51), length(proper(_x61)))), s(ok(tt))))top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(_x21, U12(_x51, s(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), s(proper(_x81)))))top#(mark(U11(s(cons(length(s(_x71)), _x52)), s(tt))))top#(U11(s(cons(length(s(proper(_x71))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, U12(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, 0))))top#(U11(proper(_x21), U12(proper(_x51), ok(0))))top#(mark(U11(length(U11(_x51, _x52)), 0)))top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(s(U11(_x51, _x52)), s(tt))))top#(U11(s(U11(proper(_x51), proper(_x52))), ok(s(tt))))top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))
top#(mark(U11(s(_x41), zeros)))top#(U11(s(proper(_x41)), ok(zeros)))top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))
top#(mark(U11(s(cons(s(_x61), _x52)), s(tt))))top#(U11(s(cons(s(proper(_x61)), proper(_x52))), s(ok(tt))))top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(zeros, _x52))))top#(U11(proper(_x21), U12(ok(zeros), proper(_x52))))top#(mark(U11(s(nil), s(_x51))))top#(U11(s(ok(nil)), s(proper(_x51))))
top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(tt, U12(_x51, _x52))))top#(U11(ok(tt), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(U11(_x51, U11(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(_x21, U12(cons(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(cons(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(nil), s(tt))))top#(U11(s(ok(nil)), s(ok(tt))))
top#(mark(U11(s(U11(_x51, zeros)), s(tt))))top#(U11(s(U11(proper(_x51), ok(zeros))), s(ok(tt))))top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))
top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(cons(length(_x61), s(_x61))), s(tt))))top#(U11(s(cons(length(proper(_x61)), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, 0)), s(tt))))top#(U11(s(U11(proper(_x51), ok(0))), s(ok(tt))))top#(mark(length(_x21)))top#(length(proper(_x21)))
top#(mark(U11(U11(_x41, _x42), U12(_x51, _x52))))top#(U11(U11(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(length(tt), 0)))top#(U11(length(ok(tt)), ok(0)))top#(mark(U11(zeros, U12(_x51, _x52))))top#(U11(ok(zeros), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(_x51, U12(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(length(0), 0)))top#(U11(length(ok(0)), ok(0)))
top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(U11(s(cons(length(0), _x52)), s(tt))))top#(U11(s(cons(length(ok(0)), proper(_x52))), s(ok(tt))))top#(mark(nil))top#(ok(nil))
top#(mark(U11(s(zeros), s(_x51))))top#(U11(s(ok(zeros)), s(proper(_x51))))top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))
top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))top#(mark(U11(s(U11(tt, _x52)), s(tt))))top#(U11(s(U11(ok(tt), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(cons(length(_x61), cons(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(length(_x61)), _x22)))top#(U11(s(length(proper(_x61))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, top, cons, nil

Strategy


The right-hand side of the rule top#(mark(U11(s(cons(length(zeros), _x52)), s(tt)))) → top#(U11(s(cons(length(ok(zeros)), proper(_x52))), s(ok(tt)))) 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#(U11(s(cons(length(ok(zeros)), length(proper(_x61)))), s(ok(tt)))) 
top#(U11(s(cons(length(ok(zeros)), ok(tt))), s(ok(tt)))) 
top#(U11(s(cons(length(ok(zeros)), ok(zeros))), s(ok(tt)))) 
top#(U11(s(cons(length(ok(zeros)), s(proper(_x61)))), s(ok(tt)))) 
top#(U11(s(cons(length(ok(zeros)), ok(nil))), s(ok(tt)))) 
top#(U11(s(cons(length(ok(zeros)), cons(proper(_x61), proper(_x62)))), s(ok(tt)))) 
top#(U11(s(cons(length(ok(zeros)), proper(_x52))), ok(s(tt)))) 
top#(U11(s(cons(length(ok(zeros)), ok(0))), s(ok(tt)))) 
top#(U11(s(cons(length(ok(zeros)), U12(proper(_x61), proper(_x62)))), s(ok(tt)))) 
top#(U11(s(cons(ok(length(zeros)), proper(_x52))), s(ok(tt)))) 
top#(U11(s(cons(length(ok(zeros)), U11(proper(_x61), proper(_x62)))), s(ok(tt)))) 
Thus, the rule top#(mark(U11(s(cons(length(zeros), _x52)), s(tt)))) → top#(U11(s(cons(length(ok(zeros)), proper(_x52))), s(ok(tt)))) is replaced by the following rules:
top#(mark(U11(s(cons(length(zeros), length(_x61))), s(tt)))) → top#(U11(s(cons(length(ok(zeros)), length(proper(_x61)))), s(ok(tt))))top#(mark(U11(s(cons(length(zeros), tt)), s(tt)))) → top#(U11(s(cons(length(ok(zeros)), ok(tt))), s(ok(tt))))
top#(mark(U11(s(cons(length(zeros), 0)), s(tt)))) → top#(U11(s(cons(length(ok(zeros)), ok(0))), s(ok(tt))))top#(mark(U11(s(cons(length(zeros), U12(_x61, _x62))), s(tt)))) → top#(U11(s(cons(length(ok(zeros)), U12(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(cons(length(zeros), zeros)), s(tt)))) → top#(U11(s(cons(length(ok(zeros)), ok(zeros))), s(ok(tt))))top#(mark(U11(s(cons(length(zeros), cons(_x61, _x62))), s(tt)))) → top#(U11(s(cons(length(ok(zeros)), cons(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(cons(length(zeros), U11(_x61, _x62))), s(tt)))) → top#(U11(s(cons(length(ok(zeros)), U11(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(cons(length(zeros), _x52)), s(tt)))) → top#(U11(s(cons(length(ok(zeros)), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(cons(length(zeros), _x52)), s(tt)))) → top#(U11(s(cons(ok(length(zeros)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(zeros), nil)), s(tt)))) → top#(U11(s(cons(length(ok(zeros)), ok(nil))), s(ok(tt))))
top#(mark(U11(s(cons(length(zeros), s(_x61))), s(tt)))) → top#(U11(s(cons(length(ok(zeros)), s(proper(_x61)))), s(ok(tt))))

Problem 27: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(s(tt), s(tt))))top#(U11(s(proper(_x41)), ok(s(tt))))top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))top#(mark(U11(s(cons(length(length(_x71)), _x52)), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), proper(_x52))), s(ok(tt))))
top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))top#(mark(U11(length(nil), 0)))top#(U11(length(ok(nil)), ok(0)))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(mark(U11(_x21, U12(_x51, U11(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U11(proper(_x81), proper(_x82)))))
top#(mark(U11(s(U11(s(_x61), _x52)), s(tt))))top#(U11(s(U11(s(proper(_x61)), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(s(cons(0, zeros)), s(tt))))top#(U11(s(cons(ok(0), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(_x41), s(s(_x61)))))top#(U11(s(proper(_x41)), s(s(proper(_x61)))))top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))
top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))top#(mark(U11(s(cons(_x51, length(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), length(proper(_x61)))), s(ok(tt))))
top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(U12(_x61, _x62), zeros)), s(tt))))top#(U11(s(cons(U12(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(_x41), 0)))top#(U11(s(proper(_x41)), ok(0)))top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))
top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(_x51, zeros))))top#(U11(proper(_x21), U12(proper(_x51), ok(zeros))))top#(mark(U11(s(cons(length(_x61), _x52)), s(tt))))top#(U11(s(cons(length(proper(_x61)), proper(_x52))), ok(s(tt))))
top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))
top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))
top#(mark(U11(s(cons(U12(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x61, _x62)), _x22)))top#(U11(s(U11(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(0, tt)))top#(U11(ok(0), ok(tt)))top#(mark(U11(length(U12(_x51, _x52)), 0)))top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))
top#(mark(U11(tt, tt)))top#(U11(ok(tt), ok(tt)))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(_x51, _x52)), s(_x51))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, nil))))top#(U11(proper(_x21), U12(proper(_x51), ok(nil))))
top#(mark(U11(s(cons(length(_x61), U11(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), U11(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))
top#(mark(U11(_x21, U12(nil, _x52))))top#(U11(proper(_x21), U12(ok(nil), proper(_x52))))top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))
top#(mark(U11(s(U11(length(_x61), _x52)), s(tt))))top#(U11(s(U11(length(proper(_x61)), proper(_x52))), s(ok(tt))))top#(mark(U11(_x21, U12(_x51, length(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), length(proper(_x81)))))
top#(mark(U11(s(cons(length(_x61), length(_x61))), s(tt))))top#(U11(s(cons(length(proper(_x61)), length(proper(_x61)))), s(ok(tt))))top#(ok(length(nil)))top#(mark(0))
top#(mark(U11(s(cons(length(_x61), nil)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(nil))), s(ok(tt))))top#(mark(U11(_x21, U12(s(_x71), _x52))))top#(U11(proper(_x21), U12(s(proper(_x71)), proper(_x52))))
top#(mark(U11(s(U12(_x51, _x52)), s(_x51))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(proper(_x51))))top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))
top#(mark(U11(_x21, U12(U12(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U12(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(s(cons(_x51, U11(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))top#(mark(U11(s(U12(_x51, _x52)), s(tt))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U12(_x61, _x62)), _x22)))top#(U11(s(U12(proper(_x61), proper(_x62))), proper(_x22)))top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))
top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))
top#(mark(U11(s(cons(length(cons(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(cons(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x51, nil)), s(tt))))top#(U11(s(U11(proper(_x51), ok(nil))), s(ok(tt))))
top#(mark(U11(s(cons(length(nil), _x52)), s(tt))))top#(U11(s(cons(length(ok(nil)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(zeros), length(_x61))), s(tt))))top#(U11(s(cons(length(ok(zeros)), length(proper(_x61)))), s(ok(tt))))
top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))
top#(ok(length(_x21)))top#(length(active(_x21)))top#(mark(U11(s(cons(_x51, zeros)), s(tt))))top#(U11(s(cons(proper(_x51), ok(zeros))), ok(s(tt))))
top#(mark(U11(s(_x41), tt)))top#(U11(s(proper(_x41)), ok(tt)))top#(mark(U11(length(s(_x51)), 0)))top#(U11(length(s(proper(_x51))), ok(0)))
top#(mark(U11(s(tt), s(_x51))))top#(U11(s(ok(tt)), s(proper(_x51))))top#(mark(U11(s(cons(length(zeros), _x52)), s(tt))))top#(U11(s(cons(ok(length(zeros)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U11(0, _x52)), s(tt))))top#(U11(s(U11(ok(0), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(tt), _x52)), s(tt))))top#(U11(s(cons(length(ok(tt)), proper(_x52))), s(ok(tt))))
top#(mark(U11(_x21, U12(U11(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U11(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(s(_x41), s(cons(_x61, _x62)))))top#(U11(s(proper(_x41)), s(cons(proper(_x61), proper(_x62)))))
top#(mark(U11(s(s(_x51)), s(tt))))top#(U11(s(s(proper(_x51))), s(ok(tt))))top#(mark(U11(s(cons(_x51, s(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))top#(mark(U11(s(cons(length(zeros), U11(_x61, _x62))), s(tt))))top#(U11(s(cons(length(ok(zeros)), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(U11(s(cons(_x51, 0)), s(tt))))top#(U11(s(cons(proper(_x51), ok(0))), s(ok(tt))))top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))
top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(length(_x61), 0)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(0))), s(ok(tt))))
top#(mark(U11(s(cons(length(zeros), _x52)), s(tt))))top#(U11(s(cons(length(ok(zeros)), proper(_x52))), ok(s(tt))))top#(mark(U11(s(U11(U12(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(nil), _x22)))top#(U11(s(ok(nil)), proper(_x22)))top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))
top#(mark(U11(s(_x41), s(0))))top#(U11(s(proper(_x41)), s(ok(0))))top#(mark(U11(s(cons(length(U11(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(U11(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(_x41), nil)))top#(U11(s(proper(_x41)), ok(nil)))top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))
top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))top#(mark(U11(U12(_x41, _x42), U12(_x51, _x52))))top#(U11(U12(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(length(_x61), tt)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(tt))), s(ok(tt))))top#(mark(U11(s(_x41), s(zeros))))top#(U11(s(proper(_x41)), s(ok(zeros))))
top#(mark(U11(s(0), s(_x51))))top#(U11(s(ok(0)), s(proper(_x51))))top#(mark(U11(s(_x41), s(nil))))top#(U11(s(proper(_x41)), s(ok(nil))))
top#(mark(U11(s(U11(nil, _x52)), s(tt))))top#(U11(s(U11(ok(nil), proper(_x52))), s(ok(tt))))top#(mark(U11(s(length(_x51)), s(tt))))top#(U11(s(length(proper(_x51))), s(ok(tt))))
top#(mark(U11(s(_x41), s(U11(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U11(proper(_x61), proper(_x62)))))top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))top#(mark(U11(s(cons(length(zeros), s(_x61))), s(tt))))top#(U11(s(cons(length(ok(zeros)), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(s(cons(length(_x61), zeros)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(zeros))), s(ok(tt))))top#(mark(U11(_x21, U12(_x51, tt))))top#(U11(proper(_x21), U12(proper(_x51), ok(tt))))
top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))
top#(mark(U11(s(cons(cons(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(_x51, nil)), s(tt))))top#(U11(s(cons(proper(_x51), ok(nil))), s(ok(tt))))
top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))top#(mark(U11(s(_x41), U11(_x51, _x52))))top#(U11(s(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(tt)), s(ok(tt))))top#(mark(U11(s(s(_x61)), _x22)))top#(U11(s(s(proper(_x61))), proper(_x22)))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(U11(s(cons(_x51, tt)), s(tt))))top#(U11(s(cons(proper(_x51), ok(tt))), s(ok(tt))))top#(mark(U11(_x21, U12(0, _x52))))top#(U11(proper(_x21), U12(ok(0), proper(_x52))))
top#(mark(U11(zeros, tt)))top#(U11(ok(zeros), ok(tt)))top#(mark(U11(s(cons(_x51, cons(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(U11(zeros, _x52)), s(tt))))top#(U11(s(U11(ok(zeros), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(_x61), U12(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), U12(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(s(_x51)), s(_x51))))top#(U11(s(s(proper(_x51))), s(proper(_x51))))top#(mark(U11(s(cons(0, _x52)), s(tt))))top#(U11(s(cons(ok(0), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(cons(_x61, _x62), zeros)), s(tt))))top#(U11(s(cons(cons(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))top#(mark(U11(s(cons(length(zeros), zeros)), s(tt))))top#(U11(s(cons(length(ok(zeros)), ok(zeros))), s(ok(tt))))
top#(ok(zeros))top#(mark(cons(0, zeros)))top#(mark(U11(s(U11(_x51, s(_x61))), s(tt))))top#(U11(s(U11(proper(_x51), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(s(cons(U11(_x61, _x62), zeros)), s(tt))))top#(U11(s(cons(U11(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))top#(mark(U11(nil, U12(_x51, _x52))))top#(U11(ok(nil), U12(proper(_x51), proper(_x52))))
top#(mark(tt))top#(ok(tt))top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))
top#(mark(U11(length(length(_x51)), 0)))top#(U11(length(length(proper(_x51))), ok(0)))top#(mark(U11(s(cons(zeros, zeros)), s(tt))))top#(U11(s(cons(ok(zeros), ok(zeros))), s(ok(tt))))
top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))top#(mark(U11(U12(_x41, _x42), tt)))top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))
top#(mark(U11(_x21, U12(length(_x71), _x52))))top#(U11(proper(_x21), U12(length(proper(_x71)), proper(_x52))))top#(mark(U11(s(U11(_x51, cons(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(U11(U11(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))
top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(s(U11(cons(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(length(zeros), 0)))top#(U11(length(ok(zeros)), ok(0)))top#(mark(U11(length(cons(_x51, _x52)), 0)))top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(s(0), s(tt))))top#(U11(s(ok(0)), s(ok(tt))))top#(mark(U11(nil, tt)))top#(U11(ok(nil), ok(tt)))
top#(mark(U11(s(cons(tt, zeros)), s(tt))))top#(U11(s(cons(ok(tt), ok(zeros))), s(ok(tt))))top#(mark(U11(s(cons(nil, zeros)), s(tt))))top#(U11(s(cons(ok(nil), ok(zeros))), s(ok(tt))))
top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))top#(mark(zeros))top#(ok(zeros))
top#(mark(U11(s(cons(length(zeros), 0)), s(tt))))top#(U11(s(cons(length(ok(zeros)), ok(0))), s(ok(tt))))top#(mark(U11(s(cons(zeros, _x52)), s(tt))))top#(U11(s(cons(ok(zeros), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))
top#(ok(s(_x21)))top#(s(active(_x21)))top#(mark(U11(s(cons(_x61, _x62)), _x22)))top#(U11(s(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(cons(length(zeros), nil)), s(tt))))top#(U11(s(cons(length(ok(zeros)), ok(nil))), s(ok(tt))))top#(mark(U11(s(_x41), U12(_x51, _x52))))top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))top#(mark(U11(_x21, U12(_x51, U12(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U12(proper(_x81), proper(_x82)))))
top#(mark(U11(s(zeros), _x22)))top#(U11(s(ok(zeros)), proper(_x22)))top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(s(zeros), s(tt))))top#(U11(s(ok(zeros)), s(ok(tt))))top#(mark(U11(s(U11(_x51, tt)), s(tt))))top#(U11(s(U11(proper(_x51), ok(tt))), s(ok(tt))))
top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))
top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))top#(mark(U11(s(tt), _x22)))top#(U11(s(ok(tt)), proper(_x22)))
top#(mark(U11(s(cons(tt, _x52)), s(tt))))top#(U11(s(cons(ok(tt), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))
top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, cons(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), cons(proper(_x81), proper(_x82)))))
top#(mark(U11(s(_x41), length(_x51))))top#(U11(s(proper(_x41)), length(proper(_x51))))top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))
top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))top#(mark(U11(s(cons(length(zeros), tt)), s(tt))))top#(U11(s(cons(length(ok(zeros)), ok(tt))), s(ok(tt))))
top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))top#(mark(U11(s(cons(length(U12(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(U12(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))
top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(s(length(_x51)), s(_x51))))top#(U11(s(length(proper(_x51))), s(proper(_x51))))top#(mark(U11(s(cons(_x51, _x52)), s(tt))))top#(U11(s(cons(proper(_x51), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(0), _x22)))top#(U11(s(ok(0)), proper(_x22)))top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))
top#(mark(U11(s(_x41), s(U12(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U12(proper(_x61), proper(_x62)))))top#(mark(U11(s(cons(s(_x61), zeros)), s(tt))))top#(U11(s(cons(s(proper(_x61)), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(_x41), s(length(_x61)))))top#(U11(s(proper(_x41)), s(length(proper(_x61)))))top#(mark(U11(s(cons(nil, _x52)), s(tt))))top#(U11(s(cons(ok(nil), proper(_x52))), s(ok(tt))))
top#(mark(0))top#(ok(0))top#(mark(U11(0, U12(_x51, _x52))))top#(U11(ok(0), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(tt, _x52))))top#(U11(proper(_x21), U12(ok(tt), proper(_x52))))top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))
top#(mark(U11(U11(_x41, _x42), tt)))top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(s(_x41), cons(_x51, _x52))))top#(U11(s(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(U11(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x51, _x52)), s(_x51))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(s(U11(_x51, length(_x61))), s(tt))))top#(U11(s(U11(proper(_x51), length(proper(_x61)))), s(ok(tt))))top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(s(U11(_x51, U12(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(cons(length(s(_x71)), _x52)), s(tt))))top#(U11(s(cons(length(s(proper(_x71))), proper(_x52))), s(ok(tt))))
top#(mark(U11(_x21, U12(_x51, s(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), s(proper(_x81)))))top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))
top#(mark(U11(s(cons(length(zeros), U12(_x61, _x62))), s(tt))))top#(U11(s(cons(length(ok(zeros)), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(_x21, U12(_x51, 0))))top#(U11(proper(_x21), U12(proper(_x51), ok(0))))
top#(mark(U11(length(U11(_x51, _x52)), 0)))top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0)))top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))
top#(mark(U11(s(U11(_x51, _x52)), s(tt))))top#(U11(s(U11(proper(_x51), proper(_x52))), ok(s(tt))))top#(mark(U11(s(_x41), zeros)))top#(U11(s(proper(_x41)), ok(zeros)))
top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))top#(mark(U11(s(cons(s(_x61), _x52)), s(tt))))top#(U11(s(cons(s(proper(_x61)), proper(_x52))), s(ok(tt))))
top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(zeros, _x52))))top#(U11(proper(_x21), U12(ok(zeros), proper(_x52))))
top#(mark(U11(s(nil), s(_x51))))top#(U11(s(ok(nil)), s(proper(_x51))))top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(tt, U12(_x51, _x52))))top#(U11(ok(tt), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(cons(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(cons(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(s(U11(_x51, U11(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(nil), s(tt))))top#(U11(s(ok(nil)), s(ok(tt))))
top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(U11(_x51, zeros)), s(tt))))top#(U11(s(U11(proper(_x51), ok(zeros))), s(ok(tt))))
top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(cons(length(_x61), s(_x61))), s(tt))))top#(U11(s(cons(length(proper(_x61)), s(proper(_x61)))), s(ok(tt))))top#(mark(length(_x21)))top#(length(proper(_x21)))
top#(mark(U11(s(U11(_x51, 0)), s(tt))))top#(U11(s(U11(proper(_x51), ok(0))), s(ok(tt))))top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))
top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(U11(_x41, _x42), U12(_x51, _x52))))top#(U11(U11(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(U11(length(tt), 0)))top#(U11(length(ok(tt)), ok(0)))
top#(mark(U11(zeros, U12(_x51, _x52))))top#(U11(ok(zeros), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(_x51, U12(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(length(0), 0)))top#(U11(length(ok(0)), ok(0)))top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(s(cons(length(0), _x52)), s(tt))))top#(U11(s(cons(length(ok(0)), proper(_x52))), s(ok(tt))))
top#(mark(nil))top#(ok(nil))top#(mark(U11(s(cons(length(zeros), cons(_x61, _x62))), s(tt))))top#(U11(s(cons(length(ok(zeros)), cons(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(zeros), s(_x51))))top#(U11(s(ok(zeros)), s(proper(_x51))))top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))
top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))top#(mark(U11(s(U11(tt, _x52)), s(tt))))top#(U11(s(U11(ok(tt), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(cons(length(_x61), cons(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(length(_x61)), _x22)))top#(U11(s(length(proper(_x61))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

Strategy


The right-hand side of the rule top#(mark(U11(s(tt), s(tt)))) → top#(U11(s(proper(_x41)), ok(s(tt)))) 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#(U11(s(ok(tt)), ok(s(tt)))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), ok(s(tt)))) 
top#(U11(s(U12(proper(_x51), proper(_x52))), ok(s(tt)))) 
top#(U11(s(ok(nil)), ok(s(tt)))) 
top#(U11(s(ok(zeros)), ok(s(tt)))) 
top#(U11(s(U11(proper(_x51), proper(_x52))), ok(s(tt)))) 
top#(U11(s(s(proper(_x51))), ok(s(tt)))) 
top#(U11(s(ok(0)), ok(s(tt)))) 
top#(U11(s(length(proper(_x51))), ok(s(tt)))) 
Thus, the rule top#(mark(U11(s(tt), s(tt)))) → top#(U11(s(proper(_x41)), ok(s(tt)))) is replaced by the following rules:
top#(mark(U11(s(tt), s(tt)))) → top#(U11(s(ok(nil)), ok(s(tt))))top#(mark(U11(s(tt), s(tt)))) → top#(U11(s(U12(proper(_x51), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(tt), s(tt)))) → top#(U11(s(length(proper(_x51))), ok(s(tt))))top#(mark(U11(s(tt), s(tt)))) → top#(U11(s(ok(tt)), ok(s(tt))))
top#(mark(U11(s(tt), s(tt)))) → top#(U11(s(ok(0)), ok(s(tt))))top#(mark(U11(s(tt), s(tt)))) → top#(U11(s(cons(proper(_x51), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(tt), s(tt)))) → top#(U11(s(s(proper(_x51))), ok(s(tt))))top#(mark(U11(s(tt), s(tt)))) → top#(U11(s(ok(zeros)), ok(s(tt))))
top#(mark(U11(s(tt), s(tt)))) → top#(U11(s(U11(proper(_x51), proper(_x52))), ok(s(tt))))

Problem 28: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(cons(length(_x61), nil), _x22)))top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22)))top#(mark(U11(_x21, zeros)))top#(U11(proper(_x21), ok(zeros)))
top#(mark(U11(s(cons(length(length(_x71)), _x52)), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), proper(_x52))), s(ok(tt))))top#(mark(U11(length(nil), _x22)))top#(U11(length(ok(nil)), proper(_x22)))
top#(mark(U11(length(nil), 0)))top#(U11(length(ok(nil)), ok(0)))top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))
top#(mark(U11(_x21, U12(_x51, U11(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U11(proper(_x81), proper(_x82)))))top#(mark(U11(s(U11(s(_x61), _x52)), s(tt))))top#(U11(s(U11(s(proper(_x61)), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, U11(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(s(cons(0, zeros)), s(tt))))top#(U11(s(cons(ok(0), ok(zeros))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(_x61)))))top#(U11(s(proper(_x41)), s(s(proper(_x61)))))
top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(proper(_x51), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(cons(_x51, length(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), length(proper(_x61)))), s(ok(tt))))top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))
top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))top#(mark(U11(s(_x41), 0)))top#(U11(s(proper(_x41)), ok(0)))
top#(mark(U11(s(cons(U12(_x61, _x62), zeros)), s(tt))))top#(U11(s(cons(U12(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))
top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(_x51, zeros))))top#(U11(proper(_x21), U12(proper(_x51), ok(zeros))))top#(mark(U11(s(cons(length(_x61), _x52)), s(tt))))top#(U11(s(cons(length(proper(_x61)), proper(_x52))), ok(s(tt))))
top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))
top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))
top#(mark(U11(s(cons(U12(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x61, _x62)), _x22)))top#(U11(s(U11(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(0, tt)))top#(U11(ok(0), ok(tt)))top#(mark(U11(s(tt), s(tt))))top#(U11(s(length(proper(_x51))), ok(s(tt))))
top#(mark(U11(length(U12(_x51, _x52)), 0)))top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))
top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))top#(mark(U11(tt, tt)))top#(U11(ok(tt), ok(tt)))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(U11(proper(_x51), proper(_x52))), ok(s(tt))))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(_x51, _x52)), s(_x51))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))top#(mark(U11(_x21, U12(_x51, nil))))top#(U11(proper(_x21), U12(proper(_x51), ok(nil))))
top#(mark(U11(s(cons(length(_x61), U11(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), U11(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))
top#(mark(U11(_x21, U12(nil, _x52))))top#(U11(proper(_x21), U12(ok(nil), proper(_x52))))top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))
top#(mark(U11(s(U11(length(_x61), _x52)), s(tt))))top#(U11(s(U11(length(proper(_x61)), proper(_x52))), s(ok(tt))))top#(mark(U11(_x21, U12(_x51, length(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), length(proper(_x81)))))
top#(mark(U11(s(cons(length(_x61), length(_x61))), s(tt))))top#(U11(s(cons(length(proper(_x61)), length(proper(_x61)))), s(ok(tt))))top#(ok(length(nil)))top#(mark(0))
top#(mark(U11(_x21, U12(s(_x71), _x52))))top#(U11(proper(_x21), U12(s(proper(_x71)), proper(_x52))))top#(mark(U11(s(cons(length(_x61), nil)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(nil))), s(ok(tt))))
top#(mark(U11(s(U12(_x51, _x52)), s(_x51))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(proper(_x51))))top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))
top#(mark(U11(_x21, U12(U12(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U12(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(s(cons(_x51, U11(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(U12(_x51, _x52)), s(tt))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(ok(tt))))top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))
top#(mark(U11(s(U12(_x61, _x62)), _x22)))top#(U11(s(U12(proper(_x61), proper(_x62))), proper(_x22)))top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))
top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))
top#(mark(U11(s(cons(length(cons(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(cons(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x51, nil)), s(tt))))top#(U11(s(U11(proper(_x51), ok(nil))), s(ok(tt))))
top#(mark(U11(s(cons(length(nil), _x52)), s(tt))))top#(U11(s(cons(length(ok(nil)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(zeros), length(_x61))), s(tt))))top#(U11(s(cons(length(ok(zeros)), length(proper(_x61)))), s(ok(tt))))
top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))
top#(ok(length(_x21)))top#(length(active(_x21)))top#(mark(U11(length(s(_x51)), 0)))top#(U11(length(s(proper(_x51))), ok(0)))
top#(mark(U11(s(_x41), tt)))top#(U11(s(proper(_x41)), ok(tt)))top#(mark(U11(s(cons(_x51, zeros)), s(tt))))top#(U11(s(cons(proper(_x51), ok(zeros))), ok(s(tt))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(tt)), ok(s(tt))))top#(mark(U11(s(cons(length(zeros), _x52)), s(tt))))top#(U11(s(cons(ok(length(zeros)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(tt), s(_x51))))top#(U11(s(ok(tt)), s(proper(_x51))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(s(proper(_x51))), ok(s(tt))))
top#(mark(U11(s(U11(0, _x52)), s(tt))))top#(U11(s(U11(ok(0), proper(_x52))), s(ok(tt))))top#(mark(U11(_x21, U12(U11(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U11(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(s(cons(length(tt), _x52)), s(tt))))top#(U11(s(cons(length(ok(tt)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(_x41), s(cons(_x61, _x62)))))top#(U11(s(proper(_x41)), s(cons(proper(_x61), proper(_x62)))))
top#(mark(U11(s(s(_x51)), s(tt))))top#(U11(s(s(proper(_x51))), s(ok(tt))))top#(mark(U11(s(cons(_x51, s(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))top#(mark(U11(s(cons(length(zeros), U11(_x61, _x62))), s(tt))))top#(U11(s(cons(length(ok(zeros)), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))
top#(mark(U11(s(cons(_x51, 0)), s(tt))))top#(U11(s(cons(proper(_x51), ok(0))), s(ok(tt))))top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))
top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(length(zeros), _x52)), s(tt))))top#(U11(s(cons(length(ok(zeros)), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(cons(length(_x61), 0)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(0))), s(ok(tt))))top#(mark(U11(s(U11(U12(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(nil), _x22)))top#(U11(s(ok(nil)), proper(_x22)))top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))
top#(mark(U11(s(_x41), s(0))))top#(U11(s(proper(_x41)), s(ok(0))))top#(mark(U11(s(cons(length(U11(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(U11(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(_x41), nil)))top#(U11(s(proper(_x41)), ok(nil)))top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))
top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))top#(mark(U11(U12(_x41, _x42), U12(_x51, _x52))))top#(U11(U12(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(length(_x61), tt)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(tt))), s(ok(tt))))top#(mark(U11(s(_x41), s(zeros))))top#(U11(s(proper(_x41)), s(ok(zeros))))
top#(mark(U11(s(0), s(_x51))))top#(U11(s(ok(0)), s(proper(_x51))))top#(mark(U11(s(_x41), s(nil))))top#(U11(s(proper(_x41)), s(ok(nil))))
top#(mark(U11(s(U11(nil, _x52)), s(tt))))top#(U11(s(U11(ok(nil), proper(_x52))), s(ok(tt))))top#(mark(U11(s(length(_x51)), s(tt))))top#(U11(s(length(proper(_x51))), s(ok(tt))))
top#(mark(U11(s(_x41), s(U11(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U11(proper(_x61), proper(_x62)))))top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))
top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))top#(mark(U11(s(cons(length(zeros), s(_x61))), s(tt))))top#(U11(s(cons(length(ok(zeros)), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(s(cons(length(_x61), zeros)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(zeros))), s(ok(tt))))top#(mark(U11(_x21, U12(_x51, tt))))top#(U11(proper(_x21), U12(proper(_x51), ok(tt))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(nil)), ok(s(tt))))top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))
top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))top#(mark(U11(s(cons(cons(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(_x51, nil)), s(tt))))top#(U11(s(cons(proper(_x51), ok(nil))), s(ok(tt))))top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))
top#(mark(U11(s(_x41), U11(_x51, _x52))))top#(U11(s(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(tt)), s(ok(tt))))
top#(mark(U11(s(s(_x61)), _x22)))top#(U11(s(s(proper(_x61))), proper(_x22)))top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))
top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(_x51, tt)), s(tt))))top#(U11(s(cons(proper(_x51), ok(tt))), s(ok(tt))))
top#(mark(U11(_x21, U12(0, _x52))))top#(U11(proper(_x21), U12(ok(0), proper(_x52))))top#(mark(U11(zeros, tt)))top#(U11(ok(zeros), ok(tt)))
top#(mark(U11(s(cons(_x51, cons(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(U11(zeros, _x52)), s(tt))))top#(U11(s(U11(ok(zeros), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(length(_x61), U12(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(s(_x51)), s(_x51))))top#(U11(s(s(proper(_x51))), s(proper(_x51))))
top#(mark(U11(s(cons(0, _x52)), s(tt))))top#(U11(s(cons(ok(0), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(cons(_x61, _x62), zeros)), s(tt))))top#(U11(s(cons(cons(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(cons(length(zeros), zeros)), s(tt))))top#(U11(s(cons(length(ok(zeros)), ok(zeros))), s(ok(tt))))top#(ok(zeros))top#(mark(cons(0, zeros)))
top#(mark(U11(s(U11(_x51, s(_x61))), s(tt))))top#(U11(s(U11(proper(_x51), s(proper(_x61)))), s(ok(tt))))top#(mark(U11(s(cons(U11(_x61, _x62), zeros)), s(tt))))top#(U11(s(cons(U11(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))
top#(mark(U11(nil, U12(_x51, _x52))))top#(U11(ok(nil), U12(proper(_x51), proper(_x52))))top#(mark(tt))top#(ok(tt))
top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))top#(mark(U11(length(length(_x51)), 0)))top#(U11(length(length(proper(_x51))), ok(0)))
top#(mark(U11(s(cons(zeros, zeros)), s(tt))))top#(U11(s(cons(ok(zeros), ok(zeros))), s(ok(tt))))top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(U12(_x41, _x42), tt)))top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))
top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))top#(mark(U11(_x21, U12(length(_x71), _x52))))top#(U11(proper(_x21), U12(length(proper(_x71)), proper(_x52))))
top#(mark(U11(s(U11(_x51, cons(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(U11(U11(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(s(U11(cons(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(length(zeros), 0)))top#(U11(length(ok(zeros)), ok(0)))
top#(mark(U11(length(cons(_x51, _x52)), 0)))top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(s(0), s(tt))))top#(U11(s(ok(0)), s(ok(tt))))
top#(mark(U11(nil, tt)))top#(U11(ok(nil), ok(tt)))top#(mark(U11(s(cons(tt, zeros)), s(tt))))top#(U11(s(cons(ok(tt), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(cons(nil, zeros)), s(tt))))top#(U11(s(cons(ok(nil), ok(zeros))), s(ok(tt))))top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))
top#(mark(zeros))top#(ok(zeros))top#(mark(U11(s(cons(length(zeros), 0)), s(tt))))top#(U11(s(cons(length(ok(zeros)), ok(0))), s(ok(tt))))
top#(mark(U11(s(cons(zeros, _x52)), s(tt))))top#(U11(s(cons(ok(zeros), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))
top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(U11(s(cons(_x61, _x62)), _x22)))top#(U11(s(cons(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(cons(length(zeros), nil)), s(tt))))top#(U11(s(cons(length(ok(zeros)), ok(nil))), s(ok(tt))))
top#(mark(U11(s(_x41), U12(_x51, _x52))))top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, U12(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U12(proper(_x81), proper(_x82)))))top#(mark(U11(s(zeros), _x22)))top#(U11(s(ok(zeros)), proper(_x22)))
top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(U11(s(zeros), s(tt))))top#(U11(s(ok(zeros)), s(ok(tt))))
top#(mark(U11(s(U11(_x51, tt)), s(tt))))top#(U11(s(U11(proper(_x51), ok(tt))), s(ok(tt))))top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))
top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))
top#(mark(U11(s(tt), _x22)))top#(U11(s(ok(tt)), proper(_x22)))top#(mark(U11(s(cons(tt, _x52)), s(tt))))top#(U11(s(cons(ok(tt), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))
top#(mark(U11(_x21, U12(_x51, cons(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), cons(proper(_x81), proper(_x82)))))top#(mark(U11(s(_x41), length(_x51))))top#(U11(s(proper(_x41)), length(proper(_x51))))
top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))
top#(mark(U11(s(cons(length(zeros), tt)), s(tt))))top#(U11(s(cons(length(ok(zeros)), ok(tt))), s(ok(tt))))top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))
top#(mark(U11(s(cons(length(U12(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(U12(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))
top#(mark(U11(s(length(_x51)), s(_x51))))top#(U11(s(length(proper(_x51))), s(proper(_x51))))top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(s(cons(_x51, _x52)), s(tt))))top#(U11(s(cons(proper(_x51), proper(_x52))), ok(s(tt))))top#(mark(U11(s(0), _x22)))top#(U11(s(ok(0)), proper(_x22)))
top#(mark(U11(s(_x41), s(U12(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U12(proper(_x61), proper(_x62)))))top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))
top#(mark(U11(s(cons(s(_x61), zeros)), s(tt))))top#(U11(s(cons(s(proper(_x61)), ok(zeros))), s(ok(tt))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(zeros)), ok(s(tt))))
top#(mark(U11(s(_x41), s(length(_x61)))))top#(U11(s(proper(_x41)), s(length(proper(_x61)))))top#(mark(U11(s(cons(nil, _x52)), s(tt))))top#(U11(s(cons(ok(nil), proper(_x52))), s(ok(tt))))
top#(mark(0))top#(ok(0))top#(mark(U11(0, U12(_x51, _x52))))top#(U11(ok(0), U12(proper(_x51), proper(_x52))))
top#(mark(U11(_x21, U12(tt, _x52))))top#(U11(proper(_x21), U12(ok(tt), proper(_x52))))top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))
top#(mark(U11(U11(_x41, _x42), tt)))top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(s(_x41), cons(_x51, _x52))))top#(U11(s(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(U11(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x51, _x52)), s(_x51))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(s(U11(_x51, length(_x61))), s(tt))))top#(U11(s(U11(proper(_x51), length(proper(_x61)))), s(ok(tt))))top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(_x21, U12(_x51, s(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), s(proper(_x81)))))top#(mark(U11(s(cons(length(s(_x71)), _x52)), s(tt))))top#(U11(s(cons(length(s(proper(_x71))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, U12(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))
top#(mark(U11(s(cons(length(zeros), U12(_x61, _x62))), s(tt))))top#(U11(s(cons(length(ok(zeros)), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(_x21, U12(_x51, 0))))top#(U11(proper(_x21), U12(proper(_x51), ok(0))))
top#(mark(U11(length(U11(_x51, _x52)), 0)))top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0)))top#(mark(U11(s(U11(_x51, _x52)), s(tt))))top#(U11(s(U11(proper(_x51), proper(_x52))), ok(s(tt))))
top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))top#(mark(U11(s(_x41), zeros)))top#(U11(s(proper(_x41)), ok(zeros)))
top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))top#(mark(U11(s(cons(s(_x61), _x52)), s(tt))))top#(U11(s(cons(s(proper(_x61)), proper(_x52))), s(ok(tt))))
top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))top#(mark(U11(_x21, U12(zeros, _x52))))top#(U11(proper(_x21), U12(ok(zeros), proper(_x52))))
top#(mark(U11(s(nil), s(_x51))))top#(U11(s(ok(nil)), s(proper(_x51))))top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(tt, U12(_x51, _x52))))top#(U11(ok(tt), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(U11(_x51, U11(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(_x21, U12(cons(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(cons(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(nil), s(tt))))top#(U11(s(ok(nil)), s(ok(tt))))top#(mark(U11(s(U11(_x51, zeros)), s(tt))))top#(U11(s(U11(proper(_x51), ok(zeros))), s(ok(tt))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(0)), ok(s(tt))))top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))
top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(cons(length(_x61), s(_x61))), s(tt))))top#(U11(s(cons(length(proper(_x61)), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, 0)), s(tt))))top#(U11(s(U11(proper(_x51), ok(0))), s(ok(tt))))top#(mark(length(_x21)))top#(length(proper(_x21)))
top#(mark(U11(U11(_x41, _x42), U12(_x51, _x52))))top#(U11(U11(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(length(tt), 0)))top#(U11(length(ok(tt)), ok(0)))top#(mark(U11(zeros, U12(_x51, _x52))))top#(U11(ok(zeros), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(cons(proper(_x51), proper(_x52))), ok(s(tt))))top#(mark(U11(s(cons(_x51, U12(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(length(0), 0)))top#(U11(length(ok(0)), ok(0)))top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(length(0), _x52)), s(tt))))top#(U11(s(cons(length(ok(0)), proper(_x52))), s(ok(tt))))
top#(mark(nil))top#(ok(nil))top#(mark(U11(s(cons(length(zeros), cons(_x61, _x62))), s(tt))))top#(U11(s(cons(length(ok(zeros)), cons(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(zeros), s(_x51))))top#(U11(s(ok(zeros)), s(proper(_x51))))top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))
top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))top#(mark(U11(s(U11(tt, _x52)), s(tt))))top#(U11(s(U11(ok(tt), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(cons(length(_x61), cons(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(length(_x61)), _x22)))top#(U11(s(length(proper(_x61))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, cons, nil, top

Strategy


The right-hand side of the rule top#(mark(U11(cons(length(_x61), nil), _x22))) → top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22))) 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#(U11(cons(length(length(proper(_x71))), ok(nil)), proper(_x22))) 
top#(U11(cons(length(ok(nil)), ok(nil)), proper(_x22))) 
top#(U11(cons(length(proper(_x61)), ok(nil)), length(proper(_x51)))) 
top#(U11(cons(length(proper(_x61)), ok(nil)), ok(nil))) 
top#(U11(cons(length(U12(proper(_x71), proper(_x72))), ok(nil)), proper(_x22))) 
top#(U11(cons(length(U11(proper(_x71), proper(_x72))), ok(nil)), proper(_x22))) 
top#(U11(cons(length(proper(_x61)), ok(nil)), ok(0))) 
top#(U11(cons(length(s(proper(_x71))), ok(nil)), proper(_x22))) 
top#(U11(cons(length(ok(zeros)), ok(nil)), proper(_x22))) 
top#(U11(cons(length(proper(_x61)), ok(nil)), cons(proper(_x51), proper(_x52)))) 
top#(U11(cons(length(proper(_x61)), ok(nil)), ok(zeros))) 
top#(U11(cons(length(proper(_x61)), ok(nil)), s(proper(_x51)))) 
top#(U11(cons(length(proper(_x61)), ok(nil)), U12(proper(_x51), proper(_x52)))) 
top#(U11(cons(length(proper(_x61)), ok(nil)), U11(proper(_x51), proper(_x52)))) 
top#(U11(cons(length(ok(0)), ok(nil)), proper(_x22))) 
top#(U11(cons(length(proper(_x61)), ok(nil)), ok(tt))) 
top#(U11(cons(length(ok(tt)), ok(nil)), proper(_x22))) 
top#(U11(cons(length(cons(proper(_x71), proper(_x72))), ok(nil)), proper(_x22))) 
Thus, the rule top#(mark(U11(cons(length(_x61), nil), _x22))) → top#(U11(cons(length(proper(_x61)), ok(nil)), proper(_x22))) is replaced by the following rules:
top#(mark(U11(cons(length(_x61), nil), zeros))) → top#(U11(cons(length(proper(_x61)), ok(nil)), ok(zeros)))top#(mark(U11(cons(length(_x61), nil), U12(_x51, _x52)))) → top#(U11(cons(length(proper(_x61)), ok(nil)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(length(length(_x71)), nil), _x22))) → top#(U11(cons(length(length(proper(_x71))), ok(nil)), proper(_x22)))top#(mark(U11(cons(length(_x61), nil), U11(_x51, _x52)))) → top#(U11(cons(length(proper(_x61)), ok(nil)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(cons(length(zeros), nil), _x22))) → top#(U11(cons(length(ok(zeros)), ok(nil)), proper(_x22)))top#(mark(U11(cons(length(tt), nil), _x22))) → top#(U11(cons(length(ok(tt)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(length(_x61), nil), cons(_x51, _x52)))) → top#(U11(cons(length(proper(_x61)), ok(nil)), cons(proper(_x51), proper(_x52))))top#(mark(U11(cons(length(_x61), nil), nil))) → top#(U11(cons(length(proper(_x61)), ok(nil)), ok(nil)))
top#(mark(U11(cons(length(_x61), nil), s(_x51)))) → top#(U11(cons(length(proper(_x61)), ok(nil)), s(proper(_x51))))top#(mark(U11(cons(length(_x61), nil), length(_x51)))) → top#(U11(cons(length(proper(_x61)), ok(nil)), length(proper(_x51))))
top#(mark(U11(cons(length(U12(_x71, _x72)), nil), _x22))) → top#(U11(cons(length(U12(proper(_x71), proper(_x72))), ok(nil)), proper(_x22)))top#(mark(U11(cons(length(0), nil), _x22))) → top#(U11(cons(length(ok(0)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(length(nil), nil), _x22))) → top#(U11(cons(length(ok(nil)), ok(nil)), proper(_x22)))top#(mark(U11(cons(length(_x61), nil), 0))) → top#(U11(cons(length(proper(_x61)), ok(nil)), ok(0)))
top#(mark(U11(cons(length(cons(_x71, _x72)), nil), _x22))) → top#(U11(cons(length(cons(proper(_x71), proper(_x72))), ok(nil)), proper(_x22)))top#(mark(U11(cons(length(_x61), nil), tt))) → top#(U11(cons(length(proper(_x61)), ok(nil)), ok(tt)))
top#(mark(U11(cons(length(s(_x71)), nil), _x22))) → top#(U11(cons(length(s(proper(_x71))), ok(nil)), proper(_x22)))top#(mark(U11(cons(length(U11(_x71, _x72)), nil), _x22))) → top#(U11(cons(length(U11(proper(_x71), proper(_x72))), ok(nil)), proper(_x22)))

Problem 29: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(U11(cons(U11(_x61, cons(_x71, _x72)), U11(0, _x72)), _x22)))top#(U11(cons(U11(proper(_x61), cons(proper(_x71), proper(_x72))), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(cons(_x81, _x82), cons(_x81, s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(cons(proper(_x81), proper(_x82)), cons(proper(_x81), s(proper(_x111))))))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(_x71, _x72))))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), proper(_x72))))))top#(mark(U11(s(cons(length(length(cons(_x81, _x82))), s(cons(cons(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(cons(proper(_x81), proper(_x82)))), s(cons(cons(proper(_x91), proper(_x92)), proper(_x82))))), s(ok(tt))))
top#(mark(U11(_x21, U12(_x51, zeros))))top#(U11(proper(_x21), U12(proper(_x51), ok(zeros))))top#(mark(U11(s(cons(length(_x61), _x52)), s(tt))))top#(U11(s(cons(length(proper(_x61)), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(cons(length(length(0)), _x52)), s(tt))))top#(U11(s(cons(length(length(ok(0))), proper(_x52))), ok(s(tt))))top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, _x92), s(_x91))))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), proper(_x92)), s(proper(_x91)))))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), length(_x61))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), length(proper(_x61)))), s(ok(tt))))top#(mark(U11(cons(_x41, U11(0, tt)), _x22)))top#(U11(cons(proper(_x41), U11(ok(0), ok(tt))), proper(_x22)))
top#(mark(U11(cons(length(_x61), nil), length(_x51))))top#(U11(cons(length(proper(_x61)), ok(nil)), length(proper(_x51))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(U12(_x101, _x102), s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(U12(proper(_x101), proper(_x102)), s(s(proper(_x131)))))))))
top#(mark(U11(cons(_x41, nil), tt)))top#(U11(cons(proper(_x41), ok(nil)), ok(tt)))top#(mark(U11(cons(U11(length(s(_x81)), _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(s(proper(_x81))), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(U11(proper(_x51), proper(_x52))), ok(s(tt))))top#(mark(U11(s(cons(length(length(zeros)), s(_x61))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(cons(_x41, U11(tt, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(ok(tt), proper(_x72))), proper(_x22)))top#(mark(U11(s(cons(length(length(tt)), s(cons(cons(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(tt))), s(cons(cons(proper(_x91), proper(_x92)), proper(_x82))))), s(ok(tt))))
top#(mark(U11(_x21, U12(_x51, nil))))top#(U11(proper(_x21), U12(proper(_x51), ok(nil))))top#(mark(U11(length(cons(_x61, _x62)), _x22)))top#(U11(length(cons(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(_x21, U12(nil, _x52))))top#(U11(proper(_x21), U12(ok(nil), proper(_x52))))top#(mark(U11(s(cons(length(length(nil)), cons(_x61, _x62))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), cons(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(cons(length(_x61), length(_x61))), s(tt))))top#(U11(s(cons(length(proper(_x61)), length(proper(_x61)))), s(ok(tt))))top#(mark(U11(s(cons(length(length(0)), s(cons(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(0))), s(cons(proper(_x81), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(_x81, cons(_x91, _x92))))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(proper(_x81), cons(proper(_x91), proper(_x92)))))), s(ok(tt))))top#(mark(U11(cons(length(length(_x51)), nil), nil)))top#(U11(cons(length(length(proper(_x51))), ok(nil)), ok(nil)))
top#(mark(U11(s(U12(_x51, _x52)), s(_x51))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(proper(_x51))))top#(ok(cons(length(_x41), _x22)))top#(cons(length(active(_x41)), _x22))
top#(mark(U11(cons(U11(length(_x71), 0), U11(0, 0)), tt)))top#(U11(cons(U11(length(proper(_x71)), ok(0)), U11(ok(0), ok(0))), ok(tt)))top#(mark(U11(s(cons(length(length(_x71)), U11(_x61, _x62))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(s(tt)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(s(ok(tt)))))))))top#(mark(U11(cons(_x41, U11(0, zeros)), _x22)))top#(U11(cons(proper(_x41), U11(ok(0), ok(zeros))), proper(_x22)))
top#(mark(U11(s(_x41), s(s(U11(U11(_x81, _x82), cons(_x81, s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(U11(proper(_x81), proper(_x82)), cons(proper(_x81), s(proper(_x111))))))))top#(mark(U11(_x21, U12(U12(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U12(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(U12(_x101, _x102), _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(U12(proper(_x101), proper(_x102)), proper(_x82)))))))top#(mark(U11(s(cons(_x51, U11(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(U12(_x51, _x52)), s(tt))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(ok(tt))))top#(ok(U11(U12(_x41, _x42), _x22)))top#(U11(U12(active(_x41), _x42), _x22))
top#(mark(U11(cons(_x41, tt), _x22)))top#(U11(cons(proper(_x41), ok(tt)), proper(_x22)))top#(mark(U11(s(tt), s(s(U11(_x71, cons(_x81, s(_x111))))))))top#(U11(s(ok(tt)), s(s(U11(proper(_x71), cons(proper(_x81), s(proper(_x111))))))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(proper(_x51), ok(tt))), ok(s(tt))))top#(mark(U11(s(cons(_x51, zeros)), s(tt))))top#(U11(s(cons(proper(_x51), ok(zeros))), ok(s(tt))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(tt)), ok(s(tt))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(s(zeros)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(s(ok(zeros)))))))))
top#(mark(U11(cons(length(zeros), nil), nil)))top#(U11(cons(length(ok(zeros)), ok(nil)), ok(nil)))top#(mark(U11(cons(s(_x51), U11(0, _x72)), nil)))top#(U11(cons(s(proper(_x51)), U11(ok(0), proper(_x72))), ok(nil)))
top#(mark(U11(s(_x41), s(s(cons(_x71, _x72))))))top#(U11(s(proper(_x41)), s(s(cons(proper(_x71), proper(_x72))))))top#(mark(U11(length(nil), s(_x51))))top#(U11(length(ok(nil)), s(proper(_x51))))
top#(mark(U11(s(_x41), s(cons(_x61, _x62)))))top#(U11(s(proper(_x41)), s(cons(proper(_x61), proper(_x62)))))top#(mark(U11(cons(U11(_x61, _x62), U11(0, cons(_x81, _x82))), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), cons(proper(_x81), proper(_x82)))), proper(_x22)))
top#(mark(U11(_x21, 0)))top#(U11(proper(_x21), ok(0)))top#(mark(U11(s(cons(length(zeros), U11(_x61, _x62))), s(tt))))top#(U11(s(cons(length(ok(zeros)), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(cons(length(_x61), nil), cons(_x51, _x52))))top#(U11(cons(length(proper(_x61)), ok(nil)), cons(proper(_x51), proper(_x52))))top#(mark(U11(length(nil), U11(_x51, _x52))))top#(U11(length(ok(nil)), U11(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, nil), length(_x51))))top#(U11(cons(proper(_x41), ok(nil)), length(proper(_x51))))top#(mark(U11(s(cons(length(length(_x71)), s(zeros))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(ok(zeros)))), s(ok(tt))))
top#(mark(U11(U12(_x41, U12(_x51, _x52)), zeros)))top#(U11(U12(proper(_x41), U12(proper(_x51), proper(_x52))), ok(zeros)))top#(mark(U11(cons(_x41, U11(_x71, tt)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), ok(tt))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, _x62), U11(0, _x72)), U12(_x51, _x52))))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), proper(_x72))), U12(proper(_x51), proper(_x52))))top#(mark(U11(length(0), _x22)))top#(U11(length(ok(0)), proper(_x22)))
top#(mark(U11(s(cons(length(length(s(_x81))), s(_x61))), s(tt))))top#(U11(s(cons(length(length(s(proper(_x81)))), s(proper(_x61)))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(0)))))top#(U11(s(proper(_x41)), s(s(ok(0)))))
top#(mark(U11(s(cons(length(length(_x71)), 0)), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), ok(0))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(U11(_x81, _x82), cons(_x81, s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(U11(proper(_x81), proper(_x82)), cons(proper(_x81), s(s(proper(_x131)))))))))
top#(mark(U11(U12(_x41, _x42), U12(_x51, _x52))))top#(U11(U12(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(length(_x61), tt)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(tt))), s(ok(tt))))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(cons(_x131, _x132)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(cons(proper(_x131), proper(_x132)))))))))top#(mark(U11(s(0), s(s(_x61)))))top#(U11(s(ok(0)), s(s(proper(_x61)))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(cons(proper(_x61), proper(_x62)), proper(_x52))), ok(s(tt))))top#(mark(U11(cons(U12(_x61, _x62), U11(0, _x72)), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(U11(length(tt), _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(ok(tt)), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(cons(length(length(nil)), s(nil))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), s(ok(nil)))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(0)), _x52)), s(tt))))top#(U11(s(cons(length(ok(length(0))), proper(_x52))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(length(_x101), _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(length(proper(_x101)), proper(_x82)))))))
top#(mark(U11(s(cons(length(_x61), zeros)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(zeros))), s(ok(tt))))top#(mark(U11(_x21, U12(_x51, tt))))top#(U11(proper(_x21), U12(proper(_x51), ok(tt))))
top#(mark(U11(cons(_x41, length(_x71)), _x22)))top#(U11(cons(proper(_x41), length(proper(_x71))), proper(_x22)))top#(mark(U11(s(_x41), s(s(nil)))))top#(U11(s(proper(_x41)), s(s(ok(nil)))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(s(_x101), _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(s(proper(_x101)), proper(_x92)), proper(_x82))))), s(ok(tt))))top#(mark(U11(s(cons(length(length(zeros)), s(cons(_x81, zeros)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(proper(_x81), ok(zeros))))), s(ok(tt))))
top#(mark(U11(s(s(_x61)), _x22)))top#(U11(s(s(proper(_x61))), proper(_x22)))top#(mark(U11(cons(U11(length(_x71), length(_x71)), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(proper(_x71)), length(proper(_x71))), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(s(cons(length(length(s(_x81))), s(cons(cons(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(s(proper(_x81)))), s(cons(cons(proper(_x91), proper(_x92)), proper(_x82))))), s(ok(tt))))top#(mark(U11(s(cons(length(length(s(_x81))), _x52)), s(tt))))top#(U11(s(cons(length(length(s(proper(_x81)))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(cons(_x61, _x62), _x52)), s(s(_x61)))))top#(U11(s(cons(cons(proper(_x61), proper(_x62)), proper(_x52))), s(s(proper(_x61)))))top#(mark(U11(cons(U11(_x61, _x62), U11(0, 0)), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(cons(U11(length(_x71), 0), U11(0, 0)), _x22)))top#(U11(cons(U11(length(proper(_x71)), ok(0)), ok(U11(0, 0))), proper(_x22)))top#(mark(U11(cons(_x41, U11(s(_x91), _x72)), _x22)))top#(U11(cons(proper(_x41), U11(s(proper(_x91)), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, _x62), U11(0, length(_x81))), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), length(proper(_x81)))), proper(_x22)))top#(mark(U11(s(nil), s(s(U11(_x71, _x72))))))top#(U11(s(ok(nil)), s(s(U11(proper(_x71), proper(_x72))))))
top#(mark(U11(cons(_x41, U11(_x71, U12(_x101, _x102))), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), U12(proper(_x101), proper(_x102)))), proper(_x22)))top#(mark(U11(cons(U11(_x61, length(_x71)), U11(0, _x72)), _x22)))top#(U11(cons(U11(proper(_x61), length(proper(_x71))), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(s(length(_x51)), s(s(U11(_x71, cons(_x81, s(_x111))))))))top#(U11(s(length(proper(_x51))), s(s(U11(proper(_x71), cons(proper(_x81), s(proper(_x111))))))))top#(mark(U11(s(cons(length(length(zeros)), s(cons(U12(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(U12(proper(_x91), proper(_x92)), proper(_x82))))), s(ok(tt))))
top#(ok(zeros))top#(mark(cons(0, zeros)))top#(mark(U11(s(_x41), s(s(U11(U12(_x81, _x82), cons(_x81, s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(U12(proper(_x81), proper(_x82)), cons(proper(_x81), s(s(proper(_x131)))))))))
top#(mark(U11(cons(length(_x61), nil), U11(_x51, _x52))))top#(U11(cons(length(proper(_x61)), ok(nil)), U11(proper(_x51), proper(_x52))))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, length(_x81))), _x22)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), length(proper(_x81)))), proper(_x22)))
top#(mark(U11(cons(_x41, U11(cons(_x91, _x92), _x72)), _x22)))top#(U11(cons(proper(_x41), U11(cons(proper(_x91), proper(_x92)), proper(_x72))), proper(_x22)))top#(mark(U11(length(length(_x51)), 0)))top#(U11(length(length(proper(_x51))), ok(0)))
top#(mark(U11(cons(_x41, nil), cons(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), cons(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(length(length(_x71)), s(0))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(ok(0)))), s(ok(tt))))
top#(mark(U11(s(U11(U11(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x51, cons(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(length(_x101), _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(length(proper(_x101)), proper(_x92)), proper(_x82))))), s(ok(tt))))top#(mark(U11(length(zeros), 0)))top#(U11(length(ok(zeros)), ok(0)))
top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, 0)), s(_x51))))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), ok(0))), s(proper(_x51))))top#(mark(U11(s(cons(length(length(nil)), U11(_x61, _x62))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(cons(nil, zeros)), s(tt))))top#(U11(s(cons(ok(nil), ok(zeros))), s(ok(tt))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(proper(_x51), s(proper(_x61)))), ok(s(tt))))
top#(mark(U11(s(cons(length(zeros), 0)), s(tt))))top#(U11(s(cons(length(ok(zeros)), ok(0))), s(ok(tt))))top#(mark(U11(cons(U11(length(cons(_x81, _x82)), _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(cons(proper(_x81), proper(_x82))), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, s(_x71)), U11(0, _x72)), _x22)))top#(U11(cons(U11(proper(_x61), s(proper(_x71))), U11(ok(0), proper(_x72))), proper(_x22)))top#(ok(U11(s(_x41), _x22)))top#(U11(s(active(_x41)), _x22))
top#(mark(U11(s(s(_x51)), s(s(U11(_x71, cons(_x81, s(s(_x131)))))))))top#(U11(s(s(proper(_x51))), s(s(U11(proper(_x71), cons(proper(_x81), s(s(proper(_x131)))))))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(U11(zeros, zeros)))top#(U11(ok(zeros), ok(zeros)))top#(mark(U11(s(cons(length(length(_x71)), s(nil))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(ok(nil)))), s(ok(tt))))
top#(mark(U11(s(cons(_x51, 0)), s(s(_x61)))))top#(U11(s(cons(proper(_x51), ok(0))), s(s(proper(_x61)))))top#(mark(U11(cons(_x41, U11(0, 0)), nil)))top#(U11(cons(proper(_x41), U11(ok(0), ok(0))), ok(nil)))
top#(mark(U11(cons(U11(length(_x71), length(_x71)), U11(0, 0)), _x22)))top#(U11(cons(U11(length(proper(_x71)), length(proper(_x71))), U11(ok(0), ok(0))), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(nil, cons(_x81, s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(ok(nil), cons(proper(_x81), s(s(proper(_x131)))))))))
top#(mark(U11(s(length(_x51)), s(s(U11(_x71, cons(_x81, s(s(_x131)))))))))top#(U11(s(length(proper(_x51))), s(s(U11(proper(_x71), cons(proper(_x81), s(s(proper(_x131)))))))))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, _x72)), tt)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), proper(_x72))), ok(tt)))
top#(mark(U11(cons(U11(length(_x71), 0), U11(0, 0)), cons(_x51, _x52))))top#(U11(cons(U11(length(proper(_x71)), ok(0)), U11(ok(0), ok(0))), cons(proper(_x51), proper(_x52))))top#(mark(U11(cons(length(U11(_x51, _x52)), nil), nil)))top#(U11(cons(length(U11(proper(_x51), proper(_x52))), ok(nil)), ok(nil)))
top#(mark(U11(s(cons(_x51, zeros)), s(s(_x61)))))top#(U11(s(cons(proper(_x51), ok(zeros))), s(s(proper(_x61)))))top#(mark(U11(cons(zeros, _x42), _x22)))top#(U11(cons(ok(zeros), proper(_x42)), proper(_x22)))
top#(mark(U11(s(cons(tt, _x52)), s(tt))))top#(U11(s(cons(ok(tt), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), nil), U11(0, 0)), _x22)))top#(U11(cons(U11(length(proper(_x71)), ok(nil)), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(cons(0, nil), _x22)))top#(U11(cons(ok(0), ok(nil)), proper(_x22)))top#(mark(U11(s(_x41), length(_x51))))top#(U11(s(proper(_x41)), length(proper(_x51))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(0, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(ok(0), proper(_x92)), proper(_x82))))), s(ok(tt))))top#(mark(U11(cons(cons(_x51, _x52), U11(0, _x72)), nil)))top#(U11(cons(cons(proper(_x51), proper(_x52)), U11(ok(0), proper(_x72))), ok(nil)))
top#(mark(U11(cons(_x41, nil), U12(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(_x41), s(s(U11(U11(_x81, _x82), _x72))))))top#(U11(s(proper(_x41)), s(s(U11(U11(proper(_x81), proper(_x82)), proper(_x72))))))
top#(mark(U11(U12(nil, _x42), zeros)))top#(U11(U12(ok(nil), proper(_x42)), ok(zeros)))top#(mark(U11(cons(_x41, U12(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), U12(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(zeros, U11(0, _x72)), nil)))top#(U11(cons(ok(zeros), U11(ok(0), proper(_x72))), ok(nil)))top#(mark(U11(length(nil), tt)))top#(U11(length(ok(nil)), ok(tt)))
top#(mark(U11(s(cons(length(length(cons(_x81, _x82))), _x52)), s(tt))))top#(U11(s(cons(length(length(cons(proper(_x81), proper(_x82)))), proper(_x52))), s(ok(tt))))top#(mark(U11(length(_x41), length(_x51))))top#(U11(length(proper(_x41)), length(proper(_x51))))
top#(mark(U11(s(cons(s(_x61), zeros)), s(tt))))top#(U11(s(cons(s(proper(_x61)), ok(zeros))), s(ok(tt))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(zeros)), ok(s(tt))))
top#(mark(U11(U12(U11(_x51, _x52), _x42), zeros)))top#(U11(U12(U11(proper(_x51), proper(_x52)), proper(_x42)), ok(zeros)))top#(mark(U11(s(cons(length(length(nil)), _x52)), s(tt))))top#(U11(s(cons(length(ok(length(nil))), proper(_x52))), s(ok(tt))))
top#(mark(U11(_x21, U12(tt, _x52))))top#(U11(proper(_x21), U12(ok(tt), proper(_x52))))top#(mark(U11(cons(U11(nil, _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(ok(nil), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(length(proper(_x61)), proper(_x52))), ok(s(tt))))top#(mark(U11(cons(s(_x61), U11(0, _x72)), _x22)))top#(U11(cons(s(proper(_x61)), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(s(cons(U11(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U11(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(U11(_x51, _x52)), s(_x51))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(proper(_x51))))
top#(mark(U11(s(U11(_x51, U12(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(cons(_x41, U11(0, _x72)), length(_x51))))top#(U11(cons(proper(_x41), U11(ok(0), proper(_x72))), length(proper(_x51))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(s(_x71))))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(s(proper(_x71))))))top#(mark(U11(cons(U11(_x61, nil), U11(0, _x72)), _x22)))top#(U11(cons(U11(proper(_x61), ok(nil)), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, _x92), cons(_x91, _x92))))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), proper(_x92)), cons(proper(_x91), proper(_x92)))))), s(ok(tt))))top#(mark(U11(s(cons(length(zeros), U12(_x61, _x62))), s(tt))))top#(U11(s(cons(length(ok(zeros)), U12(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), proper(_x92)), proper(_x82))))), ok(s(tt))))top#(mark(U11(s(U11(_x51, _x52)), s(tt))))top#(U11(s(U11(proper(_x51), proper(_x52))), ok(s(tt))))
top#(ok(U11(U11(_x41, _x42), _x22)))top#(U11(U11(active(_x41), _x42), _x22))top#(mark(U11(s(cons(length(length(cons(_x81, _x82))), s(cons(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(cons(proper(_x81), proper(_x82)))), s(cons(proper(_x81), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(0)), cons(_x61, _x62))), s(tt))))top#(U11(s(cons(length(length(ok(0))), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(cons(length(length(nil)), s(U12(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), s(U12(proper(_x81), proper(_x82))))), s(ok(tt))))
top#(mark(U11(cons(_x41, U11(0, nil)), nil)))top#(U11(cons(proper(_x41), U11(ok(0), ok(nil))), ok(nil)))top#(mark(U11(cons(0, U11(_x71, _x72)), _x22)))top#(U11(cons(ok(0), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(s(tt), s(s(_x61)))))top#(U11(s(ok(tt)), s(s(proper(_x61)))))top#(mark(U11(s(cons(_x51, s(_x61))), s(s(_x61)))))top#(U11(s(cons(proper(_x51), s(proper(_x61)))), s(s(proper(_x61)))))
top#(mark(U11(_x21, U12(zeros, _x52))))top#(U11(proper(_x21), U12(ok(zeros), proper(_x52))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(s(cons(_x141, _x142))))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(s(cons(proper(_x141), proper(_x142))))))))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(_x81, tt)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(proper(_x81), ok(tt))))), s(ok(tt))))top#(mark(U11(cons(cons(_x61, _x62), nil), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(zeros, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(ok(zeros), proper(_x92)), proper(_x82))))), s(ok(tt))))top#(mark(U11(cons(_x41, U11(0, tt)), nil)))top#(U11(cons(proper(_x41), U11(ok(0), ok(tt))), ok(nil)))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(tt, s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(ok(tt), s(s(proper(_x131)))))))))top#(mark(U11(cons(_x41, U11(0, _x72)), 0)))top#(U11(cons(proper(_x41), U11(ok(0), proper(_x72))), ok(0)))
top#(mark(U11(cons(U11(length(_x71), tt), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(proper(_x71)), ok(tt)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(cons(U11(length(_x71), cons(_x71, _x72)), U11(0, 0)), _x22)))top#(U11(cons(U11(length(proper(_x71)), cons(proper(_x71), proper(_x72))), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(s(cons(length(_x61), s(_x61))), s(tt))))top#(U11(s(cons(length(proper(_x61)), s(proper(_x61)))), s(ok(tt))))top#(mark(U11(U12(_x41, length(_x51)), zeros)))top#(U11(U12(proper(_x41), length(proper(_x51))), ok(zeros)))
top#(mark(U11(U12(zeros, _x42), zeros)))top#(U11(U12(ok(zeros), proper(_x42)), ok(zeros)))top#(mark(U11(s(cons(_x51, _x52)), s(s(cons(_x71, _x72))))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(cons(proper(_x71), proper(_x72))))))
top#(mark(U11(s(cons(length(0), _x52)), s(tt))))top#(U11(s(cons(length(ok(0)), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(U11(length(cons(_x81, _x82)), _x62), U11(0, 0)), _x22)))top#(U11(cons(U11(length(cons(proper(_x81), proper(_x82))), proper(_x62)), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(cons(_x41, U11(0, _x72)), zeros)))top#(U11(cons(proper(_x41), U11(ok(0), proper(_x72))), ok(zeros)))top#(mark(U11(cons(_x41, U11(_x71, 0)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), ok(0))), proper(_x22)))
top#(mark(U11(s(tt), s(s(U11(_x71, cons(_x81, s(s(_x131)))))))))top#(U11(s(ok(tt)), s(s(U11(proper(_x71), cons(proper(_x81), s(s(proper(_x131)))))))))top#(mark(U11(s(U11(tt, _x52)), s(tt))))top#(U11(s(U11(ok(tt), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(s(_x81)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(s(proper(_x81))))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), tt), U11(0, 0)), _x22)))top#(U11(cons(U11(length(proper(_x71)), ok(tt)), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(s(U11(_x51, _x52)), s(s(U11(_x71, _x72))))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(s(U11(proper(_x71), proper(_x72))))))top#(mark(U11(U12(_x41, nil), zeros)))top#(U11(U12(proper(_x41), ok(nil)), ok(zeros)))
top#(mark(U11(cons(U11(length(_x71), 0), U11(0, 0)), s(_x51))))top#(U11(cons(U11(length(proper(_x71)), ok(0)), U11(ok(0), ok(0))), s(proper(_x51))))top#(mark(U11(cons(U11(length(nil), 0), U11(0, 0)), _x22)))top#(U11(cons(U11(length(ok(nil)), ok(0)), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(length(nil), 0)))top#(U11(length(ok(nil)), ok(0)))top#(mark(U11(s(U11(s(_x61), _x52)), s(tt))))top#(U11(s(U11(s(proper(_x61)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, U12(_x101, _x102)), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), U12(proper(_x101), proper(_x102))), proper(_x82))))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(length(_x81), cons(_x81, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(length(proper(_x81)), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(cons(_x41, U11(_x71, _x72)), nil)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), ok(nil)))top#(mark(U11(s(U11(_x51, _x52)), s(s(U11(_x71, cons(_x81, s(s(_x131)))))))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(s(U11(proper(_x71), cons(proper(_x81), s(s(proper(_x131)))))))))
top#(mark(U11(s(cons(length(length(_x71)), U12(_x61, _x62))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(cons(_x41, U11(_x71, _x72)), U11(_x51, _x52))))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), U11(proper(_x51), proper(_x52))))
top#(ok(U11(length(_x41), _x22)))top#(U11(length(active(_x41)), _x22))top#(mark(U11(s(cons(length(length(0)), s(cons(cons(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(0))), s(cons(cons(proper(_x91), proper(_x92)), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(0), s(s(U11(_x71, cons(_x81, s(_x111))))))))top#(U11(s(ok(0)), s(s(U11(proper(_x71), cons(proper(_x81), s(proper(_x111))))))))top#(mark(U11(s(_x41), 0)))top#(U11(s(proper(_x41)), ok(0)))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(nil, _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(ok(nil), proper(_x82))))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), s(_x71)), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(proper(_x71)), s(proper(_x71))), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(_x41, U11(_x71, nil)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), ok(nil))), proper(_x22)))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, _x72)), length(_x51))))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), proper(_x72))), length(proper(_x51))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, 0), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), ok(0)), proper(_x82))))), s(ok(tt))))top#(mark(U11(s(cons(length(length(_x71)), s(cons(s(_x91), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(s(proper(_x91)), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, nil)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), ok(nil)))))))top#(mark(U11(s(s(_x51)), s(s(_x61)))))top#(U11(s(s(proper(_x51))), s(s(proper(_x61)))))
top#(mark(U11(cons(0, U11(0, tt)), nil)))top#(U11(cons(ok(0), U11(ok(0), ok(tt))), ok(nil)))top#(mark(U11(cons(_x41, zeros), _x22)))top#(U11(cons(proper(_x41), ok(zeros)), proper(_x22)))
top#(mark(U11(length(_x41), tt)))top#(U11(length(proper(_x41)), ok(tt)))top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, s(_x101)), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), s(proper(_x101))), proper(_x82))))), s(ok(tt))))
top#(mark(U11(length(_x41), s(_x51))))top#(U11(length(proper(_x41)), s(proper(_x51))))top#(mark(U11(cons(U11(_x61, _x62), U11(0, s(_x81))), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), s(proper(_x81)))), proper(_x22)))
top#(mark(U11(cons(_x41, U11(_x71, cons(_x101, _x102))), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), cons(proper(_x101), proper(_x102)))), proper(_x22)))top#(mark(U11(length(U12(_x51, _x52)), 0)))top#(U11(length(U12(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(s(nil), s(s(U11(_x71, cons(_x81, s(s(_x131)))))))))top#(U11(s(ok(nil)), s(s(U11(proper(_x71), cons(proper(_x81), s(s(proper(_x131)))))))))top#(mark(U11(tt, tt)))top#(U11(ok(tt), ok(tt)))
top#(mark(U11(cons(U12(_x61, _x62), _x42), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(s(_x101), s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(s(proper(_x101)), s(s(proper(_x131)))))))))
top#(mark(U11(s(cons(_x51, _x52)), s(_x51))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(proper(_x51))))top#(mark(U11(s(cons(length(length(nil)), s(nil))), s(tt))))top#(U11(s(cons(length(ok(length(nil))), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(nil)), s(cons(cons(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), s(cons(cons(proper(_x91), proper(_x92)), proper(_x82))))), s(ok(tt))))top#(mark(U11(s(cons(length(length(U11(_x81, _x82))), _x52)), s(tt))))top#(U11(s(cons(length(length(U11(proper(_x81), proper(_x82)))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(zeros, s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(ok(zeros), s(proper(_x111))))))))top#(mark(U11(_x21, U12(_x51, length(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), length(proper(_x81)))))
top#(mark(U11(length(nil), cons(_x51, _x52))))top#(U11(length(ok(nil)), cons(proper(_x51), proper(_x52))))top#(mark(U11(s(_x41), s(s(U11(0, cons(_x81, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(ok(0), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(s(_x41), s(s(U11(nil, _x72))))))top#(U11(s(proper(_x41)), s(s(U11(ok(nil), proper(_x72))))))top#(mark(U11(_x21, U12(s(_x71), _x52))))top#(U11(proper(_x21), U12(s(proper(_x71)), proper(_x52))))
top#(mark(U11(s(cons(length(length(zeros)), s(cons(_x81, length(_x91))))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(proper(_x81), length(proper(_x91)))))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, _x72)), U12(_x51, _x52))))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), proper(_x72))), U12(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, U11(0, _x72)), s(_x51))))top#(U11(cons(proper(_x41), U11(ok(0), proper(_x72))), s(proper(_x51))))top#(mark(U11(length(tt), _x22)))top#(U11(length(ok(tt)), proper(_x22)))
top#(mark(U11(s(_x41), s(s(U11(_x71, 0))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), ok(0))))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(ok(tt), proper(_x52))), ok(s(tt))))
top#(ok(length(cons(_x22, _x21))))top#(mark(U11(tt, _x21)))top#(mark(U11(s(U12(_x61, _x62)), _x22)))top#(U11(s(U12(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(cons(length(length(zeros)), s(cons(s(_x91), _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(s(proper(_x91)), proper(_x82))))), s(ok(tt))))top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, cons(_x101, _x102)), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), cons(proper(_x101), proper(_x102))), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(cons(length(nil), _x52)), s(tt))))top#(U11(s(cons(length(ok(nil)), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(zeros, nil), _x22)))top#(U11(cons(ok(zeros), ok(nil)), proper(_x22)))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, zeros)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), ok(zeros)))))))top#(mark(U11(cons(_x41, _x42), nil)))top#(U11(cons(proper(_x41), proper(_x42)), ok(nil)))
top#(ok(length(_x21)))top#(length(active(_x21)))top#(mark(U11(s(_x41), tt)))top#(U11(s(proper(_x41)), ok(tt)))
top#(mark(U11(cons(_x41, U11(0, cons(_x101, _x102))), _x22)))top#(U11(cons(proper(_x41), U11(ok(0), cons(proper(_x101), proper(_x102)))), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(cons(_x101, _x102), s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(cons(proper(_x101), proper(_x102)), s(proper(_x111))))))))
top#(mark(U11(tt, zeros)))top#(U11(ok(tt), ok(zeros)))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, _x72)), 0)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), proper(_x72))), ok(0)))
top#(mark(U11(s(_x41), s(s(tt)))))top#(U11(s(proper(_x41)), s(s(ok(tt)))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, U11(_x111, _x112))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), U11(proper(_x111), proper(_x112))))))))
top#(mark(U11(s(U11(0, _x52)), s(tt))))top#(U11(s(U11(ok(0), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(_x51, _x52)), s(s(length(_x71))))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(length(proper(_x71))))))
top#(mark(U11(cons(0, U11(0, nil)), nil)))top#(U11(cons(ok(0), U11(ok(0), ok(nil))), ok(nil)))top#(mark(U11(0, zeros)))top#(U11(ok(0), ok(zeros)))
top#(mark(U11(s(_x41), s(s(U11(_x71, U11(_x81, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), U11(proper(_x81), proper(_x82)))))))top#(mark(U11(s(0), s(s(U11(_x71, cons(_x81, _x82)))))))top#(U11(s(ok(0)), s(s(U11(proper(_x71), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(s(cons(length(_x61), 0)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(0))), s(ok(tt))))top#(mark(U11(s(cons(length(zeros), _x52)), s(tt))))top#(U11(s(cons(length(ok(zeros)), proper(_x52))), ok(s(tt))))
top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, 0)), U11(_x51, _x52))))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), ok(0))), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(s(_x51)), s(s(U11(_x71, cons(_x81, _x82)))))))top#(U11(s(s(proper(_x51))), s(s(U11(proper(_x71), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(cons(U11(0, _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(ok(0), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(0), s(_x51))))top#(U11(s(ok(0)), s(proper(_x51))))
top#(mark(U11(U12(_x41, zeros), zeros)))top#(U11(U12(proper(_x41), ok(zeros)), ok(zeros)))top#(mark(U11(s(_x41), s(s(U11(s(_x81), cons(_x81, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(s(proper(_x81)), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(s(_x41), s(U11(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U11(proper(_x61), proper(_x62)))))top#(mark(U11(cons(_x41, U11(_x71, U11(_x101, _x102))), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), U11(proper(_x101), proper(_x102)))), proper(_x22)))
top#(mark(U11(s(_x41), s(s(U11(tt, _x72))))))top#(U11(s(proper(_x41)), s(s(U11(ok(tt), proper(_x72))))))top#(mark(U11(cons(length(_x61), nil), zeros)))top#(U11(cons(length(proper(_x61)), ok(nil)), ok(zeros)))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(nil)), ok(s(tt))))top#(mark(U11(s(cons(cons(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, U11(0, length(_x101))), _x22)))top#(U11(cons(proper(_x41), U11(ok(0), length(proper(_x101)))), proper(_x22)))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, _x72)), zeros)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), proper(_x72))), ok(zeros)))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(s(U12(_x141, _x142))))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(s(U12(proper(_x141), proper(_x142))))))))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(tt)), s(ok(tt))))
top#(mark(U11(cons(0, U11(0, U11(_x81, _x82))), nil)))top#(U11(cons(ok(0), U11(ok(0), U11(proper(_x81), proper(_x82)))), ok(nil)))top#(mark(U11(s(cons(length(length(zeros)), s(cons(_x81, 0)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(proper(_x81), ok(0))))), s(ok(tt))))
top#(mark(cons(_x21, _x22)))top#(cons(proper(_x21), proper(_x22)))top#(mark(U11(cons(U11(length(_x71), zeros), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(proper(_x71)), ok(zeros)), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(s(nil), s(s(_x61)))))top#(U11(s(ok(nil)), s(s(proper(_x61)))))top#(mark(U11(cons(length(tt), nil), _x22)))top#(U11(cons(length(ok(tt)), ok(nil)), proper(_x22)))
top#(mark(U11(cons(_x41, U11(0, U11(_x101, _x102))), _x22)))top#(U11(cons(proper(_x41), U11(ok(0), U11(proper(_x101), proper(_x102)))), proper(_x22)))top#(mark(U11(cons(tt, U11(_x71, _x72)), _x22)))top#(U11(cons(ok(tt), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(s(_x41), s(s(U11(U12(_x81, _x82), _x72))))))top#(U11(s(proper(_x41)), s(s(U11(U12(proper(_x81), proper(_x82)), proper(_x72))))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(s(U11(_x141, _x142))))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(s(U11(proper(_x141), proper(_x142))))))))))
top#(mark(U11(s(U11(zeros, _x52)), s(tt))))top#(U11(s(U11(ok(zeros), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(0, _x52)), s(s(_x61)))))top#(U11(s(cons(ok(0), proper(_x52))), s(s(proper(_x61)))))
top#(mark(U11(s(U12(_x51, _x52)), s(s(U11(_x71, cons(_x81, s(s(_x131)))))))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(s(U11(proper(_x71), cons(proper(_x81), s(s(proper(_x131)))))))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(zeros, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(ok(zeros), proper(_x82)))))))
top#(mark(U11(s(cons(_x51, nil)), s(s(_x61)))))top#(U11(s(cons(proper(_x51), ok(nil))), s(s(proper(_x61)))))top#(mark(U11(s(cons(0, _x52)), s(tt))))top#(U11(s(cons(ok(0), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(nil)), s(0))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), s(ok(0)))), s(ok(tt))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(ok(0), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(cons(length(zeros), zeros)), s(tt))))top#(U11(s(cons(length(ok(zeros)), ok(zeros))), s(ok(tt))))top#(mark(U11(s(cons(length(length(length(_x81))), s(cons(cons(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(length(proper(_x81)))), s(cons(cons(proper(_x91), proper(_x92)), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(_x41), s(s(U11(tt, cons(_x81, s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(ok(tt), cons(proper(_x81), s(proper(_x111))))))))top#(mark(U11(s(cons(length(length(_x71)), s(length(_x81)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(length(proper(_x81))))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(nil)), U12(_x61, _x62))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(cons(U11(_x61, _x62), zeros)), s(tt))))top#(U11(s(cons(U11(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))
top#(mark(tt))top#(ok(tt))top#(mark(U11(s(cons(zeros, _x52)), s(s(_x61)))))top#(U11(s(cons(ok(zeros), proper(_x52))), s(s(proper(_x61)))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(U12(proper(_x61), proper(_x62)), proper(_x52))), ok(s(tt))))top#(ok(U11(tt, _x21)))top#(mark(U12(tt, _x21)))
top#(mark(U11(s(cons(length(length(_x71)), _x52)), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), proper(_x52))), ok(s(tt))))top#(mark(U11(cons(_x41, U11(0, cons(_x81, _x82))), nil)))top#(U11(cons(proper(_x41), U11(ok(0), cons(proper(_x81), proper(_x82)))), ok(nil)))
top#(mark(U11(_x21, U12(length(_x71), _x52))))top#(U11(proper(_x21), U12(length(proper(_x71)), proper(_x52))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(cons(_x101, _x102), s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(cons(proper(_x101), proper(_x102)), s(s(proper(_x131)))))))))
top#(mark(U11(s(_x41), s(s(U11(s(_x81), _x72))))))top#(U11(s(proper(_x41)), s(s(U11(s(proper(_x81)), proper(_x72))))))top#(mark(U11(U12(_x41, _x42), _x22)))top#(U11(U12(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(U11(length(zeros), _x62), U11(0, 0)), _x22)))top#(U11(cons(U11(length(ok(zeros)), proper(_x62)), U11(ok(0), ok(0))), proper(_x22)))top#(mark(U11(length(cons(_x51, _x52)), 0)))top#(U11(length(cons(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, nil), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), ok(nil)), proper(_x82))))), s(ok(tt))))top#(mark(zeros))top#(ok(zeros))
top#(mark(U11(cons(_x41, 0), _x22)))top#(U11(cons(proper(_x41), ok(0)), proper(_x22)))top#(mark(U11(s(cons(tt, zeros)), s(tt))))top#(U11(s(cons(ok(tt), ok(zeros))), s(ok(tt))))
top#(mark(U11(length(nil), U12(_x51, _x52))))top#(U11(length(ok(nil)), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(_x51, _x52)), s(s(0)))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(ok(0)))))
top#(mark(U11(s(cons(length(length(tt)), s(cons(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(tt))), s(cons(proper(_x81), proper(_x82))))), s(ok(tt))))top#(mark(U11(cons(_x41, U11(0, U12(_x81, _x82))), nil)))top#(U11(cons(proper(_x41), U11(ok(0), U12(proper(_x81), proper(_x82)))), ok(nil)))
top#(mark(U11(s(cons(_x61, _x62)), _x22)))top#(U11(s(cons(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(_x41), U12(_x51, _x52))))top#(U11(s(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, _x92), U12(_x91, _x92))))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), proper(_x92)), U12(proper(_x91), proper(_x92)))))), s(ok(tt))))top#(mark(U11(_x21, U12(_x51, U12(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U12(proper(_x81), proper(_x82)))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(_x81, nil)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(proper(_x81), ok(nil))))), s(ok(tt))))top#(mark(U11(s(cons(length(length(_x71)), s(U11(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(U11(proper(_x81), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(zeros)), s(cons(_x81, U11(_x91, _x92))))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(proper(_x81), U11(proper(_x91), proper(_x92)))))), s(ok(tt))))top#(mark(U11(U11(_x41, _x42), _x22)))top#(U11(U11(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(U11(cons(length(U12(_x71, _x72)), nil), _x22)))top#(U11(cons(length(U12(proper(_x71), proper(_x72))), ok(nil)), proper(_x22)))top#(mark(U12(_x21, _x22)))top#(U12(proper(_x21), proper(_x22)))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(0, s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(ok(0), s(s(proper(_x131)))))))))top#(mark(U11(s(cons(length(length(nil)), length(_x61))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), length(proper(_x61)))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, zeros), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), ok(zeros)), proper(_x82))))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, _x72)), U11(_x51, _x52))))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), proper(_x72))), U11(proper(_x51), proper(_x52))))
top#(ok(U11(length(nil), _x22)))top#(U11(mark(0), _x22))top#(mark(U11(cons(s(_x61), nil), _x22)))top#(U11(cons(s(proper(_x61)), ok(nil)), proper(_x22)))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(nil))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(ok(nil))))))))top#(mark(U11(s(cons(length(length(tt)), s(_x61))), s(tt))))top#(U11(s(cons(length(length(ok(tt))), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(cons(U11(length(0), _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(ok(0)), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(cons(_x41, U11(_x71, _x72)), 0)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), ok(0)))
top#(mark(U11(s(cons(length(length(zeros)), s(cons(nil, _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(ok(nil), proper(_x82))))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), U12(_x71, _x72)), U11(0, 0)), _x22)))top#(U11(cons(U11(length(proper(_x71)), U12(proper(_x71), proper(_x72))), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(cons(_x41, U11(_x71, _x72)), U12(_x51, _x52))))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), U12(proper(_x51), proper(_x52))))top#(mark(U11(cons(U11(_x61, _x62), U11(0, _x72)), length(_x51))))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), proper(_x72))), length(proper(_x51))))
top#(mark(U11(cons(tt, nil), _x22)))top#(U11(cons(ok(tt), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, U11(_x71, _x72)), length(_x51))))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), length(proper(_x51))))
top#(mark(U11(cons(_x41, U11(_x71, _x72)), s(_x51))))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), s(proper(_x51))))top#(mark(U11(s(length(_x51)), s(_x51))))top#(U11(s(length(proper(_x51))), s(proper(_x51))))
top#(mark(U11(s(cons(length(length(nil)), tt)), s(tt))))top#(U11(s(cons(length(length(ok(nil))), ok(tt))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(zeros, cons(_x81, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(ok(zeros), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(s(U12(_x51, _x52)), s(s(U11(_x71, _x72))))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(s(U11(proper(_x71), proper(_x72))))))top#(mark(U11(s(0), _x22)))top#(U11(s(ok(0)), proper(_x22)))
top#(mark(U11(cons(length(s(_x71)), nil), _x22)))top#(U11(cons(length(s(proper(_x71))), ok(nil)), proper(_x22)))top#(mark(U11(cons(_x41, U11(0, U12(_x101, _x102))), _x22)))top#(U11(cons(proper(_x41), U11(ok(0), U12(proper(_x101), proper(_x102)))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, _x62), U11(_x71, _x72)), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(s(cons(nil, _x52)), s(tt))))top#(U11(s(cons(ok(nil), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(0))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(ok(0))))))))top#(mark(U11(s(cons(length(length(length(_x81))), s(cons(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(length(proper(_x81)))), s(cons(proper(_x81), proper(_x82))))), s(ok(tt))))
top#(mark(U11(cons(_x41, U11(0, 0)), _x22)))top#(U11(cons(proper(_x41), U11(ok(0), ok(0))), proper(_x22)))top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(cons(_x101, _x102), _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(cons(proper(_x101), proper(_x102)), proper(_x92)), proper(_x82))))), s(ok(tt))))
top#(mark(U11(U11(_x41, _x42), tt)))top#(U11(U11(proper(_x41), proper(_x42)), ok(tt)))top#(mark(U11(s(cons(length(length(zeros)), s(cons(_x81, s(_x91))))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(proper(_x81), s(proper(_x91)))))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), tt)), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), ok(tt))), s(ok(tt))))top#(mark(U11(cons(length(s(_x51)), nil), nil)))top#(U11(cons(length(s(proper(_x51))), ok(nil)), ok(nil)))
top#(mark(U11(cons(U11(_x61, _x62), U11(0, _x72)), cons(_x51, _x52))))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), proper(_x72))), cons(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(length(length(_x71)), s(cons(_x81, zeros)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(proper(_x81), ok(zeros))))), s(ok(tt))))
top#(mark(U11(s(U11(_x51, length(_x61))), s(tt))))top#(U11(s(U11(proper(_x51), length(proper(_x61)))), s(ok(tt))))top#(mark(U11(cons(_x41, _x42), zeros)))top#(U11(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, U11(_x81, _x82))), _x22)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), U11(proper(_x81), proper(_x82)))), proper(_x22)))top#(mark(U11(s(cons(length(s(_x71)), _x52)), s(tt))))top#(U11(s(cons(length(s(proper(_x71))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, _x92), length(_x91))))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), proper(_x92)), length(proper(_x91)))))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(cons(_x101, _x102), _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(cons(proper(_x101), proper(_x102)), proper(_x82)))))))
top#(mark(U11(_x21, U12(_x51, 0))))top#(U11(proper(_x21), U12(proper(_x51), ok(0))))top#(mark(U11(length(U11(_x51, _x52)), 0)))top#(U11(length(U11(proper(_x51), proper(_x52))), ok(0)))
top#(mark(U11(s(_x41), s(s(U11(_x71, zeros))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), ok(zeros))))))top#(mark(U11(s(_x41), s(s(U11(cons(_x81, _x82), _x72))))))top#(U11(s(proper(_x41)), s(s(U11(cons(proper(_x81), proper(_x82)), proper(_x72))))))
top#(mark(U11(cons(U11(U12(_x71, _x72), _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(U12(proper(_x71), proper(_x72)), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(tt))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(ok(tt))))))))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(nil, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(ok(nil), proper(_x82)))))))top#(mark(U11(_x21, s(_x51))))top#(U11(proper(_x21), s(proper(_x51))))
top#(mark(U11(cons(length(0), nil), _x22)))top#(U11(cons(length(ok(0)), ok(nil)), proper(_x22)))top#(mark(U11(s(cons(length(length(_x71)), s(cons(_x81, s(_x91))))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(proper(_x81), s(proper(_x91)))))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(zeros)), s(cons(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(proper(_x81), proper(_x82))))), ok(s(tt))))top#(mark(U11(s(nil), s(_x51))))top#(U11(s(ok(nil)), s(proper(_x51))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(proper(_x51), cons(proper(_x61), proper(_x62)))), ok(s(tt))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(U11(proper(_x61), proper(_x62)), proper(_x52))), ok(s(tt))))
top#(mark(U11(tt, U12(_x51, _x52))))top#(U11(ok(tt), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(U11(_x51, U11(_x61, _x62))), s(tt))))top#(U11(s(U11(proper(_x51), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(zeros)), s(cons(_x81, cons(_x91, _x92))))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(proper(_x81), cons(proper(_x91), proper(_x92)))))), s(ok(tt))))top#(mark(U11(cons(zeros, U11(0, _x72)), _x22)))top#(U11(cons(ok(zeros), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(U12(_x41, s(_x51)), zeros)))top#(U11(U12(proper(_x41), s(proper(_x51))), ok(zeros)))top#(mark(U11(s(cons(length(length(0)), s(_x61))), s(tt))))top#(U11(s(cons(length(length(ok(0))), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(cons(U11(_x61, _x62), U11(0, zeros)), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), ok(zeros))), proper(_x22)))top#(mark(U11(s(U11(_x51, 0)), s(tt))))top#(U11(s(U11(proper(_x51), ok(0))), s(ok(tt))))
top#(mark(U11(cons(cons(_x61, _x62), _x42), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(length(length(zeros)), s(cons(length(_x91), _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(length(proper(_x91)), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(cons(0, zeros)), s(tt))))top#(U11(s(ok(cons(0, zeros))), s(ok(tt))))top#(mark(U11(cons(U11(length(nil), _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(ok(nil)), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(length(0), 0)))top#(U11(length(ok(0)), ok(0)))top#(mark(U11(s(zeros), s(s(U11(_x71, cons(_x81, _x82)))))))top#(U11(s(ok(zeros)), s(s(U11(proper(_x71), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, cons(_x111, _x112))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), cons(proper(_x111), proper(_x112))))))))top#(mark(U11(cons(tt, _x42), _x22)))top#(U11(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(nil))top#(ok(nil))top#(mark(U11(s(cons(length(zeros), cons(_x61, _x62))), s(tt))))top#(U11(s(cons(length(ok(zeros)), cons(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(cons(_x41, U11(U11(_x91, _x92), _x72)), _x22)))top#(U11(cons(proper(_x41), U11(U11(proper(_x91), proper(_x92)), proper(_x72))), proper(_x22)))top#(mark(U11(s(zeros), s(_x51))))top#(U11(s(ok(zeros)), s(proper(_x51))))
top#(mark(U11(s(cons(length(length(zeros)), s(cons(0, _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(ok(0), proper(_x82))))), s(ok(tt))))top#(mark(U11(cons(length(_x51), U11(0, _x72)), nil)))top#(U11(cons(length(proper(_x51)), U11(ok(0), proper(_x72))), ok(nil)))
top#(mark(U11(length(length(_x61)), _x22)))top#(U11(length(length(proper(_x61))), proper(_x22)))top#(mark(U11(zeros, _x22)))top#(U11(ok(zeros), proper(_x22)))
top#(mark(U11(cons(0, U11(0, zeros)), nil)))top#(U11(cons(ok(0), U11(ok(0), ok(zeros))), ok(nil)))top#(mark(U11(cons(_x41, U11(0, _x72)), U11(_x51, _x52))))top#(U11(cons(proper(_x41), U11(ok(0), proper(_x72))), U11(proper(_x51), proper(_x52))))
top#(mark(U11(length(U12(_x61, _x62)), _x22)))top#(U11(length(U12(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(s(s(_x141))))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(s(s(proper(_x141))))))))))
top#(mark(U11(s(_x41), s(s(U11(length(_x81), cons(_x81, s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(length(proper(_x81)), cons(proper(_x81), s(proper(_x111))))))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(length(_x101), s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(length(proper(_x101)), s(proper(_x111))))))))
top#(mark(U11(cons(U11(U11(_x71, _x72), _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(U11(proper(_x71), proper(_x72)), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(cons(_x41, nil), s(_x51))))top#(U11(cons(proper(_x41), ok(nil)), s(proper(_x51))))
top#(mark(U11(s(cons(_x51, length(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), length(proper(_x61)))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(zeros, s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(ok(zeros), s(s(proper(_x131)))))))))
top#(ok(cons(length(nil), _x22)))top#(cons(mark(0), _x22))top#(mark(U11(cons(0, U11(0, s(_x81))), nil)))top#(U11(cons(ok(0), U11(ok(0), s(proper(_x81)))), ok(nil)))
top#(mark(U11(cons(U12(_x51, _x52), U11(0, _x72)), nil)))top#(U11(cons(U12(proper(_x51), proper(_x52)), U11(ok(0), proper(_x72))), ok(nil)))top#(mark(U11(_x21, U11(_x51, _x52))))top#(U11(proper(_x21), U11(proper(_x51), proper(_x52))))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, 0)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), ok(0)))))))top#(mark(U11(s(cons(length(length(tt)), _x52)), s(tt))))top#(U11(s(cons(length(length(ok(tt))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(proper(_x81), proper(_x82))))), ok(s(tt))))top#(mark(U11(cons(U11(length(U12(_x81, _x82)), 0), U11(0, 0)), _x22)))top#(U11(cons(U11(length(U12(proper(_x81), proper(_x82))), ok(0)), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(s(cons(length(length(nil)), s(cons(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), s(cons(proper(_x81), proper(_x82))))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), 0), U11(0, 0)), _x22)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), ok(U11(0, 0))), proper(_x22)))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(_x81, 0)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(proper(_x81), ok(0))))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), 0), U11(0, 0)), 0)))top#(U11(cons(U11(length(proper(_x71)), ok(0)), U11(ok(0), ok(0))), ok(0)))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(tt, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(ok(tt), proper(_x92)), proper(_x82))))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(zeros)))))top#(U11(s(proper(_x41)), s(s(ok(zeros)))))
top#(mark(U11(cons(length(_x61), _x42), _x22)))top#(U11(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(length(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(length(proper(_x131)))))))))
top#(mark(U11(s(cons(U12(_x61, _x62), _x52)), s(tt))))top#(U11(s(cons(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(U12(_x41, tt), zeros)))top#(U11(U12(proper(_x41), ok(tt)), ok(zeros)))
top#(mark(U11(cons(cons(_x61, _x62), U11(0, _x72)), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(length(_x101), s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(length(proper(_x101)), s(s(proper(_x131)))))))))
top#(mark(U11(0, tt)))top#(U11(ok(0), ok(tt)))top#(mark(U11(length(nil), zeros)))top#(U11(length(ok(nil)), ok(zeros)))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(s(_x101), s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(s(proper(_x101)), s(proper(_x111))))))))top#(mark(U11(cons(_x41, s(_x71)), _x22)))top#(U11(cons(proper(_x41), s(proper(_x71))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, _x62), U11(0, _x72)), zeros)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), proper(_x72))), ok(zeros)))top#(mark(U11(cons(_x41, _x42), cons(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, U11(0, nil)), _x22)))top#(U11(cons(proper(_x41), U11(ok(0), ok(nil))), proper(_x22)))top#(mark(U11(cons(U11(length(s(_x81)), _x62), U11(0, 0)), _x22)))top#(U11(cons(U11(length(s(proper(_x81))), proper(_x62)), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(cons(U11(cons(_x71, _x72), _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(cons(proper(_x71), proper(_x72)), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(cons(length(_x61), U11(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), U11(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(cons(U11(_x61, _x62), nil), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(nil, s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(ok(nil), s(s(proper(_x131)))))))))
top#(mark(U11(cons(U11(zeros, _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(ok(zeros), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(U11(length(_x61), _x52)), s(tt))))top#(U11(s(U11(length(proper(_x61)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(zeros)), s(cons(tt, _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(ok(tt), proper(_x82))))), s(ok(tt))))top#(ok(length(nil)))top#(mark(0))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, U11(_x101, _x102)), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), U11(proper(_x101), proper(_x102))), proper(_x82))))), s(ok(tt))))top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, tt), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), ok(tt)), proper(_x82))))), s(ok(tt))))
top#(mark(U11(cons(s(_x61), U11(_x71, _x72)), _x22)))top#(U11(cons(s(proper(_x61)), U11(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(s(cons(length(_x61), nil)), s(tt))))top#(U11(s(cons(length(proper(_x61)), ok(nil))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(nil)), s(tt))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), s(ok(tt)))), s(ok(tt))))top#(mark(U11(cons(U11(_x61, _x62), U11(0, _x72)), U11(_x51, _x52))))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), proper(_x72))), U11(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(nil)))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(ok(nil)))))top#(mark(U11(s(U11(_x51, _x52)), s(s(_x61)))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(s(proper(_x61)))))
top#(mark(U11(cons(_x41, U11(_x71, s(_x101))), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), s(proper(_x101)))), proper(_x22)))top#(ok(U12(_x21, _x22)))top#(U12(active(_x21), _x22))
top#(mark(U11(s(cons(length(cons(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(cons(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), zeros), U11(0, 0)), _x22)))top#(U11(cons(U11(length(proper(_x71)), ok(zeros)), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(s(U11(_x51, nil)), s(tt))))top#(U11(s(U11(proper(_x51), ok(nil))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(U11(_x81, _x82), cons(_x81, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(U11(proper(_x81), proper(_x82)), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(cons(U11(length(0), _x62), U11(0, 0)), _x22)))top#(U11(cons(U11(length(ok(0)), proper(_x62)), U11(ok(0), ok(0))), proper(_x22)))top#(mark(U11(s(tt), s(_x51))))top#(U11(s(ok(tt)), s(proper(_x51))))
top#(mark(U11(s(cons(length(tt), _x52)), s(tt))))top#(U11(s(cons(length(ok(tt)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(s(_x51)), s(tt))))top#(U11(s(s(proper(_x51))), s(ok(tt))))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(nil, s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(ok(nil), s(proper(_x111))))))))top#(mark(U11(cons(0, U11(0, 0)), nil)))top#(U11(cons(ok(0), U11(ok(0), ok(0))), ok(nil)))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(U11(_x131, _x132)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(U11(proper(_x131), proper(_x132)))))))))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(U11(s(cons(_x51, 0)), s(tt))))top#(U11(s(cons(proper(_x51), ok(0))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(s(_x81), cons(_x81, s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(s(proper(_x81)), cons(proper(_x81), s(s(proper(_x131)))))))))
top#(mark(U11(cons(length(cons(_x51, _x52)), nil), nil)))top#(U11(cons(length(cons(proper(_x51), proper(_x52))), ok(nil)), ok(nil)))top#(mark(U11(s(cons(length(length(U12(_x81, _x82))), s(cons(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(U12(proper(_x81), proper(_x82)))), s(cons(proper(_x81), proper(_x82))))), s(ok(tt))))
top#(mark(U11(cons(_x41, _x42), U11(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(s(_x101), _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(s(proper(_x101)), proper(_x82)))))))
top#(mark(U11(s(U11(U12(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(U12(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(s(nil), _x22)))top#(U11(s(ok(nil)), proper(_x22)))
top#(mark(U11(s(_x41), s(0))))top#(U11(s(proper(_x41)), s(ok(0))))top#(mark(U11(s(cons(length(U11(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(U11(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(U11(_x71, cons(_x81, s(s(_x131)))))))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U11(proper(_x71), cons(proper(_x81), s(s(proper(_x131)))))))))top#(mark(U11(cons(0, U11(0, length(_x81))), nil)))top#(U11(cons(ok(0), U11(ok(0), length(proper(_x81)))), ok(nil)))
top#(ok(U11(U12(tt, _x41), _x22)))top#(U11(mark(s(length(_x41))), _x22))top#(ok(U11(cons(_x41, _x42), _x22)))top#(U11(cons(active(_x41), _x42), _x22))
top#(mark(U11(cons(nil, U11(0, _x72)), _x22)))top#(U11(cons(ok(nil), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, 0)), length(_x51))))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), ok(0))), length(proper(_x51))))
top#(mark(U11(s(length(_x51)), s(s(U11(_x71, cons(_x81, _x82)))))))top#(U11(s(length(proper(_x51))), s(s(U11(proper(_x71), cons(proper(_x81), proper(_x82)))))))top#(mark(U11(s(_x41), s(zeros))))top#(U11(s(proper(_x41)), s(ok(zeros))))
top#(mark(U11(cons(U11(length(_x71), cons(_x71, _x72)), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(proper(_x71)), cons(proper(_x71), proper(_x72))), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(cons(_x41, U11(0, _x72)), U12(_x51, _x52))))top#(U11(cons(proper(_x41), U11(ok(0), proper(_x72))), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(length(_x51)), s(tt))))top#(U11(s(length(proper(_x51))), s(ok(tt))))top#(mark(U11(U11(_x41, _x42), zeros)))top#(U11(U11(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(U11(_x101, _x102), _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(U11(proper(_x101), proper(_x102)), proper(_x82)))))))top#(mark(U11(s(cons(length(length(_x71)), s(cons(U12(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(U12(proper(_x91), proper(_x92)), proper(_x82))))), s(ok(tt))))
top#(mark(U11(cons(U11(length(length(_x81)), _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(length(proper(_x81))), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(cons(U11(length(U11(_x81, _x82)), _x62), U11(0, 0)), _x22)))top#(U11(cons(U11(length(U11(proper(_x81), proper(_x82))), proper(_x62)), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(s(_x41), s(s(U11(_x71, length(_x81)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), length(proper(_x81)))))))top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, _x92), nil)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), proper(_x92)), ok(nil))))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(0)), U11(_x61, _x62))), s(tt))))top#(U11(s(cons(length(length(ok(0))), U11(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(0, cons(_x81, s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(ok(0), cons(proper(_x81), s(proper(_x111))))))))
top#(mark(U11(cons(_x41, U11(0, length(_x81))), nil)))top#(U11(cons(proper(_x41), U11(ok(0), length(proper(_x81)))), ok(nil)))top#(mark(U11(length(_x41), zeros)))top#(U11(length(proper(_x41)), ok(zeros)))
top#(mark(U11(s(s(_x51)), s(s(U11(_x71, _x72))))))top#(U11(s(s(proper(_x51))), s(s(U11(proper(_x71), proper(_x72))))))top#(mark(U11(cons(U11(length(_x71), U11(_x71, _x72)), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(proper(_x71)), U11(proper(_x71), proper(_x72))), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(U11(length(s(_x81)), 0), U11(0, 0)), _x22)))top#(U11(cons(U11(length(s(proper(_x81))), ok(0)), U11(ok(0), ok(0))), proper(_x22)))top#(mark(U11(s(cons(length(length(nil)), _x52)), s(tt))))top#(U11(s(cons(length(length(ok(nil))), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(cons(_x51, tt)), s(tt))))top#(U11(s(cons(proper(_x51), ok(tt))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(cons(_x81, _x82), cons(_x81, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(cons(proper(_x81), proper(_x82)), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(cons(_x41, U11(_x71, _x72)), tt)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), ok(tt)))top#(mark(U11(s(cons(0, zeros)), s(tt))))top#(U11(s(cons(ok(0), ok(zeros))), ok(s(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(U11(_x101, _x102), _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(U11(proper(_x101), proper(_x102)), proper(_x92)), proper(_x82))))), s(ok(tt))))top#(mark(U11(cons(length(_x61), U11(_x71, _x72)), _x22)))top#(U11(cons(length(proper(_x61)), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(s(cons(length(_x61), U12(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(s(_x51)), s(_x51))))top#(U11(s(s(proper(_x51))), s(proper(_x51))))
top#(mark(U11(cons(U11(length(_x71), U12(_x71, _x72)), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(proper(_x71)), U12(proper(_x71), proper(_x72))), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(cons(cons(_x61, _x62), zeros)), s(tt))))top#(U11(s(cons(cons(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))
top#(mark(U11(U12(U12(_x51, _x52), _x42), zeros)))top#(U11(U12(U12(proper(_x51), proper(_x52)), proper(_x42)), ok(zeros)))top#(mark(U11(s(U11(_x51, s(_x61))), s(tt))))top#(U11(s(U11(proper(_x51), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(cons(U11(length(tt), 0), U11(0, 0)), _x22)))top#(U11(cons(U11(length(ok(tt)), ok(0)), U11(ok(0), ok(0))), proper(_x22)))top#(ok(U11(zeros, _x22)))top#(U11(mark(cons(0, zeros)), _x22))
top#(mark(U11(s(cons(length(length(_x71)), s(U12(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(U12(proper(_x81), proper(_x82))))), s(ok(tt))))top#(ok(cons(U11(_x41, _x42), _x22)))top#(cons(U11(active(_x41), _x42), _x22))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, _x92), tt)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), proper(_x92)), ok(tt))))), s(ok(tt))))top#(mark(U11(cons(_x41, _x42), s(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), s(proper(_x51))))
top#(mark(U11(s(cons(length(length(0)), U12(_x61, _x62))), s(tt))))top#(U11(s(cons(length(length(ok(0))), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, cons(_x81, _x82))), _x22)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), cons(proper(_x81), proper(_x82)))), proper(_x22)))
top#(mark(U11(s(U11(cons(_x61, _x62), _x52)), s(tt))))top#(U11(s(U11(cons(proper(_x61), proper(_x62)), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, 0)), cons(_x51, _x52))))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), ok(0))), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(_x41, U11(0, zeros)), nil)))top#(U11(cons(proper(_x41), U11(ok(0), ok(zeros))), ok(nil)))top#(mark(U11(cons(U11(length(U12(_x81, _x82)), _x62), U11(0, 0)), _x22)))top#(U11(cons(U11(length(U12(proper(_x81), proper(_x82))), proper(_x62)), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(s(cons(length(length(nil)), s(s(_x81)))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), s(s(proper(_x81))))), s(ok(tt))))top#(mark(U11(cons(_x41, U11(length(_x91), _x72)), _x22)))top#(U11(cons(proper(_x41), U11(length(proper(_x91)), proper(_x72))), proper(_x22)))
top#(mark(U11(s(cons(zeros, _x52)), s(tt))))top#(U11(s(cons(ok(zeros), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(length(length(_x81))), _x52)), s(tt))))top#(U11(s(cons(length(length(length(proper(_x81)))), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(_x41, U11(zeros, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(ok(zeros), proper(_x72))), proper(_x22)))top#(mark(U11(U12(cons(_x51, _x52), _x42), zeros)))top#(U11(U12(cons(proper(_x51), proper(_x52)), proper(_x42)), ok(zeros)))
top#(mark(U11(cons(U11(length(length(_x81)), 0), U11(0, 0)), _x22)))top#(U11(cons(U11(length(length(proper(_x81))), ok(0)), U11(ok(0), ok(0))), proper(_x22)))top#(mark(U11(s(cons(length(length(_x71)), cons(_x61, _x62))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), cons(proper(_x61), proper(_x62)))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(_x81, length(_x91))))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(proper(_x81), length(proper(_x91)))))), s(ok(tt))))top#(mark(U11(U12(length(_x51), _x42), zeros)))top#(U11(U12(length(proper(_x51)), proper(_x42)), ok(zeros)))
top#(mark(U11(U12(tt, _x42), zeros)))top#(U11(U12(ok(tt), proper(_x42)), ok(zeros)))top#(mark(U11(cons(_x41, U11(U12(_x91, _x92), _x72)), _x22)))top#(U11(cons(proper(_x41), U11(U12(proper(_x91), proper(_x92)), proper(_x72))), proper(_x22)))
top#(ok(cons(cons(_x41, _x42), _x22)))top#(cons(cons(active(_x41), _x42), _x22))top#(mark(U11(cons(U11(_x61, _x62), U11(0, _x72)), nil)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), proper(_x72))), ok(nil)))
top#(mark(U11(s(cons(length(length(U12(_x81, _x82))), s(cons(cons(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(U12(proper(_x81), proper(_x82)))), s(cons(cons(proper(_x91), proper(_x92)), proper(_x82))))), s(ok(tt))))top#(mark(U11(s(U11(_x51, tt)), s(tt))))top#(U11(s(U11(proper(_x51), ok(tt))), s(ok(tt))))
top#(mark(U11(length(_x41), U11(_x51, _x52))))top#(U11(length(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(U11(cons(_x41, U11(_x71, length(_x101))), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), length(proper(_x101)))), proper(_x22)))
top#(mark(U11(cons(nil, nil), _x22)))top#(U11(cons(ok(nil), ok(nil)), proper(_x22)))top#(mark(U11(s(cons(length(length(nil)), s(U11(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), s(U11(proper(_x81), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, length(_x101)), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), length(proper(_x101))), proper(_x82))))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, U12(_x81, _x82))), _x22)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), U12(proper(_x81), proper(_x82)))), proper(_x22)))
top#(mark(U11(s(cons(length(length(0)), length(_x61))), s(tt))))top#(U11(s(cons(length(length(ok(0))), length(proper(_x61)))), s(ok(tt))))top#(mark(U11(U12(s(_x51), _x42), zeros)))top#(U11(U12(s(proper(_x51)), proper(_x42)), ok(zeros)))
top#(mark(U11(cons(_x41, nil), nil)))top#(U11(cons(proper(_x41), ok(nil)), ok(nil)))top#(mark(U11(s(cons(length(U12(_x71, _x72)), _x52)), s(tt))))top#(U11(s(cons(length(U12(proper(_x71), proper(_x72))), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(zeros)), s(cons(cons(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(cons(proper(_x91), proper(_x92)), proper(_x82))))), s(ok(tt))))top#(mark(U11(s(cons(length(length(nil)), nil)), s(tt))))top#(U11(s(cons(length(length(ok(nil))), ok(nil))), s(ok(tt))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(ok(nil), proper(_x52))), ok(s(tt))))top#(mark(U11(s(cons(_x51, _x52)), s(tt))))top#(U11(s(cons(proper(_x51), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(_x41), s(s(U11(U12(_x81, _x82), cons(_x81, s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(U12(proper(_x81), proper(_x82)), cons(proper(_x81), s(proper(_x111))))))))top#(mark(U11(s(cons(length(length(0)), 0)), s(tt))))top#(U11(s(cons(length(length(ok(0))), ok(0))), s(ok(tt))))
top#(mark(U11(s(_x41), s(U12(_x61, _x62)))))top#(U11(s(proper(_x41)), s(U12(proper(_x61), proper(_x62)))))top#(mark(U11(cons(U11(length(_x71), 0), U11(0, 0)), U11(_x51, _x52))))top#(U11(cons(U11(length(proper(_x71)), ok(0)), U11(ok(0), ok(0))), U11(proper(_x51), proper(_x52))))
top#(ok(U11(U11(tt, _x41), _x22)))top#(U11(mark(U12(tt, _x41)), _x22))top#(mark(U11(cons(_x41, U11(_x71, _x72)), cons(_x51, _x52))))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), cons(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(length(length(_x71)), s(tt))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(ok(tt)))), s(ok(tt))))top#(mark(U11(s(_x41), cons(_x51, _x52))))top#(U11(s(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(U11(_x71, _x72))))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U11(proper(_x71), proper(_x72))))))top#(mark(U11(cons(length(nil), nil), _x22)))top#(U11(cons(length(ok(nil)), ok(nil)), proper(_x22)))
top#(mark(U11(s(length(_x51)), s(s(U11(_x71, _x72))))))top#(U11(s(length(proper(_x51))), s(s(U11(proper(_x71), proper(_x72))))))top#(mark(U11(s(cons(_x51, _x52)), s(s(zeros)))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(ok(zeros)))))
top#(mark(U11(s(_x41), s(s(U11(tt, cons(_x81, s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(ok(tt), cons(proper(_x81), s(s(proper(_x131)))))))))top#(mark(U11(s(cons(length(length(s(_x81))), s(cons(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(s(proper(_x81)))), s(cons(proper(_x81), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(U12(_x101, _x102), _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(U12(proper(_x101), proper(_x102)), proper(_x92)), proper(_x82))))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(tt, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(ok(tt), proper(_x82)))))))
top#(mark(U11(cons(length(tt), nil), nil)))top#(U11(cons(length(ok(tt)), ok(nil)), ok(nil)))top#(mark(U11(s(cons(length(length(0)), tt)), s(tt))))top#(U11(s(cons(length(length(ok(0))), ok(tt))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(tt, _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(ok(tt), proper(_x82))))), s(ok(tt))))top#(mark(U11(cons(_x41, U11(0, _x72)), tt)))top#(U11(cons(proper(_x41), U11(ok(0), proper(_x72))), ok(tt)))
top#(mark(U11(cons(_x41, U11(0, _x72)), cons(_x51, _x52))))top#(U11(cons(proper(_x41), U11(ok(0), proper(_x72))), cons(proper(_x51), proper(_x52))))top#(mark(U11(cons(U11(length(length(_x81)), _x62), U11(0, 0)), _x22)))top#(U11(cons(U11(length(length(proper(_x81))), proper(_x62)), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(s(cons(length(length(U11(_x81, _x82))), s(cons(cons(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(U11(proper(_x81), proper(_x82)))), s(cons(cons(proper(_x91), proper(_x92)), proper(_x82))))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, U12(_x111, _x112))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), U12(proper(_x111), proper(_x112))))))))
top#(mark(U11(s(_x41), s(s(U11(U12(_x81, _x82), cons(_x81, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(U12(proper(_x81), proper(_x82)), cons(proper(_x81), proper(_x82)))))))top#(mark(U11(cons(U11(length(_x71), nil), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(proper(_x71)), ok(nil)), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(length(_x61), U11(0, _x72)), _x22)))top#(U11(cons(length(proper(_x61)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(_x71, U12(_x81, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), U12(proper(_x81), proper(_x82)))))))
top#(mark(U11(cons(U11(length(tt), _x62), U11(0, 0)), _x22)))top#(U11(cons(U11(length(ok(tt)), proper(_x62)), U11(ok(0), ok(0))), proper(_x22)))top#(mark(U11(s(cons(s(_x61), _x52)), s(tt))))top#(U11(s(cons(s(proper(_x61)), proper(_x52))), s(ok(tt))))
top#(mark(U11(cons(length(0), nil), nil)))top#(U11(cons(length(ok(0)), ok(nil)), ok(nil)))top#(mark(U11(s(cons(length(length(_x71)), s(cons(zeros, _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(ok(zeros), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(nil), s(s(U11(_x71, cons(_x81, _x82)))))))top#(U11(s(ok(nil)), s(s(U11(proper(_x71), cons(proper(_x81), proper(_x82)))))))top#(mark(U11(_x21, U12(cons(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(cons(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(U11(length(nil), length(_x51))))top#(U11(length(ok(nil)), length(proper(_x51))))top#(mark(U11(length(nil), _x22)))top#(U11(ok(length(nil)), proper(_x22)))
top#(mark(U11(s(cons(length(length(zeros)), s(cons(_x81, tt)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(proper(_x81), ok(tt))))), s(ok(tt))))top#(mark(U11(s(nil), s(tt))))top#(U11(s(ok(nil)), s(ok(tt))))
top#(mark(U11(cons(_x41, _x42), U12(_x51, _x52))))top#(U11(cons(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(U12(_x61, _x62), _x52)), s(s(_x61)))))top#(U11(s(cons(U12(proper(_x61), proper(_x62)), proper(_x52))), s(s(proper(_x61)))))
top#(mark(U11(s(nil), s(s(U11(_x71, cons(_x81, s(_x111))))))))top#(U11(s(ok(nil)), s(s(U11(proper(_x71), cons(proper(_x81), s(proper(_x111))))))))top#(ok(U12(tt, _x21)))top#(mark(s(length(_x21))))
top#(mark(U11(cons(U11(length(U11(_x81, _x82)), 0), U11(0, 0)), _x22)))top#(U11(cons(U11(length(U11(proper(_x81), proper(_x82))), ok(0)), U11(ok(0), ok(0))), proper(_x22)))top#(mark(U11(s(tt), s(tt))))top#(U11(s(cons(proper(_x51), proper(_x52))), ok(s(tt))))
top#(mark(U11(cons(U11(_x61, 0), U11(0, _x72)), _x22)))top#(U11(cons(U11(proper(_x61), ok(0)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(cons(length(length(nil)), 0)), s(tt))))top#(U11(s(cons(length(length(ok(nil))), ok(0))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(zeros)), _x52)), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), proper(_x52))), s(ok(tt))))top#(mark(U11(cons(_x41, _x42), tt)))top#(U11(cons(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(cons(_x41, U11(_x71, zeros)), _x22)))top#(U11(cons(proper(_x41), U11(proper(_x71), ok(zeros))), proper(_x22)))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, 0)), zeros)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), ok(0))), ok(zeros)))
top#(mark(U11(cons(length(length(_x71)), nil), _x22)))top#(U11(cons(length(length(proper(_x71))), ok(nil)), proper(_x22)))top#(mark(U11(cons(length(nil), nil), nil)))top#(U11(cons(length(ok(nil)), ok(nil)), ok(nil)))
top#(ok(cons(U12(tt, _x41), _x22)))top#(cons(mark(s(length(_x41))), _x22))top#(mark(U11(s(cons(s(_x61), _x52)), s(s(_x61)))))top#(U11(s(cons(s(proper(_x61)), proper(_x52))), s(s(proper(_x61)))))
top#(mark(U11(cons(U11(_x61, _x62), U11(0, tt)), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), ok(tt))), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(U12(_x131, _x132)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(U12(proper(_x131), proper(_x132)))))))))
top#(mark(U11(s(length(_x61)), _x22)))top#(U11(s(length(proper(_x61))), proper(_x22)))top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(s(proper(_x61)), proper(_x52))), ok(s(tt))))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(zeros))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(ok(zeros))))))))top#(mark(U11(s(cons(_x51, U12(_x61, _x62))), s(s(_x61)))))top#(U11(s(cons(proper(_x51), U12(proper(_x61), proper(_x62)))), s(s(proper(_x61)))))
top#(mark(U11(U12(_x41, U11(_x51, _x52)), zeros)))top#(U11(U12(proper(_x41), U11(proper(_x51), proper(_x52))), ok(zeros)))top#(mark(U11(cons(U11(length(_x71), 0), U11(0, 0)), length(_x51))))top#(U11(cons(U11(length(proper(_x71)), ok(0)), U11(ok(0), ok(0))), length(proper(_x51))))
top#(mark(U11(s(cons(tt, _x52)), s(s(_x61)))))top#(U11(s(cons(ok(tt), proper(_x52))), s(s(proper(_x61)))))top#(ok(cons(length(cons(_x42, _x41)), _x22)))top#(cons(mark(U11(tt, _x41)), _x22))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(proper(_x51), U11(proper(_x61), proper(_x62)))), ok(s(tt))))top#(mark(U11(s(_x41), s(s(U11(zeros, cons(_x81, s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(ok(zeros), cons(proper(_x81), s(proper(_x111))))))))
top#(mark(U11(cons(U11(_x61, zeros), U11(0, _x72)), _x22)))top#(U11(cons(U11(proper(_x61), ok(zeros)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(cons(0, U11(0, cons(_x81, _x82))), nil)))top#(U11(cons(ok(0), U11(ok(0), cons(proper(_x81), proper(_x82)))), ok(nil)))
top#(mark(U11(_x21, U12(_x51, U11(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), U11(proper(_x81), proper(_x82)))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, length(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), length(proper(_x111))))))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(proper(_x51), ok(zeros))), ok(s(tt))))top#(mark(U11(cons(U12(_x61, _x62), nil), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), ok(nil)), proper(_x22)))
top#(mark(U11(s(cons(length(length(_x71)), zeros)), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), ok(zeros))), s(ok(tt))))top#(mark(U11(s(cons(length(length(_x71)), s(cons(U11(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(U11(proper(_x91), proper(_x92)), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(zeros), s(s(U11(_x71, _x72))))))top#(U11(s(ok(zeros)), s(s(U11(proper(_x71), proper(_x72))))))top#(mark(U11(s(cons(length(length(_x71)), s(cons(length(_x91), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(length(proper(_x91)), proper(_x82))))), s(ok(tt))))
top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, _x72)), nil)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), proper(_x72))), ok(nil)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(U12(_x101, _x102), s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(U12(proper(_x101), proper(_x102)), s(proper(_x111))))))))
top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, zeros)), _x22)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), ok(zeros))), proper(_x22)))top#(mark(U11(cons(U11(tt, _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(ok(tt), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(s(_x41), s(s(U11(_x71, tt))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), ok(tt))))))top#(mark(U11(_x21, cons(_x51, _x52))))top#(U11(proper(_x21), cons(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(U12(_x61, _x62), zeros)), s(tt))))top#(U11(s(cons(U12(proper(_x61), proper(_x62)), ok(zeros))), s(ok(tt))))top#(mark(U11(length(_x41), nil)))top#(U11(length(proper(_x41)), ok(nil)))
top#(mark(U11(cons(_x41, nil), U11(_x51, _x52))))top#(U11(cons(proper(_x41), ok(nil)), U11(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(length(length(0)), zeros)), s(tt))))top#(U11(s(cons(length(length(ok(0))), ok(zeros))), s(ok(tt))))
top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, 0)), U12(_x51, _x52))))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), ok(0))), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(0, s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(ok(0), s(proper(_x111))))))))
top#(mark(U11(s(cons(length(length(U11(_x81, _x82))), s(_x61))), s(tt))))top#(U11(s(cons(length(length(U11(proper(_x81), proper(_x82)))), s(proper(_x61)))), s(ok(tt))))top#(mark(U11(s(cons(length(length(nil)), s(length(_x81)))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), s(length(proper(_x81))))), s(ok(tt))))
top#(mark(U11(s(U11(_x61, _x62)), _x22)))top#(U11(s(U11(proper(_x61), proper(_x62))), proper(_x22)))top#(mark(U11(cons(U11(_x61, _x62), U11(0, U12(_x81, _x82))), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), U12(proper(_x81), proper(_x82)))), proper(_x22)))
top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(s(length(_x141))))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(s(length(proper(_x141))))))))))top#(mark(U11(s(cons(length(length(zeros)), s(cons(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(ok(length(zeros))), s(cons(proper(_x81), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(U12(_x81, _x82))), _x52)), s(tt))))top#(U11(s(cons(length(length(U12(proper(_x81), proper(_x82)))), proper(_x52))), s(ok(tt))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(length(proper(_x51))), ok(s(tt))))
top#(mark(U11(cons(U11(length(nil), _x62), U11(0, 0)), _x22)))top#(U11(cons(U11(length(ok(nil)), proper(_x62)), U11(ok(0), ok(0))), proper(_x22)))top#(mark(U11(s(cons(_x51, length(_x61))), s(s(_x61)))))top#(U11(s(cons(proper(_x51), length(proper(_x61)))), s(s(proper(_x61)))))
top#(mark(U11(s(zeros), s(s(U11(_x71, cons(_x81, s(_x111))))))))top#(U11(s(ok(zeros)), s(s(U11(proper(_x71), cons(proper(_x81), s(proper(_x111))))))))top#(mark(U11(cons(U11(length(U11(_x81, _x82)), _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(U11(proper(_x81), proper(_x82))), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(s(cons(length(length(zeros)), s(cons(_x81, U12(_x91, _x92))))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(proper(_x81), U12(proper(_x91), proper(_x92)))))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(tt, s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(ok(tt), s(proper(_x111))))))))
top#(mark(U11(cons(0, _x42), _x22)))top#(U11(cons(ok(0), proper(_x42)), proper(_x22)))top#(mark(U11(s(cons(length(length(nil)), s(zeros))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), s(ok(zeros)))), s(ok(tt))))
top#(mark(U11(cons(_x41, _x42), 0)))top#(U11(cons(proper(_x41), proper(_x42)), ok(0)))top#(mark(U11(tt, _x22)))top#(U11(ok(tt), proper(_x22)))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, _x92), 0)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), proper(_x92)), ok(0))))), s(ok(tt))))top#(mark(U11(cons(zeros, U11(_x71, _x72)), _x22)))top#(U11(cons(ok(zeros), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(nil, U11(_x71, _x72)), _x22)))top#(U11(cons(ok(nil), U11(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(nil, cons(_x81, s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(ok(nil), cons(proper(_x81), s(proper(_x111))))))))
top#(mark(U11(cons(U11(length(_x71), 0), U11(0, 0)), U12(_x51, _x52))))top#(U11(cons(U11(length(proper(_x71)), ok(0)), U11(ok(0), ok(0))), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(length(length(_x71)), s(_x61))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(proper(_x61)))), ok(s(tt))))
top#(mark(U11(s(_x41), s(s(s(_x71))))))top#(U11(s(proper(_x41)), s(s(s(proper(_x71))))))top#(mark(U11(s(cons(_x51, cons(_x61, _x62))), s(s(_x61)))))top#(U11(s(cons(proper(_x51), cons(proper(_x61), proper(_x62)))), s(s(proper(_x61)))))
top#(mark(U11(s(cons(length(length(0)), nil)), s(tt))))top#(U11(s(cons(length(length(ok(0))), ok(nil))), s(ok(tt))))top#(mark(U11(s(zeros), s(s(U11(_x71, cons(_x81, s(s(_x131)))))))))top#(U11(s(ok(zeros)), s(s(U11(proper(_x71), cons(proper(_x81), s(s(proper(_x131)))))))))
top#(mark(U11(s(_x41), s(s(U11(zeros, cons(_x81, s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(ok(zeros), cons(proper(_x81), s(s(proper(_x131)))))))))top#(mark(U11(s(cons(length(zeros), length(_x61))), s(tt))))top#(U11(s(cons(length(ok(zeros)), length(proper(_x61)))), s(ok(tt))))
top#(mark(U11(cons(length(_x61), nil), s(_x51))))top#(U11(cons(length(proper(_x61)), ok(nil)), s(proper(_x51))))top#(mark(U11(cons(U11(_x61, tt), U11(0, _x72)), _x22)))top#(U11(cons(U11(proper(_x61), ok(tt)), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(U11(length(U12(_x81, _x82)), _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(U12(proper(_x81), proper(_x82))), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(U11(_x51, _x52)), s(s(U11(_x71, cons(_x81, _x82)))))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(s(U11(proper(_x71), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(length(s(_x51)), 0)))top#(U11(length(s(proper(_x51))), ok(0)))top#(mark(U11(s(cons(length(zeros), _x52)), s(tt))))top#(U11(s(cons(ok(length(zeros)), proper(_x52))), s(ok(tt))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(s(proper(_x51))), ok(s(tt))))top#(ok(cons(U12(_x41, _x42), _x22)))top#(cons(U12(active(_x41), _x42), _x22))
top#(mark(U11(_x21, U12(U11(_x71, _x72), _x52))))top#(U11(proper(_x21), U12(U11(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(U11(cons(nil, U11(0, _x72)), nil)))top#(U11(cons(ok(nil), U11(ok(0), proper(_x72))), ok(nil)))
top#(mark(U11(s(cons(_x51, s(_x61))), s(tt))))top#(U11(s(cons(proper(_x51), s(proper(_x61)))), s(ok(tt))))top#(ok(U11(length(cons(_x42, _x41)), _x22)))top#(U11(mark(U11(tt, _x41)), _x22))
top#(mark(U11(cons(_x41, U11(_x71, _x72)), zeros)))top#(U11(cons(proper(_x41), U11(proper(_x71), proper(_x72))), ok(zeros)))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, 0)), tt)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), ok(0))), ok(tt)))
top#(mark(U11(cons(U11(length(cons(_x81, _x82)), 0), U11(0, 0)), _x22)))top#(U11(cons(U11(length(cons(proper(_x81), proper(_x82))), ok(0)), U11(ok(0), ok(0))), proper(_x22)))top#(mark(U11(s(cons(nil, _x52)), s(s(_x61)))))top#(U11(s(cons(ok(nil), proper(_x52))), s(s(proper(_x61)))))
top#(mark(U11(U12(0, _x42), zeros)))top#(U11(U12(ok(0), proper(_x42)), ok(zeros)))top#(mark(U11(cons(U11(_x61, _x62), U11(0, _x72)), s(_x51))))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), proper(_x72))), s(proper(_x51))))
top#(mark(U11(cons(cons(_x61, _x62), U11(_x71, _x72)), _x22)))top#(U11(cons(cons(proper(_x61), proper(_x62)), U11(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(U11(cons(U12(_x61, _x62), U11(_x71, _x72)), _x22)))top#(U11(cons(U12(proper(_x61), proper(_x62)), U11(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(s(_x41), nil)))top#(U11(s(proper(_x41)), ok(nil)))top#(mark(U11(s(cons(U11(_x61, _x62), _x52)), s(s(_x61)))))top#(U11(s(cons(U11(proper(_x61), proper(_x62)), proper(_x52))), s(s(proper(_x61)))))
top#(mark(U11(s(cons(_x51, tt)), s(s(_x61)))))top#(U11(s(cons(proper(_x51), ok(tt))), s(s(proper(_x61)))))top#(mark(U11(s(_x41), s(nil))))top#(U11(s(proper(_x41)), s(ok(nil))))
top#(mark(U11(s(U11(nil, _x52)), s(tt))))top#(U11(s(U11(ok(nil), proper(_x52))), s(ok(tt))))top#(mark(U11(s(cons(length(length(U12(_x81, _x82))), s(_x61))), s(tt))))top#(U11(s(cons(length(length(U12(proper(_x81), proper(_x82)))), s(proper(_x61)))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), nil)), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), ok(nil))), s(ok(tt))))top#(mark(U11(cons(length(_x61), nil), 0)))top#(U11(cons(length(proper(_x61)), ok(nil)), ok(0)))
top#(mark(U11(cons(U11(s(_x71), _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(s(proper(_x71)), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(U11(_x101, _x102), s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(U11(proper(_x101), proper(_x102)), s(proper(_x111))))))))
top#(mark(U11(length(zeros), _x22)))top#(U11(length(ok(zeros)), proper(_x22)))top#(mark(U11(cons(U11(_x61, U12(_x71, _x72)), U11(0, _x72)), _x22)))top#(U11(cons(U11(proper(_x61), U12(proper(_x71), proper(_x72))), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(_x41, nil), zeros)))top#(U11(cons(proper(_x41), ok(nil)), ok(zeros)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(U11(_x101, _x102), s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(U11(proper(_x101), proper(_x102)), s(s(proper(_x131)))))))))
top#(mark(U11(nil, zeros)))top#(U11(ok(nil), ok(zeros)))top#(mark(U11(s(cons(length(zeros), s(_x61))), s(tt))))top#(U11(s(cons(length(ok(zeros)), s(proper(_x61)))), s(ok(tt))))
top#(ok(cons(U11(tt, _x41), _x22)))top#(cons(mark(U12(tt, _x41)), _x22))top#(mark(U11(_x21, nil)))top#(U11(proper(_x21), ok(nil)))
top#(mark(U11(cons(U11(length(zeros), 0), U11(0, 0)), _x22)))top#(U11(cons(U11(length(ok(zeros)), ok(0)), U11(ok(0), ok(0))), proper(_x22)))top#(mark(U11(s(cons(_x51, nil)), s(tt))))top#(U11(s(cons(proper(_x51), ok(nil))), s(ok(tt))))
top#(mark(U11(s(_x41), U11(_x51, _x52))))top#(U11(s(proper(_x41)), U11(proper(_x51), proper(_x52))))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, _x72)), cons(_x51, _x52))))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), proper(_x72))), cons(proper(_x51), proper(_x52))))
top#(mark(U11(cons(s(_x61), _x42), _x22)))top#(U11(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, 0)), nil)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), ok(0))), ok(nil)))
top#(mark(U11(_x21, U12(0, _x52))))top#(U11(proper(_x21), U12(ok(0), proper(_x52))))top#(mark(U11(zeros, tt)))top#(U11(ok(zeros), ok(tt)))
top#(mark(U11(s(cons(_x51, cons(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(cons(length(U12(_x51, _x52)), nil), nil)))top#(U11(cons(length(U12(proper(_x51), proper(_x52))), ok(nil)), ok(nil)))
top#(mark(U11(cons(U11(_x61, _x62), U11(0, _x72)), tt)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), proper(_x72))), ok(tt)))top#(mark(U11(cons(0, U11(0, _x72)), _x22)))top#(U11(cons(ok(0), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(nil, U12(_x51, _x52))))top#(U11(ok(nil), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(cons(_x51, U11(_x61, _x62))), s(s(_x61)))))top#(U11(s(cons(proper(_x51), U11(proper(_x61), proper(_x62)))), s(s(proper(_x61)))))
top#(mark(U11(s(cons(zeros, zeros)), s(tt))))top#(U11(s(cons(ok(zeros), ok(zeros))), s(ok(tt))))top#(mark(U11(cons(length(cons(_x71, _x72)), nil), _x22)))top#(U11(cons(length(cons(proper(_x71), proper(_x72))), ok(nil)), proper(_x22)))
top#(mark(U11(cons(length(_x61), nil), tt)))top#(U11(cons(length(proper(_x61)), ok(nil)), ok(tt)))top#(mark(U11(U12(_x41, _x42), tt)))top#(U11(U12(proper(_x41), proper(_x42)), ok(tt)))
top#(mark(U11(cons(nil, _x42), _x22)))top#(U11(cons(ok(nil), proper(_x42)), proper(_x22)))top#(mark(U11(cons(tt, U11(0, _x72)), _x22)))top#(U11(cons(ok(tt), U11(ok(0), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(U11(_x61, U11(_x71, _x72)), U11(0, _x72)), _x22)))top#(U11(cons(U11(proper(_x61), U11(proper(_x71), proper(_x72))), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(proper(_x51), U12(proper(_x61), proper(_x62)))), ok(s(tt))))
top#(mark(U11(cons(_x41, U11(0, s(_x81))), nil)))top#(U11(cons(proper(_x41), U11(ok(0), s(proper(_x81)))), ok(nil)))top#(mark(U11(cons(_x41, U11(0, U11(_x81, _x82))), nil)))top#(U11(cons(proper(_x41), U11(ok(0), U11(proper(_x81), proper(_x82)))), ok(nil)))
top#(mark(U11(s(_x41), s(s(U11(_x71, s(_x81)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), s(proper(_x81)))))))top#(mark(U11(s(cons(length(length(U11(_x81, _x82))), s(cons(_x81, _x82)))), s(tt))))top#(U11(s(cons(length(length(U11(proper(_x81), proper(_x82)))), s(cons(proper(_x81), proper(_x82))))), s(ok(tt))))
top#(mark(U11(cons(U11(length(zeros), _x62), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(ok(zeros)), proper(_x62)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(length(_x81), cons(_x81, s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(length(proper(_x81)), cons(proper(_x81), s(s(proper(_x131)))))))))
top#(mark(U11(s(0), s(tt))))top#(U11(s(ok(0)), s(ok(tt))))top#(ok(cons(s(_x41), _x22)))top#(cons(s(active(_x41)), _x22))
top#(mark(U11(s(cons(length(length(cons(_x81, _x82))), s(_x61))), s(tt))))top#(U11(s(cons(length(length(cons(proper(_x81), proper(_x82)))), s(proper(_x61)))), s(ok(tt))))top#(mark(U11(nil, tt)))top#(U11(ok(nil), ok(tt)))
top#(mark(U11(s(_x41), s(s(U11(s(_x81), cons(_x81, s(_x111))))))))top#(U11(s(proper(_x41)), s(s(U11(s(proper(_x81)), cons(proper(_x81), s(proper(_x111))))))))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(s(nil)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(s(ok(nil)))))))))
top#(mark(U11(s(cons(length(length(length(_x81))), s(_x61))), s(tt))))top#(U11(s(cons(length(length(length(proper(_x81)))), s(proper(_x61)))), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(tt, cons(_x81, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(ok(tt), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(cons(tt, U11(0, _x72)), nil)))top#(U11(cons(ok(tt), U11(ok(0), proper(_x72))), ok(nil)))top#(mark(U11(cons(_x41, cons(_x71, _x72)), _x22)))top#(U11(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(U11(cons(_x41, U11(0, s(_x101))), _x22)))top#(U11(cons(proper(_x41), U11(ok(0), s(proper(_x101)))), proper(_x22)))top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(proper(_x51), ok(0))), ok(s(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(_x81, U11(_x91, _x92))))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(proper(_x81), U11(proper(_x91), proper(_x92)))))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, tt)), _x22)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), ok(tt))), proper(_x22)))
top#(mark(U11(s(cons(length(zeros), nil)), s(tt))))top#(U11(s(cons(length(ok(zeros)), ok(nil))), s(ok(tt))))top#(mark(U11(length(s(_x61)), _x22)))top#(U11(length(s(proper(_x61))), proper(_x22)))
top#(mark(U11(cons(length(U11(_x71, _x72)), nil), _x22)))top#(U11(cons(length(U11(proper(_x71), proper(_x72))), ok(nil)), proper(_x22)))top#(mark(U11(s(zeros), _x22)))top#(U11(s(ok(zeros)), proper(_x22)))
top#(mark(U11(cons(U11(length(_x71), 0), U11(0, 0)), zeros)))top#(U11(cons(U11(length(proper(_x71)), ok(0)), U11(ok(0), ok(0))), ok(zeros)))top#(mark(U11(cons(length(_x61), nil), U12(_x51, _x52))))top#(U11(cons(length(proper(_x61)), ok(nil)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(proper(_x51), length(proper(_x61)))), ok(s(tt))))top#(mark(U11(s(_x41), s(s(U11(0, cons(_x81, s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(ok(0), cons(proper(_x81), s(s(proper(_x131)))))))))
top#(mark(U11(s(zeros), s(tt))))top#(U11(s(ok(zeros)), s(ok(tt))))top#(mark(U11(s(_x41), s(s(U11(0, _x72))))))top#(U11(s(proper(_x41)), s(s(U11(ok(0), proper(_x72))))))
top#(mark(U11(s(tt), _x22)))top#(U11(s(ok(tt)), proper(_x22)))top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, _x92), U11(_x91, _x92))))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), proper(_x92)), U11(proper(_x91), proper(_x92)))))), s(ok(tt))))
top#(mark(U11(_x21, U12(_x51, cons(_x81, _x82)))))top#(U11(proper(_x21), U12(proper(_x51), cons(proper(_x81), proper(_x82)))))top#(mark(U11(s(cons(length(length(_x71)), s(cons(0, _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(ok(0), proper(_x82))))), s(ok(tt))))
top#(mark(U11(length(nil), nil)))top#(U11(length(ok(nil)), ok(nil)))top#(mark(U11(s(cons(length(zeros), tt)), s(tt))))top#(U11(s(cons(length(ok(zeros)), ok(tt))), s(ok(tt))))
top#(mark(U11(s(s(_x51)), s(s(U11(_x71, cons(_x81, s(_x111))))))))top#(U11(s(s(proper(_x51))), s(s(U11(proper(_x71), cons(proper(_x81), s(proper(_x111))))))))top#(mark(U11(s(tt), s(s(U11(_x71, cons(_x81, _x82)))))))top#(U11(s(ok(tt)), s(s(U11(proper(_x71), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(cons(U11(_x61, _x62), U11(0, _x72)), 0)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), proper(_x72))), ok(0)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, s(s(0)))))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), s(s(ok(0)))))))))
top#(mark(U11(s(_x41), s(s(U11(zeros, _x72))))))top#(U11(s(proper(_x41)), s(s(U11(ok(zeros), proper(_x72))))))top#(mark(U11(s(cons(length(length(nil)), zeros)), s(tt))))top#(U11(s(cons(length(length(ok(nil))), ok(zeros))), s(ok(tt))))
top#(mark(U11(_x21, length(_x51))))top#(U11(proper(_x21), length(proper(_x51))))top#(mark(U11(cons(U11(_x51, _x52), U11(0, _x72)), nil)))top#(U11(cons(U11(proper(_x51), proper(_x52)), U11(ok(0), proper(_x72))), ok(nil)))
top#(mark(U11(U12(_x41, 0), zeros)))top#(U11(U12(proper(_x41), ok(0)), ok(zeros)))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, 0)), 0)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), ok(0))), ok(0)))
top#(mark(U11(s(_x41), s(length(_x61)))))top#(U11(s(proper(_x41)), s(length(proper(_x61)))))top#(mark(U11(s(cons(_x51, _x52)), s(s(U11(_x71, cons(_x81, _x82)))))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U11(proper(_x71), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(s(0), s(s(U11(_x71, _x72))))))top#(U11(s(ok(0)), s(s(U11(proper(_x71), proper(_x72))))))top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(proper(_x51), ok(nil))), ok(s(tt))))
top#(mark(0))top#(ok(0))top#(mark(U11(0, U12(_x51, _x52))))top#(U11(ok(0), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(U11(_x71, cons(_x81, s(_x111))))))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U11(proper(_x71), cons(proper(_x81), s(proper(_x111))))))))top#(mark(U11(cons(U11(length(_x71), U11(_x71, _x72)), U11(0, 0)), _x22)))top#(U11(cons(U11(length(proper(_x71)), U11(proper(_x71), proper(_x72))), U11(ok(0), ok(0))), proper(_x22)))
top#(mark(U11(s(U11(_x51, _x52)), s(s(U11(_x71, cons(_x81, s(_x111))))))))top#(U11(s(U11(proper(_x51), proper(_x52))), s(s(U11(proper(_x71), cons(proper(_x81), s(proper(_x111))))))))top#(mark(U11(cons(U11(_x61, _x62), U11(0, nil)), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), ok(nil))), proper(_x22)))
top#(mark(U11(s(tt), s(s(U11(_x71, _x72))))))top#(U11(s(ok(tt)), s(s(U11(proper(_x71), proper(_x72))))))top#(mark(U11(s(_x41), s(s(U11(length(_x81), _x72))))))top#(U11(s(proper(_x41)), s(s(U11(length(proper(_x81)), proper(_x72))))))
top#(mark(U11(cons(U11(length(_x71), s(_x71)), U11(0, 0)), _x22)))top#(U11(cons(U11(length(proper(_x71)), s(proper(_x71))), U11(ok(0), ok(0))), proper(_x22)))top#(mark(U11(_x21, U12(_x51, s(_x81)))))top#(U11(proper(_x21), U12(proper(_x51), s(proper(_x81)))))
top#(mark(U11(cons(U11(_x61, _x62), _x42), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(0, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(ok(0), proper(_x82)))))))
top#(mark(U11(nil, _x22)))top#(U11(ok(nil), proper(_x22)))top#(mark(U11(0, _x22)))top#(U11(ok(0), proper(_x22)))
top#(mark(U11(s(U12(_x51, _x52)), s(s(U11(_x71, cons(_x81, s(_x111))))))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(s(U11(proper(_x71), cons(proper(_x81), s(proper(_x111))))))))top#(mark(U11(s(length(_x51)), s(s(_x61)))))top#(U11(s(length(proper(_x51))), s(s(proper(_x61)))))
top#(mark(U11(cons(_x41, U11(nil, _x72)), _x22)))top#(U11(cons(proper(_x41), U11(ok(nil), proper(_x72))), proper(_x22)))top#(mark(U11(s(cons(length(length(zeros)), s(cons(zeros, _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(ok(zeros), proper(_x82))))), s(ok(tt))))
top#(mark(U11(cons(U11(length(_x71), 0), U11(0, _x72)), _x22)))top#(U11(cons(U11(length(proper(_x71)), ok(0)), U11(ok(0), proper(_x72))), proper(_x22)))top#(mark(U11(s(_x41), s(s(U11(_x71, cons(_x81, tt)))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), cons(proper(_x81), ok(tt)))))))
top#(mark(U11(s(_x41), s(s(U12(_x71, _x72))))))top#(U11(s(proper(_x41)), s(s(U12(proper(_x71), proper(_x72))))))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, _x72)), s(_x51))))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), proper(_x72))), s(proper(_x51))))
top#(mark(U11(s(zeros), s(s(_x61)))))top#(U11(s(ok(zeros)), s(s(proper(_x61)))))top#(mark(U11(s(_x41), zeros)))top#(U11(s(proper(_x41)), ok(zeros)))
top#(mark(U11(s(cons(_x51, _x52)), s(s(tt)))))top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(ok(tt)))))top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(_x91, _x92), zeros)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(proper(_x91), proper(_x92)), ok(zeros))))), s(ok(tt))))
top#(mark(U11(s(_x41), s(s(U11(_x71, nil))))))top#(U11(s(proper(_x41)), s(s(U11(proper(_x71), ok(nil))))))top#(mark(U11(length(_x41), U12(_x51, _x52))))top#(U11(length(proper(_x41)), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(0), s(s(U11(_x71, cons(_x81, s(s(_x131)))))))))top#(U11(s(ok(0)), s(s(U11(proper(_x71), cons(proper(_x81), s(s(proper(_x131)))))))))top#(mark(U11(cons(U11(length(_x71), 0), U11(0, 0)), nil)))top#(U11(cons(U11(length(proper(_x71)), ok(0)), U11(ok(0), ok(0))), ok(nil)))
top#(mark(U11(U12(_x41, cons(_x51, _x52)), zeros)))top#(U11(U12(proper(_x41), cons(proper(_x51), proper(_x52))), ok(zeros)))top#(mark(U11(s(cons(length(length(zeros)), s(cons(U11(_x91, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(U11(proper(_x91), proper(_x92)), proper(_x82))))), s(ok(tt))))
top#(mark(U11(s(cons(length(length(_x71)), s(cons(cons(nil, _x92), _x82)))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(cons(ok(nil), proper(_x92)), proper(_x82))))), s(ok(tt))))top#(mark(U11(s(U11(_x51, zeros)), s(tt))))top#(U11(s(U11(proper(_x51), ok(zeros))), s(ok(tt))))
top#(mark(U11(cons(U11(length(0), 0), U11(0, 0)), _x22)))top#(U11(cons(U11(length(ok(0)), ok(0)), U11(ok(0), ok(0))), proper(_x22)))top#(mark(U11(s(tt), s(tt))))top#(U11(s(ok(0)), ok(s(tt))))
top#(mark(U11(cons(_x41, nil), 0)))top#(U11(cons(proper(_x41), ok(nil)), ok(0)))top#(mark(U11(length(U11(_x61, _x62)), _x22)))top#(U11(length(U11(proper(_x61), proper(_x62))), proper(_x22)))
top#(mark(U11(s(_x41), s(s(U11(nil, cons(_x81, _x82)))))))top#(U11(s(proper(_x41)), s(s(U11(ok(nil), cons(proper(_x81), proper(_x82)))))))top#(mark(length(_x21)))top#(length(proper(_x21)))
top#(mark(U11(U11(_x41, _x42), U12(_x51, _x52))))top#(U11(U11(proper(_x41), proper(_x42)), U12(proper(_x51), proper(_x52))))top#(mark(U11(s(U12(_x51, _x52)), s(s(U11(_x71, cons(_x81, _x82)))))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(s(U11(proper(_x71), cons(proper(_x81), proper(_x82)))))))
top#(mark(U11(s(cons(length(_x61), _x52)), s(s(_x61)))))top#(U11(s(cons(length(proper(_x61)), proper(_x52))), s(s(proper(_x61)))))top#(mark(U11(length(_x41), cons(_x51, _x52))))top#(U11(length(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(U11(length(tt), 0)))top#(U11(length(ok(tt)), ok(0)))top#(mark(U11(zeros, U12(_x51, _x52))))top#(U11(ok(zeros), U12(proper(_x51), proper(_x52))))
top#(mark(U11(s(tt), s(tt))))top#(U11(s(U12(ok(zeros), proper(_x52))), ok(s(tt))))top#(ok(cons(zeros, _x22)))top#(cons(mark(cons(0, zeros)), _x22))
top#(mark(U11(s(cons(_x51, U12(_x61, _x62))), s(tt))))top#(U11(s(cons(proper(_x51), U12(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(s(cons(length(length(nil)), s(_x61))), s(tt))))top#(U11(s(cons(length(length(ok(nil))), s(proper(_x61)))), ok(s(tt))))
top#(mark(U11(s(cons(length(length(zeros)), s(cons(_x81, nil)))), s(tt))))top#(U11(s(cons(length(length(ok(zeros))), s(cons(proper(_x81), ok(nil))))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, s(_x81))), _x22)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), s(proper(_x81)))), proper(_x22)))
top#(mark(U11(cons(0, U11(0, U12(_x81, _x82))), nil)))top#(U11(cons(ok(0), U11(ok(0), U12(proper(_x81), proper(_x82)))), ok(nil)))top#(mark(U11(s(U12(_x51, _x52)), s(s(_x61)))))top#(U11(s(U12(proper(_x51), proper(_x52))), s(s(proper(_x61)))))
top#(mark(U11(s(_x41), s(s(length(_x71))))))top#(U11(s(proper(_x41)), s(s(length(proper(_x71))))))top#(mark(U11(s(_x41), s(s(U11(cons(_x81, _x82), cons(_x81, s(s(_x131)))))))))top#(U11(s(proper(_x41)), s(s(U11(cons(proper(_x81), proper(_x82)), cons(proper(_x81), s(s(proper(_x131)))))))))
top#(mark(U11(cons(length(zeros), nil), _x22)))top#(U11(cons(length(ok(zeros)), ok(nil)), proper(_x22)))top#(mark(U11(s(cons(length(length(_x71)), s(cons(_x81, U12(_x91, _x92))))), s(tt))))top#(U11(s(cons(length(length(proper(_x71))), s(cons(proper(_x81), U12(proper(_x91), proper(_x92)))))), s(ok(tt))))
top#(mark(U11(cons(U11(_x61, _x62), U11(0, U11(_x81, _x82))), _x22)))top#(U11(cons(U11(proper(_x61), proper(_x62)), U11(ok(0), U11(proper(_x81), proper(_x82)))), proper(_x22)))top#(mark(U11(cons(_x41, _x42), length(_x51))))top#(U11(cons(proper(_x41), proper(_x42)), length(proper(_x51))))
top#(mark(U11(s(cons(length(_x61), cons(_x61, _x62))), s(tt))))top#(U11(s(cons(length(proper(_x61)), cons(proper(_x61), proper(_x62)))), s(ok(tt))))top#(mark(U11(cons(U11(length(_x71), _x62), U11(0, nil)), _x22)))top#(U11(cons(U11(length(proper(_x71)), proper(_x62)), U11(ok(0), ok(nil))), proper(_x22)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, top, cons, nil

Strategy


The right-hand side of the rule top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), proper(_x72)))))) 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#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(U12(proper(_x81), proper(_x82)), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), ok(zeros)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(length(proper(_x81)), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), U12(proper(_x61), proper(_x62)))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), ok(zeros))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(ok(0), proper(_x52))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), U11(proper(_x81), proper(_x82))))))) 
top#(U11(s(cons(proper(_x51), U11(proper(_x61), proper(_x62)))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(ok(zeros), proper(_x52))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), length(proper(_x61)))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(cons(proper(_x61), proper(_x62)), proper(_x52))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(cons(proper(_x81), proper(_x82)), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), s(proper(_x81))))))) 
top#(U11(s(cons(proper(_x51), s(proper(_x61)))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(U11(proper(_x81), proper(_x82)), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(ok(nil), proper(_x72)))))) 
top#(U11(s(cons(U11(proper(_x61), proper(_x62)), proper(_x52))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), ok(tt)))))) 
top#(U11(s(cons(proper(_x51), cons(proper(_x61), proper(_x62)))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(ok(0), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), cons(proper(_x81), proper(_x82))))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(s(proper(_x81)), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(ok(tt), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), U12(proper(_x81), proper(_x82))))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), length(proper(_x81))))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), ok(0)))))) 
top#(U11(s(cons(length(proper(_x61)), proper(_x52))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(s(proper(_x61)), proper(_x52))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(ok(nil), proper(_x52))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(U12(proper(_x61), proper(_x62)), proper(_x52))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(ok(zeros), proper(_x72)))))) 
top#(U11(s(cons(ok(tt), proper(_x52))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), ok(nil)))))) 
top#(U11(s(cons(proper(_x51), ok(0))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), ok(tt))), s(s(U12(proper(_x71), proper(_x72)))))) 
top#(U11(s(cons(proper(_x51), ok(nil))), s(s(U12(proper(_x71), proper(_x72)))))) 
Thus, the rule top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), proper(_x72)))))) is replaced by the following rules:
top#(mark(U11(s(cons(nil, _x52)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(ok(nil), proper(_x52))), s(s(U12(proper(_x71), proper(_x72))))))top#(mark(U11(s(cons(_x51, nil)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(proper(_x51), ok(nil))), s(s(U12(proper(_x71), proper(_x72))))))
top#(mark(U11(s(cons(U12(_x61, _x62), _x52)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(U12(proper(_x61), proper(_x62)), proper(_x52))), s(s(U12(proper(_x71), proper(_x72))))))top#(mark(U11(s(cons(_x51, zeros)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(proper(_x51), ok(zeros))), s(s(U12(proper(_x71), proper(_x72))))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(_x71, s(_x81))))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), s(proper(_x81)))))))top#(mark(U11(s(cons(tt, _x52)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(ok(tt), proper(_x52))), s(s(U12(proper(_x71), proper(_x72))))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(length(_x81), _x72)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(length(proper(_x81)), proper(_x72))))))top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(U12(_x81, _x82), _x72)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(U12(proper(_x81), proper(_x82)), proper(_x72))))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(_x71, nil)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), ok(nil))))))top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(U11(_x81, _x82), _x72)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(U11(proper(_x81), proper(_x82)), proper(_x72))))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(_x71, U12(_x81, _x82))))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), U12(proper(_x81), proper(_x82)))))))top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(0, _x72)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(ok(0), proper(_x72))))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(_x71, U11(_x81, _x82))))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), U11(proper(_x81), proper(_x82)))))))top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(s(_x81), _x72)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(s(proper(_x81)), proper(_x72))))))
top#(mark(U11(s(cons(zeros, _x52)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(ok(zeros), proper(_x52))), s(s(U12(proper(_x71), proper(_x72))))))top#(mark(U11(s(cons(_x51, cons(_x61, _x62))), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(proper(_x51), cons(proper(_x61), proper(_x62)))), s(s(U12(proper(_x71), proper(_x72))))))
top#(mark(U11(s(cons(length(_x61), _x52)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(length(proper(_x61)), proper(_x52))), s(s(U12(proper(_x71), proper(_x72))))))top#(mark(U11(s(cons(cons(_x61, _x62), _x52)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(cons(proper(_x61), proper(_x62)), proper(_x52))), s(s(U12(proper(_x71), proper(_x72))))))
top#(mark(U11(s(cons(_x51, 0)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(proper(_x51), ok(0))), s(s(U12(proper(_x71), proper(_x72))))))top#(mark(U11(s(cons(_x51, U12(_x61, _x62))), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(proper(_x51), U12(proper(_x61), proper(_x62)))), s(s(U12(proper(_x71), proper(_x72))))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(cons(_x81, _x82), _x72)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(cons(proper(_x81), proper(_x82)), proper(_x72))))))top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(zeros, _x72)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(ok(zeros), proper(_x72))))))
top#(mark(U11(s(cons(_x51, length(_x61))), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(proper(_x51), length(proper(_x61)))), s(s(U12(proper(_x71), proper(_x72))))))top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(_x71, zeros)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), ok(zeros))))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(_x71, cons(_x81, _x82))))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), cons(proper(_x81), proper(_x82)))))))top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(nil, _x72)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(ok(nil), proper(_x72))))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(_x71, length(_x81))))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), length(proper(_x81)))))))top#(mark(U11(s(cons(_x51, s(_x61))), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(proper(_x51), s(proper(_x61)))), s(s(U12(proper(_x71), proper(_x72))))))
top#(mark(U11(s(cons(s(_x61), _x52)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(s(proper(_x61)), proper(_x52))), s(s(U12(proper(_x71), proper(_x72))))))top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(_x71, tt)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), ok(tt))))))
top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(_x71, 0)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(proper(_x71), ok(0))))))top#(mark(U11(s(cons(0, _x52)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(ok(0), proper(_x52))), s(s(U12(proper(_x71), proper(_x72))))))
top#(mark(U11(s(cons(U11(_x61, _x62), _x52)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(U11(proper(_x61), proper(_x62)), proper(_x52))), s(s(U12(proper(_x71), proper(_x72))))))top#(mark(U11(s(cons(_x51, U11(_x61, _x62))), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(proper(_x51), U11(proper(_x61), proper(_x62)))), s(s(U12(proper(_x71), proper(_x72))))))
top#(mark(U11(s(cons(_x51, tt)), s(s(U12(_x71, _x72)))))) → top#(U11(s(cons(proper(_x51), ok(tt))), s(s(U12(proper(_x71), proper(_x72))))))top#(mark(U11(s(cons(_x51, _x52)), s(s(U12(tt, _x72)))))) → top#(U11(s(cons(proper(_x51), proper(_x52))), s(s(U12(ok(tt), proper(_x72))))))

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

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 7: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

length#(mark(X))length#(X)length#(ok(X))length#(X)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

length#(mark(X))length#(X)length#(ok(X))length#(X)

Problem 8: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

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 9: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

active#(U12(X1, X2))active#(X1)active#(s(X))active#(X)
active#(length(X))active#(X)active#(U11(X1, X2))active#(X1)
active#(cons(X1, X2))active#(X1)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(U12(tt, L))
active(U12(tt, L))mark(s(length(L)))active(length(nil))mark(0)
active(length(cons(N, L)))mark(U11(tt, L))active(cons(X1, X2))cons(active(X1), X2)
active(U11(X1, X2))U11(active(X1), X2)active(U12(X1, X2))U12(active(X1), X2)
active(s(X))s(active(X))active(length(X))length(active(X))
cons(mark(X1), X2)mark(cons(X1, X2))U11(mark(X1), X2)mark(U11(X1, X2))
U12(mark(X1), X2)mark(U12(X1, X2))s(mark(X))mark(s(X))
length(mark(X))mark(length(X))proper(zeros)ok(zeros)
proper(cons(X1, X2))cons(proper(X1), proper(X2))proper(0)ok(0)
proper(U11(X1, X2))U11(proper(X1), proper(X2))proper(tt)ok(tt)
proper(U12(X1, X2))U12(proper(X1), proper(X2))proper(s(X))s(proper(X))
proper(length(X))length(proper(X))proper(nil)ok(nil)
cons(ok(X1), ok(X2))ok(cons(X1, X2))U11(ok(X1), ok(X2))ok(U11(X1, X2))
U12(ok(X1), ok(X2))ok(U12(X1, X2))s(ok(X))ok(s(X))
length(ok(X))ok(length(X))top(mark(X))top(proper(X))
top(ok(X))top(active(X))

Original Signature

Termination of terms over the following signature is verified: mark, 0, s, zeros, tt, length, active, U11, U12, ok, proper, nil, top, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

active#(U12(X1, X2))active#(X1)active#(s(X))active#(X)
active#(length(X))active#(X)active#(U11(X1, X2))active#(X1)
active#(cons(X1, X2))active#(X1)