The rewrite relation of the following TRS is considered.
a__primes | → | a__sieve(a__from(s(s(0)))) | (1) |
a__from(X) | → | cons(mark(X),from(s(X))) | (2) |
a__head(cons(X,Y)) | → | mark(X) | (3) |
a__tail(cons(X,Y)) | → | mark(Y) | (4) |
a__if(true,X,Y) | → | mark(X) | (5) |
a__if(false,X,Y) | → | mark(Y) | (6) |
a__filter(s(s(X)),cons(Y,Z)) | → | a__if(divides(s(s(mark(X))),mark(Y)),filter(s(s(X)),Z),cons(Y,filter(X,sieve(Y)))) | (7) |
a__sieve(cons(X,Y)) | → | cons(mark(X),filter(X,sieve(Y))) | (8) |
mark(primes) | → | a__primes | (9) |
mark(sieve(X)) | → | a__sieve(mark(X)) | (10) |
mark(from(X)) | → | a__from(mark(X)) | (11) |
mark(head(X)) | → | a__head(mark(X)) | (12) |
mark(tail(X)) | → | a__tail(mark(X)) | (13) |
mark(if(X1,X2,X3)) | → | a__if(mark(X1),X2,X3) | (14) |
mark(filter(X1,X2)) | → | a__filter(mark(X1),mark(X2)) | (15) |
mark(s(X)) | → | s(mark(X)) | (16) |
mark(0) | → | 0 | (17) |
mark(cons(X1,X2)) | → | cons(mark(X1),X2) | (18) |
mark(true) | → | true | (19) |
mark(false) | → | false | (20) |
mark(divides(X1,X2)) | → | divides(mark(X1),mark(X2)) | (21) |
a__primes | → | primes | (22) |
a__sieve(X) | → | sieve(X) | (23) |
a__from(X) | → | from(X) | (24) |
a__head(X) | → | head(X) | (25) |
a__tail(X) | → | tail(X) | (26) |
a__if(X1,X2,X3) | → | if(X1,X2,X3) | (27) |
a__filter(X1,X2) | → | filter(X1,X2) | (28) |
a__if#(false,X,Y) | → | mark#(Y) | (29) |
mark#(cons(X1,X2)) | → | mark#(X1) | (30) |
mark#(from(X)) | → | a__from#(mark(X)) | (31) |
a__filter#(s(s(X)),cons(Y,Z)) | → | mark#(X) | (32) |
mark#(head(X)) | → | mark#(X) | (33) |
mark#(if(X1,X2,X3)) | → | mark#(X1) | (34) |
a__sieve#(cons(X,Y)) | → | mark#(X) | (35) |
a__primes# | → | a__from#(s(s(0))) | (36) |
a__filter#(s(s(X)),cons(Y,Z)) | → | a__if#(divides(s(s(mark(X))),mark(Y)),filter(s(s(X)),Z),cons(Y,filter(X,sieve(Y)))) | (37) |
a__filter#(s(s(X)),cons(Y,Z)) | → | mark#(Y) | (38) |
mark#(filter(X1,X2)) | → | a__filter#(mark(X1),mark(X2)) | (39) |
mark#(s(X)) | → | mark#(X) | (40) |
mark#(from(X)) | → | mark#(X) | (41) |
mark#(if(X1,X2,X3)) | → | a__if#(mark(X1),X2,X3) | (42) |
mark#(primes) | → | a__primes# | (43) |
a__tail#(cons(X,Y)) | → | mark#(Y) | (44) |
a__primes# | → | a__sieve#(a__from(s(s(0)))) | (45) |
mark#(filter(X1,X2)) | → | mark#(X2) | (46) |
a__if#(true,X,Y) | → | mark#(X) | (47) |
mark#(divides(X1,X2)) | → | mark#(X2) | (48) |
mark#(filter(X1,X2)) | → | mark#(X1) | (49) |
a__head#(cons(X,Y)) | → | mark#(X) | (50) |
mark#(sieve(X)) | → | mark#(X) | (51) |
mark#(tail(X)) | → | a__tail#(mark(X)) | (52) |
a__from#(X) | → | mark#(X) | (53) |
mark#(head(X)) | → | a__head#(mark(X)) | (54) |
mark#(sieve(X)) | → | a__sieve#(mark(X)) | (55) |
mark#(tail(X)) | → | mark#(X) | (56) |
mark#(divides(X1,X2)) | → | mark#(X1) | (57) |
The dependency pairs are split into 1 component.
mark#(divides(X1,X2)) | → | mark#(X1) | (57) |
mark#(filter(X1,X2)) | → | a__filter#(mark(X1),mark(X2)) | (39) |
mark#(tail(X)) | → | mark#(X) | (56) |
a__filter#(s(s(X)),cons(Y,Z)) | → | mark#(Y) | (38) |
mark#(sieve(X)) | → | a__sieve#(mark(X)) | (55) |
mark#(head(X)) | → | a__head#(mark(X)) | (54) |
a__from#(X) | → | mark#(X) | (53) |
a__primes# | → | a__from#(s(s(0))) | (36) |
mark#(tail(X)) | → | a__tail#(mark(X)) | (52) |
a__sieve#(cons(X,Y)) | → | mark#(X) | (35) |
mark#(sieve(X)) | → | mark#(X) | (51) |
a__head#(cons(X,Y)) | → | mark#(X) | (50) |
mark#(filter(X1,X2)) | → | mark#(X1) | (49) |
mark#(if(X1,X2,X3)) | → | mark#(X1) | (34) |
mark#(head(X)) | → | mark#(X) | (33) |
a__filter#(s(s(X)),cons(Y,Z)) | → | mark#(X) | (32) |
mark#(divides(X1,X2)) | → | mark#(X2) | (48) |
a__if#(true,X,Y) | → | mark#(X) | (47) |
mark#(from(X)) | → | a__from#(mark(X)) | (31) |
mark#(filter(X1,X2)) | → | mark#(X2) | (46) |
a__primes# | → | a__sieve#(a__from(s(s(0)))) | (45) |
a__tail#(cons(X,Y)) | → | mark#(Y) | (44) |
mark#(primes) | → | a__primes# | (43) |
mark#(if(X1,X2,X3)) | → | a__if#(mark(X1),X2,X3) | (42) |
mark#(from(X)) | → | mark#(X) | (41) |
mark#(cons(X1,X2)) | → | mark#(X1) | (30) |
a__if#(false,X,Y) | → | mark#(Y) | (29) |
mark#(s(X)) | → | mark#(X) | (40) |
[s(x1)] | = | x1 + 0 |
[a__head#(x1)] | = | x1 + 38147 |
[a__from#(x1)] | = | x1 + 38146 |
[a__from(x1)] | = | x1 + 3 |
[false] | = | 18589 |
[a__filter#(x1, x2)] | = | max(x1 + 38146, x2 + 38145, 0) |
[a__sieve(x1)] | = | x1 + 2 |
[true] | = | 2242 |
[tail(x1)] | = | x1 + 9727 |
[mark#(x1)] | = | x1 + 38146 |
[0] | = | 24452 |
[if(x1, x2, x3)] | = | max(x1 + 0, x2 + 0, x3 + 0, 0) |
[a__primes#] | = | 62603 |
[from(x1)] | = | x1 + 3 |
[mark(x1)] | = | x1 + 0 |
[sieve(x1)] | = | x1 + 2 |
[a__if#(x1, x2, x3)] | = | max(x1 + 38145, x2 + 38146, x3 + 38146, 0) |
[head(x1)] | = | x1 + 592 |
[cons(x1, x2)] | = | max(x1 + 3, x2 + 0, 0) |
[a__primes] | = | 24458 |
[filter(x1, x2)] | = | max(x1 + 0, x2 + 0, 0) |
[primes] | = | 24458 |
[a__sieve#(x1)] | = | x1 + 38147 |
[divides(x1, x2)] | = | max(x1 + 0, x2 + 1, 0) |
[a__tail(x1)] | = | x1 + 9727 |
[a__filter(x1, x2)] | = | max(x1 + 0, x2 + 0, 0) |
[a__tail#(x1)] | = | x1 + 38147 |
[a__if(x1, x2, x3)] | = | max(x1 + 0, x2 + 0, x3 + 0, 0) |
[a__head(x1)] | = | x1 + 592 |
mark(cons(X1,X2)) | → | cons(mark(X1),X2) | (18) |
a__tail(cons(X,Y)) | → | mark(Y) | (4) |
mark(filter(X1,X2)) | → | a__filter(mark(X1),mark(X2)) | (15) |
a__sieve(cons(X,Y)) | → | cons(mark(X),filter(X,sieve(Y))) | (8) |
a__primes | → | a__sieve(a__from(s(s(0)))) | (1) |
a__head(cons(X,Y)) | → | mark(X) | (3) |
mark(s(X)) | → | s(mark(X)) | (16) |
mark(divides(X1,X2)) | → | divides(mark(X1),mark(X2)) | (21) |
a__tail(X) | → | tail(X) | (26) |
mark(true) | → | true | (19) |
mark(0) | → | 0 | (17) |
a__if(X1,X2,X3) | → | if(X1,X2,X3) | (27) |
a__primes | → | primes | (22) |
a__filter(X1,X2) | → | filter(X1,X2) | (28) |
a__if(true,X,Y) | → | mark(X) | (5) |
mark(sieve(X)) | → | a__sieve(mark(X)) | (10) |
a__filter(s(s(X)),cons(Y,Z)) | → | a__if(divides(s(s(mark(X))),mark(Y)),filter(s(s(X)),Z),cons(Y,filter(X,sieve(Y)))) | (7) |
mark(false) | → | false | (20) |
a__head(X) | → | head(X) | (25) |
mark(if(X1,X2,X3)) | → | a__if(mark(X1),X2,X3) | (14) |
mark(head(X)) | → | a__head(mark(X)) | (12) |
a__sieve(X) | → | sieve(X) | (23) |
a__from(X) | → | from(X) | (24) |
mark(from(X)) | → | a__from(mark(X)) | (11) |
mark(primes) | → | a__primes | (9) |
mark(tail(X)) | → | a__tail(mark(X)) | (13) |
a__if(false,X,Y) | → | mark(Y) | (6) |
a__from(X) | → | cons(mark(X),from(s(X))) | (2) |
mark#(tail(X)) | → | mark#(X) | (56) |
a__filter#(s(s(X)),cons(Y,Z)) | → | mark#(Y) | (38) |
mark#(sieve(X)) | → | a__sieve#(mark(X)) | (55) |
mark#(head(X)) | → | a__head#(mark(X)) | (54) |
a__primes# | → | a__from#(s(s(0))) | (36) |
mark#(tail(X)) | → | a__tail#(mark(X)) | (52) |
a__sieve#(cons(X,Y)) | → | mark#(X) | (35) |
mark#(sieve(X)) | → | mark#(X) | (51) |
a__head#(cons(X,Y)) | → | mark#(X) | (50) |
mark#(head(X)) | → | mark#(X) | (33) |
mark#(divides(X1,X2)) | → | mark#(X2) | (48) |
mark#(from(X)) | → | a__from#(mark(X)) | (31) |
a__primes# | → | a__sieve#(a__from(s(s(0)))) | (45) |
a__tail#(cons(X,Y)) | → | mark#(Y) | (44) |
mark#(primes) | → | a__primes# | (43) |
mark#(from(X)) | → | mark#(X) | (41) |
mark#(cons(X1,X2)) | → | mark#(X1) | (30) |
The dependency pairs are split into 1 component.
mark#(filter(X1,X2)) | → | mark#(X2) | (46) |
mark#(filter(X1,X2)) | → | mark#(X1) | (49) |
mark#(filter(X1,X2)) | → | a__filter#(mark(X1),mark(X2)) | (39) |
mark#(s(X)) | → | mark#(X) | (40) |
mark#(divides(X1,X2)) | → | mark#(X1) | (57) |
a__if#(true,X,Y) | → | mark#(X) | (47) |
a__filter#(s(s(X)),cons(Y,Z)) | → | mark#(X) | (32) |
mark#(if(X1,X2,X3)) | → | mark#(X1) | (34) |
mark#(if(X1,X2,X3)) | → | a__if#(mark(X1),X2,X3) | (42) |
a__if#(false,X,Y) | → | mark#(Y) | (29) |
[s(x1)] | = | x1 + 0 |
[a__head#(x1)] | = | x1 + 38147 |
[a__from#(x1)] | = | x1 + 38146 |
[a__from(x1)] | = | x1 + 3 |
[false] | = | 1 |
[a__filter#(x1, x2)] | = | max(x1 + 4, x2 + 1, 0) |
[a__sieve(x1)] | = | x1 + 2 |
[true] | = | 3 |
[tail(x1)] | = | x1 + 25466 |
[mark#(x1)] | = | x1 + 3 |
[0] | = | 43810 |
[if(x1, x2, x3)] | = | max(x1 + 0, x2 + 0, x3 + 0, 0) |
[a__primes#] | = | 62603 |
[from(x1)] | = | x1 + 3 |
[mark(x1)] | = | x1 + 0 |
[sieve(x1)] | = | x1 + 2 |
[a__if#(x1, x2, x3)] | = | max(x1 + 1, x2 + 3, x3 + 3, 0) |
[head(x1)] | = | x1 + 51696 |
[cons(x1, x2)] | = | max(x1 + 3, x2 + 0, 0) |
[a__primes] | = | 43815 |
[filter(x1, x2)] | = | max(x1 + 1, x2 + 0, 0) |
[primes] | = | 43815 |
[a__sieve#(x1)] | = | x1 + 38147 |
[divides(x1, x2)] | = | max(x1 + 0, x2 + 2, 0) |
[a__tail(x1)] | = | x1 + 25466 |
[a__filter(x1, x2)] | = | max(x1 + 1, x2 + 0, 0) |
[a__tail#(x1)] | = | x1 + 38147 |
[a__if(x1, x2, x3)] | = | max(x1 + 0, x2 + 0, x3 + 0, 0) |
[a__head(x1)] | = | x1 + 51696 |
mark(cons(X1,X2)) | → | cons(mark(X1),X2) | (18) |
a__tail(cons(X,Y)) | → | mark(Y) | (4) |
mark(filter(X1,X2)) | → | a__filter(mark(X1),mark(X2)) | (15) |
a__sieve(cons(X,Y)) | → | cons(mark(X),filter(X,sieve(Y))) | (8) |
a__primes | → | a__sieve(a__from(s(s(0)))) | (1) |
a__head(cons(X,Y)) | → | mark(X) | (3) |
mark(s(X)) | → | s(mark(X)) | (16) |
mark(divides(X1,X2)) | → | divides(mark(X1),mark(X2)) | (21) |
a__tail(X) | → | tail(X) | (26) |
mark(true) | → | true | (19) |
mark(0) | → | 0 | (17) |
a__if(X1,X2,X3) | → | if(X1,X2,X3) | (27) |
a__primes | → | primes | (22) |
a__filter(X1,X2) | → | filter(X1,X2) | (28) |
a__if(true,X,Y) | → | mark(X) | (5) |
mark(sieve(X)) | → | a__sieve(mark(X)) | (10) |
a__filter(s(s(X)),cons(Y,Z)) | → | a__if(divides(s(s(mark(X))),mark(Y)),filter(s(s(X)),Z),cons(Y,filter(X,sieve(Y)))) | (7) |
mark(false) | → | false | (20) |
a__head(X) | → | head(X) | (25) |
mark(if(X1,X2,X3)) | → | a__if(mark(X1),X2,X3) | (14) |
mark(head(X)) | → | a__head(mark(X)) | (12) |
a__sieve(X) | → | sieve(X) | (23) |
a__from(X) | → | from(X) | (24) |
mark(from(X)) | → | a__from(mark(X)) | (11) |
mark(primes) | → | a__primes | (9) |
mark(tail(X)) | → | a__tail(mark(X)) | (13) |
a__if(false,X,Y) | → | mark(Y) | (6) |
a__from(X) | → | cons(mark(X),from(s(X))) | (2) |
mark#(filter(X1,X2)) | → | mark#(X1) | (49) |
a__filter#(s(s(X)),cons(Y,Z)) | → | mark#(X) | (32) |
The dependency pairs are split into 1 component.
mark#(filter(X1,X2)) | → | mark#(X2) | (46) |
mark#(s(X)) | → | mark#(X) | (40) |
mark#(divides(X1,X2)) | → | mark#(X1) | (57) |
a__if#(true,X,Y) | → | mark#(X) | (47) |
mark#(if(X1,X2,X3)) | → | mark#(X1) | (34) |
mark#(if(X1,X2,X3)) | → | a__if#(mark(X1),X2,X3) | (42) |
a__if#(false,X,Y) | → | mark#(Y) | (29) |
[s(x1)] | = | x1 + 21653 |
[a__head#(x1)] | = | 2 |
[a__from#(x1)] | = | 2 |
[a__from(x1)] | = | x1 + 7 |
[false] | = | 6 |
[a__filter#(x1, x2)] | = | 0 |
[a__sieve(x1)] | = | 7 |
[true] | = | 6 |
[tail(x1)] | = | x1 + 5 |
[mark#(x1)] | = | x1 + 4 |
[0] | = | 6 |
[if(x1, x2, x3)] | = | x1 + x2 + x3 + 7 |
[a__primes#] | = | 2 |
[from(x1)] | = | 8 |
[mark(x1)] | = | 5 |
[sieve(x1)] | = | 8 |
[a__if#(x1, x2, x3)] | = | x2 + x3 + 5 |
[head(x1)] | = | 2 |
[cons(x1, x2)] | = | x1 + 3 |
[a__primes] | = | 6 |
[filter(x1, x2)] | = | x2 + 2 |
[primes] | = | 7 |
[a__sieve#(x1)] | = | 2 |
[divides(x1, x2)] | = | x1 + 1 |
[a__tail(x1)] | = | 4 |
[a__filter(x1, x2)] | = | x2 + 1 |
[a__tail#(x1)] | = | 2 |
[a__if(x1, x2, x3)] | = | 6 |
[a__head(x1)] | = | x1 + 1 |
mark#(filter(X1,X2)) | → | mark#(X2) | (46) |
mark#(s(X)) | → | mark#(X) | (40) |
mark#(divides(X1,X2)) | → | mark#(X1) | (57) |
a__if#(true,X,Y) | → | mark#(X) | (47) |
mark#(if(X1,X2,X3)) | → | mark#(X1) | (34) |
mark#(if(X1,X2,X3)) | → | a__if#(mark(X1),X2,X3) | (42) |
a__if#(false,X,Y) | → | mark#(Y) | (29) |
The dependency pairs are split into 0 components.