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 (481ms).
 | – Problem 2 was processed with processor SubtermCriterion (2ms).
 | – Problem 3 was processed with processor SubtermCriterion (0ms).
 | – Problem 4 was processed with processor SubtermCriterion (1ms).
 | – Problem 5 was processed with processor SubtermCriterion (1ms).
 | – Problem 6 was processed with processor SubtermCriterion (1ms).
 | – Problem 7 was processed with processor ForwardNarrowing (6ms).
 |    | – Problem 9 was processed with processor ForwardNarrowing (7ms).
 |    |    | – Problem 10 was processed with processor ForwardNarrowing (4ms).
 |    |    |    | – Problem 11 was processed with processor ForwardNarrowing (5ms).
 |    |    |    |    | – Problem 12 was processed with processor ForwardNarrowing (9ms).
 |    |    |    |    |    | – Problem 13 was processed with processor ForwardNarrowing (6ms).
 |    |    |    |    |    |    | – Problem 14 was processed with processor ForwardNarrowing (19ms).
 |    |    |    |    |    |    |    | – Problem 15 was processed with processor ForwardNarrowing (21ms).
 |    |    |    |    |    |    |    |    | – Problem 16 was processed with processor ForwardNarrowing (21ms).
 |    |    |    |    |    |    |    |    |    | – Problem 17 was processed with processor ForwardNarrowing (19ms).
 |    |    |    |    |    |    |    |    |    |    | – Problem 18 was processed with processor ForwardNarrowing (23ms).
 |    |    |    |    |    |    |    |    |    |    |    | – Problem 19 was processed with processor ForwardNarrowing (20ms).
 |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 20 was processed with processor ForwardNarrowing (22ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 21 was processed with processor ForwardNarrowing (22ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 22 was processed with processor ForwardNarrowing (21ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 23 was processed with processor ForwardNarrowing (74ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 24 was processed with processor ForwardNarrowing (27ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 25 was processed with processor ForwardNarrowing (33ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 26 was processed with processor ForwardNarrowing (33ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 27 was processed with processor ForwardNarrowing (41ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 28 was processed with processor ForwardNarrowing (158ms).
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    | – Problem 29 remains open; application of the following processors failed [ForwardNarrowing (277ms), ForwardNarrowing (178ms), ForwardNarrowing (239ms), ForwardNarrowing (81ms), ForwardNarrowing (172ms), ForwardNarrowing (80ms), ForwardNarrowing (365ms), ForwardNarrowing (271ms), ForwardNarrowing (184ms), ForwardNarrowing (110ms), ForwardNarrowing (440ms), ForwardNarrowing (146ms), ForwardNarrowing (586ms), ForwardNarrowing (234ms), ForwardNarrowing (571ms), ForwardNarrowing (524ms), ForwardNarrowing (314ms), ForwardNarrowing (254ms), ForwardNarrowing (422ms), ForwardNarrowing (481ms), ForwardNarrowing (346ms), ForwardNarrowing (644ms), ForwardNarrowing (535ms), ForwardNarrowing (611ms), ForwardNarrowing (439ms), ForwardNarrowing (517ms), ForwardNarrowing (371ms), ForwardNarrowing (213ms), ForwardNarrowing (timeout)].
 | – Problem 8 was processed with processor SubtermCriterion (3ms).

The following open problems remain:



Open Dependency Pair Problem 7

Dependency Pairs

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

Rewrite Rules

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


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

proper#(cons(X1, X2))proper#(X1)proper#(length(X))length#(proper(X))
top#(ok(X))top#(active(X))cons#(mark(X1), X2)cons#(X1, X2)
cons#(ok(X1), ok(X2))cons#(X1, X2)and#(ok(X1), ok(X2))and#(X1, X2)
proper#(and(X1, X2))proper#(X1)proper#(and(X1, X2))and#(proper(X1), proper(X2))
top#(ok(X))active#(X)active#(cons(X1, X2))cons#(active(X1), X2)
active#(and(X1, X2))and#(active(X1), X2)proper#(and(X1, X2))proper#(X2)
length#(ok(X))length#(X)top#(mark(X))proper#(X)
length#(mark(X))length#(X)top#(mark(X))top#(proper(X))
active#(length(X))length#(active(X))proper#(cons(X1, X2))proper#(X2)
active#(length(X))active#(X)and#(mark(X1), X2)and#(X1, X2)
active#(s(X))s#(active(X))s#(ok(X))s#(X)
active#(length(cons(N, L)))length#(L)active#(length(cons(N, L)))s#(length(L))
s#(mark(X))s#(X)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)active#(and(X1, X2))active#(X1)
active#(cons(X1, X2))active#(X1)

Rewrite Rules

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

Strategy


The following SCCs where found

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

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

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

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

and#(ok(X1), ok(X2)) → and#(X1, X2)and#(mark(X1), X2) → and#(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

active#(s(X))active#(X)active#(length(X))active#(X)
active#(and(X1, X2))active#(X1)active#(cons(X1, X2))active#(X1)

Rewrite Rules

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

active#(s(X))active#(X)active#(length(X))active#(X)
active#(and(X1, X2))active#(X1)active#(cons(X1, X2))active#(X1)

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

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

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



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

proper#(length(X))proper#(X)proper#(s(X))proper#(X)
proper#(cons(X1, X2))proper#(X1)proper#(cons(X1, X2))proper#(X2)
proper#(and(X1, X2))proper#(X2)proper#(and(X1, X2))proper#(X1)

Rewrite Rules

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

proper#(s(X))proper#(X)proper#(length(X))proper#(X)
proper#(cons(X1, X2))proper#(X1)proper#(cons(X1, X2))proper#(X2)
proper#(and(X1, X2))proper#(X2)proper#(and(X1, X2))proper#(X1)

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

Strategy


The right-hand side of the rule top#(mark(X)) → top#(proper(X)) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(ok(0)) 
top#(cons(proper(_x21), proper(_x22))) 
top#(ok(zeros)) 
top#(length(proper(_x21))) 
top#(s(proper(_x21))) 
top#(ok(tt)) 
top#(and(proper(_x21), proper(_x22))) 
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(0)) → top#(ok(0))
top#(mark(nil)) → top#(ok(nil))top#(mark(s(_x21))) → top#(s(proper(_x21)))
top#(mark(cons(_x21, _x22))) → top#(cons(proper(_x21), proper(_x22)))top#(mark(tt)) → top#(ok(tt))
top#(mark(length(_x21))) → top#(length(proper(_x21)))top#(mark(and(_x21, _x22))) → top#(and(proper(_x21), proper(_x22)))

Problem 9: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


The right-hand side of the rule top#(ok(X)) → top#(active(X)) is narrowed to the following relevant and irrelevant terms (a narrowing is irrelevant if by dropping it the correctness (and completeness) of the processor is not influenced).
Relevant TermsIrrelevant Terms
top#(mark(0)) 
top#(s(active(_x21))) 
top#(length(active(_x21))) 
top#(mark(_x21)) 
top#(mark(cons(0, zeros))) 
top#(cons(active(_x21), _x22)) 
top#(mark(s(length(_x21)))) 
top#(and(active(_x21), _x22)) 
Thus, the rule top#(ok(X)) → top#(active(X)) is replaced by the following rules:
top#(ok(length(nil))) → top#(mark(0))top#(ok(and(_x21, _x22))) → top#(and(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(length(cons(_x22, _x21)))) → top#(mark(s(length(_x21))))
top#(ok(cons(_x21, _x22))) → top#(cons(active(_x21), _x22))top#(ok(and(tt, _x21))) → top#(mark(_x21))

Problem 10: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 11: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 12: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 13: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 14: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 15: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 16: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(cons(cons(_x41, s(_x71)), _x22)))top#(cons(cons(proper(_x41), s(proper(_x71))), proper(_x22)))top#(ok(zeros))top#(mark(cons(0, zeros)))
top#(mark(cons(_x21, cons(_x51, _x52))))top#(cons(proper(_x21), cons(proper(_x51), proper(_x52))))top#(mark(cons(_x21, and(_x51, _x52))))top#(cons(proper(_x21), and(proper(_x51), proper(_x52))))
top#(mark(cons(cons(cons(_x61, _x62), _x42), _x22)))top#(cons(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(ok(and(tt, _x21)))top#(mark(_x21))
top#(mark(tt))top#(ok(tt))top#(mark(cons(cons(_x41, _x42), zeros)))top#(cons(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(cons(cons(_x41, and(_x71, 0)), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), ok(0))), proper(_x22)))top#(mark(cons(cons(_x41, and(and(_x91, _x92), _x72)), _x22)))top#(cons(cons(proper(_x41), and(and(proper(_x91), proper(_x92)), proper(_x72))), proper(_x22)))
top#(mark(cons(cons(_x41, and(_x71, _x72)), nil)))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), ok(nil)))top#(mark(cons(cons(tt, _x42), _x22)))top#(cons(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(cons(cons(length(_x61), and(_x71, _x72)), _x22)))top#(cons(cons(length(proper(_x61)), and(proper(_x71), proper(_x72))), proper(_x22)))top#(ok(length(_x21)))top#(length(active(_x21)))
top#(ok(length(cons(_x22, _x21))))top#(mark(s(length(_x21))))top#(mark(cons(cons(_x41, tt), _x22)))top#(cons(cons(proper(_x41), ok(tt)), proper(_x22)))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(mark(cons(cons(_x41, _x42), s(_x51))))top#(cons(cons(proper(_x41), proper(_x42)), s(proper(_x51))))
top#(mark(cons(cons(_x41, length(_x71)), _x22)))top#(cons(cons(proper(_x41), length(proper(_x71))), proper(_x22)))top#(mark(and(_x21, _x22)))top#(and(proper(_x21), proper(_x22)))
top#(mark(cons(cons(_x41, and(_x71, _x72)), s(_x51))))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), s(proper(_x51))))top#(mark(cons(cons(cons(_x61, _x62), and(_x71, _x72)), _x22)))top#(cons(cons(cons(proper(_x61), proper(_x62)), and(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(cons(length(_x41), _x22)))top#(cons(length(proper(_x41)), proper(_x22)))top#(mark(cons(zeros, and(_x51, _x52))))top#(cons(ok(zeros), and(proper(_x51), proper(_x52))))
top#(mark(cons(cons(_x41, and(s(_x91), _x72)), _x22)))top#(cons(cons(proper(_x41), and(s(proper(_x91)), proper(_x72))), proper(_x22)))top#(mark(cons(zeros, cons(_x51, _x52))))top#(cons(ok(zeros), cons(proper(_x51), proper(_x52))))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(cons(cons(_x41, and(_x71, _x72)), and(_x51, _x52))))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), and(proper(_x51), proper(_x52))))
top#(mark(cons(cons(_x41, and(length(_x91), _x72)), _x22)))top#(cons(cons(proper(_x41), and(length(proper(_x91)), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, and(cons(_x91, _x92), _x72)), _x22)))top#(cons(cons(proper(_x41), and(cons(proper(_x91), proper(_x92)), proper(_x72))), proper(_x22)))
top#(mark(cons(cons(_x41, and(_x71, _x72)), cons(_x51, _x52))))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), cons(proper(_x51), proper(_x52))))top#(mark(cons(cons(_x41, and(_x71, s(_x101))), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), s(proper(_x101)))), proper(_x22)))
top#(mark(cons(cons(_x41, zeros), _x22)))top#(cons(cons(proper(_x41), ok(zeros)), proper(_x22)))top#(mark(cons(cons(_x41, _x42), length(_x51))))top#(cons(cons(proper(_x41), proper(_x42)), length(proper(_x51))))
top#(mark(cons(cons(_x41, nil), _x22)))top#(cons(cons(proper(_x41), ok(nil)), proper(_x22)))top#(mark(zeros))top#(ok(zeros))
top#(mark(cons(s(_x41), _x22)))top#(cons(s(proper(_x41)), proper(_x22)))top#(mark(cons(zeros, zeros)))top#(cons(ok(zeros), ok(zeros)))
top#(mark(cons(_x21, length(_x51))))top#(cons(proper(_x21), length(proper(_x51))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(cons(cons(_x41, and(zeros, _x72)), _x22)))top#(cons(cons(proper(_x41), and(ok(zeros), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, _x42), nil)))top#(cons(cons(proper(_x41), proper(_x42)), ok(nil)))
top#(mark(cons(cons(and(_x61, _x62), _x42), _x22)))top#(cons(cons(and(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(cons(cons(s(_x61), and(_x71, _x72)), _x22)))top#(cons(cons(s(proper(_x61)), and(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(cons(cons(_x41, and(_x71, length(_x101))), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), length(proper(_x101)))), proper(_x22)))top#(mark(cons(cons(s(_x61), _x42), _x22)))top#(cons(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(cons(cons(_x41, _x42), cons(_x51, _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))top#(mark(cons(cons(zeros, _x42), _x22)))top#(cons(cons(ok(zeros), proper(_x42)), proper(_x22)))
top#(mark(cons(tt, _x22)))top#(cons(ok(tt), proper(_x22)))top#(mark(cons(cons(_x41, and(_x71, tt)), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), ok(tt))), proper(_x22)))
top#(mark(cons(cons(_x41, _x42), tt)))top#(cons(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(cons(cons(_x41, and(_x71, cons(_x101, _x102))), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), cons(proper(_x101), proper(_x102)))), proper(_x22)))
top#(mark(cons(cons(_x41, and(_x71, _x72)), tt)))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), ok(tt)))top#(mark(length(_x21)))top#(length(proper(_x21)))
top#(mark(cons(cons(0, and(_x71, _x72)), _x22)))top#(cons(cons(ok(0), and(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(cons(nil, _x42), _x22)))top#(cons(cons(ok(nil), proper(_x42)), proper(_x22)))
top#(mark(cons(cons(_x41, and(_x71, zeros)), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), ok(zeros))), proper(_x22)))top#(mark(cons(cons(_x41, and(nil, _x72)), _x22)))top#(cons(cons(proper(_x41), and(ok(nil), proper(_x72))), proper(_x22)))
top#(mark(cons(zeros, length(_x51))))top#(cons(ok(zeros), length(proper(_x51))))top#(ok(and(_x21, _x22)))top#(and(active(_x21), _x22))
top#(mark(cons(zeros, nil)))top#(cons(ok(zeros), ok(nil)))top#(mark(cons(cons(_x41, and(_x71, _x72)), zeros)))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), ok(zeros)))
top#(mark(cons(_x21, zeros)))top#(cons(proper(_x21), ok(zeros)))top#(mark(cons(and(_x41, _x42), _x22)))top#(cons(and(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(cons(0, _x22)))top#(cons(ok(0), proper(_x22)))top#(mark(cons(nil, _x22)))top#(cons(ok(nil), proper(_x22)))
top#(mark(cons(cons(nil, and(_x71, _x72)), _x22)))top#(cons(cons(ok(nil), and(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, and(_x71, _x72)), 0)))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), ok(0)))
top#(mark(cons(cons(_x41, and(tt, _x72)), _x22)))top#(cons(cons(proper(_x41), and(ok(tt), proper(_x72))), proper(_x22)))top#(mark(cons(_x21, s(_x51))))top#(cons(proper(_x21), s(proper(_x51))))
top#(mark(cons(cons(_x41, and(_x71, nil)), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), ok(nil))), proper(_x22)))top#(mark(cons(cons(_x41, _x42), and(_x51, _x52))))top#(cons(cons(proper(_x41), proper(_x42)), and(proper(_x51), proper(_x52))))
top#(mark(cons(cons(_x41, cons(_x71, _x72)), _x22)))top#(cons(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(zeros, s(_x51))))top#(cons(ok(zeros), s(proper(_x51))))
top#(mark(cons(cons(_x41, 0), _x22)))top#(cons(cons(proper(_x41), ok(0)), proper(_x22)))top#(mark(cons(cons(_x41, and(_x71, _x72)), length(_x51))))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), length(proper(_x51))))
top#(mark(cons(cons(_x41, _x42), 0)))top#(cons(cons(proper(_x41), proper(_x42)), ok(0)))top#(mark(cons(_x21, 0)))top#(cons(proper(_x21), ok(0)))
top#(mark(cons(_x21, tt)))top#(cons(proper(_x21), ok(tt)))top#(mark(cons(cons(length(_x61), _x42), _x22)))top#(cons(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(cons(cons(tt, and(_x71, _x72)), _x22)))top#(cons(cons(ok(tt), and(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, and(_x71, and(_x101, _x102))), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), and(proper(_x101), proper(_x102)))), proper(_x22)))
top#(mark(cons(zeros, 0)))top#(cons(ok(zeros), ok(0)))top#(ok(length(nil)))top#(mark(0))
top#(mark(cons(_x21, nil)))top#(cons(proper(_x21), ok(nil)))top#(mark(cons(cons(and(_x61, _x62), and(_x71, _x72)), _x22)))top#(cons(cons(and(proper(_x61), proper(_x62)), and(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(cons(zeros, tt)))top#(cons(ok(zeros), ok(tt)))top#(mark(cons(cons(zeros, and(_x71, _x72)), _x22)))top#(cons(cons(ok(zeros), and(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(cons(cons(_x41, and(0, _x72)), _x22)))top#(cons(cons(proper(_x41), and(ok(0), proper(_x72))), proper(_x22)))top#(mark(cons(cons(0, _x42), _x22)))top#(cons(cons(ok(0), proper(_x42)), proper(_x22)))

Rewrite Rules

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

Strategy


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

Problem 17: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(ok(zeros))top#(mark(cons(0, zeros)))top#(mark(cons(_x21, cons(_x51, _x52))))top#(cons(proper(_x21), cons(proper(_x51), proper(_x52))))
top#(ok(and(tt, _x21)))top#(mark(_x21))top#(mark(tt))top#(ok(tt))
top#(mark(cons(cons(_x41, _x42), zeros)))top#(cons(cons(proper(_x41), proper(_x42)), ok(zeros)))top#(mark(cons(cons(_x41, and(_x71, 0)), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), ok(0))), proper(_x22)))
top#(mark(cons(cons(_x41, and(_x71, _x72)), nil)))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), ok(nil)))top#(mark(cons(cons(tt, _x42), _x22)))top#(cons(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(cons(cons(zeros, s(_x71)), _x22)))top#(cons(cons(ok(zeros), s(proper(_x71))), proper(_x22)))top#(mark(cons(cons(0, s(_x71)), _x22)))top#(cons(cons(ok(0), s(proper(_x71))), proper(_x22)))
top#(mark(cons(cons(_x41, s(s(_x91))), _x22)))top#(cons(cons(proper(_x41), s(s(proper(_x91)))), proper(_x22)))top#(mark(cons(cons(_x41, tt), _x22)))top#(cons(cons(proper(_x41), ok(tt)), proper(_x22)))
top#(ok(cons(_x21, _x22)))top#(cons(active(_x21), _x22))top#(ok(length(cons(_x22, _x21))))top#(mark(s(length(_x21))))
top#(mark(cons(cons(_x41, _x42), s(_x51))))top#(cons(cons(proper(_x41), proper(_x42)), s(proper(_x51))))top#(mark(cons(cons(_x41, and(_x71, _x72)), s(_x51))))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), s(proper(_x51))))
top#(mark(and(_x21, _x22)))top#(and(proper(_x21), proper(_x22)))top#(mark(cons(cons(_x41, length(_x71)), _x22)))top#(cons(cons(proper(_x41), length(proper(_x71))), proper(_x22)))
top#(mark(cons(cons(cons(_x61, _x62), and(_x71, _x72)), _x22)))top#(cons(cons(cons(proper(_x61), proper(_x62)), and(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, s(zeros)), _x22)))top#(cons(cons(proper(_x41), s(ok(zeros))), proper(_x22)))
top#(mark(cons(cons(_x41, and(length(_x91), _x72)), _x22)))top#(cons(cons(proper(_x41), and(length(proper(_x91)), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, and(_x71, _x72)), cons(_x51, _x52))))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), cons(proper(_x51), proper(_x52))))
top#(mark(cons(cons(_x41, and(cons(_x91, _x92), _x72)), _x22)))top#(cons(cons(proper(_x41), and(cons(proper(_x91), proper(_x92)), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, nil), _x22)))top#(cons(cons(proper(_x41), ok(nil)), proper(_x22)))
top#(mark(cons(cons(_x41, and(_x71, s(_x101))), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), s(proper(_x101)))), proper(_x22)))top#(mark(zeros))top#(ok(zeros))
top#(mark(cons(s(_x41), _x22)))top#(cons(s(proper(_x41)), proper(_x22)))top#(mark(cons(cons(length(_x61), s(_x71)), _x22)))top#(cons(cons(length(proper(_x61)), s(proper(_x71))), proper(_x22)))
top#(mark(cons(_x21, length(_x51))))top#(cons(proper(_x21), length(proper(_x51))))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(cons(cons(_x41, s(_x71)), nil)))top#(cons(cons(proper(_x41), s(proper(_x71))), ok(nil)))top#(mark(cons(cons(_x41, s(_x71)), 0)))top#(cons(cons(proper(_x41), s(proper(_x71))), ok(0)))
top#(mark(cons(cons(_x41, _x42), cons(_x51, _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))top#(mark(cons(cons(_x41, and(_x71, cons(_x101, _x102))), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), cons(proper(_x101), proper(_x102)))), proper(_x22)))
top#(mark(cons(cons(_x41, and(_x71, _x72)), tt)))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), ok(tt)))top#(mark(cons(cons(s(_x61), s(_x71)), _x22)))top#(cons(cons(s(proper(_x61)), s(proper(_x71))), proper(_x22)))
top#(mark(cons(zeros, length(_x51))))top#(cons(ok(zeros), length(proper(_x51))))top#(mark(cons(zeros, nil)))top#(cons(ok(zeros), ok(nil)))
top#(mark(cons(cons(_x41, s(and(_x91, _x92))), _x22)))top#(cons(cons(proper(_x41), s(and(proper(_x91), proper(_x92)))), proper(_x22)))top#(mark(cons(_x21, zeros)))top#(cons(proper(_x21), ok(zeros)))
top#(mark(cons(and(_x41, _x42), _x22)))top#(cons(and(proper(_x41), proper(_x42)), proper(_x22)))top#(mark(cons(0, _x22)))top#(cons(ok(0), proper(_x22)))
top#(mark(cons(cons(cons(_x61, _x62), s(_x71)), _x22)))top#(cons(cons(cons(proper(_x61), proper(_x62)), s(proper(_x71))), proper(_x22)))top#(mark(cons(nil, _x22)))top#(cons(ok(nil), proper(_x22)))
top#(mark(cons(cons(nil, and(_x71, _x72)), _x22)))top#(cons(cons(ok(nil), and(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, s(0)), _x22)))top#(cons(cons(proper(_x41), s(ok(0))), proper(_x22)))
top#(mark(cons(cons(_x41, and(tt, _x72)), _x22)))top#(cons(cons(proper(_x41), and(ok(tt), proper(_x72))), proper(_x22)))top#(mark(cons(_x21, s(_x51))))top#(cons(proper(_x21), s(proper(_x51))))
top#(mark(cons(cons(_x41, cons(_x71, _x72)), _x22)))top#(cons(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, and(_x71, _x72)), length(_x51))))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), length(proper(_x51))))
top#(mark(cons(cons(_x41, 0), _x22)))top#(cons(cons(proper(_x41), ok(0)), proper(_x22)))top#(mark(cons(_x21, tt)))top#(cons(proper(_x21), ok(tt)))
top#(mark(cons(cons(tt, s(_x71)), _x22)))top#(cons(cons(ok(tt), s(proper(_x71))), proper(_x22)))top#(ok(length(nil)))top#(mark(0))
top#(mark(cons(zeros, 0)))top#(cons(ok(zeros), ok(0)))top#(mark(cons(_x21, nil)))top#(cons(proper(_x21), ok(nil)))
top#(mark(cons(cons(zeros, and(_x71, _x72)), _x22)))top#(cons(cons(ok(zeros), and(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, s(_x71)), s(_x51))))top#(cons(cons(proper(_x41), s(proper(_x71))), s(proper(_x51))))
top#(mark(cons(cons(cons(_x61, _x62), _x42), _x22)))top#(cons(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(cons(_x21, and(_x51, _x52))))top#(cons(proper(_x21), and(proper(_x51), proper(_x52))))
top#(mark(cons(cons(_x41, and(and(_x91, _x92), _x72)), _x22)))top#(cons(cons(proper(_x41), and(and(proper(_x91), proper(_x92)), proper(_x72))), proper(_x22)))top#(mark(cons(cons(nil, s(_x71)), _x22)))top#(cons(cons(ok(nil), s(proper(_x71))), proper(_x22)))
top#(mark(cons(cons(length(_x61), and(_x71, _x72)), _x22)))top#(cons(cons(length(proper(_x61)), and(proper(_x71), proper(_x72))), proper(_x22)))top#(ok(length(_x21)))top#(length(active(_x21)))
top#(mark(cons(cons(_x41, s(length(_x91))), _x22)))top#(cons(cons(proper(_x41), s(length(proper(_x91)))), proper(_x22)))top#(mark(cons(cons(_x41, s(_x71)), cons(_x51, _x52))))top#(cons(cons(proper(_x41), s(proper(_x71))), cons(proper(_x51), proper(_x52))))
top#(mark(cons(zeros, and(_x51, _x52))))top#(cons(ok(zeros), and(proper(_x51), proper(_x52))))top#(mark(cons(length(_x41), _x22)))top#(cons(length(proper(_x41)), proper(_x22)))
top#(mark(cons(cons(_x41, s(_x71)), zeros)))top#(cons(cons(proper(_x41), s(proper(_x71))), ok(zeros)))top#(mark(cons(cons(_x41, and(s(_x91), _x72)), _x22)))top#(cons(cons(proper(_x41), and(s(proper(_x91)), proper(_x72))), proper(_x22)))
top#(mark(s(_x21)))top#(s(proper(_x21)))top#(mark(cons(zeros, cons(_x51, _x52))))top#(cons(ok(zeros), cons(proper(_x51), proper(_x52))))
top#(mark(cons(cons(_x41, and(_x71, _x72)), and(_x51, _x52))))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), and(proper(_x51), proper(_x52))))top#(mark(cons(cons(_x41, _x42), length(_x51))))top#(cons(cons(proper(_x41), proper(_x42)), length(proper(_x51))))
top#(mark(cons(cons(_x41, zeros), _x22)))top#(cons(cons(proper(_x41), ok(zeros)), proper(_x22)))top#(mark(cons(cons(_x41, s(_x71)), length(_x51))))top#(cons(cons(proper(_x41), s(proper(_x71))), length(proper(_x51))))
top#(mark(cons(zeros, zeros)))top#(cons(ok(zeros), ok(zeros)))top#(mark(cons(cons(_x41, and(zeros, _x72)), _x22)))top#(cons(cons(proper(_x41), and(ok(zeros), proper(_x72))), proper(_x22)))
top#(mark(cons(cons(_x41, _x42), nil)))top#(cons(cons(proper(_x41), proper(_x42)), ok(nil)))top#(mark(cons(cons(and(_x61, _x62), _x42), _x22)))top#(cons(cons(and(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))
top#(mark(cons(cons(s(_x61), and(_x71, _x72)), _x22)))top#(cons(cons(s(proper(_x61)), and(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, and(_x71, length(_x101))), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), length(proper(_x101)))), proper(_x22)))
top#(mark(cons(cons(s(_x61), _x42), _x22)))top#(cons(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))top#(mark(cons(cons(zeros, _x42), _x22)))top#(cons(cons(ok(zeros), proper(_x42)), proper(_x22)))
top#(mark(cons(cons(_x41, and(_x71, tt)), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), ok(tt))), proper(_x22)))top#(mark(cons(tt, _x22)))top#(cons(ok(tt), proper(_x22)))
top#(mark(cons(cons(_x41, _x42), tt)))top#(cons(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(cons(cons(0, and(_x71, _x72)), _x22)))top#(cons(cons(ok(0), and(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(length(_x21)))top#(length(proper(_x21)))top#(mark(cons(cons(_x41, s(nil)), _x22)))top#(cons(cons(proper(_x41), s(ok(nil))), proper(_x22)))
top#(mark(cons(cons(_x41, and(nil, _x72)), _x22)))top#(cons(cons(proper(_x41), and(ok(nil), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, and(_x71, zeros)), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), ok(zeros))), proper(_x22)))
top#(mark(cons(cons(nil, _x42), _x22)))top#(cons(cons(ok(nil), proper(_x42)), proper(_x22)))top#(ok(and(_x21, _x22)))top#(and(active(_x21), _x22))
top#(mark(cons(cons(_x41, s(_x71)), tt)))top#(cons(cons(proper(_x41), s(proper(_x71))), ok(tt)))top#(mark(cons(cons(_x41, and(_x71, _x72)), zeros)))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), ok(zeros)))
top#(mark(cons(cons(_x41, and(_x71, _x72)), 0)))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), ok(0)))top#(mark(cons(cons(_x41, and(_x71, nil)), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), ok(nil))), proper(_x22)))
top#(mark(cons(cons(_x41, _x42), and(_x51, _x52))))top#(cons(cons(proper(_x41), proper(_x42)), and(proper(_x51), proper(_x52))))top#(mark(cons(cons(_x41, s(_x71)), and(_x51, _x52))))top#(cons(cons(proper(_x41), s(proper(_x71))), and(proper(_x51), proper(_x52))))
top#(mark(cons(zeros, s(_x51))))top#(cons(ok(zeros), s(proper(_x51))))top#(mark(cons(cons(_x41, _x42), 0)))top#(cons(cons(proper(_x41), proper(_x42)), ok(0)))
top#(mark(cons(_x21, 0)))top#(cons(proper(_x21), ok(0)))top#(mark(cons(cons(length(_x61), _x42), _x22)))top#(cons(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(cons(cons(tt, and(_x71, _x72)), _x22)))top#(cons(cons(ok(tt), and(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, and(_x71, and(_x101, _x102))), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), and(proper(_x101), proper(_x102)))), proper(_x22)))
top#(mark(cons(cons(_x41, s(tt)), _x22)))top#(cons(cons(proper(_x41), s(ok(tt))), proper(_x22)))top#(mark(cons(cons(and(_x61, _x62), and(_x71, _x72)), _x22)))top#(cons(cons(and(proper(_x61), proper(_x62)), and(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(cons(zeros, tt)))top#(cons(ok(zeros), ok(tt)))top#(mark(cons(cons(_x41, and(0, _x72)), _x22)))top#(cons(cons(proper(_x41), and(ok(0), proper(_x72))), proper(_x22)))
top#(mark(cons(cons(_x41, s(cons(_x91, _x92))), _x22)))top#(cons(cons(proper(_x41), s(cons(proper(_x91), proper(_x92)))), proper(_x22)))top#(mark(cons(cons(0, _x42), _x22)))top#(cons(cons(ok(0), proper(_x42)), proper(_x22)))
top#(mark(cons(cons(and(_x61, _x62), s(_x71)), _x22)))top#(cons(cons(and(proper(_x61), proper(_x62)), s(proper(_x71))), proper(_x22)))

Rewrite Rules

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

Strategy


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

Problem 18: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 19: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 20: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 21: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 22: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 23: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 24: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 25: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 26: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 27: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

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

Strategy


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

Problem 28: ForwardNarrowing



Dependency Pair Problem

Dependency Pairs

top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(_x91)), length(_x91)), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(proper(_x91))), length(proper(_x91))), ok(0)))))top#(mark(cons(0, cons(length(s(and(s(_x91), _x72))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(s(proper(_x91)), proper(_x72)))), and(proper(_x61), s(proper(_x91))))))
top#(mark(cons(cons(_x41, s(cons(_x61, and(_x91, _x92)))), nil)))top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil)))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(_x91)), and(_x91, _x92)), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(proper(_x91))), and(proper(_x91), proper(_x92))), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(s(_x121)), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(s(proper(_x121))), proper(_x82)), proper(_x62)))))top#(mark(cons(cons(_x41, s(s(_x91))), cons(_x51, _x52))))top#(cons(cons(proper(_x41), s(s(proper(_x91)))), cons(proper(_x51), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, cons(_x101, _x102)))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), cons(proper(_x101), proper(_x102))))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))top#(mark(cons(nil, cons(length(_x71), tt))))top#(cons(ok(nil), cons(length(proper(_x71)), ok(tt))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(cons(_x121, _x122)), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(cons(proper(_x121), proper(_x122))), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(_x71, length(_x101)))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), length(proper(_x101))))), and(proper(_x61), length(proper(_x91))))))
top#(mark(cons(_x21, cons(s(_x71), cons(_x81, _x82)))))top#(cons(proper(_x21), cons(s(proper(_x71)), cons(proper(_x81), proper(_x82)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(zeros, s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(ok(zeros), s(proper(_x91))))))
top#(mark(cons(0, cons(length(s(and(0, _x72))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))top#(mark(cons(cons(zeros, _x42), cons(length(s(_x91)), _x52))))top#(cons(cons(ok(zeros), proper(_x42)), cons(length(s(proper(_x91))), proper(_x52))))
top#(mark(cons(_x21, cons(length(s(s(_x101))), nil))))top#(cons(proper(_x21), cons(length(s(s(proper(_x101)))), ok(nil))))top#(mark(cons(cons(_x41, s(s(_x91))), and(_x51, _x52))))top#(cons(cons(proper(_x41), s(s(proper(_x91)))), and(proper(_x51), proper(_x52))))
top#(mark(cons(cons(_x41, s(cons(tt, _x62))), nil)))top#(cons(cons(proper(_x41), s(cons(ok(tt), proper(_x62)))), ok(nil)))top#(mark(cons(_x21, cons(s(zeros), cons(_x81, _x82)))))top#(cons(proper(_x21), cons(s(ok(zeros)), cons(proper(_x81), proper(_x82)))))
top#(mark(cons(0, cons(length(s(nil)), _x52))))top#(cons(ok(0), cons(length(s(ok(nil))), proper(_x52))))top#(mark(cons(and(_x41, _x42), cons(length(s(_x91)), _x52))))top#(cons(and(proper(_x41), proper(_x42)), cons(length(s(proper(_x91))), proper(_x52))))
top#(mark(cons(_x21, zeros)))top#(cons(proper(_x21), ok(zeros)))top#(mark(cons(zeros, cons(length(zeros), length(_x61)))))top#(cons(ok(zeros), cons(length(ok(zeros)), length(proper(_x61)))))
top#(mark(cons(0, _x22)))top#(cons(ok(0), proper(_x22)))top#(mark(cons(0, cons(s(zeros), cons(length(_x81), _x62)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(length(proper(_x81)), proper(_x62)))))
top#(mark(cons(cons(_x41, and(tt, _x72)), _x22)))top#(cons(cons(proper(_x41), and(ok(tt), proper(_x72))), proper(_x22)))top#(mark(cons(_x21, s(_x51))))top#(cons(proper(_x21), s(proper(_x51))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(s(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(s(proper(_x101)), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(0, tt))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(ok(0), ok(tt)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(length(_x91), _x72))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(length(proper(_x91)), proper(_x72)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))top#(mark(cons(cons(_x41, and(_x71, _x72)), length(_x51))))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), length(proper(_x51))))
top#(mark(cons(nil, cons(length(tt), _x52))))top#(cons(ok(nil), cons(length(ok(tt)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(zeros, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(ok(zeros), proper(_x82)), proper(_x62)))))
top#(mark(cons(_x21, cons(length(_x71), s(_x81)))))top#(cons(proper(_x21), cons(length(proper(_x71)), s(proper(_x81)))))top#(ok(cons(length(_x41), _x22)))top#(cons(length(active(_x41)), _x22))
top#(mark(cons(0, cons(length(s(and(_x71, zeros))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))top#(mark(cons(tt, cons(0, _x52))))top#(cons(ok(tt), cons(ok(0), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, length(_x101)))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), length(proper(_x101))))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))top#(mark(cons(_x21, cons(length(s(_x91)), nil))))top#(cons(proper(_x21), cons(length(s(proper(_x91))), ok(nil))))
top#(mark(cons(0, cons(length(s(and(0, _x72))), cons(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), cons(proper(_x61), proper(_x62)))))top#(mark(cons(zeros, cons(s(s(_x91)), tt))))top#(cons(ok(zeros), cons(s(s(proper(_x91))), ok(tt))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(s(_x91)), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(s(proper(_x91))), ok(nil)), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, cons(_x101, _x102)))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), cons(proper(_x101), proper(_x102))))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))
top#(mark(cons(cons(length(0), s(_x71)), _x22)))top#(cons(cons(length(ok(0)), s(proper(_x71))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(0, and(_x101, _x102)))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(0), and(proper(_x101), proper(_x102))))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(s(_x91), _x72))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(s(proper(_x91)), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(length(_x91), _x72))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(length(proper(_x91)), proper(_x72)))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(_x61, s(zeros))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(proper(_x61), s(ok(zeros))))))top#(mark(cons(nil, cons(_x51, _x52))))top#(cons(ok(nil), cons(proper(_x51), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), ok(zeros)), ok(0)))))top#(ok(cons(and(_x41, _x42), _x22)))top#(cons(and(active(_x41), _x42), _x22))
top#(mark(cons(cons(and(_x51, _x52), s(cons(_x61, _x62))), nil)))top#(cons(cons(and(proper(_x51), proper(_x52)), s(cons(proper(_x61), proper(_x62)))), ok(nil)))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(length(_x111))), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(length(proper(_x111)))), ok(zeros)), ok(0)))))
top#(mark(cons(0, cons(s(zeros), _x52))))top#(cons(ok(0), cons(ok(s(zeros)), proper(_x52))))top#(mark(cons(length(_x41), _x22)))top#(cons(length(proper(_x41)), proper(_x22)))
top#(mark(cons(_x21, cons(0, cons(_x81, _x82)))))top#(cons(proper(_x21), cons(ok(0), cons(proper(_x81), proper(_x82)))))top#(mark(cons(cons(length(and(_x71, _x72)), s(_x71)), _x22)))top#(cons(cons(length(and(proper(_x71), proper(_x72))), s(proper(_x71))), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(_x71, s(_x101)))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), s(proper(_x101))))), and(proper(_x61), s(proper(_x91))))))top#(mark(cons(cons(_x41, 0), cons(length(s(_x91)), _x52))))top#(cons(cons(proper(_x41), ok(0)), cons(length(s(proper(_x91))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(length(_x81), s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(length(proper(_x81)), s(proper(_x91))))))top#(mark(cons(cons(nil, s(_x71)), nil)))top#(cons(cons(ok(nil), s(proper(_x71))), ok(nil)))
top#(mark(cons(nil, cons(s(_x71), _x52))))top#(cons(ok(nil), cons(s(proper(_x71)), proper(_x52))))top#(mark(cons(cons(s(_x61), and(_x71, _x72)), _x22)))top#(cons(cons(s(proper(_x61)), and(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(0, _x72))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), and(proper(_x61), proper(_x62)))))top#(mark(cons(_x21, cons(s(s(tt)), tt))))top#(cons(proper(_x21), cons(s(s(ok(tt))), ok(tt))))
top#(mark(cons(zeros, cons(length(cons(_x61, _x62)), _x52))))top#(cons(ok(zeros), cons(length(cons(proper(_x61), proper(_x62))), proper(_x52))))top#(mark(cons(cons(_x41, s(cons(_x61, zeros))), nil)))top#(cons(cons(proper(_x41), s(cons(proper(_x61), ok(zeros)))), ok(nil)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), 0), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), ok(0)), ok(0)))))top#(mark(cons(tt, _x22)))top#(cons(ok(tt), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(tt, tt))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(ok(tt), ok(tt)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))top#(mark(cons(zeros, cons(length(zeros), and(_x61, _x62)))))top#(cons(ok(zeros), cons(length(ok(zeros)), and(proper(_x61), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(length(_x81), length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(length(proper(_x81)), length(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(and(length(and(_x91, _x92)), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(and(length(and(proper(_x91), proper(_x92))), ok(nil)), ok(0)))))
top#(mark(cons(_x21, cons(_x51, 0))))top#(cons(proper(_x21), cons(proper(_x51), ok(0))))top#(mark(cons(_x21, cons(length(s(s(_x101))), zeros))))top#(cons(proper(_x21), cons(length(s(s(proper(_x101)))), ok(zeros))))
top#(mark(cons(cons(_x41, tt), length(_x51))))top#(cons(cons(proper(_x41), ok(tt)), length(proper(_x51))))top#(mark(cons(0, cons(length(s(and(and(_x91, _x92), _x72))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(and(proper(_x91), proper(_x92)), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(nil, length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(ok(nil), length(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(s(_x91), _x72))), _x52))))top#(cons(ok(0), cons(length(s(and(s(proper(_x91)), proper(_x72)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, tt))), _x52))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), proper(_x52))))top#(mark(cons(_x21, cons(s(s(cons(_x81, _x82))), tt))))top#(cons(proper(_x21), cons(s(s(cons(proper(_x81), proper(_x82)))), ok(tt))))
top#(mark(cons(s(_x41), cons(_x51, _x52))))top#(cons(s(proper(_x41)), cons(proper(_x51), proper(_x52))))top#(mark(cons(0, cons(length(s(and(cons(_x91, _x92), zeros))), _x52))))top#(cons(ok(0), cons(length(s(and(cons(proper(_x91), proper(_x92)), ok(zeros)))), proper(_x52))))
top#(mark(cons(_x21, cons(_x51, nil))))top#(cons(proper(_x21), cons(proper(_x51), ok(nil))))top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(_x61, s(and(_x111, _x112)))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(proper(_x61), s(and(proper(_x111), proper(_x112)))))))
top#(mark(cons(_x21, cons(length(_x71), nil))))top#(cons(proper(_x21), cons(length(proper(_x71)), ok(nil))))top#(mark(cons(0, cons(length(s(and(and(_x91, _x92), _x72))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(and(proper(_x91), proper(_x92)), proper(_x72)))), and(proper(_x61), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(0, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(ok(0), s(proper(_x91))))))top#(mark(cons(length(_x41), cons(s(_x71), _x52))))top#(cons(length(proper(_x41)), cons(s(proper(_x71)), proper(_x52))))
top#(mark(cons(_x21, cons(s(tt), _x52))))top#(cons(proper(_x21), cons(s(ok(tt)), proper(_x52))))top#(mark(cons(_x21, cons(s(_x71), s(_x81)))))top#(cons(proper(_x21), cons(s(proper(_x71)), s(proper(_x81)))))
top#(mark(cons(zeros, cons(length(length(nil)), _x52))))top#(cons(ok(zeros), cons(length(length(ok(nil))), proper(_x52))))top#(mark(cons(_x21, cons(tt, _x52))))top#(cons(proper(_x21), cons(ok(tt), proper(_x52))))
top#(mark(cons(0, cons(s(zeros), cons(nil, s(_x91))))))top#(cons(ok(0), cons(s(ok(zeros)), cons(ok(nil), s(proper(_x91))))))top#(ok(zeros))top#(mark(cons(0, zeros)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, _x82), cons(_x91, _x92))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), proper(_x82)), cons(proper(_x91), proper(_x92))))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, _x82), s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), proper(_x82)), s(proper(_x91))))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, length(and(_x111, _x112)))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), length(and(proper(_x111), proper(_x112)))))))top#(mark(cons(zeros, cons(s(_x71), _x52))))top#(cons(ok(zeros), cons(s(proper(_x71)), proper(_x52))))
top#(mark(cons(cons(zeros, s(_x71)), _x22)))top#(cons(cons(ok(zeros), s(proper(_x71))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(s(_x91), _x72))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(s(proper(_x91)), proper(_x72)))), and(proper(_x61), proper(_x62)))))
top#(mark(cons(0, cons(s(zeros), cons(_x61, tt)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(proper(_x61), ok(tt)))))top#(mark(cons(cons(_x41, length(_x71)), _x22)))top#(cons(cons(proper(_x41), length(proper(_x71))), proper(_x22)))
top#(mark(cons(cons(_x41, and(_x71, _x72)), s(_x51))))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), s(proper(_x51))))top#(mark(cons(_x21, cons(length(_x71), cons(_x81, _x82)))))top#(cons(proper(_x21), cons(length(proper(_x71)), cons(proper(_x81), proper(_x82)))))
top#(mark(cons(0, cons(length(s(cons(_x71, _x72))), _x52))))top#(cons(ok(0), cons(length(s(cons(proper(_x71), proper(_x72)))), proper(_x52))))top#(mark(cons(cons(_x41, s(cons(zeros, zeros))), nil)))top#(cons(cons(proper(_x41), s(cons(ok(zeros), ok(zeros)))), ok(nil)))
top#(mark(cons(cons(length(_x61), s(_x71)), zeros)))top#(cons(cons(length(proper(_x61)), s(proper(_x71))), ok(zeros)))top#(mark(cons(0, cons(s(zeros), cons(_x61, 0)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(proper(_x61), ok(0)))))
top#(mark(cons(cons(_x41, _x42), cons(length(s(_x91)), nil))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(proper(_x91))), ok(nil))))top#(mark(cons(_x21, cons(s(_x71), tt))))top#(cons(proper(_x21), cons(s(proper(_x71)), ok(tt))))
top#(mark(cons(cons(_x41, and(_x71, s(_x101))), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), s(proper(_x101)))), proper(_x22)))top#(ok(s(_x21)))top#(s(active(_x21)))
top#(mark(cons(_x21, cons(s(and(_x91, _x92)), _x52))))top#(cons(proper(_x21), cons(s(and(proper(_x91), proper(_x92))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(and(_x91, _x92), _x72))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(and(proper(_x91), proper(_x92)), proper(_x72)))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(length(_x91), _x72))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(length(proper(_x91)), proper(_x72)))), and(proper(_x61), s(proper(_x91))))))top#(mark(cons(nil, cons(length(and(_x61, _x62)), _x52))))top#(cons(ok(nil), cons(length(and(proper(_x61), proper(_x62))), proper(_x52))))
top#(mark(cons(cons(length(_x61), s(_x71)), cons(_x51, _x52))))top#(cons(cons(length(proper(_x61)), s(proper(_x71))), cons(proper(_x51), proper(_x52))))top#(mark(cons(cons(_x41, s(cons(and(_x81, _x82), _x62))), nil)))top#(cons(cons(proper(_x41), s(cons(and(proper(_x81), proper(_x82)), proper(_x62)))), ok(nil)))
top#(mark(cons(zeros, cons(length(and(_x61, tt)), s(_x61)))))top#(cons(ok(zeros), cons(length(and(proper(_x61), ok(tt))), s(proper(_x61)))))top#(mark(cons(0, cons(length(s(and(0, _x72))), length(_x61)))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), length(proper(_x61)))))
top#(mark(cons(cons(s(_x51), s(cons(_x61, _x62))), nil)))top#(cons(cons(s(proper(_x51)), s(cons(proper(_x61), proper(_x62)))), ok(nil)))top#(mark(cons(_x21, cons(length(s(s(zeros))), _x52))))top#(cons(proper(_x21), cons(length(s(s(ok(zeros)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), zeros), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), ok(zeros)), proper(_x62)))))top#(mark(cons(_x21, cons(length(s(s(_x101))), and(_x81, _x82)))))top#(cons(proper(_x21), cons(length(s(s(proper(_x101)))), and(proper(_x81), proper(_x82)))))
top#(mark(cons(cons(0, _x42), cons(length(s(_x91)), _x52))))top#(cons(cons(ok(0), proper(_x42)), cons(length(s(proper(_x91))), proper(_x52))))top#(mark(cons(_x21, cons(s(s(0)), tt))))top#(cons(proper(_x21), cons(s(s(ok(0))), ok(tt))))
top#(mark(cons(0, cons(length(s(and(_x71, 0))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(0)))), and(proper(_x61), proper(_x62)))))top#(mark(cons(zeros, cons(length(and(cons(_x81, _x82), _x62)), _x52))))top#(cons(ok(zeros), cons(length(and(cons(proper(_x81), proper(_x82)), proper(_x62))), proper(_x52))))
top#(mark(cons(and(_x41, _x42), cons(s(zeros), _x52))))top#(cons(and(proper(_x41), proper(_x42)), cons(s(ok(zeros)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(0, _x72))), 0))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), ok(0))))
top#(mark(cons(0, cons(length(s(and(0, _x72))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), and(proper(_x61), s(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(and(length(nil), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(and(length(ok(nil)), ok(nil)), ok(0)))))
top#(mark(cons(nil, cons(length(_x71), zeros))))top#(cons(ok(nil), cons(length(proper(_x71)), ok(zeros))))top#(mark(cons(zeros, cons(length(_x71), nil))))top#(cons(ok(zeros), cons(length(proper(_x71)), ok(nil))))
top#(mark(cons(and(_x41, _x42), cons(0, _x52))))top#(cons(and(proper(_x41), proper(_x42)), cons(ok(0), proper(_x52))))top#(mark(cons(s(_x41), cons(length(s(s(_x101))), _x52))))top#(cons(s(proper(_x41)), cons(length(s(s(proper(_x101)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(zeros, zeros))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), ok(zeros)))), and(proper(_x61), s(proper(_x91))))))top#(mark(cons(cons(_x41, _x42), cons(length(s(length(_x71))), _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(length(proper(_x71)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(0, _x72))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))top#(mark(cons(cons(nil, and(_x71, _x72)), _x22)))top#(cons(cons(ok(nil), and(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(cons(_x21, cons(s(zeros), nil))))top#(cons(proper(_x21), cons(s(ok(zeros)), ok(nil))))top#(mark(cons(_x21, cons(0, length(_x81)))))top#(cons(proper(_x21), cons(ok(0), length(proper(_x81)))))
top#(mark(cons(0, cons(s(_x71), _x52))))top#(cons(ok(0), cons(s(proper(_x71)), proper(_x52))))top#(mark(cons(cons(zeros, s(cons(_x61, _x62))), nil)))top#(cons(cons(ok(zeros), s(cons(proper(_x61), proper(_x62)))), ok(nil)))
top#(mark(cons(_x21, cons(s(zeros), s(_x81)))))top#(cons(proper(_x21), cons(s(ok(zeros)), s(proper(_x81)))))top#(mark(cons(cons(_x41, s(s(_x91))), length(_x51))))top#(cons(cons(proper(_x41), s(s(proper(_x91)))), length(proper(_x51))))
top#(mark(cons(zeros, cons(length(and(_x61, _x62)), cons(_x61, _x62)))))top#(cons(ok(zeros), cons(length(and(proper(_x61), proper(_x62))), cons(proper(_x61), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, s(0))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), s(ok(0))))))
top#(mark(cons(0, cons(length(s(and(_x71, zeros))), length(_x61)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), length(proper(_x61)))))top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(proper(_x61), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(tt, _x72))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(ok(tt), proper(_x72)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))top#(mark(cons(nil, cons(length(zeros), _x52))))top#(cons(ok(nil), cons(length(ok(zeros)), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(s(_x111))), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(s(proper(_x111)))), proper(_x82)), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(and(length(s(_x91)), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(and(length(s(proper(_x91))), ok(nil)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, zeros))), s(_x61)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), s(proper(_x61)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(s(_x81), s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(s(proper(_x81)), s(proper(_x91))))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), _x82), tt)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), ok(tt)))))top#(mark(cons(cons(_x41, tt), zeros)))top#(cons(cons(proper(_x41), ok(tt)), ok(zeros)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(nil), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(ok(nil)), proper(_x82)), ok(0)))))top#(mark(cons(0, cons(length(s(and(cons(_x91, _x92), _x72))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(cons(proper(_x91), proper(_x92)), proper(_x72)))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))
top#(mark(cons(cons(_x41, _x42), cons(s(zeros), _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(s(ok(zeros)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(nil, _x72))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(nil), proper(_x72)))), and(proper(_x61), length(proper(_x91))))))
top#(mark(cons(zeros, cons(length(and(nil, _x62)), _x52))))top#(cons(ok(zeros), cons(length(and(ok(nil), proper(_x62))), proper(_x52))))top#(mark(cons(zeros, cons(s(zeros), _x52))))top#(cons(ok(zeros), cons(s(ok(zeros)), proper(_x52))))
top#(mark(cons(0, cons(length(s(tt)), _x52))))top#(cons(ok(0), cons(length(s(ok(tt))), proper(_x52))))top#(mark(cons(zeros, cons(length(and(_x61, _x62)), zeros))))top#(cons(ok(zeros), cons(length(and(proper(_x61), proper(_x62))), ok(zeros))))
top#(mark(cons(cons(nil, _x42), cons(length(s(_x91)), _x52))))top#(cons(cons(ok(nil), proper(_x42)), cons(length(s(proper(_x91))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, and(_x101, _x102)))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), and(proper(_x101), proper(_x102))))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(zeros)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(ok(zeros))), ok(zeros)), ok(0)))))top#(mark(cons(zeros, cons(length(and(tt, tt)), _x52))))top#(cons(ok(zeros), cons(length(and(ok(tt), ok(tt))), proper(_x52))))
top#(mark(cons(cons(_x41, s(s(nil))), _x22)))top#(cons(cons(proper(_x41), s(s(ok(nil)))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(and(_x91, _x92), _x72))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(and(proper(_x91), proper(_x92)), proper(_x72)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))
top#(mark(cons(length(_x41), cons(length(s(s(_x101))), _x52))))top#(cons(length(proper(_x41)), cons(length(s(s(proper(_x101)))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(proper(_x61), length(proper(_x91))))))
top#(mark(cons(nil, cons(length(s(s(_x101))), _x52))))top#(cons(ok(nil), cons(length(s(s(proper(_x101)))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, zeros))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(and(_x91, _x92), zeros))), _x52))))top#(cons(ok(0), cons(length(s(and(and(proper(_x91), proper(_x92)), ok(zeros)))), proper(_x52))))top#(mark(cons(_x21, cons(length(length(_x91)), _x52))))top#(cons(proper(_x21), cons(length(length(proper(_x91))), proper(_x52))))
top#(mark(cons(0, cons(length(s(length(_x71))), _x52))))top#(cons(ok(0), cons(length(s(length(proper(_x71)))), proper(_x52))))top#(mark(cons(cons(_x41, s(cons(zeros, nil))), nil)))top#(cons(cons(proper(_x41), s(cons(ok(zeros), ok(nil)))), ok(nil)))
top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(and(length(length(_x91)), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(and(length(length(proper(_x91))), ok(nil)), ok(0)))))top#(mark(cons(cons(_x41, s(_x71)), zeros)))top#(cons(cons(proper(_x41), s(proper(_x71))), ok(zeros)))
top#(mark(cons(cons(_x41, s(cons(zeros, 0))), nil)))top#(cons(cons(proper(_x41), s(cons(ok(zeros), ok(0)))), ok(nil)))top#(mark(cons(cons(length(nil), s(_x71)), _x22)))top#(cons(cons(length(ok(nil)), s(proper(_x71))), proper(_x22)))
top#(mark(cons(cons(_x41, and(_x71, _x72)), and(_x51, _x52))))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), and(proper(_x51), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, _x82), tt)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), proper(_x82)), ok(tt)))))
top#(mark(cons(zeros, cons(length(and(tt, _x62)), _x52))))top#(cons(ok(zeros), cons(length(and(ok(tt), proper(_x62))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(cons(_x91, _x92), _x72))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(cons(proper(_x91), proper(_x92)), proper(_x72)))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(and(_x91, _x92)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(and(proper(_x91), proper(_x92))), proper(_x82)), ok(0)))))top#(mark(cons(cons(_x41, s(_x71)), length(_x51))))top#(cons(cons(proper(_x41), s(proper(_x71))), length(proper(_x51))))
top#(mark(cons(cons(_x41, _x42), cons(length(s(and(_x71, _x72))), _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(and(proper(_x71), proper(_x72)))), proper(_x52))))top#(mark(cons(_x21, cons(length(s(_x91)), tt))))top#(cons(proper(_x21), cons(length(s(proper(_x91))), ok(tt))))
top#(mark(cons(0, cons(length(s(_x91)), length(_x61)))))top#(cons(ok(0), cons(length(s(proper(_x91))), length(proper(_x61)))))top#(mark(cons(0, cons(length(s(and(_x71, and(_x101, _x102)))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), and(proper(_x101), proper(_x102))))), and(proper(_x61), s(proper(_x91))))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), cons(_x91, _x92)), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), cons(proper(_x91), proper(_x92))), ok(0)))))top#(mark(cons(nil, cons(length(0), _x52))))top#(cons(ok(nil), cons(length(ok(0)), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(_x91)), tt), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(proper(_x91))), ok(tt)), ok(0)))))top#(mark(cons(cons(length(length(_x71)), s(_x71)), _x22)))top#(cons(cons(length(length(proper(_x71))), s(proper(_x71))), proper(_x22)))
top#(mark(cons(0, cons(s(zeros), cons(0, _x62)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(ok(0), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(0, tt))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(0), ok(tt)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(0, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(ok(0), proper(_x82)), proper(_x62)))))top#(mark(cons(zeros, cons(length(and(_x61, tt)), tt))))top#(cons(ok(zeros), cons(length(and(proper(_x61), ok(tt))), ok(tt))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, _x82), length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), proper(_x82)), length(proper(_x91))))))top#(mark(cons(cons(_x41, and(_x71, _x72)), zeros)))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), ok(zeros)))
top#(mark(cons(0, cons(length(s(and(nil, _x72))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(nil), proper(_x72)))), and(proper(_x61), s(proper(_x91))))))top#(mark(cons(cons(length(_x61), s(length(_x81))), _x22)))top#(cons(cons(length(proper(_x61)), s(length(proper(_x81)))), proper(_x22)))
top#(mark(cons(0, cons(length(s(_x91)), cons(_x61, _x62)))))top#(cons(ok(0), cons(length(s(proper(_x91))), cons(proper(_x61), proper(_x62)))))top#(mark(cons(nil, cons(length(_x71), cons(_x61, _x62)))))top#(cons(ok(nil), cons(length(proper(_x71)), cons(proper(_x61), proper(_x62)))))
top#(mark(cons(_x21, cons(length(s(tt)), _x52))))top#(cons(proper(_x21), cons(length(s(ok(tt))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(length(_x81), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(length(proper(_x81)), proper(_x62)))))
top#(mark(cons(_x21, cons(length(s(s(nil))), _x52))))top#(cons(proper(_x21), cons(length(s(s(ok(nil)))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))
top#(mark(cons(cons(_x41, s(cons(zeros, and(_x91, _x92)))), nil)))top#(cons(cons(proper(_x41), s(cons(ok(zeros), and(proper(_x91), proper(_x92))))), ok(nil)))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(and(_x111, _x112))), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(and(proper(_x111), proper(_x112)))), ok(zeros)), ok(0)))))
top#(mark(cons(cons(zeros, s(_x71)), nil)))top#(cons(cons(ok(zeros), s(proper(_x71))), ok(nil)))top#(mark(cons(cons(_x41, s(tt)), _x22)))top#(cons(cons(proper(_x41), s(ok(tt))), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), ok(0)))))top#(mark(cons(0, cons(length(s(_x91)), s(_x61)))))top#(cons(ok(0), cons(length(s(proper(_x91))), s(proper(_x61)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(nil), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(ok(nil)), ok(nil)), ok(0)))))top#(mark(cons(and(_x41, _x42), cons(_x51, _x52))))top#(cons(and(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))
top#(mark(cons(0, cons(s(zeros), cons(_x61, nil)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(proper(_x61), ok(nil)))))top#(mark(cons(0, cons(s(zeros), zeros))))top#(cons(ok(0), cons(s(ok(zeros)), ok(zeros))))
top#(mark(cons(cons(tt, s(s(_x91))), _x22)))top#(cons(cons(ok(tt), s(s(proper(_x91)))), proper(_x22)))top#(mark(cons(zeros, cons(length(s(_x61)), _x52))))top#(cons(ok(zeros), cons(length(s(proper(_x61))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(tt, length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(ok(tt), length(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(_x71, zeros))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), and(proper(_x61), length(proper(_x91))))))
top#(mark(cons(0, cons(length(s(and(_x71, nil))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(nil)))), and(proper(_x61), length(proper(_x91))))))top#(mark(cons(cons(_x41, _x42), cons(s(s(_x91)), tt))))top#(cons(cons(proper(_x41), proper(_x42)), cons(s(s(proper(_x91))), ok(tt))))
top#(mark(cons(cons(_x41, tt), and(_x51, _x52))))top#(cons(cons(proper(_x41), ok(tt)), and(proper(_x51), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, cons(_x101, _x102)))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), cons(proper(_x101), proper(_x102))))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), length(_x111)), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), length(proper(_x111))), proper(_x62)))))top#(mark(cons(cons(_x41, _x42), zeros)))top#(cons(cons(proper(_x41), proper(_x42)), ok(zeros)))
top#(mark(cons(0, cons(length(s(and(_x71, zeros))), 0))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), ok(0))))top#(mark(cons(0, cons(length(s(and(zeros, cons(_x101, _x102)))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), cons(proper(_x101), proper(_x102))))), and(proper(_x61), s(proper(_x91))))))
top#(mark(cons(cons(_x41, s(cons(cons(_x81, _x82), _x62))), nil)))top#(cons(cons(proper(_x41), s(cons(cons(proper(_x81), proper(_x82)), proper(_x62)))), ok(nil)))top#(mark(cons(0, cons(length(s(and(_x71, 0))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(0)))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))
top#(mark(cons(cons(0, s(_x71)), _x22)))top#(cons(cons(ok(0), s(proper(_x71))), proper(_x22)))top#(mark(cons(s(_x41), cons(s(s(_x91)), tt))))top#(cons(s(proper(_x41)), cons(s(s(proper(_x91))), ok(tt))))
top#(mark(cons(cons(cons(_x61, _x62), and(_x71, _x72)), _x22)))top#(cons(cons(cons(proper(_x61), proper(_x62)), and(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(and(_x91, _x92), tt))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(and(proper(_x91), proper(_x92)), ok(tt)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))
top#(mark(cons(zeros, cons(length(nil), _x52))))top#(cons(ok(zeros), cons(length(ok(nil)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), cons(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), cons(proper(_x61), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(s(_x81), s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(s(proper(_x81)), s(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(_x71, s(_x101)))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), s(proper(_x101))))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), 0), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), ok(0)), proper(_x62)))))top#(mark(cons(cons(_x41, and(cons(_x91, _x92), _x72)), _x22)))top#(cons(cons(proper(_x41), and(cons(proper(_x91), proper(_x92)), proper(_x72))), proper(_x22)))
top#(mark(cons(0, cons(s(zeros), cons(nil, 0)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(ok(nil), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, cons(_x111, _x112)), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), cons(proper(_x111), proper(_x112))), proper(_x62)))))
top#(mark(cons(s(_x41), _x22)))top#(cons(s(proper(_x41)), proper(_x22)))top#(mark(cons(zeros, cons(length(_x71), zeros))))top#(cons(ok(zeros), cons(length(proper(_x71)), ok(zeros))))
top#(mark(cons(_x21, cons(zeros, _x52))))top#(cons(proper(_x21), cons(ok(zeros), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), cons(_x111, _x112)), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), cons(proper(_x111), proper(_x112))), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(_x71, nil))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(nil)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, length(cons(_x111, _x112)))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), length(cons(proper(_x111), proper(_x112)))))))
top#(mark(cons(0, cons(length(s(and(_x71, nil))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(nil)))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, length(zeros))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), length(ok(zeros))))))
top#(mark(cons(zeros, cons(length(and(s(_x81), _x62)), _x52))))top#(cons(ok(zeros), cons(length(and(s(proper(_x81)), proper(_x62))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(0, _x72))), tt))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), ok(tt))))
top#(mark(cons(0, cons(length(s(and(_x71, zeros))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))top#(mark(cons(tt, cons(length(s(s(_x101))), _x52))))top#(cons(ok(tt), cons(length(s(s(proper(_x101)))), proper(_x52))))
top#(mark(cons(_x21, cons(length(s(_x91)), and(_x81, _x82)))))top#(cons(proper(_x21), cons(length(s(proper(_x91))), and(proper(_x81), proper(_x82)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), proper(_x82)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, _x82), and(_x91, _x92))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), proper(_x82)), and(proper(_x91), proper(_x92))))))top#(mark(cons(cons(_x41, cons(_x51, _x52)), cons(length(s(_x91)), _x52))))top#(cons(cons(proper(_x41), cons(proper(_x51), proper(_x52))), cons(length(s(proper(_x91))), proper(_x52))))
top#(mark(cons(cons(s(_x61), s(_x71)), _x22)))top#(cons(cons(s(proper(_x61)), s(proper(_x71))), proper(_x22)))top#(mark(cons(and(_x41, _x42), cons(length(_x71), _x52))))top#(cons(and(proper(_x41), proper(_x42)), cons(length(proper(_x71)), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, s(_x101)))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), s(proper(_x101))))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))top#(mark(cons(zeros, cons(s(s(_x91)), _x52))))top#(cons(ok(zeros), cons(s(s(proper(_x91))), proper(_x52))))
top#(mark(cons(0, cons(s(zeros), cons(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(and(proper(_x81), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(_x71, cons(_x101, _x102)))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), cons(proper(_x101), proper(_x102))))), and(proper(_x61), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), tt), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), ok(tt)), ok(0)))))top#(mark(cons(0, cons(length(s(and(s(_x91), _x72))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(s(proper(_x91)), proper(_x72)))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, 0))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(0)))), and(proper(_x61), length(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, _x82), nil)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), proper(_x82)), ok(nil)))))
top#(mark(cons(cons(length(_x61), s(_x71)), and(_x51, _x52))))top#(cons(cons(length(proper(_x61)), s(proper(_x71))), and(proper(_x51), proper(_x52))))top#(mark(cons(_x21, cons(0, 0))))top#(cons(proper(_x21), cons(ok(0), ok(0))))
top#(mark(cons(cons(_x41, cons(_x71, _x72)), _x22)))top#(cons(cons(proper(_x41), cons(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), and(_x111, _x112)), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), and(proper(_x111), proper(_x112))), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(zeros, tt))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), ok(tt)))), and(proper(_x61), s(proper(_x91))))))top#(mark(cons(_x21, cons(length(s(_x91)), cons(_x81, _x82)))))top#(cons(proper(_x21), cons(length(s(proper(_x91))), cons(proper(_x81), proper(_x82)))))
top#(mark(cons(cons(tt, s(_x71)), _x22)))top#(cons(cons(ok(tt), s(proper(_x71))), proper(_x22)))top#(ok(cons(length(cons(_x42, _x41)), _x22)))top#(cons(mark(s(length(_x41))), _x22))
top#(mark(cons(_x21, nil)))top#(cons(proper(_x21), ok(nil)))top#(mark(cons(cons(zeros, and(_x71, _x72)), _x22)))top#(cons(cons(ok(zeros), and(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(cons(_x91, _x92), _x72))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(cons(proper(_x91), proper(_x92)), proper(_x72)))), and(proper(_x61), proper(_x62)))))top#(mark(cons(cons(_x41, s(cons(_x61, length(_x91)))), nil)))top#(cons(cons(proper(_x41), s(cons(proper(_x61), length(proper(_x91))))), ok(nil)))
top#(mark(cons(tt, cons(length(_x71), _x52))))top#(cons(ok(tt), cons(length(proper(_x71)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(tt), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(ok(tt)), proper(_x82)), proper(_x62)))))
top#(mark(cons(tt, cons(_x51, _x52))))top#(cons(ok(tt), cons(proper(_x51), proper(_x52))))top#(mark(cons(0, cons(0, _x52))))top#(cons(ok(0), cons(ok(0), proper(_x52))))
top#(mark(cons(0, cons(s(zeros), cons(nil, cons(_x91, _x92))))))top#(cons(ok(0), cons(s(ok(zeros)), cons(ok(nil), cons(proper(_x91), proper(_x92))))))top#(mark(cons(0, cons(length(s(and(0, _x72))), zeros))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), ok(zeros))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, cons(_x91, _x92))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), cons(proper(_x91), proper(_x92))))))top#(mark(cons(0, cons(length(s(and(cons(_x91, _x92), _x72))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(cons(proper(_x91), proper(_x92)), proper(_x72)))), and(proper(_x61), length(proper(_x91))))))
top#(ok(length(_x21)))top#(length(active(_x21)))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(0, length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(ok(0), length(proper(_x91))))))
top#(mark(cons(zeros, cons(length(and(_x61, s(_x91))), _x52))))top#(cons(ok(zeros), cons(length(and(proper(_x61), s(proper(_x91)))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, s(s(_x111)))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), s(s(proper(_x111)))))))
top#(mark(cons(cons(_x41, s(length(_x91))), _x22)))top#(cons(cons(proper(_x41), s(length(proper(_x91)))), proper(_x22)))top#(mark(cons(cons(tt, tt), _x22)))top#(cons(cons(ok(tt), ok(tt)), proper(_x22)))
top#(mark(cons(cons(0, s(s(_x91))), _x22)))top#(cons(cons(ok(0), s(s(proper(_x91)))), proper(_x22)))top#(mark(cons(cons(_x41, s(_x71)), cons(_x51, _x52))))top#(cons(cons(proper(_x41), s(proper(_x71))), cons(proper(_x51), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, length(_x101)))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), length(proper(_x101))))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))top#(mark(cons(cons(length(_x51), s(_x71)), nil)))top#(cons(cons(length(proper(_x51)), s(proper(_x71))), ok(nil)))
top#(mark(cons(_x21, cons(length(s(and(_x101, _x102))), _x52))))top#(cons(proper(_x21), cons(length(s(and(proper(_x101), proper(_x102)))), proper(_x52))))top#(mark(cons(0, cons(s(zeros), cons(s(_x81), _x62)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(s(proper(_x81)), proper(_x62)))))
top#(mark(cons(cons(_x41, s(cons(s(_x81), _x62))), nil)))top#(cons(cons(proper(_x41), s(cons(s(proper(_x81)), proper(_x62)))), ok(nil)))top#(mark(cons(_x21, cons(cons(_x71, _x72), _x52))))top#(cons(proper(_x21), cons(cons(proper(_x71), proper(_x72)), proper(_x52))))
top#(mark(cons(_x21, cons(s(zeros), zeros))))top#(cons(proper(_x21), cons(s(ok(zeros)), ok(zeros))))top#(mark(cons(_x21, cons(s(s(_x91)), nil))))top#(cons(proper(_x21), cons(s(s(proper(_x91))), ok(nil))))
top#(mark(cons(zeros, cons(length(and(and(_x81, _x82), tt)), _x52))))top#(cons(ok(zeros), cons(length(and(and(proper(_x81), proper(_x82)), ok(tt))), proper(_x52))))top#(mark(cons(cons(cons(_x61, _x62), s(s(_x91))), _x22)))top#(cons(cons(cons(proper(_x61), proper(_x62)), s(s(proper(_x91)))), proper(_x22)))
top#(mark(cons(cons(_x41, nil), cons(length(s(_x91)), _x52))))top#(cons(cons(proper(_x41), ok(nil)), cons(length(s(proper(_x91))), proper(_x52))))top#(mark(cons(cons(_x41, and(zeros, _x72)), _x22)))top#(cons(cons(proper(_x41), and(ok(zeros), proper(_x72))), proper(_x22)))
top#(mark(cons(0, cons(s(zeros), tt))))top#(cons(ok(0), cons(s(ok(zeros)), ok(tt))))top#(mark(cons(cons(_x41, _x42), cons(length(s(_x91)), 0))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(proper(_x91))), ok(0))))
top#(mark(cons(0, cons(length(s(and(cons(_x91, _x92), tt))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(cons(proper(_x91), proper(_x92)), ok(tt)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))top#(mark(cons(zeros, cons(length(length(length(_x81))), _x52))))top#(cons(ok(zeros), cons(length(length(length(proper(_x81)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(s(_x91), _x72))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(s(proper(_x91)), proper(_x72)))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))top#(mark(cons(zeros, cons(length(and(_x61, tt)), and(_x61, _x62)))))top#(cons(ok(zeros), cons(length(and(proper(_x61), ok(tt))), and(proper(_x61), proper(_x62)))))
top#(mark(cons(cons(0, and(_x71, _x72)), _x22)))top#(cons(cons(ok(0), and(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(cons(_x41, and(nil, _x72)), _x22)))top#(cons(cons(proper(_x41), and(ok(nil), proper(_x72))), proper(_x22)))
top#(mark(cons(0, cons(length(s(zeros)), _x52))))top#(cons(ok(0), cons(length(s(ok(zeros))), proper(_x52))))top#(mark(cons(0, cons(s(zeros), cons(nil, tt)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(ok(nil), ok(tt)))))
top#(mark(cons(cons(_x41, _x42), cons(length(s(_x91)), and(_x61, _x62)))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(proper(_x91))), and(proper(_x61), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), tt))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), ok(tt))))
top#(mark(cons(0, cons(length(s(and(_x71, 0))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(0)))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))top#(mark(cons(0, cons(length(s(and(cons(_x91, _x92), _x72))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(cons(proper(_x91), proper(_x92)), proper(_x72)))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, cons(_x101, _x102)))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), cons(proper(_x101), proper(_x102))))), and(proper(_x61), length(proper(_x91))))))
top#(mark(cons(cons(_x41, _x42), cons(length(s(_x91)), s(_x61)))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(proper(_x91))), s(proper(_x61)))))top#(mark(cons(zeros, cons(length(and(_x61, tt)), length(_x61)))))top#(cons(ok(zeros), cons(length(and(proper(_x61), ok(tt))), length(proper(_x61)))))
top#(mark(cons(cons(_x41, tt), cons(length(s(_x91)), _x52))))top#(cons(cons(proper(_x41), ok(tt)), cons(length(s(proper(_x91))), proper(_x52))))top#(mark(cons(cons(_x41, _x42), and(_x51, _x52))))top#(cons(cons(proper(_x41), proper(_x42)), and(proper(_x51), proper(_x52))))
top#(mark(cons(cons(_x41, s(_x71)), and(_x51, _x52))))top#(cons(cons(proper(_x41), s(proper(_x71))), and(proper(_x51), proper(_x52))))top#(mark(cons(zeros, cons(length(s(_x91)), _x52))))top#(cons(ok(zeros), cons(length(s(proper(_x91))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), _x82), nil)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), ok(nil)))))top#(mark(cons(cons(_x41, s(_x51)), cons(length(s(_x91)), _x52))))top#(cons(cons(proper(_x41), s(proper(_x51))), cons(length(s(proper(_x91))), proper(_x52))))
top#(mark(cons(0, cons(length(s(_x91)), tt))))top#(cons(ok(0), cons(length(s(proper(_x91))), ok(tt))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, 0), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), ok(0)), proper(_x62)))))
top#(mark(cons(cons(_x41, and(0, _x72)), _x22)))top#(cons(cons(proper(_x41), and(ok(0), proper(_x72))), proper(_x22)))top#(mark(cons(0, cons(length(s(s(_x101))), _x52))))top#(cons(ok(0), cons(length(s(s(proper(_x101)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(tt), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(ok(tt)), proper(_x82)), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(_x91)), 0), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(proper(_x91))), ok(0)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(cons(_x91, _x92), _x72))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(cons(proper(_x91), proper(_x92)), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))top#(mark(cons(cons(length(_x61), s(_x71)), tt)))top#(cons(cons(length(proper(_x61)), s(proper(_x71))), ok(tt)))
top#(mark(cons(cons(and(_x51, _x52), _x42), cons(length(s(_x91)), _x52))))top#(cons(cons(and(proper(_x51), proper(_x52)), proper(_x42)), cons(length(s(proper(_x91))), proper(_x52))))top#(mark(cons(0, cons(s(zeros), cons(nil, length(_x91))))))top#(cons(ok(0), cons(s(ok(zeros)), cons(ok(nil), length(proper(_x91))))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, s(_x111)), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), s(proper(_x111))), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(tt, _x72))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(ok(tt), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))
top#(mark(tt))top#(ok(tt))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, s(length(_x111)))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), s(length(proper(_x111)))))))
top#(mark(cons(_x21, cons(s(s(and(_x101, _x102))), _x52))))top#(cons(proper(_x21), cons(s(s(and(proper(_x101), proper(_x102)))), proper(_x52))))top#(mark(cons(0, cons(length(s(_x91)), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(proper(_x91))), and(proper(_x61), proper(_x62)))))
top#(mark(cons(_x21, cons(s(0), _x52))))top#(cons(proper(_x21), cons(s(ok(0)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(nil, _x72))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(ok(nil), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))
top#(mark(cons(_x21, cons(s(s(tt)), _x52))))top#(cons(proper(_x21), cons(s(s(ok(tt))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(cons(_x91, _x92)), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(cons(proper(_x91), proper(_x92))), ok(nil)), ok(0)))))
top#(mark(cons(zeros, cons(length(_x71), cons(_x61, _x62)))))top#(cons(ok(zeros), cons(length(proper(_x71)), cons(proper(_x61), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(_x71, length(_x101)))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), length(proper(_x101))))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(0)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(ok(0))), ok(zeros)), ok(0)))))top#(mark(cons(cons(tt, s(_x71)), nil)))top#(cons(cons(ok(tt), s(proper(_x71))), ok(nil)))
top#(mark(cons(zeros, cons(length(length(_x61)), zeros))))top#(cons(ok(zeros), cons(length(length(proper(_x61))), ok(zeros))))top#(mark(cons(0, cons(length(s(and(nil, tt))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(ok(nil), ok(tt)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))
top#(mark(cons(cons(length(s(_x71)), s(_x71)), _x22)))top#(cons(cons(length(s(proper(_x71))), s(proper(_x71))), proper(_x22)))top#(mark(cons(zeros, cons(length(length(0)), _x52))))top#(cons(ok(zeros), cons(length(length(ok(0))), proper(_x52))))
top#(mark(cons(_x21, cons(s(s(nil)), _x52))))top#(cons(proper(_x21), cons(s(s(ok(nil))), proper(_x52))))top#(mark(cons(cons(_x41, and(length(_x91), _x72)), _x22)))top#(cons(cons(proper(_x41), and(length(proper(_x91)), proper(_x72))), proper(_x22)))
top#(mark(cons(0, cons(length(s(_x91)), zeros))))top#(cons(ok(0), cons(length(s(proper(_x91))), ok(zeros))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(nil)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(ok(nil))), ok(zeros)), ok(0)))))
top#(mark(zeros))top#(ok(zeros))top#(mark(cons(cons(s(_x61), tt), _x22)))top#(cons(cons(s(proper(_x61)), ok(tt)), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(_x71, zeros))), nil))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), ok(nil))))top#(mark(cons(_x21, cons(s(_x71), nil))))top#(cons(proper(_x21), cons(s(proper(_x71)), ok(nil))))
top#(mark(cons(cons(length(zeros), s(_x71)), _x22)))top#(cons(cons(length(ok(zeros)), s(proper(_x71))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(_x71, cons(_x101, _x102)))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), cons(proper(_x101), proper(_x102))))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))
top#(mark(cons(zeros, cons(length(and(_x61, 0)), _x52))))top#(cons(ok(zeros), cons(length(and(proper(_x61), ok(0))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(cons(_x81, _x82), s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(cons(proper(_x81), proper(_x82)), s(proper(_x91))))))
top#(mark(cons(zeros, cons(length(zeros), zeros))))top#(cons(ok(zeros), cons(length(ok(zeros)), ok(zeros))))top#(mark(cons(_x21, cons(s(s(0)), _x52))))top#(cons(proper(_x21), cons(s(s(ok(0))), proper(_x52))))
top#(mark(cons(cons(_x41, s(s(cons(_x101, _x102)))), _x22)))top#(cons(cons(proper(_x41), s(s(cons(proper(_x101), proper(_x102))))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(and(_x111, _x112))), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(and(proper(_x111), proper(_x112)))), proper(_x82)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), nil), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), ok(nil)), proper(_x62)))))top#(mark(cons(0, cons(s(zeros), cons(_x61, zeros)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(proper(_x61), ok(zeros)))))
top#(mark(cons(cons(_x41, _x42), cons(_x51, _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(proper(_x51), proper(_x52))))top#(mark(cons(_x21, cons(length(nil), _x52))))top#(cons(proper(_x21), cons(length(ok(nil)), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(0, _x72))), s(_x61)))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), s(proper(_x61)))))top#(mark(cons(cons(_x41, s(length(_x61))), nil)))top#(cons(cons(proper(_x41), s(length(proper(_x61)))), ok(nil)))
top#(mark(cons(cons(_x41, tt), nil)))top#(cons(cons(proper(_x41), ok(tt)), ok(nil)))top#(mark(cons(cons(_x41, and(_x71, _x72)), tt)))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), ok(tt)))
top#(mark(cons(s(_x41), cons(length(_x71), _x52))))top#(cons(s(proper(_x41)), cons(length(proper(_x71)), proper(_x52))))top#(mark(cons(_x21, cons(0, s(_x81)))))top#(cons(proper(_x21), cons(ok(0), s(proper(_x81)))))
top#(mark(cons(_x21, cons(length(_x71), and(_x81, _x82)))))top#(cons(proper(_x21), cons(length(proper(_x71)), and(proper(_x81), proper(_x82)))))top#(mark(cons(cons(zeros, tt), _x22)))top#(cons(cons(ok(zeros), ok(tt)), proper(_x22)))
top#(mark(cons(cons(_x41, s(and(_x91, _x92))), _x22)))top#(cons(cons(proper(_x41), s(and(proper(_x91), proper(_x92)))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))
top#(mark(cons(_x21, cons(s(s(_x91)), s(_x81)))))top#(cons(proper(_x21), cons(s(s(proper(_x91))), s(proper(_x81)))))top#(mark(cons(and(_x41, _x42), _x22)))top#(cons(and(proper(_x41), proper(_x42)), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(zeros, length(_x101)))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), length(proper(_x101))))), and(proper(_x61), s(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(zeros, _x72))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), _x82), length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), length(proper(_x91))))))top#(mark(cons(cons(_x41, zeros), cons(length(s(_x91)), _x52))))top#(cons(cons(proper(_x41), ok(zeros)), cons(length(s(proper(_x91))), proper(_x52))))
top#(mark(cons(cons(_x41, s(s(s(_x101)))), _x22)))top#(cons(cons(proper(_x41), s(s(s(proper(_x101))))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))
top#(mark(cons(_x21, cons(length(and(_x91, _x92)), _x52))))top#(cons(proper(_x21), cons(length(and(proper(_x91), proper(_x92))), proper(_x52))))top#(mark(cons(nil, cons(length(_x71), and(_x61, _x62)))))top#(cons(ok(nil), cons(length(proper(_x71)), and(proper(_x61), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), s(_x111)), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), s(proper(_x111))), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(and(length(tt), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(and(length(ok(tt)), ok(nil)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(s(_x81), length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(s(proper(_x81)), length(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(zeros, nil))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), ok(nil)))), and(proper(_x61), s(proper(_x91))))))
top#(mark(cons(zeros, cons(length(and(0, _x62)), _x52))))top#(cons(ok(zeros), cons(length(and(ok(0), proper(_x62))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(tt)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(ok(tt))), ok(zeros)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(s(_x81), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(s(proper(_x81)), proper(_x62)))))top#(mark(cons(cons(_x41, s(cons(zeros, s(_x91)))), nil)))top#(cons(cons(proper(_x41), s(cons(ok(zeros), s(proper(_x91))))), ok(nil)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, length(s(_x111)))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), length(s(proper(_x111)))))))top#(mark(cons(cons(_x41, _x42), cons(length(s(_x91)), cons(_x61, _x62)))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(proper(_x91))), cons(proper(_x61), proper(_x62)))))
top#(mark(cons(zeros, cons(length(zeros), nil))))top#(cons(ok(zeros), cons(length(ok(zeros)), ok(nil))))top#(mark(cons(0, cons(length(s(and(and(_x91, _x92), _x72))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(and(proper(_x91), proper(_x92)), proper(_x72)))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(cons(_x91, _x92), _x72))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(cons(proper(_x91), proper(_x92)), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))top#(mark(cons(_x21, cons(length(s(s(_x101))), tt))))top#(cons(proper(_x21), cons(length(s(s(proper(_x101)))), ok(tt))))
top#(mark(cons(cons(_x41, _x42), cons(s(s(_x91)), _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(s(s(proper(_x91))), proper(_x52))))top#(mark(cons(cons(_x41, s(nil)), nil)))top#(cons(cons(proper(_x41), s(ok(nil))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(zeros, length(_x91)))), nil)))top#(cons(cons(proper(_x41), s(cons(ok(zeros), length(proper(_x91))))), ok(nil)))top#(mark(cons(cons(_x41, s(zeros)), nil)))top#(cons(cons(proper(_x41), s(ok(zeros))), ok(nil)))
top#(mark(cons(zeros, cons(length(zeros), s(_x61)))))top#(cons(ok(zeros), cons(length(ok(zeros)), s(proper(_x61)))))top#(mark(cons(0, cons(_x51, _x52))))top#(cons(ok(0), cons(proper(_x51), proper(_x52))))
top#(mark(cons(zeros, and(_x51, _x52))))top#(cons(ok(zeros), and(proper(_x51), proper(_x52))))top#(mark(cons(cons(_x41, _x42), cons(length(s(zeros)), _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(ok(zeros))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(nil, _x72))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(ok(nil), proper(_x72)))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, 0))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(0)))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))
top#(mark(cons(0, cons(s(zeros), s(_x61)))))top#(cons(ok(0), cons(s(ok(zeros)), s(proper(_x61)))))top#(mark(cons(zeros, cons(_x51, _x52))))top#(cons(ok(zeros), cons(proper(_x51), proper(_x52))))
top#(mark(cons(zeros, cons(length(and(_x61, tt)), cons(_x61, _x62)))))top#(cons(ok(zeros), cons(length(and(proper(_x61), ok(tt))), cons(proper(_x61), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(and(_x91, _x92), _x72))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(and(proper(_x91), proper(_x92)), proper(_x72)))), and(proper(_x61), length(proper(_x91))))))
top#(mark(cons(_x21, cons(length(s(s(_x101))), 0))))top#(cons(proper(_x21), cons(length(s(s(proper(_x101)))), ok(0))))top#(mark(cons(_x21, cons(_x51, length(_x81)))))top#(cons(proper(_x21), cons(proper(_x51), length(proper(_x81)))))
top#(mark(cons(cons(_x41, _x42), length(_x51))))top#(cons(cons(proper(_x41), proper(_x42)), length(proper(_x51))))top#(mark(cons(cons(_x41, _x42), cons(0, _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(ok(0), proper(_x52))))
top#(mark(cons(zeros, cons(length(and(_x61, nil)), _x52))))top#(cons(ok(zeros), cons(length(and(proper(_x61), ok(nil))), proper(_x52))))top#(mark(cons(cons(_x41, _x42), cons(length(s(tt)), _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(ok(tt))), proper(_x52))))
top#(mark(cons(cons(_x41, _x42), nil)))top#(cons(cons(proper(_x41), proper(_x42)), ok(nil)))top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(_x61, s(0))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(proper(_x61), s(ok(0))))))
top#(mark(cons(_x21, cons(s(length(_x91)), _x52))))top#(cons(proper(_x21), cons(s(length(proper(_x91))), proper(_x52))))top#(mark(cons(s(_x41), cons(0, _x52))))top#(cons(s(proper(_x41)), cons(ok(0), proper(_x52))))
top#(mark(cons(cons(_x41, and(_x71, tt)), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), ok(tt))), proper(_x22)))top#(mark(cons(cons(nil, s(s(_x91))), _x22)))top#(cons(cons(ok(nil), s(s(proper(_x91)))), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(_x61, s(nil))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(proper(_x61), s(ok(nil))))))top#(mark(cons(_x21, cons(_x51, s(_x81)))))top#(cons(proper(_x21), cons(proper(_x51), s(proper(_x81)))))
top#(mark(cons(zeros, cons(length(length(_x61)), nil))))top#(cons(ok(zeros), cons(length(length(proper(_x61))), ok(nil))))top#(mark(cons(cons(_x41, s(nil)), _x22)))top#(cons(cons(proper(_x41), s(ok(nil))), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, s(and(_x111, _x112)))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), s(and(proper(_x111), proper(_x112)))))))top#(mark(cons(cons(length(_x61), s(tt)), _x22)))top#(cons(cons(length(proper(_x61)), s(ok(tt))), proper(_x22)))
top#(mark(cons(zeros, cons(0, _x52))))top#(cons(ok(zeros), cons(ok(0), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(and(length(cons(_x91, _x92)), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(and(length(cons(proper(_x91), proper(_x92))), ok(nil)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(tt, _x72))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(tt), proper(_x72)))), and(proper(_x61), length(proper(_x91))))))top#(mark(cons(cons(0, tt), _x22)))top#(cons(cons(ok(0), ok(tt)), proper(_x22)))
top#(mark(cons(cons(length(_x61), s(zeros)), _x22)))top#(cons(cons(length(proper(_x61)), s(ok(zeros))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(nil, _x72))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(ok(nil), proper(_x72)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))
top#(mark(cons(cons(length(_x61), s(_x71)), length(_x51))))top#(cons(cons(length(proper(_x61)), s(proper(_x71))), length(proper(_x51))))top#(mark(cons(cons(and(_x51, _x52), s(cons(zeros, _x62))), nil)))top#(cons(cons(and(proper(_x51), proper(_x52)), s(cons(ok(zeros), proper(_x62)))), ok(nil)))
top#(mark(cons(cons(_x41, _x42), 0)))top#(cons(cons(proper(_x41), proper(_x42)), ok(0)))top#(mark(cons(cons(cons(_x51, _x52), _x42), cons(length(s(_x91)), _x52))))top#(cons(cons(cons(proper(_x51), proper(_x52)), proper(_x42)), cons(length(s(proper(_x91))), proper(_x52))))
top#(mark(cons(cons(_x41, and(_x71, and(_x101, _x102))), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), and(proper(_x101), proper(_x102)))), proper(_x22)))top#(mark(cons(cons(_x41, _x42), cons(length(s(cons(_x71, _x72))), _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(cons(proper(_x71), proper(_x72)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(tt, s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(ok(tt), s(proper(_x91))))))top#(mark(cons(cons(_x41, s(s(_x91))), 0)))top#(cons(cons(proper(_x41), s(s(proper(_x91)))), ok(0)))
top#(mark(cons(0, cons(s(zeros), cons(_x61, length(_x91))))))top#(cons(ok(0), cons(s(ok(zeros)), cons(proper(_x61), length(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(zeros, zeros))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(zeros), ok(zeros)))), proper(_x52))))
top#(mark(cons(_x21, cons(length(s(s(_x101))), s(_x81)))))top#(cons(proper(_x21), cons(length(s(s(proper(_x101)))), s(proper(_x81)))))top#(mark(cons(cons(_x41, s(cons(_x91, _x92))), _x22)))top#(cons(cons(proper(_x41), s(cons(proper(_x91), proper(_x92)))), proper(_x22)))
top#(mark(cons(_x21, cons(s(s(nil)), tt))))top#(cons(proper(_x21), cons(s(s(ok(nil))), ok(tt))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(cons(_x111, _x112))), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(cons(proper(_x111), proper(_x112)))), ok(zeros)), ok(0)))))
top#(ok(and(tt, _x21)))top#(mark(_x21))top#(mark(cons(cons(_x41, s(cons(_x61, tt))), nil)))top#(cons(cons(proper(_x41), s(cons(proper(_x61), ok(tt)))), ok(nil)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(and(_x101, _x102), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(and(proper(_x101), proper(_x102)), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(0, cons(_x101, _x102)))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(0), cons(proper(_x101), proper(_x102))))), proper(_x52))))
top#(mark(cons(cons(_x41, and(_x71, _x72)), cons(_x51, _x52))))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), cons(proper(_x51), proper(_x52))))top#(mark(cons(cons(_x41, nil), _x22)))top#(cons(cons(proper(_x41), ok(nil)), proper(_x22)))
top#(ok(cons(length(nil), _x22)))top#(cons(mark(0), _x22))top#(mark(cons(_x21, cons(length(s(s(length(_x111)))), _x52))))top#(cons(proper(_x21), cons(length(s(s(length(proper(_x111))))), proper(_x52))))
top#(mark(cons(0, cons(s(s(_x91)), tt))))top#(cons(ok(0), cons(s(s(proper(_x91))), ok(tt))))top#(mark(cons(0, cons(length(s(and(0, zeros))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(0), ok(zeros)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(nil, _x72))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(ok(nil), proper(_x72)))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))top#(mark(cons(nil, cons(0, _x52))))top#(cons(ok(nil), cons(ok(0), proper(_x52))))
top#(mark(cons(_x21, cons(length(s(s(and(_x111, _x112)))), _x52))))top#(cons(proper(_x21), cons(length(s(s(and(proper(_x111), proper(_x112))))), proper(_x52))))top#(mark(cons(cons(_x41, s(cons(_x61, s(_x91)))), nil)))top#(cons(cons(proper(_x41), s(cons(proper(_x61), s(proper(_x91))))), ok(nil)))
top#(mark(cons(0, cons(length(s(and(_x71, nil))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(nil)))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), s(_x61)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), s(proper(_x61)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), s(_x91)), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), s(proper(_x91))), ok(0)))))top#(mark(cons(cons(length(_x51), s(cons(_x61, _x62))), nil)))top#(cons(cons(length(proper(_x51)), s(cons(proper(_x61), proper(_x62)))), ok(nil)))
top#(mark(cons(cons(_x41, s(s(_x61))), nil)))top#(cons(cons(proper(_x41), s(s(proper(_x61)))), ok(nil)))top#(mark(cons(0, cons(s(zeros), cons(_x61, cons(_x91, _x92))))))top#(cons(ok(0), cons(s(ok(zeros)), cons(proper(_x61), cons(proper(_x91), proper(_x92))))))
top#(mark(cons(cons(_x41, _x42), cons(length(s(s(_x101))), _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(s(proper(_x101)))), proper(_x52))))top#(mark(cons(_x21, cons(length(_x71), tt))))top#(cons(proper(_x21), cons(length(proper(_x71)), ok(tt))))
top#(mark(cons(_x21, cons(length(zeros), _x52))))top#(cons(proper(_x21), cons(length(ok(zeros)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(length(_x91), _x72))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(length(proper(_x91)), proper(_x72)))), and(proper(_x61), proper(_x62)))))
top#(mark(cons(zeros, cons(length(_x71), 0))))top#(cons(ok(zeros), cons(length(proper(_x71)), ok(0))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, length(0))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), length(ok(0))))))
top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(nil, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(ok(nil), s(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(nil, _x72))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(ok(nil), proper(_x72)))), and(proper(_x61), proper(_x62)))))
top#(mark(cons(0, cons(s(zeros), cons(nil, _x62)))))top#(cons(ok(0), cons(ok(s(zeros)), cons(ok(nil), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(zeros)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(ok(zeros))), proper(_x82)), ok(0)))))
top#(mark(cons(_x21, cons(s(zeros), tt))))top#(cons(proper(_x21), cons(s(ok(zeros)), ok(tt))))top#(mark(cons(zeros, cons(length(and(_x61, length(_x91))), _x52))))top#(cons(ok(zeros), cons(length(and(proper(_x61), length(proper(_x91)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, nil)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), ok(nil)))))top#(mark(cons(nil, cons(s(zeros), _x52))))top#(cons(ok(nil), cons(s(ok(zeros)), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), length(_x61)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), length(proper(_x61)))))top#(mark(cons(cons(_x41, _x42), cons(length(s(0)), _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(ok(0))), proper(_x52))))
top#(mark(cons(cons(length(_x61), s(_x71)), nil)))top#(cons(cons(length(proper(_x61)), s(proper(_x71))), ok(nil)))top#(mark(cons(zeros, cons(length(length(_x61)), tt))))top#(cons(ok(zeros), cons(length(length(proper(_x61))), ok(tt))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, _x82), zeros)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), proper(_x82)), ok(zeros)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(nil), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(ok(nil)), proper(_x82)), proper(_x62)))))
top#(mark(cons(and(_x41, _x42), cons(length(s(s(_x101))), _x52))))top#(cons(and(proper(_x41), proper(_x42)), cons(length(s(s(proper(_x101)))), proper(_x52))))top#(mark(cons(cons(_x41, length(_x51)), cons(length(s(_x91)), _x52))))top#(cons(cons(proper(_x41), length(proper(_x51))), cons(length(s(proper(_x91))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(tt, _x72))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(tt), proper(_x72)))), and(proper(_x61), s(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, and(_x111, _x112)), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), and(proper(_x111), proper(_x112))), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), _x82), zeros)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), ok(zeros)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(cons(_x101, _x102), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(cons(proper(_x101), proper(_x102)), proper(_x82)), proper(_x62)))))
top#(mark(cons(nil, cons(length(_x71), s(_x61)))))top#(cons(ok(nil), cons(length(proper(_x71)), s(proper(_x61)))))top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(and(length(zeros), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(and(length(ok(zeros)), ok(nil)), ok(0)))))
top#(mark(cons(_x21, tt)))top#(cons(proper(_x21), ok(tt)))top#(mark(cons(0, cons(length(s(and(_x71, length(_x101)))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), length(proper(_x101))))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))
top#(ok(length(nil)))top#(mark(0))top#(mark(cons(0, cons(length(s(and(_x71, length(_x101)))), _x52))))top#(cons(ok(0), cons(length(s(and(proper(_x71), length(proper(_x101))))), proper(_x52))))
top#(mark(cons(_x21, cons(s(nil), _x52))))top#(cons(proper(_x21), cons(s(ok(nil)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, zeros))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))
top#(mark(cons(cons(tt, s(cons(_x61, _x62))), nil)))top#(cons(cons(ok(tt), s(cons(proper(_x61), proper(_x62)))), ok(nil)))top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(_x61, s(tt))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(proper(_x61), s(ok(tt))))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(_x91)), cons(_x91, _x92)), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(proper(_x91))), cons(proper(_x91), proper(_x92))), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, cons(_x101, _x102)))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), cons(proper(_x101), proper(_x102))))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))
top#(mark(cons(cons(_x41, s(s(length(_x101)))), _x22)))top#(cons(cons(proper(_x41), s(s(length(proper(_x101))))), proper(_x22)))top#(mark(cons(0, cons(s(zeros), cons(_x61, and(_x91, _x92))))))top#(cons(ok(0), cons(s(ok(zeros)), cons(proper(_x61), and(proper(_x91), proper(_x92))))))
top#(mark(cons(length(_x41), cons(s(s(_x91)), tt))))top#(cons(length(proper(_x41)), cons(s(s(proper(_x91))), ok(tt))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(s(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(s(proper(_x91))), proper(_x82)), ok(0)))))
top#(mark(cons(_x21, cons(s(s(_x91)), cons(_x81, _x82)))))top#(cons(proper(_x21), cons(s(s(proper(_x91))), cons(proper(_x81), proper(_x82)))))top#(mark(cons(zeros, cons(length(length(_x61)), length(_x61)))))top#(cons(ok(zeros), cons(length(length(proper(_x61))), length(proper(_x61)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(zeros, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(ok(zeros), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(_x71, length(_x101)))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), length(proper(_x101))))), and(proper(_x61), s(proper(_x91))))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(cons(_x81, _x82), length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(cons(proper(_x81), proper(_x82)), length(proper(_x91))))))top#(mark(cons(nil, cons(s(s(_x91)), tt))))top#(cons(ok(nil), cons(s(s(proper(_x91))), ok(tt))))
top#(mark(cons(0, cons(length(s(and(s(_x91), _x72))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(s(proper(_x91)), proper(_x72)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))top#(mark(cons(_x21, cons(s(_x71), and(_x81, _x82)))))top#(cons(proper(_x21), cons(s(proper(_x71)), and(proper(_x81), proper(_x82)))))
top#(mark(cons(0, cons(length(s(and(nil, _x72))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(ok(nil), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(length(_x91), _x72))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(length(proper(_x91)), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))
top#(mark(cons(tt, cons(s(s(_x91)), _x52))))top#(cons(ok(tt), cons(s(s(proper(_x91))), proper(_x52))))top#(mark(cons(_x21, cons(s(s(_x91)), and(_x81, _x82)))))top#(cons(proper(_x21), cons(s(s(proper(_x91))), and(proper(_x81), proper(_x82)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), zeros))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), ok(zeros))))top#(mark(s(_x21)))top#(s(proper(_x21)))
top#(mark(cons(cons(_x41, _x42), cons(length(s(_x91)), length(_x61)))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(proper(_x91))), length(proper(_x61)))))top#(mark(cons(0, cons(length(s(and(_x71, zeros))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(cons(_x91, _x92), _x72))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(cons(proper(_x91), proper(_x92)), proper(_x72)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))top#(mark(cons(cons(_x41, and(_x51, _x52)), cons(length(s(_x91)), _x52))))top#(cons(cons(proper(_x41), and(proper(_x51), proper(_x52))), cons(length(s(proper(_x91))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), tt), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), ok(tt)), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(cons(_x81, _x82), s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(cons(proper(_x81), proper(_x82)), s(proper(_x91))))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(and(_x91, _x92)), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(and(proper(_x91), proper(_x92))), ok(nil)), ok(0)))))top#(mark(cons(cons(length(_x61), s(s(_x91))), _x22)))top#(cons(cons(length(proper(_x61)), s(s(proper(_x91)))), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(length(_x111))), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(length(proper(_x111)))), proper(_x82)), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, nil))), _x52))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(nil)))), proper(_x52))))
top#(mark(cons(length(_x41), cons(s(s(_x91)), _x52))))top#(cons(length(proper(_x41)), cons(s(s(proper(_x91))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, s(_x101)))), _x52))))top#(cons(ok(0), cons(length(s(and(proper(_x71), s(proper(_x101))))), proper(_x52))))
top#(mark(cons(cons(length(_x61), tt), _x22)))top#(cons(cons(length(proper(_x61)), ok(tt)), proper(_x22)))top#(mark(cons(cons(s(_x61), _x42), _x22)))top#(cons(cons(s(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(cons(cons(zeros, _x42), _x22)))top#(cons(cons(ok(zeros), proper(_x42)), proper(_x22)))top#(mark(cons(cons(_x41, s(s(and(_x101, _x102)))), _x22)))top#(cons(cons(proper(_x41), s(s(and(proper(_x101), proper(_x102))))), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, length(_x111)), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), length(proper(_x111))), proper(_x62)))))top#(mark(cons(cons(s(_x51), s(cons(zeros, _x62))), nil)))top#(cons(cons(s(proper(_x51)), s(cons(ok(zeros), proper(_x62)))), ok(nil)))
top#(mark(cons(cons(nil, s(cons(_x61, _x62))), nil)))top#(cons(cons(ok(nil), s(cons(proper(_x61), proper(_x62)))), ok(nil)))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(length(_x81), s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(length(proper(_x81)), s(proper(_x91))))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), _x82), and(_x91, _x92))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), and(proper(_x91), proper(_x92))))))top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(proper(_x61), s(proper(_x91))))))
top#(mark(cons(_x21, cons(s(zeros), 0))))top#(cons(proper(_x21), cons(s(ok(zeros)), ok(0))))top#(ok(cons(and(tt, _x41), _x22)))top#(cons(mark(_x41), _x22))
top#(mark(cons(0, cons(s(zeros), cons(nil, nil)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(ok(nil), ok(nil)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(zeros), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(ok(zeros)), ok(nil)), ok(0)))))
top#(mark(cons(cons(_x41, s(cons(length(_x81), _x62))), nil)))top#(cons(cons(proper(_x41), s(cons(length(proper(_x81)), proper(_x62)))), ok(nil)))top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))
top#(mark(cons(cons(length(_x61), s(_x71)), s(_x51))))top#(cons(cons(length(proper(_x61)), s(proper(_x71))), s(proper(_x51))))top#(mark(cons(tt, cons(s(zeros), _x52))))top#(cons(ok(tt), cons(s(ok(zeros)), proper(_x52))))
top#(mark(cons(cons(cons(_x51, _x52), s(cons(_x61, _x62))), nil)))top#(cons(cons(cons(proper(_x51), proper(_x52)), s(cons(proper(_x61), proper(_x62)))), ok(nil)))top#(mark(cons(_x21, cons(s(s(s(_x81))), tt))))top#(cons(proper(_x21), cons(s(s(s(proper(_x81)))), ok(tt))))
top#(mark(cons(_x21, cons(length(s(s(0))), _x52))))top#(cons(proper(_x21), cons(length(s(s(ok(0)))), proper(_x52))))top#(mark(cons(_x21, 0)))top#(cons(proper(_x21), ok(0)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(nil, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(ok(nil), proper(_x62)))))top#(mark(cons(cons(tt, and(_x71, _x72)), _x22)))top#(cons(cons(ok(tt), and(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(cons(s(_x41), cons(s(s(_x91)), _x52))))top#(cons(s(proper(_x41)), cons(s(s(proper(_x91))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(0, _x72))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))
top#(mark(cons(zeros, tt)))top#(cons(ok(zeros), ok(tt)))top#(mark(cons(cons(_x41, s(s(_x91))), zeros)))top#(cons(cons(proper(_x41), s(s(proper(_x91)))), ok(zeros)))
top#(mark(cons(tt, cons(s(_x71), _x52))))top#(cons(ok(tt), cons(s(proper(_x71)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, cons(_x101, _x102)))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), cons(proper(_x101), proper(_x102))))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))
top#(mark(cons(nil, cons(length(nil), _x52))))top#(cons(ok(nil), cons(length(ok(nil)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(zeros, length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(ok(zeros), length(proper(_x91))))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(zeros), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(ok(zeros)), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(tt, _x72))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(ok(tt), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))
top#(mark(cons(0, cons(s(zeros), cons(cons(_x81, _x82), _x62)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(cons(proper(_x81), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(s(zeros), cons(zeros, _x62)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(ok(zeros), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(_x71, and(_x101, _x102)))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), and(proper(_x101), proper(_x102))))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))top#(mark(cons(cons(tt, _x42), _x22)))top#(cons(cons(ok(tt), proper(_x42)), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(_x71, s(_x101)))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), s(proper(_x101))))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))top#(mark(cons(nil, cons(s(s(_x91)), _x52))))top#(cons(ok(nil), cons(s(s(proper(_x91))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, zeros), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), ok(zeros)), proper(_x62)))))top#(mark(cons(zeros, cons(length(and(_x61, _x62)), tt))))top#(cons(ok(zeros), cons(length(and(proper(_x61), proper(_x62))), ok(tt))))
top#(mark(cons(0, cons(length(s(and(and(_x91, _x92), _x72))), _x52))))top#(cons(ok(0), cons(length(s(and(and(proper(_x91), proper(_x92)), proper(_x72)))), proper(_x52))))top#(mark(cons(cons(length(_x61), s(nil)), _x22)))top#(cons(cons(length(proper(_x61)), s(ok(nil))), proper(_x22)))
top#(mark(cons(cons(cons(_x51, _x52), s(cons(zeros, _x62))), nil)))top#(cons(cons(cons(proper(_x51), proper(_x52)), s(cons(ok(zeros), proper(_x62)))), ok(nil)))top#(mark(cons(length(_x41), cons(length(_x71), _x52))))top#(cons(length(proper(_x41)), cons(length(proper(_x71)), proper(_x52))))
top#(mark(cons(cons(_x41, _x42), s(_x51))))top#(cons(cons(proper(_x41), proper(_x42)), s(proper(_x51))))top#(mark(cons(0, cons(length(s(and(zeros, s(_x101)))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), s(proper(_x101))))), and(proper(_x61), s(proper(_x91))))))
top#(mark(cons(0, cons(length(s(and(_x71, zeros))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), and(proper(_x61), proper(_x62)))))top#(mark(cons(nil, cons(length(_x71), nil))))top#(cons(ok(nil), cons(length(proper(_x71)), ok(nil))))
top#(mark(cons(0, cons(length(s(and(_x71, and(_x101, _x102)))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), and(proper(_x101), proper(_x102))))), and(proper(_x61), length(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(and(_x91, _x92), _x72))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(and(proper(_x91), proper(_x92)), proper(_x72)))), and(proper(_x61), s(proper(_x91))))))
top#(mark(cons(0, cons(length(s(and(zeros, 0))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), ok(0)))), and(proper(_x61), s(proper(_x91))))))top#(mark(cons(zeros, cons(length(and(_x61, tt)), 0))))top#(cons(ok(zeros), cons(length(and(proper(_x61), ok(tt))), ok(0))))
top#(mark(cons(0, cons(length(s(and(_x71, zeros))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))top#(mark(cons(_x21, cons(s(s(_x91)), zeros))))top#(cons(proper(_x21), cons(s(s(proper(_x91))), ok(zeros))))
top#(mark(cons(_x21, cons(0, nil))))top#(cons(proper(_x21), cons(ok(0), ok(nil))))top#(mark(cons(0, cons(length(s(and(length(_x91), zeros))), _x52))))top#(cons(ok(0), cons(length(s(and(length(proper(_x91)), ok(zeros)))), proper(_x52))))
top#(mark(cons(cons(s(_x51), _x42), cons(length(s(_x91)), _x52))))top#(cons(cons(s(proper(_x51)), proper(_x42)), cons(length(s(proper(_x91))), proper(_x52))))top#(mark(cons(_x21, cons(length(cons(_x91, _x92)), _x52))))top#(cons(proper(_x21), cons(length(cons(proper(_x91), proper(_x92))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, 0))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(0)))), and(proper(_x61), s(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), 0))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), ok(0))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(zeros), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(ok(zeros)), proper(_x82)), ok(0)))))
top#(mark(cons(zeros, cons(length(length(_x61)), 0))))top#(cons(ok(zeros), cons(length(length(proper(_x61))), ok(0))))top#(ok(cons(cons(_x41, _x42), _x22)))top#(cons(cons(active(_x41), _x42), _x22))
top#(mark(cons(cons(length(cons(_x71, _x72)), s(_x71)), _x22)))top#(cons(cons(length(cons(proper(_x71), proper(_x72))), s(proper(_x71))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(cons(_x111, _x112))), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(cons(proper(_x111), proper(_x112)))), proper(_x82)), ok(0)))))
top#(mark(cons(_x21, cons(length(s(s(cons(_x111, _x112)))), _x52))))top#(cons(proper(_x21), cons(length(s(s(cons(proper(_x111), proper(_x112))))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(length(_x91), _x72))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(length(proper(_x91)), proper(_x72)))), and(proper(_x61), length(proper(_x91))))))
top#(mark(cons(_x21, cons(0, tt))))top#(cons(proper(_x21), cons(ok(0), ok(tt))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(nil)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(ok(nil))), proper(_x82)), ok(0)))))
top#(mark(cons(cons(_x41, tt), cons(_x51, _x52))))top#(cons(cons(proper(_x41), ok(tt)), cons(proper(_x51), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, s(zeros))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), s(ok(zeros))))))
top#(mark(cons(0, cons(length(s(and(0, length(_x101)))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(0), length(proper(_x101))))), proper(_x52))))top#(mark(cons(_x21, cons(s(_x71), 0))))top#(cons(proper(_x21), cons(s(proper(_x71)), ok(0))))
top#(mark(cons(zeros, nil)))top#(cons(ok(zeros), ok(nil)))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(_x91)), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(proper(_x91))), ok(nil)), ok(0)))))
top#(mark(cons(cons(_x41, s(0)), _x22)))top#(cons(cons(proper(_x41), s(ok(0))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(_x71, nil))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(nil)))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(_x71, zeros))), cons(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), cons(proper(_x61), proper(_x62)))))top#(mark(cons(nil, cons(length(cons(_x61, _x62)), _x52))))top#(cons(ok(nil), cons(length(cons(proper(_x61), proper(_x62))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))top#(mark(cons(cons(_x41, 0), _x22)))top#(cons(cons(proper(_x41), ok(0)), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(0, s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(ok(0), s(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, and(_x91, _x92))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), and(proper(_x91), proper(_x92))))))
top#(mark(cons(zeros, cons(length(length(cons(_x81, _x82))), _x52))))top#(cons(ok(zeros), cons(length(length(cons(proper(_x81), proper(_x82)))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(tt, _x72))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(tt), proper(_x72)))), proper(_x52))))
top#(mark(cons(nil, cons(length(s(_x61)), _x52))))top#(cons(ok(nil), cons(length(s(proper(_x61))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))
top#(mark(cons(_x21, cons(_x51, and(_x81, _x82)))))top#(cons(proper(_x21), cons(proper(_x51), and(proper(_x81), proper(_x82)))))top#(mark(cons(cons(_x41, s(cons(_x61, cons(_x91, _x92)))), nil)))top#(cons(cons(proper(_x41), s(cons(proper(_x61), cons(proper(_x91), proper(_x92))))), ok(nil)))
top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(proper(_x61), length(proper(_x91))))))top#(mark(cons(zeros, cons(length(and(_x61, zeros)), _x52))))top#(cons(ok(zeros), cons(length(and(proper(_x61), ok(zeros))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, and(_x101, _x102)))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), and(proper(_x101), proper(_x102))))), and(proper(_x61), proper(_x62)))))top#(mark(cons(cons(_x41, _x42), cons(s(_x71), _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(s(proper(_x71)), proper(_x52))))
top#(mark(cons(cons(_x41, s(and(_x61, _x62))), nil)))top#(cons(cons(proper(_x41), s(and(proper(_x61), proper(_x62)))), ok(nil)))top#(mark(cons(0, cons(length(s(and(_x71, zeros))), zeros))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), ok(zeros))))
top#(mark(cons(0, cons(length(s(and(_x71, s(_x101)))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), s(proper(_x101))))), and(proper(_x61), length(proper(_x91))))))top#(mark(cons(_x21, cons(s(s(zeros)), tt))))top#(cons(proper(_x21), cons(s(s(ok(zeros))), ok(tt))))
top#(mark(cons(0, cons(length(s(and(_x71, length(_x101)))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), length(proper(_x101))))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))top#(mark(cons(_x21, cons(s(s(length(_x101))), _x52))))top#(cons(proper(_x21), cons(s(s(length(proper(_x101)))), proper(_x52))))
top#(mark(cons(cons(_x41, s(_x71)), s(_x51))))top#(cons(cons(proper(_x41), s(proper(_x71))), s(proper(_x51))))top#(mark(cons(_x21, cons(s(s(_x91)), length(_x81)))))top#(cons(proper(_x21), cons(s(s(proper(_x91))), length(proper(_x81)))))
top#(mark(cons(cons(_x41, s(cons(_x61, 0))), nil)))top#(cons(cons(proper(_x41), s(cons(proper(_x61), ok(0)))), ok(nil)))top#(mark(cons(0, cons(length(s(and(tt, zeros))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(tt), ok(zeros)))), proper(_x52))))
top#(mark(cons(cons(cons(_x61, _x62), _x42), _x22)))top#(cons(cons(cons(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(cons(cons(_x41, _x42), cons(length(s(_x91)), tt))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(proper(_x91))), ok(tt))))
top#(mark(cons(cons(_x41, s(cons(nil, _x62))), nil)))top#(cons(cons(proper(_x41), s(cons(ok(nil), proper(_x62)))), ok(nil)))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(0)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(ok(0))), proper(_x82)), ok(0)))))
top#(mark(cons(length(_x41), cons(s(zeros), _x52))))top#(cons(length(proper(_x41)), cons(s(ok(zeros)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, cons(_x101, _x102)))), _x52))))top#(cons(ok(0), cons(length(s(and(proper(_x71), cons(proper(_x101), proper(_x102))))), proper(_x52))))
top#(mark(cons(cons(length(_x61), s(_x71)), 0)))top#(cons(cons(length(proper(_x61)), s(proper(_x71))), ok(0)))top#(mark(cons(0, cons(length(s(and(_x71, length(_x101)))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), length(proper(_x101))))), and(proper(_x61), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(_x121)), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(proper(_x121))), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(s(_x91), _x72))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(s(proper(_x91)), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))
top#(mark(cons(zeros, cons(length(length(and(_x81, _x82))), _x52))))top#(cons(ok(zeros), cons(length(length(and(proper(_x81), proper(_x82)))), proper(_x52))))top#(mark(cons(cons(length(tt), s(_x71)), _x22)))top#(cons(cons(length(ok(tt)), s(proper(_x71))), proper(_x22)))
top#(mark(cons(cons(_x41, s(cons(0, _x62))), nil)))top#(cons(cons(proper(_x41), s(cons(ok(0), proper(_x62)))), ok(nil)))top#(mark(cons(zeros, cons(length(and(cons(_x81, _x82), tt)), _x52))))top#(cons(ok(zeros), cons(length(and(cons(proper(_x81), proper(_x82)), ok(tt))), proper(_x52))))
top#(mark(cons(zeros, cons(length(and(s(_x81), tt)), _x52))))top#(cons(ok(zeros), cons(length(and(s(proper(_x81)), ok(tt))), proper(_x52))))top#(mark(cons(cons(_x41, and(s(_x91), _x72)), _x22)))top#(cons(cons(proper(_x41), and(s(proper(_x91)), proper(_x72))), proper(_x22)))
top#(mark(cons(0, cons(s(zeros), cons(tt, _x62)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(ok(tt), proper(_x62)))))top#(mark(cons(_x21, cons(_x51, tt))))top#(cons(proper(_x21), cons(proper(_x51), ok(tt))))
top#(mark(cons(cons(zeros, s(s(_x91))), _x22)))top#(cons(cons(ok(zeros), s(s(proper(_x91)))), proper(_x22)))top#(mark(cons(cons(_x41, zeros), _x22)))top#(cons(cons(proper(_x41), ok(zeros)), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(0), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(ok(0)), ok(nil)), ok(0)))))top#(mark(cons(_x21, cons(s(s(zeros)), _x52))))top#(cons(proper(_x21), cons(s(s(ok(zeros))), proper(_x52))))
top#(mark(cons(_x21, cons(length(s(_x91)), 0))))top#(cons(proper(_x21), cons(length(s(proper(_x91))), ok(0))))top#(mark(cons(0, cons(length(s(_x91)), nil))))top#(cons(ok(0), cons(length(s(proper(_x91))), ok(nil))))
top#(mark(cons(0, cons(length(s(and(nil, _x72))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(nil), proper(_x72)))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(zeros, tt))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(ok(zeros), ok(tt)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))
top#(mark(cons(cons(0, s(cons(zeros, _x62))), nil)))top#(cons(cons(ok(0), s(cons(ok(zeros), proper(_x62)))), ok(nil)))top#(mark(cons(zeros, cons(length(_x71), length(_x61)))))top#(cons(ok(zeros), cons(length(proper(_x71)), length(proper(_x61)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(_x91)), s(_x91)), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(proper(_x91))), s(proper(_x91))), ok(0)))))top#(mark(cons(zeros, cons(length(and(0, tt)), _x52))))top#(cons(ok(zeros), cons(length(and(ok(0), ok(tt))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(cons(_x91, _x92), _x72))), _x52))))top#(cons(ok(0), cons(length(s(and(cons(proper(_x91), proper(_x92)), proper(_x72)))), proper(_x52))))top#(mark(cons(nil, cons(length(s(_x91)), _x52))))top#(cons(ok(nil), cons(length(s(proper(_x91))), proper(_x52))))
top#(mark(cons(0, cons(s(zeros), nil))))top#(cons(ok(0), cons(s(ok(zeros)), ok(nil))))top#(mark(cons(zeros, cons(length(and(zeros, tt)), _x52))))top#(cons(ok(zeros), cons(length(and(ok(zeros), ok(tt))), proper(_x52))))
top#(mark(cons(cons(_x41, tt), s(_x51))))top#(cons(cons(proper(_x41), ok(tt)), s(proper(_x51))))top#(mark(cons(zeros, cons(length(and(_x61, _x62)), 0))))top#(cons(ok(zeros), cons(length(and(proper(_x61), proper(_x62))), ok(0))))
top#(mark(cons(0, cons(length(s(and(zeros, and(_x101, _x102)))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), and(proper(_x101), proper(_x102))))), and(proper(_x61), s(proper(_x91))))))top#(mark(cons(cons(_x41, s(s(_x91))), nil)))top#(cons(cons(proper(_x41), s(s(proper(_x91)))), ok(nil)))
top#(mark(cons(_x21, cons(s(s(and(_x81, _x82))), tt))))top#(cons(proper(_x21), cons(s(s(and(proper(_x81), proper(_x82)))), ok(tt))))top#(mark(cons(_x21, cons(s(s(_x91)), 0))))top#(cons(proper(_x21), cons(s(s(proper(_x91))), ok(0))))
top#(mark(cons(zeros, cons(length(zeros), _x52))))top#(cons(ok(zeros), cons(ok(length(zeros)), proper(_x52))))top#(mark(cons(zeros, cons(length(and(_x61, tt)), zeros))))top#(cons(ok(zeros), cons(length(and(proper(_x61), ok(tt))), ok(zeros))))
top#(mark(cons(zeros, cons(length(tt), _x52))))top#(cons(ok(zeros), cons(length(ok(tt)), proper(_x52))))top#(mark(cons(zeros, s(_x51))))top#(cons(ok(zeros), s(proper(_x51))))
top#(mark(cons(zeros, cons(length(zeros), cons(_x61, _x62)))))top#(cons(ok(zeros), cons(length(ok(zeros)), cons(proper(_x61), proper(_x62)))))top#(mark(cons(cons(_x41, _x42), cons(length(s(nil)), _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(ok(nil))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, length(nil))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), length(ok(nil))))))top#(mark(cons(cons(length(_x61), _x42), _x22)))top#(cons(cons(length(proper(_x61)), proper(_x42)), proper(_x22)))
top#(mark(cons(_x21, cons(length(s(nil)), _x52))))top#(cons(proper(_x21), cons(length(s(ok(nil))), proper(_x52))))top#(mark(cons(zeros, cons(length(and(nil, tt)), _x52))))top#(cons(ok(zeros), cons(length(and(ok(nil), ok(tt))), proper(_x52))))
top#(mark(cons(length(_x41), cons(length(s(_x91)), _x52))))top#(cons(length(proper(_x41)), cons(length(s(proper(_x91))), proper(_x52))))top#(mark(cons(zeros, cons(length(and(_x61, _x62)), length(_x61)))))top#(cons(ok(zeros), cons(length(and(proper(_x61), proper(_x62))), length(proper(_x61)))))
top#(mark(cons(cons(and(_x61, _x62), and(_x71, _x72)), _x22)))top#(cons(cons(and(proper(_x61), proper(_x62)), and(proper(_x71), proper(_x72))), proper(_x22)))top#(mark(cons(_x21, cons(s(s(length(_x81))), tt))))top#(cons(proper(_x21), cons(s(s(length(proper(_x81)))), ok(tt))))
top#(mark(cons(zeros, cons(length(0), _x52))))top#(cons(ok(zeros), cons(length(ok(0)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(tt, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(ok(tt), proper(_x82)), proper(_x62)))))
top#(mark(cons(cons(and(_x61, _x62), s(_x71)), _x22)))top#(cons(cons(and(proper(_x61), proper(_x62)), s(proper(_x71))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(nil, _x72))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(ok(nil), proper(_x72)))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))
top#(mark(cons(s(_x41), cons(s(zeros), _x52))))top#(cons(s(proper(_x41)), cons(s(ok(zeros)), proper(_x52))))top#(mark(cons(cons(s(_x61), s(s(_x91))), _x22)))top#(cons(cons(s(proper(_x61)), s(s(proper(_x91)))), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(and(length(0), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(and(length(ok(0)), ok(nil)), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, s(_x101)))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), s(proper(_x101))))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))
top#(mark(cons(0, cons(s(zeros), cons(nil, and(_x91, _x92))))))top#(cons(ok(0), cons(s(ok(zeros)), cons(ok(nil), and(proper(_x91), proper(_x92))))))top#(mark(cons(0, cons(length(s(and(and(_x91, _x92), _x72))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(and(proper(_x91), proper(_x92)), proper(_x72)))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))
top#(mark(cons(zeros, cons(length(length(_x61)), and(_x61, _x62)))))top#(cons(ok(zeros), cons(length(length(proper(_x61))), and(proper(_x61), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(length(_x91), _x72))), _x52))))top#(cons(ok(0), cons(length(s(and(length(proper(_x91)), proper(_x72)))), proper(_x52))))
top#(mark(cons(cons(_x41, and(_x71, _x72)), nil)))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), ok(nil)))top#(mark(cons(_x21, cons(0, zeros))))top#(cons(proper(_x21), cons(ok(0), ok(zeros))))
top#(mark(cons(0, cons(length(s(and(_x71, length(_x101)))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), length(proper(_x101))))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(cons(_x91, _x92)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(cons(proper(_x91), proper(_x92))), proper(_x82)), ok(0)))))
top#(ok(length(cons(_x22, _x21))))top#(mark(s(length(_x21))))top#(mark(cons(_x21, cons(length(s(_x91)), length(_x81)))))top#(cons(proper(_x21), cons(length(s(proper(_x91))), length(proper(_x81)))))
top#(mark(and(_x21, _x22)))top#(and(proper(_x21), proper(_x22)))top#(mark(cons(0, cons(length(s(s(_x71))), _x52))))top#(cons(ok(0), cons(length(s(s(proper(_x71)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(0, nil))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(0), ok(nil)))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, nil))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(nil)))), and(proper(_x61), s(proper(_x91))))))
top#(mark(cons(cons(_x41, s(zeros)), _x22)))top#(cons(cons(proper(_x41), s(ok(zeros))), proper(_x22)))top#(mark(cons(cons(_x41, s(cons(zeros, cons(_x91, _x92)))), nil)))top#(cons(cons(proper(_x41), s(cons(ok(zeros), cons(proper(_x91), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(tt, s(cons(zeros, _x62))), nil)))top#(cons(cons(ok(tt), s(cons(ok(zeros), proper(_x62)))), ok(nil)))top#(mark(cons(_x21, cons(length(_x71), length(_x81)))))top#(cons(proper(_x21), cons(length(proper(_x71)), length(proper(_x81)))))
top#(mark(cons(_x21, cons(s(_x71), zeros))))top#(cons(proper(_x21), cons(s(proper(_x71)), ok(zeros))))top#(mark(cons(0, cons(length(s(and(_x71, 0))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(0)))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))
top#(mark(cons(zeros, cons(length(and(_x61, _x62)), and(_x61, _x62)))))top#(cons(ok(zeros), cons(length(and(proper(_x61), proper(_x62))), and(proper(_x61), proper(_x62)))))top#(mark(cons(_x21, cons(0, and(_x81, _x82)))))top#(cons(proper(_x21), cons(ok(0), and(proper(_x81), proper(_x82)))))
top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(_x71, and(_x101, _x102)))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), and(proper(_x101), proper(_x102))))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))
top#(mark(cons(cons(_x41, s(cons(zeros, tt))), nil)))top#(cons(cons(proper(_x41), s(cons(ok(zeros), ok(tt)))), ok(nil)))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, nil), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), ok(nil)), proper(_x62)))))
top#(mark(cons(zeros, cons(length(length(s(_x81))), _x52))))top#(cons(ok(zeros), cons(length(length(s(proper(_x81)))), proper(_x52))))top#(mark(cons(cons(_x41, s(_x71)), 0)))top#(cons(cons(proper(_x41), s(proper(_x71))), ok(0)))
top#(mark(cons(0, cons(length(s(and(0, _x72))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(0, 0))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(0), ok(0)))), proper(_x52))))
top#(mark(cons(cons(_x41, and(_x71, cons(_x101, _x102))), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), cons(proper(_x101), proper(_x102)))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(_x71, 0))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(0)))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))
top#(mark(cons(_x21, cons(s(zeros), _x52))))top#(cons(proper(_x21), cons(ok(s(zeros)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(0), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(ok(0)), proper(_x82)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(tt), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(ok(tt)), ok(nil)), ok(0)))))top#(mark(cons(0, cons(length(s(and(cons(_x91, _x92), _x72))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(cons(proper(_x91), proper(_x92)), proper(_x72)))), and(proper(_x61), s(proper(_x91))))))
top#(mark(cons(cons(length(_x61), s(cons(_x81, _x82))), _x22)))top#(cons(cons(length(proper(_x61)), s(cons(proper(_x81), proper(_x82)))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(s(_x91), zeros))), _x52))))top#(cons(ok(0), cons(length(s(and(s(proper(_x91)), ok(zeros)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(zeros, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(ok(zeros), s(proper(_x91))))))top#(mark(cons(zeros, cons(length(and(and(_x81, _x82), _x62)), _x52))))top#(cons(ok(zeros), cons(length(and(and(proper(_x81), proper(_x82)), proper(_x62))), proper(_x52))))
top#(mark(cons(tt, cons(length(s(_x91)), _x52))))top#(cons(ok(tt), cons(length(s(proper(_x91))), proper(_x52))))top#(mark(cons(cons(s(_x51), s(_x71)), nil)))top#(cons(cons(s(proper(_x51)), s(proper(_x71))), ok(nil)))
top#(mark(cons(0, cons(s(zeros), 0))))top#(cons(ok(0), cons(s(ok(zeros)), ok(0))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), length(_x91)), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), length(proper(_x91))), ok(0)))))
top#(mark(cons(_x21, cons(length(s(s(_x101))), cons(_x81, _x82)))))top#(cons(proper(_x21), cons(length(s(s(proper(_x101)))), cons(proper(_x81), proper(_x82)))))top#(mark(cons(_x21, cons(s(zeros), and(_x81, _x82)))))top#(cons(proper(_x21), cons(s(ok(zeros)), and(proper(_x81), proper(_x82)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(nil, s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(ok(nil), s(proper(_x91))))))top#(mark(cons(0, cons(length(s(and(_x71, and(_x101, _x102)))), _x52))))top#(cons(ok(0), cons(length(s(and(proper(_x71), and(proper(_x101), proper(_x102))))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, nil))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(nil)))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))top#(mark(cons(0, cons(length(s(and(tt, _x72))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(ok(tt), proper(_x72)))), and(proper(_x61), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(_x71, tt))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(tt)))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))top#(mark(cons(tt, cons(s(s(_x91)), tt))))top#(cons(ok(tt), cons(s(s(proper(_x91))), ok(tt))))
top#(mark(cons(cons(cons(_x61, _x62), tt), _x22)))top#(cons(cons(cons(proper(_x61), proper(_x62)), ok(tt)), proper(_x22)))top#(mark(cons(0, cons(s(s(_x91)), _x52))))top#(cons(ok(0), cons(s(s(proper(_x91))), proper(_x52))))
top#(mark(cons(cons(and(_x61, _x62), tt), _x22)))top#(cons(cons(and(proper(_x61), proper(_x62)), ok(tt)), proper(_x22)))top#(mark(cons(0, cons(length(s(and(length(_x91), _x72))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(length(proper(_x91)), proper(_x72)))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))
top#(mark(cons(cons(_x41, and(and(_x91, _x92), _x72)), _x22)))top#(cons(cons(proper(_x41), and(and(proper(_x91), proper(_x92)), proper(_x72))), proper(_x22)))top#(mark(cons(cons(length(_x61), and(_x71, _x72)), _x22)))top#(cons(cons(length(proper(_x61)), and(proper(_x71), proper(_x72))), proper(_x22)))
top#(mark(cons(cons(nil, s(_x71)), _x22)))top#(cons(cons(ok(nil), s(proper(_x71))), proper(_x22)))top#(mark(cons(_x21, cons(length(s(s(s(_x111)))), _x52))))top#(cons(proper(_x21), cons(length(s(s(s(proper(_x111))))), proper(_x52))))
top#(mark(cons(0, cons(s(zeros), cons(nil, zeros)))))top#(cons(ok(0), cons(s(ok(zeros)), cons(ok(nil), ok(zeros)))))top#(mark(cons(0, cons(length(s(and(_x71, cons(_x101, _x102)))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), cons(proper(_x101), proper(_x102))))), and(proper(_x61), s(proper(_x91))))))
top#(mark(cons(_x21, cons(nil, _x52))))top#(cons(proper(_x21), cons(ok(nil), proper(_x52))))top#(mark(cons(0, cons(length(s(and(and(_x91, _x92), _x72))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(and(proper(_x91), proper(_x92)), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(0, _x72))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(length(_x71), _x52))))top#(cons(ok(0), cons(length(proper(_x71)), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, nil))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(nil)))), and(proper(_x61), proper(_x62)))))top#(mark(cons(zeros, cons(length(_x71), and(_x61, _x62)))))top#(cons(ok(zeros), cons(length(proper(_x71)), and(proper(_x61), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(_x61, s(cons(_x111, _x112)))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(proper(_x61), s(cons(proper(_x111), proper(_x112)))))))top#(mark(cons(length(_x41), cons(_x51, _x52))))top#(cons(length(proper(_x41)), cons(proper(_x51), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, s(_x101)))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), s(proper(_x101))))), and(proper(_x61), proper(_x62)))))top#(mark(cons(zeros, cons(length(zeros), 0))))top#(cons(ok(zeros), cons(length(ok(zeros)), ok(0))))
top#(mark(cons(zeros, cons(length(s(s(_x101))), _x52))))top#(cons(ok(zeros), cons(length(s(s(proper(_x101)))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(nil, zeros))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(nil), ok(zeros)))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), and(_x91, _x92)), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), and(proper(_x91), proper(_x92))), ok(0)))))top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(_x61, s(s(_x111)))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(proper(_x61), s(s(proper(_x111)))))))
top#(mark(cons(zeros, cons(length(and(_x61, _x62)), s(_x61)))))top#(cons(ok(zeros), cons(length(and(proper(_x61), proper(_x62))), s(proper(_x61)))))top#(mark(cons(0, cons(length(s(and(_x71, and(_x101, _x102)))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), and(proper(_x101), proper(_x102))))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))
top#(mark(cons(cons(_x41, s(cons(_x61, nil))), nil)))top#(cons(cons(proper(_x41), s(cons(proper(_x61), ok(nil)))), ok(nil)))top#(mark(cons(cons(_x41, and(_x71, length(_x101))), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), length(proper(_x101)))), proper(_x22)))
top#(mark(cons(cons(_x41, _x42), tt)))top#(cons(cons(proper(_x41), proper(_x42)), ok(tt)))top#(mark(cons(0, cons(length(s(and(s(_x91), _x72))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(s(proper(_x91)), proper(_x72)))), and(proper(_x61), length(proper(_x91))))))
top#(mark(cons(cons(nil, _x42), _x22)))top#(cons(cons(ok(nil), proper(_x42)), proper(_x22)))top#(mark(cons(cons(tt, _x42), cons(length(s(_x91)), _x52))))top#(cons(cons(ok(tt), proper(_x42)), cons(length(s(proper(_x91))), proper(_x52))))
top#(ok(and(_x21, _x22)))top#(and(active(_x21), _x22))top#(mark(cons(cons(_x41, s(_x71)), tt)))top#(cons(cons(proper(_x41), s(proper(_x71))), ok(tt)))
top#(mark(cons(zeros, cons(length(and(_x61, _x62)), nil))))top#(cons(ok(zeros), cons(length(and(proper(_x61), proper(_x62))), ok(nil))))top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(_x61, _x62)))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(proper(_x61), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(s(_x111))), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(s(proper(_x111)))), ok(zeros)), ok(0)))))top#(mark(cons(0, cons(length(s(and(tt, _x72))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(ok(tt), proper(_x72)))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))
top#(mark(cons(cons(_x41, s(s(zeros))), _x22)))top#(cons(cons(proper(_x41), s(s(ok(zeros)))), proper(_x22)))top#(mark(cons(0, cons(s(zeros), cons(_x61, s(_x91))))))top#(cons(ok(0), cons(s(ok(zeros)), cons(proper(_x61), s(proper(_x91))))))
top#(mark(cons(_x21, cons(_x51, cons(_x81, _x82)))))top#(cons(proper(_x21), cons(proper(_x51), cons(proper(_x81), proper(_x82)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, s(cons(_x111, _x112)))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), s(cons(proper(_x111), proper(_x112)))))))
top#(mark(cons(0, cons(length(s(and(0, _x72))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))top#(mark(cons(cons(length(_x61), s(and(_x81, _x82))), _x22)))top#(cons(cons(length(proper(_x61)), s(and(proper(_x81), proper(_x82)))), proper(_x22)))
top#(mark(cons(cons(_x41, s(0)), nil)))top#(cons(cons(proper(_x41), s(ok(0))), ok(nil)))top#(mark(cons(zeros, cons(length(and(length(_x81), tt)), _x52))))top#(cons(ok(zeros), cons(length(and(length(proper(_x81)), ok(tt))), proper(_x52))))
top#(mark(cons(0, cons(length(s(_x91)), 0))))top#(cons(ok(0), cons(length(s(proper(_x91))), ok(0))))top#(mark(cons(cons(_x41, s(s(_x91))), tt)))top#(cons(cons(proper(_x41), s(s(proper(_x91)))), ok(tt)))
top#(mark(cons(cons(_x41, tt), 0)))top#(cons(cons(proper(_x41), ok(tt)), ok(0)))top#(mark(cons(zeros, cons(length(_x71), s(_x61)))))top#(cons(ok(zeros), cons(length(proper(_x71)), s(proper(_x61)))))
top#(mark(cons(zeros, cons(length(length(zeros)), _x52))))top#(cons(ok(zeros), cons(length(length(ok(zeros))), proper(_x52))))top#(mark(cons(zeros, cons(length(length(_x61)), s(_x61)))))top#(cons(ok(zeros), cons(length(length(proper(_x61))), s(proper(_x61)))))
top#(mark(cons(0, cons(length(s(and(_x71, and(_x101, _x102)))), and(and(length(_x101), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), and(proper(_x101), proper(_x102))))), and(and(length(proper(_x101)), proper(_x82)), proper(_x62)))))top#(mark(cons(cons(cons(_x51, _x52), s(_x71)), nil)))top#(cons(cons(cons(proper(_x51), proper(_x52)), s(proper(_x71))), ok(nil)))
top#(mark(cons(cons(_x41, and(_x71, 0)), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), ok(0))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(_x71, zeros))), and(_x61, s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), and(proper(_x61), s(proper(_x91))))))
top#(mark(cons(cons(zeros, s(cons(zeros, _x62))), nil)))top#(cons(cons(ok(zeros), s(cons(ok(zeros), proper(_x62)))), ok(nil)))top#(mark(cons(and(_x41, _x42), cons(s(s(_x91)), _x52))))top#(cons(and(proper(_x41), proper(_x42)), cons(s(s(proper(_x91))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(s(_x91), tt))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(s(proper(_x91)), ok(tt)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))top#(mark(cons(0, cons(length(s(and(0, _x72))), and(_x61, length(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), and(proper(_x61), length(proper(_x91))))))
top#(mark(cons(0, cons(length(s(and(_x71, s(_x101)))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), s(proper(_x101))))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, nil))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(nil)))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))
top#(mark(cons(cons(_x41, _x42), cons(length(s(s(_x71))), _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(s(proper(_x71)))), proper(_x52))))top#(mark(cons(zeros, cons(length(and(_x61, and(_x91, _x92))), _x52))))top#(cons(ok(zeros), cons(length(and(proper(_x61), and(proper(_x91), proper(_x92)))), proper(_x52))))
top#(mark(cons(_x21, cons(length(tt), _x52))))top#(cons(proper(_x21), cons(length(ok(tt)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(nil, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(ok(nil), proper(_x82)), proper(_x62)))))
top#(mark(cons(_x21, cons(length(s(zeros)), _x52))))top#(cons(proper(_x21), cons(length(s(ok(zeros))), proper(_x52))))top#(ok(cons(s(_x41), _x22)))top#(cons(s(active(_x41)), _x22))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(cons(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(cons(proper(_x81), proper(_x82)), proper(_x62)))))top#(mark(cons(cons(_x41, s(tt)), nil)))top#(cons(cons(proper(_x41), s(ok(tt))), ok(nil)))
top#(mark(cons(cons(_x41, tt), tt)))top#(cons(cons(proper(_x41), ok(tt)), ok(tt)))top#(mark(cons(0, cons(length(s(and(s(_x91), _x72))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(s(proper(_x91)), proper(_x72)))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))
top#(mark(cons(cons(length(_x61), s(0)), _x22)))top#(cons(cons(length(proper(_x61)), s(ok(0))), proper(_x22)))top#(mark(cons(_x21, length(_x51))))top#(cons(proper(_x21), length(proper(_x51))))
top#(mark(cons(0, cons(s(zeros), length(_x61)))))top#(cons(ok(0), cons(s(ok(zeros)), length(proper(_x61)))))top#(mark(cons(cons(_x41, s(s(0))), _x22)))top#(cons(cons(proper(_x41), s(s(ok(0)))), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, length(tt))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), length(ok(tt))))))top#(mark(cons(_x21, cons(_x51, zeros))))top#(cons(proper(_x21), cons(proper(_x51), ok(zeros))))
top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))top#(mark(cons(0, cons(length(s(and(0, s(_x101)))), _x52))))top#(cons(ok(0), cons(length(s(and(ok(0), s(proper(_x101))))), proper(_x52))))
top#(mark(cons(_x21, cons(s(s(cons(_x101, _x102))), _x52))))top#(cons(proper(_x21), cons(s(s(cons(proper(_x101), proper(_x102)))), proper(_x52))))top#(mark(cons(nil, cons(length(_x71), 0))))top#(cons(ok(nil), cons(length(proper(_x71)), ok(0))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), _x82), s(_x91))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), s(proper(_x91))))))top#(mark(cons(zeros, cons(length(and(length(_x81), _x62)), _x52))))top#(cons(ok(zeros), cons(length(and(length(proper(_x81)), proper(_x62))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(length(tt)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(length(ok(tt))), proper(_x82)), ok(0)))))top#(mark(cons(_x21, cons(length(_x71), 0))))top#(cons(proper(_x21), cons(length(proper(_x71)), ok(0))))
top#(mark(cons(_x21, cons(length(0), _x52))))top#(cons(proper(_x21), cons(length(ok(0)), proper(_x52))))top#(mark(cons(zeros, length(_x51))))top#(cons(ok(zeros), length(proper(_x51))))
top#(mark(cons(cons(length(_x51), _x42), cons(length(s(_x91)), _x52))))top#(cons(cons(length(proper(_x51)), proper(_x42)), cons(length(s(proper(_x91))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(_x101), _x82), cons(_x91, _x92))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), cons(proper(_x91), proper(_x92))))))
top#(mark(cons(cons(and(_x61, _x62), s(s(_x91))), _x22)))top#(cons(cons(and(proper(_x61), proper(_x62)), s(s(proper(_x91)))), proper(_x22)))top#(mark(cons(_x21, cons(length(s(s(_x101))), length(_x81)))))top#(cons(proper(_x21), cons(length(s(s(proper(_x101)))), length(proper(_x81)))))
top#(mark(cons(_x21, cons(length(s(0)), _x52))))top#(cons(proper(_x21), cons(length(s(ok(0))), proper(_x52))))top#(mark(cons(cons(and(_x51, _x52), s(_x71)), nil)))top#(cons(cons(and(proper(_x51), proper(_x52)), s(proper(_x71))), ok(nil)))
top#(mark(cons(nil, _x22)))top#(cons(ok(nil), proper(_x22)))top#(mark(cons(cons(cons(_x61, _x62), s(_x71)), _x22)))top#(cons(cons(cons(proper(_x61), proper(_x62)), s(proper(_x71))), proper(_x22)))
top#(mark(cons(0, cons(length(s(0)), _x52))))top#(cons(ok(0), cons(length(s(ok(0))), proper(_x52))))top#(mark(cons(nil, cons(length(_x71), length(_x61)))))top#(cons(ok(nil), cons(length(proper(_x71)), length(proper(_x61)))))
top#(mark(cons(_x21, cons(and(_x71, _x72), _x52))))top#(cons(proper(_x21), cons(and(proper(_x71), proper(_x72)), proper(_x52))))top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(tt, s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(ok(tt), s(proper(_x91))))))
top#(mark(cons(zeros, 0)))top#(cons(ok(zeros), ok(0)))top#(mark(cons(_x21, cons(s(s(s(_x101))), _x52))))top#(cons(proper(_x21), cons(s(s(s(proper(_x101)))), proper(_x52))))
top#(mark(cons(s(_x41), cons(length(s(_x91)), _x52))))top#(cons(s(proper(_x41)), cons(length(s(proper(_x91))), proper(_x52))))top#(mark(cons(cons(_x41, _x42), cons(length(_x71), _x52))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(proper(_x71)), proper(_x52))))
top#(mark(cons(and(_x41, _x42), cons(s(_x71), _x52))))top#(cons(and(proper(_x41), proper(_x42)), cons(s(proper(_x71)), proper(_x52))))top#(mark(cons(cons(nil, s(cons(zeros, _x62))), nil)))top#(cons(cons(ok(nil), s(cons(ok(zeros), proper(_x62)))), ok(nil)))
top#(mark(cons(zeros, cons(length(_x71), tt))))top#(cons(ok(zeros), cons(length(proper(_x71)), ok(tt))))top#(mark(cons(zeros, cons(length(and(_x61, cons(_x91, _x92))), _x52))))top#(cons(ok(zeros), cons(length(and(proper(_x61), cons(proper(_x91), proper(_x92)))), proper(_x52))))
top#(mark(cons(cons(_x41, _x42), cons(length(s(_x91)), zeros))))top#(cons(cons(proper(_x41), proper(_x42)), cons(length(s(proper(_x91))), ok(zeros))))top#(mark(cons(0, cons(length(s(and(_x71, s(_x101)))), and(and(_x81, _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), s(proper(_x101))))), and(and(proper(_x81), proper(_x82)), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(tt, _x72))), and(and(length(length(_x91)), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(ok(tt), proper(_x72)))), and(and(length(length(proper(_x91))), proper(_x82)), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(0, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(ok(0), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(_x61, s(length(_x111)))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(proper(_x61), s(length(proper(_x111)))))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(0), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(ok(0)), proper(_x82)), proper(_x62)))))
top#(mark(cons(_x21, cons(s(zeros), length(_x81)))))top#(cons(proper(_x21), cons(s(ok(zeros)), length(proper(_x81)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, zeros)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), ok(zeros)))))
top#(mark(cons(_x21, and(_x51, _x52))))top#(cons(proper(_x21), and(proper(_x51), proper(_x52))))top#(mark(cons(zeros, cons(length(length(_x61)), cons(_x61, _x62)))))top#(cons(ok(zeros), cons(length(length(proper(_x61))), cons(proper(_x61), proper(_x62)))))
top#(mark(cons(and(_x41, _x42), cons(s(s(_x91)), tt))))top#(cons(and(proper(_x41), proper(_x42)), cons(s(s(proper(_x91))), ok(tt))))top#(mark(cons(zeros, cons(length(and(_x61, tt)), nil))))top#(cons(ok(zeros), cons(length(and(proper(_x61), ok(tt))), ok(nil))))
top#(mark(cons(cons(length(_x51), s(cons(zeros, _x62))), nil)))top#(cons(cons(length(proper(_x51)), s(cons(ok(zeros), proper(_x62)))), ok(nil)))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, length(length(_x111)))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), length(length(proper(_x111)))))))
top#(mark(cons(cons(_x41, s(s(_x91))), s(_x51))))top#(cons(cons(proper(_x41), s(s(proper(_x91)))), s(proper(_x51))))top#(mark(cons(cons(nil, tt), _x22)))top#(cons(cons(ok(nil), ok(tt)), proper(_x22)))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, tt)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), ok(tt)))))top#(mark(cons(_x21, cons(s(_x71), length(_x81)))))top#(cons(proper(_x21), cons(s(proper(_x71)), length(proper(_x81)))))
top#(mark(cons(cons(_x41, s(s(tt))), _x22)))top#(cons(cons(proper(_x41), s(s(ok(tt)))), proper(_x22)))top#(mark(cons(s(_x41), cons(s(_x71), _x52))))top#(cons(s(proper(_x41)), cons(s(proper(_x71)), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, s(nil))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), s(ok(nil))))))top#(mark(cons(_x21, cons(length(_x71), zeros))))top#(cons(proper(_x21), cons(length(proper(_x71)), ok(zeros))))
top#(mark(cons(length(_x41), cons(0, _x52))))top#(cons(length(proper(_x41)), cons(ok(0), proper(_x52))))top#(mark(cons(0, cons(s(zeros), and(_x61, _x62)))))top#(cons(ok(0), cons(s(ok(zeros)), and(proper(_x61), proper(_x62)))))
top#(mark(cons(zeros, cons(length(and(zeros, _x62)), _x52))))top#(cons(ok(zeros), cons(length(and(ok(zeros), proper(_x62))), proper(_x52))))top#(mark(cons(_x21, cons(length(s(_x91)), zeros))))top#(cons(proper(_x21), cons(length(s(proper(_x91))), ok(zeros))))
top#(mark(cons(0, cons(s(zeros), cons(_x61, _x62)))))top#(cons(ok(0), cons(ok(s(zeros)), cons(proper(_x61), proper(_x62)))))top#(mark(cons(cons(0, s(_x71)), nil)))top#(cons(cons(ok(0), s(proper(_x71))), ok(nil)))
top#(mark(cons(zeros, zeros)))top#(cons(ok(zeros), ok(zeros)))top#(mark(cons(zeros, cons(length(zeros), tt))))top#(cons(ok(zeros), cons(length(ok(zeros)), ok(tt))))
top#(mark(cons(0, cons(length(s(and(0, _x72))), nil))))top#(cons(ok(0), cons(length(s(and(ok(0), proper(_x72)))), ok(nil))))top#(mark(cons(_x21, cons(length(s(s(tt))), _x52))))top#(cons(proper(_x21), cons(length(s(s(ok(tt)))), proper(_x52))))
top#(mark(cons(cons(and(_x61, _x62), _x42), _x22)))top#(cons(cons(and(proper(_x61), proper(_x62)), proper(_x42)), proper(_x22)))top#(mark(cons(cons(0, s(cons(_x61, _x62))), nil)))top#(cons(cons(ok(0), s(cons(proper(_x61), proper(_x62)))), ok(nil)))
top#(mark(cons(_x21, cons(length(s(length(_x101))), _x52))))top#(cons(proper(_x21), cons(length(s(length(proper(_x101)))), proper(_x52))))top#(mark(cons(_x21, cons(s(cons(_x91, _x92)), _x52))))top#(cons(proper(_x21), cons(s(cons(proper(_x91), proper(_x92))), proper(_x52))))
top#(mark(cons(0, cons(length(s(and(length(_x91), _x72))), and(and(length(_x101), _x82), 0)))))top#(cons(ok(0), cons(length(s(and(length(proper(_x91)), proper(_x72)))), and(and(length(proper(_x101)), proper(_x82)), ok(0)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(tt, _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(ok(tt), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(length(_x91), tt))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(length(proper(_x91)), ok(tt)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))top#(mark(cons(zeros, cons(length(length(tt)), _x52))))top#(cons(ok(zeros), cons(length(length(ok(tt))), proper(_x52))))
top#(mark(length(_x21)))top#(length(proper(_x21)))top#(mark(cons(cons(_x41, and(_x71, zeros)), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), ok(zeros))), proper(_x22)))
top#(mark(cons(_x21, cons(length(s(_x91)), s(_x81)))))top#(cons(proper(_x21), cons(length(s(proper(_x91))), s(proper(_x81)))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(_x61, s(tt))))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(proper(_x61), s(ok(tt))))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), nil))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), ok(nil))))top#(ok(cons(zeros, _x22)))top#(cons(mark(cons(0, zeros)), _x22))
top#(mark(cons(cons(length(_x61), s(s(_x81))), _x22)))top#(cons(cons(length(proper(_x61)), s(s(proper(_x81)))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(_x71, 0))), _x52))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(0)))), proper(_x52))))
top#(mark(cons(cons(_x41, and(_x71, _x72)), 0)))top#(cons(cons(proper(_x41), and(proper(_x71), proper(_x72))), ok(0)))top#(mark(cons(0, cons(length(s(and(_x71, zeros))), tt))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(zeros)))), ok(tt))))
top#(mark(cons(cons(_x41, and(_x71, nil)), _x22)))top#(cons(cons(proper(_x41), and(proper(_x71), ok(nil))), proper(_x22)))top#(mark(cons(0, cons(length(s(and(_x71, 0))), and(and(length(_x101), nil), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), ok(0)))), and(and(length(proper(_x101)), ok(nil)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(length(and(_x121, _x122)), _x82), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(length(and(proper(_x121), proper(_x122))), proper(_x82)), proper(_x62)))))top#(mark(cons(0, cons(length(s(and(length(_x91), _x72))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(length(proper(_x91)), proper(_x72)))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))
top#(mark(cons(0, cons(length(s(and(_x71, and(_x101, _x102)))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), and(proper(_x101), proper(_x102))))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))top#(mark(cons(0, cons(length(s(and(tt, _x72))), and(and(length(length(_x91)), zeros), 0)))))top#(cons(ok(0), cons(length(s(and(ok(tt), proper(_x72)))), and(and(length(length(proper(_x91))), ok(zeros)), ok(0)))))
top#(mark(cons(_x21, cons(length(s(cons(_x101, _x102))), _x52))))top#(cons(proper(_x21), cons(length(s(cons(proper(_x101), proper(_x102)))), proper(_x52))))top#(mark(cons(0, cons(length(s(and(_x71, _x72))), and(and(_x81, tt), _x62)))))top#(cons(ok(0), cons(length(s(and(proper(_x71), proper(_x72)))), and(and(proper(_x81), ok(tt)), proper(_x62)))))
top#(mark(cons(0, cons(length(s(and(zeros, _x72))), and(and(_x81, _x82), s(_x91))))))top#(cons(ok(0), cons(length(s(and(ok(zeros), proper(_x72)))), and(and(proper(_x81), proper(_x82)), s(proper(_x91))))))top#(mark(cons(nil, cons(length(length(_x61)), _x52))))top#(cons(ok(nil), cons(length(length(proper(_x61))), proper(_x52))))
top#(mark(cons(cons(0, _x42), _x22)))top#(cons(cons(ok(0), proper(_x42)), proper(_x22)))

Rewrite Rules

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

Strategy


The right-hand side of the rule top#(mark(cons(cons(_x41, s(cons(_x61, and(_x91, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil))) 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#(cons(cons(ok(0), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(ok(zeros), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(s(proper(_x111)), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(length(proper(_x81)), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(s(proper(_x81)), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(ok(tt), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(ok(0), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), cons(proper(_x121), proper(_x122)))))), ok(nil))) 
top#(cons(cons(and(proper(_x51), proper(_x52)), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(ok(nil), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(ok(0), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(and(proper(_x111), proper(_x112)), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(ok(nil), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), ok(tt))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(ok(tt), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), ok(0))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(and(proper(_x81), proper(_x82)), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), length(proper(_x121)))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(length(proper(_x111)), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(ok(tt), proper(_x92))))), ok(nil))) 
top#(cons(cons(length(proper(_x51)), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(cons(proper(_x111), proper(_x112)), proper(_x92))))), ok(nil))) 
top#(cons(cons(ok(zeros), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(cons(proper(_x51), proper(_x52)), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), and(proper(_x121), proper(_x122)))))), ok(nil))) 
top#(cons(cons(s(proper(_x51)), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), ok(zeros))))), ok(nil))) 
top#(cons(cons(ok(nil), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(ok(zeros), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), s(proper(_x121)))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(cons(proper(_x81), proper(_x82)), and(proper(_x91), proper(_x92))))), ok(nil))) 
top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), ok(nil))))), ok(nil))) 
Thus, the rule top#(mark(cons(cons(_x41, s(cons(_x61, and(_x91, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil))) is replaced by the following rules:
top#(mark(cons(cons(_x41, s(cons(0, and(_x91, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(ok(0), and(proper(_x91), proper(_x92))))), ok(nil)))top#(mark(cons(cons(_x41, s(cons(and(_x81, _x82), and(_x91, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(and(proper(_x81), proper(_x82)), and(proper(_x91), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(_x61, and(_x91, and(_x121, _x122))))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), and(proper(_x121), proper(_x122)))))), ok(nil)))top#(mark(cons(cons(_x41, s(cons(_x61, and(_x91, zeros)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), ok(zeros))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(_x61, and(cons(_x111, _x112), _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(cons(proper(_x111), proper(_x112)), proper(_x92))))), ok(nil)))top#(mark(cons(cons(0, s(cons(_x61, and(_x91, _x92)))), nil))) → top#(cons(cons(ok(0), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(length(_x81), and(_x91, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(length(proper(_x81)), and(proper(_x91), proper(_x92))))), ok(nil)))top#(mark(cons(cons(_x41, s(cons(_x61, and(tt, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(ok(tt), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(_x61, and(0, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(ok(0), proper(_x92))))), ok(nil)))top#(mark(cons(cons(_x41, s(cons(tt, and(_x91, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(ok(tt), and(proper(_x91), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(_x61, and(_x91, 0)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), ok(0))))), ok(nil)))top#(mark(cons(cons(_x41, s(cons(s(_x81), and(_x91, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(s(proper(_x81)), and(proper(_x91), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(cons(_x81, _x82), and(_x91, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(cons(proper(_x81), proper(_x82)), and(proper(_x91), proper(_x92))))), ok(nil)))top#(mark(cons(cons(length(_x51), s(cons(_x61, and(_x91, _x92)))), nil))) → top#(cons(cons(length(proper(_x51)), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(_x61, and(nil, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(ok(nil), proper(_x92))))), ok(nil)))top#(mark(cons(cons(_x41, s(cons(_x61, and(_x91, nil)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), ok(nil))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(_x61, and(_x91, cons(_x121, _x122))))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), cons(proper(_x121), proper(_x122)))))), ok(nil)))top#(mark(cons(cons(tt, s(cons(_x61, and(_x91, _x92)))), nil))) → top#(cons(cons(ok(tt), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(_x61, and(_x91, length(_x121))))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), length(proper(_x121)))))), ok(nil)))top#(mark(cons(cons(and(_x51, _x52), s(cons(_x61, and(_x91, _x92)))), nil))) → top#(cons(cons(and(proper(_x51), proper(_x52)), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(_x61, and(_x91, tt)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), ok(tt))))), ok(nil)))top#(mark(cons(cons(_x41, s(cons(_x61, and(length(_x111), _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(length(proper(_x111)), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(cons(_x51, _x52), s(cons(_x61, and(_x91, _x92)))), nil))) → top#(cons(cons(cons(proper(_x51), proper(_x52)), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil)))top#(mark(cons(cons(_x41, s(cons(zeros, and(_x91, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(ok(zeros), and(proper(_x91), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(_x61, and(s(_x111), _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(s(proper(_x111)), proper(_x92))))), ok(nil)))top#(mark(cons(cons(_x41, s(cons(nil, and(_x91, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(ok(nil), and(proper(_x91), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(_x61, and(zeros, _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(ok(zeros), proper(_x92))))), ok(nil)))top#(mark(cons(cons(zeros, s(cons(_x61, and(_x91, _x92)))), nil))) → top#(cons(cons(ok(zeros), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(_x61, and(and(_x111, _x112), _x92)))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(and(proper(_x111), proper(_x112)), proper(_x92))))), ok(nil)))top#(mark(cons(cons(s(_x51), s(cons(_x61, and(_x91, _x92)))), nil))) → top#(cons(cons(s(proper(_x51)), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil)))
top#(mark(cons(cons(_x41, s(cons(_x61, and(_x91, s(_x121))))), nil))) → top#(cons(cons(proper(_x41), s(cons(proper(_x61), and(proper(_x91), s(proper(_x121)))))), ok(nil)))top#(mark(cons(cons(nil, s(cons(_x61, and(_x91, _x92)))), nil))) → top#(cons(cons(ok(nil), s(cons(proper(_x61), and(proper(_x91), proper(_x92))))), ok(nil)))

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

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

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