The rewrite relation of the following TRS is considered.
active(terms(N)) | → | mark(cons(recip(sqr(N)),terms(s(N)))) | (1) |
active(sqr(0)) | → | mark(0) | (2) |
active(sqr(s(X))) | → | mark(s(add(sqr(X),dbl(X)))) | (3) |
active(dbl(0)) | → | mark(0) | (4) |
active(dbl(s(X))) | → | mark(s(s(dbl(X)))) | (5) |
active(add(0,X)) | → | mark(X) | (6) |
active(add(s(X),Y)) | → | mark(s(add(X,Y))) | (7) |
active(first(0,X)) | → | mark(nil) | (8) |
active(first(s(X),cons(Y,Z))) | → | mark(cons(Y,first(X,Z))) | (9) |
active(half(0)) | → | mark(0) | (10) |
active(half(s(0))) | → | mark(0) | (11) |
active(half(s(s(X)))) | → | mark(s(half(X))) | (12) |
active(half(dbl(X))) | → | mark(X) | (13) |
mark(terms(X)) | → | active(terms(mark(X))) | (14) |
mark(cons(X1,X2)) | → | active(cons(mark(X1),X2)) | (15) |
mark(recip(X)) | → | active(recip(mark(X))) | (16) |
mark(sqr(X)) | → | active(sqr(mark(X))) | (17) |
mark(s(X)) | → | active(s(mark(X))) | (18) |
mark(0) | → | active(0) | (19) |
mark(add(X1,X2)) | → | active(add(mark(X1),mark(X2))) | (20) |
mark(dbl(X)) | → | active(dbl(mark(X))) | (21) |
mark(first(X1,X2)) | → | active(first(mark(X1),mark(X2))) | (22) |
mark(nil) | → | active(nil) | (23) |
mark(half(X)) | → | active(half(mark(X))) | (24) |
terms(mark(X)) | → | terms(X) | (25) |
terms(active(X)) | → | terms(X) | (26) |
cons(mark(X1),X2) | → | cons(X1,X2) | (27) |
cons(X1,mark(X2)) | → | cons(X1,X2) | (28) |
cons(active(X1),X2) | → | cons(X1,X2) | (29) |
cons(X1,active(X2)) | → | cons(X1,X2) | (30) |
recip(mark(X)) | → | recip(X) | (31) |
recip(active(X)) | → | recip(X) | (32) |
sqr(mark(X)) | → | sqr(X) | (33) |
sqr(active(X)) | → | sqr(X) | (34) |
s(mark(X)) | → | s(X) | (35) |
s(active(X)) | → | s(X) | (36) |
add(mark(X1),X2) | → | add(X1,X2) | (37) |
add(X1,mark(X2)) | → | add(X1,X2) | (38) |
add(active(X1),X2) | → | add(X1,X2) | (39) |
add(X1,active(X2)) | → | add(X1,X2) | (40) |
dbl(mark(X)) | → | dbl(X) | (41) |
dbl(active(X)) | → | dbl(X) | (42) |
first(mark(X1),X2) | → | first(X1,X2) | (43) |
first(X1,mark(X2)) | → | first(X1,X2) | (44) |
first(active(X1),X2) | → | first(X1,X2) | (45) |
first(X1,active(X2)) | → | first(X1,X2) | (46) |
half(mark(X)) | → | half(X) | (47) |
half(active(X)) | → | half(X) | (48) |
active#(terms(N)) | → | mark#(cons(recip(sqr(N)),terms(s(N)))) | (49) |
active#(terms(N)) | → | cons#(recip(sqr(N)),terms(s(N))) | (50) |
active#(terms(N)) | → | recip#(sqr(N)) | (51) |
active#(terms(N)) | → | sqr#(N) | (52) |
active#(terms(N)) | → | terms#(s(N)) | (53) |
active#(terms(N)) | → | s#(N) | (54) |
active#(sqr(0)) | → | mark#(0) | (55) |
active#(sqr(s(X))) | → | mark#(s(add(sqr(X),dbl(X)))) | (56) |
active#(sqr(s(X))) | → | s#(add(sqr(X),dbl(X))) | (57) |
active#(sqr(s(X))) | → | add#(sqr(X),dbl(X)) | (58) |
active#(sqr(s(X))) | → | sqr#(X) | (59) |
active#(sqr(s(X))) | → | dbl#(X) | (60) |
active#(dbl(0)) | → | mark#(0) | (61) |
active#(dbl(s(X))) | → | mark#(s(s(dbl(X)))) | (62) |
active#(dbl(s(X))) | → | s#(s(dbl(X))) | (63) |
active#(dbl(s(X))) | → | s#(dbl(X)) | (64) |
active#(dbl(s(X))) | → | dbl#(X) | (65) |
active#(add(0,X)) | → | mark#(X) | (66) |
active#(add(s(X),Y)) | → | mark#(s(add(X,Y))) | (67) |
active#(add(s(X),Y)) | → | s#(add(X,Y)) | (68) |
active#(add(s(X),Y)) | → | add#(X,Y) | (69) |
active#(first(0,X)) | → | mark#(nil) | (70) |
active#(first(s(X),cons(Y,Z))) | → | mark#(cons(Y,first(X,Z))) | (71) |
active#(first(s(X),cons(Y,Z))) | → | cons#(Y,first(X,Z)) | (72) |
active#(first(s(X),cons(Y,Z))) | → | first#(X,Z) | (73) |
active#(half(0)) | → | mark#(0) | (74) |
active#(half(s(0))) | → | mark#(0) | (75) |
active#(half(s(s(X)))) | → | mark#(s(half(X))) | (76) |
active#(half(s(s(X)))) | → | s#(half(X)) | (77) |
active#(half(s(s(X)))) | → | half#(X) | (78) |
active#(half(dbl(X))) | → | mark#(X) | (79) |
mark#(terms(X)) | → | active#(terms(mark(X))) | (80) |
mark#(terms(X)) | → | terms#(mark(X)) | (81) |
mark#(terms(X)) | → | mark#(X) | (82) |
mark#(cons(X1,X2)) | → | active#(cons(mark(X1),X2)) | (83) |
mark#(cons(X1,X2)) | → | cons#(mark(X1),X2) | (84) |
mark#(cons(X1,X2)) | → | mark#(X1) | (85) |
mark#(recip(X)) | → | active#(recip(mark(X))) | (86) |
mark#(recip(X)) | → | recip#(mark(X)) | (87) |
mark#(recip(X)) | → | mark#(X) | (88) |
mark#(sqr(X)) | → | active#(sqr(mark(X))) | (89) |
mark#(sqr(X)) | → | sqr#(mark(X)) | (90) |
mark#(sqr(X)) | → | mark#(X) | (91) |
mark#(s(X)) | → | active#(s(mark(X))) | (92) |
mark#(s(X)) | → | s#(mark(X)) | (93) |
mark#(s(X)) | → | mark#(X) | (94) |
mark#(0) | → | active#(0) | (95) |
mark#(add(X1,X2)) | → | active#(add(mark(X1),mark(X2))) | (96) |
mark#(add(X1,X2)) | → | add#(mark(X1),mark(X2)) | (97) |
mark#(add(X1,X2)) | → | mark#(X1) | (98) |
mark#(add(X1,X2)) | → | mark#(X2) | (99) |
mark#(dbl(X)) | → | active#(dbl(mark(X))) | (100) |
mark#(dbl(X)) | → | dbl#(mark(X)) | (101) |
mark#(dbl(X)) | → | mark#(X) | (102) |
mark#(first(X1,X2)) | → | active#(first(mark(X1),mark(X2))) | (103) |
mark#(first(X1,X2)) | → | first#(mark(X1),mark(X2)) | (104) |
mark#(first(X1,X2)) | → | mark#(X1) | (105) |
mark#(first(X1,X2)) | → | mark#(X2) | (106) |
mark#(nil) | → | active#(nil) | (107) |
mark#(half(X)) | → | active#(half(mark(X))) | (108) |
mark#(half(X)) | → | half#(mark(X)) | (109) |
mark#(half(X)) | → | mark#(X) | (110) |
terms#(mark(X)) | → | terms#(X) | (111) |
terms#(active(X)) | → | terms#(X) | (112) |
cons#(mark(X1),X2) | → | cons#(X1,X2) | (113) |
cons#(X1,mark(X2)) | → | cons#(X1,X2) | (114) |
cons#(active(X1),X2) | → | cons#(X1,X2) | (115) |
cons#(X1,active(X2)) | → | cons#(X1,X2) | (116) |
recip#(mark(X)) | → | recip#(X) | (117) |
recip#(active(X)) | → | recip#(X) | (118) |
sqr#(mark(X)) | → | sqr#(X) | (119) |
sqr#(active(X)) | → | sqr#(X) | (120) |
s#(mark(X)) | → | s#(X) | (121) |
s#(active(X)) | → | s#(X) | (122) |
add#(mark(X1),X2) | → | add#(X1,X2) | (123) |
add#(X1,mark(X2)) | → | add#(X1,X2) | (124) |
add#(active(X1),X2) | → | add#(X1,X2) | (125) |
add#(X1,active(X2)) | → | add#(X1,X2) | (126) |
dbl#(mark(X)) | → | dbl#(X) | (127) |
dbl#(active(X)) | → | dbl#(X) | (128) |
first#(mark(X1),X2) | → | first#(X1,X2) | (129) |
first#(X1,mark(X2)) | → | first#(X1,X2) | (130) |
first#(active(X1),X2) | → | first#(X1,X2) | (131) |
first#(X1,active(X2)) | → | first#(X1,X2) | (132) |
half#(mark(X)) | → | half#(X) | (133) |
half#(active(X)) | → | half#(X) | (134) |
The dependency pairs are split into 10 components.
mark#(cons(X1,X2)) | → | active#(cons(mark(X1),X2)) | (83) |
active#(terms(N)) | → | mark#(cons(recip(sqr(N)),terms(s(N)))) | (49) |
mark#(cons(X1,X2)) | → | mark#(X1) | (85) |
mark#(terms(X)) | → | active#(terms(mark(X))) | (80) |
active#(sqr(s(X))) | → | mark#(s(add(sqr(X),dbl(X)))) | (56) |
mark#(s(X)) | → | active#(s(mark(X))) | (92) |
active#(dbl(s(X))) | → | mark#(s(s(dbl(X)))) | (62) |
mark#(s(X)) | → | mark#(X) | (94) |
mark#(terms(X)) | → | mark#(X) | (82) |
mark#(recip(X)) | → | active#(recip(mark(X))) | (86) |
active#(add(0,X)) | → | mark#(X) | (66) |
mark#(recip(X)) | → | mark#(X) | (88) |
mark#(sqr(X)) | → | active#(sqr(mark(X))) | (89) |
active#(add(s(X),Y)) | → | mark#(s(add(X,Y))) | (67) |
active#(first(s(X),cons(Y,Z))) | → | mark#(cons(Y,first(X,Z))) | (71) |
active#(half(s(s(X)))) | → | mark#(s(half(X))) | (76) |
active#(half(dbl(X))) | → | mark#(X) | (79) |
mark#(sqr(X)) | → | mark#(X) | (91) |
mark#(add(X1,X2)) | → | active#(add(mark(X1),mark(X2))) | (96) |
mark#(add(X1,X2)) | → | mark#(X1) | (98) |
mark#(add(X1,X2)) | → | mark#(X2) | (99) |
mark#(dbl(X)) | → | active#(dbl(mark(X))) | (100) |
mark#(dbl(X)) | → | mark#(X) | (102) |
mark#(first(X1,X2)) | → | active#(first(mark(X1),mark(X2))) | (103) |
mark#(first(X1,X2)) | → | mark#(X1) | (105) |
mark#(first(X1,X2)) | → | mark#(X2) | (106) |
mark#(half(X)) | → | active#(half(mark(X))) | (108) |
mark#(half(X)) | → | mark#(X) | (110) |
[active#(x1)] | = | -2 + 2 · x1 |
[add(x1, x2)] | = | 2 |
[cons(x1, x2)] | = | 0 |
[dbl(x1)] | = | 2 |
[first(x1, x2)] | = | 2 |
[half(x1)] | = | 2 |
[recip(x1)] | = | 0 |
[s(x1)] | = | 2 |
[sqr(x1)] | = | 2 |
[terms(x1)] | = | 2 |
[mark(x1)] | = | -2 |
[active(x1)] | = | -2 + 2 · x1 |
[0] | = | 2 |
[nil] | = | 2 |
[mark#(x1)] | = | 2 |
cons(X1,mark(X2)) | → | cons(X1,X2) | (28) |
cons(mark(X1),X2) | → | cons(X1,X2) | (27) |
cons(active(X1),X2) | → | cons(X1,X2) | (29) |
cons(X1,active(X2)) | → | cons(X1,X2) | (30) |
terms(active(X)) | → | terms(X) | (26) |
terms(mark(X)) | → | terms(X) | (25) |
s(active(X)) | → | s(X) | (36) |
s(mark(X)) | → | s(X) | (35) |
recip(active(X)) | → | recip(X) | (32) |
recip(mark(X)) | → | recip(X) | (31) |
sqr(active(X)) | → | sqr(X) | (34) |
sqr(mark(X)) | → | sqr(X) | (33) |
add(X1,mark(X2)) | → | add(X1,X2) | (38) |
add(mark(X1),X2) | → | add(X1,X2) | (37) |
add(active(X1),X2) | → | add(X1,X2) | (39) |
add(X1,active(X2)) | → | add(X1,X2) | (40) |
dbl(active(X)) | → | dbl(X) | (42) |
dbl(mark(X)) | → | dbl(X) | (41) |
first(X1,mark(X2)) | → | first(X1,X2) | (44) |
first(mark(X1),X2) | → | first(X1,X2) | (43) |
first(active(X1),X2) | → | first(X1,X2) | (45) |
first(X1,active(X2)) | → | first(X1,X2) | (46) |
half(active(X)) | → | half(X) | (48) |
half(mark(X)) | → | half(X) | (47) |
mark#(cons(X1,X2)) | → | active#(cons(mark(X1),X2)) | (83) |
mark#(recip(X)) | → | active#(recip(mark(X))) | (86) |
[active#(x1)] | = | x1 |
[add(x1, x2)] | = | 2 |
[dbl(x1)] | = | 2 |
[first(x1, x2)] | = | 2 |
[half(x1)] | = | 2 |
[s(x1)] | = | 1 |
[sqr(x1)] | = | 2 |
[terms(x1)] | = | 2 |
[mark(x1)] | = | 2 |
[cons(x1, x2)] | = | 2 |
[active(x1)] | = | -1 |
[recip(x1)] | = | -2 |
[0] | = | 0 |
[nil] | = | 0 |
[mark#(x1)] | = | 2 |
terms(active(X)) | → | terms(X) | (26) |
terms(mark(X)) | → | terms(X) | (25) |
s(active(X)) | → | s(X) | (36) |
s(mark(X)) | → | s(X) | (35) |
sqr(active(X)) | → | sqr(X) | (34) |
sqr(mark(X)) | → | sqr(X) | (33) |
add(X1,mark(X2)) | → | add(X1,X2) | (38) |
add(mark(X1),X2) | → | add(X1,X2) | (37) |
add(active(X1),X2) | → | add(X1,X2) | (39) |
add(X1,active(X2)) | → | add(X1,X2) | (40) |
dbl(active(X)) | → | dbl(X) | (42) |
dbl(mark(X)) | → | dbl(X) | (41) |
first(X1,mark(X2)) | → | first(X1,X2) | (44) |
first(mark(X1),X2) | → | first(X1,X2) | (43) |
first(active(X1),X2) | → | first(X1,X2) | (45) |
first(X1,active(X2)) | → | first(X1,X2) | (46) |
half(active(X)) | → | half(X) | (48) |
half(mark(X)) | → | half(X) | (47) |
mark#(s(X)) | → | active#(s(mark(X))) | (92) |
prec(active#) | = | 6 | stat(active#) | = | lex | |
prec(terms) | = | 6 | stat(terms) | = | lex | |
prec(mark#) | = | 6 | stat(mark#) | = | lex | |
prec(sqr) | = | 3 | stat(sqr) | = | lex | |
prec(s) | = | 0 | stat(s) | = | lex | |
prec(add) | = | 1 | stat(add) | = | lex | |
prec(dbl) | = | 2 | stat(dbl) | = | lex | |
prec(0) | = | 6 | stat(0) | = | lex | |
prec(first) | = | 6 | stat(first) | = | lex | |
prec(half) | = | 4 | stat(half) | = | lex | |
prec(nil) | = | 5 | stat(nil) | = | lex |
π(active#) | = | [1] |
π(terms) | = | [1] |
π(mark#) | = | [1] |
π(cons) | = | 1 |
π(recip) | = | 1 |
π(sqr) | = | [1] |
π(s) | = | [1] |
π(mark) | = | 1 |
π(add) | = | [2,1] |
π(dbl) | = | [1] |
π(0) | = | [] |
π(first) | = | [1,2] |
π(half) | = | [1] |
π(active) | = | 1 |
π(nil) | = | [] |
active#(terms(N)) | → | mark#(cons(recip(sqr(N)),terms(s(N)))) | (49) |
active#(sqr(s(X))) | → | mark#(s(add(sqr(X),dbl(X)))) | (56) |
active#(dbl(s(X))) | → | mark#(s(s(dbl(X)))) | (62) |
mark#(s(X)) | → | mark#(X) | (94) |
mark#(terms(X)) | → | mark#(X) | (82) |
active#(add(0,X)) | → | mark#(X) | (66) |
active#(add(s(X),Y)) | → | mark#(s(add(X,Y))) | (67) |
active#(first(s(X),cons(Y,Z))) | → | mark#(cons(Y,first(X,Z))) | (71) |
active#(half(s(s(X)))) | → | mark#(s(half(X))) | (76) |
active#(half(dbl(X))) | → | mark#(X) | (79) |
mark#(sqr(X)) | → | mark#(X) | (91) |
mark#(add(X1,X2)) | → | mark#(X1) | (98) |
mark#(add(X1,X2)) | → | mark#(X2) | (99) |
mark#(dbl(X)) | → | mark#(X) | (102) |
mark#(first(X1,X2)) | → | mark#(X1) | (105) |
mark#(first(X1,X2)) | → | mark#(X2) | (106) |
mark#(half(X)) | → | mark#(X) | (110) |
The dependency pairs are split into 1 component.
mark#(recip(X)) | → | mark#(X) | (88) |
mark#(cons(X1,X2)) | → | mark#(X1) | (85) |
We restrict the rewrite rules to the following usable rules of the DP problem.
There are no rules.
We restrict the innermost strategy to the following left hand sides.
cons(mark(x0),x1) |
cons(x0,mark(x1)) |
cons(active(x0),x1) |
cons(x0,active(x1)) |
recip(mark(x0)) |
recip(active(x0)) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
mark#(recip(X)) | → | mark#(X) | (88) |
1 | > | 1 | |
mark#(cons(X1,X2)) | → | mark#(X1) | (85) |
1 | > | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
terms#(active(X)) | → | terms#(X) | (112) |
terms#(mark(X)) | → | terms#(X) | (111) |
We restrict the rewrite rules to the following usable rules of the DP problem.
There are no rules.
We restrict the innermost strategy to the following left hand sides.
active(terms(x0)) |
active(sqr(0)) |
active(sqr(s(x0))) |
active(dbl(0)) |
active(dbl(s(x0))) |
active(add(0,x0)) |
active(add(s(x0),x1)) |
active(first(0,x0)) |
active(first(s(x0),cons(x1,x2))) |
active(half(0)) |
active(half(s(0))) |
active(half(s(s(x0)))) |
active(half(dbl(x0))) |
mark(terms(x0)) |
mark(cons(x0,x1)) |
mark(recip(x0)) |
mark(sqr(x0)) |
mark(s(x0)) |
mark(0) |
mark(add(x0,x1)) |
mark(dbl(x0)) |
mark(first(x0,x1)) |
mark(nil) |
mark(half(x0)) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
terms#(active(X)) | → | terms#(X) | (112) |
1 | > | 1 | |
terms#(mark(X)) | → | terms#(X) | (111) |
1 | > | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
cons#(X1,mark(X2)) | → | cons#(X1,X2) | (114) |
cons#(mark(X1),X2) | → | cons#(X1,X2) | (113) |
cons#(active(X1),X2) | → | cons#(X1,X2) | (115) |
cons#(X1,active(X2)) | → | cons#(X1,X2) | (116) |
We restrict the rewrite rules to the following usable rules of the DP problem.
There are no rules.
We restrict the innermost strategy to the following left hand sides.
active(terms(x0)) |
active(sqr(0)) |
active(sqr(s(x0))) |
active(dbl(0)) |
active(dbl(s(x0))) |
active(add(0,x0)) |
active(add(s(x0),x1)) |
active(first(0,x0)) |
active(first(s(x0),cons(x1,x2))) |
active(half(0)) |
active(half(s(0))) |
active(half(s(s(x0)))) |
active(half(dbl(x0))) |
mark(terms(x0)) |
mark(cons(x0,x1)) |
mark(recip(x0)) |
mark(sqr(x0)) |
mark(s(x0)) |
mark(0) |
mark(add(x0,x1)) |
mark(dbl(x0)) |
mark(first(x0,x1)) |
mark(nil) |
mark(half(x0)) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
cons#(X1,mark(X2)) | → | cons#(X1,X2) | (114) |
1 | ≥ | 1 | |
2 | > | 2 | |
cons#(mark(X1),X2) | → | cons#(X1,X2) | (113) |
1 | > | 1 | |
2 | ≥ | 2 | |
cons#(active(X1),X2) | → | cons#(X1,X2) | (115) |
1 | > | 1 | |
2 | ≥ | 2 | |
cons#(X1,active(X2)) | → | cons#(X1,X2) | (116) |
1 | ≥ | 1 | |
2 | > | 2 |
As there is no critical graph in the transitive closure, there are no infinite chains.
recip#(active(X)) | → | recip#(X) | (118) |
recip#(mark(X)) | → | recip#(X) | (117) |
We restrict the rewrite rules to the following usable rules of the DP problem.
There are no rules.
We restrict the innermost strategy to the following left hand sides.
active(terms(x0)) |
active(sqr(0)) |
active(sqr(s(x0))) |
active(dbl(0)) |
active(dbl(s(x0))) |
active(add(0,x0)) |
active(add(s(x0),x1)) |
active(first(0,x0)) |
active(first(s(x0),cons(x1,x2))) |
active(half(0)) |
active(half(s(0))) |
active(half(s(s(x0)))) |
active(half(dbl(x0))) |
mark(terms(x0)) |
mark(cons(x0,x1)) |
mark(recip(x0)) |
mark(sqr(x0)) |
mark(s(x0)) |
mark(0) |
mark(add(x0,x1)) |
mark(dbl(x0)) |
mark(first(x0,x1)) |
mark(nil) |
mark(half(x0)) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
recip#(active(X)) | → | recip#(X) | (118) |
1 | > | 1 | |
recip#(mark(X)) | → | recip#(X) | (117) |
1 | > | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
sqr#(active(X)) | → | sqr#(X) | (120) |
sqr#(mark(X)) | → | sqr#(X) | (119) |
We restrict the rewrite rules to the following usable rules of the DP problem.
There are no rules.
We restrict the innermost strategy to the following left hand sides.
active(terms(x0)) |
active(sqr(0)) |
active(sqr(s(x0))) |
active(dbl(0)) |
active(dbl(s(x0))) |
active(add(0,x0)) |
active(add(s(x0),x1)) |
active(first(0,x0)) |
active(first(s(x0),cons(x1,x2))) |
active(half(0)) |
active(half(s(0))) |
active(half(s(s(x0)))) |
active(half(dbl(x0))) |
mark(terms(x0)) |
mark(cons(x0,x1)) |
mark(recip(x0)) |
mark(sqr(x0)) |
mark(s(x0)) |
mark(0) |
mark(add(x0,x1)) |
mark(dbl(x0)) |
mark(first(x0,x1)) |
mark(nil) |
mark(half(x0)) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
sqr#(active(X)) | → | sqr#(X) | (120) |
1 | > | 1 | |
sqr#(mark(X)) | → | sqr#(X) | (119) |
1 | > | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
s#(active(X)) | → | s#(X) | (122) |
s#(mark(X)) | → | s#(X) | (121) |
We restrict the rewrite rules to the following usable rules of the DP problem.
There are no rules.
We restrict the innermost strategy to the following left hand sides.
active(terms(x0)) |
active(sqr(0)) |
active(sqr(s(x0))) |
active(dbl(0)) |
active(dbl(s(x0))) |
active(add(0,x0)) |
active(add(s(x0),x1)) |
active(first(0,x0)) |
active(first(s(x0),cons(x1,x2))) |
active(half(0)) |
active(half(s(0))) |
active(half(s(s(x0)))) |
active(half(dbl(x0))) |
mark(terms(x0)) |
mark(cons(x0,x1)) |
mark(recip(x0)) |
mark(sqr(x0)) |
mark(s(x0)) |
mark(0) |
mark(add(x0,x1)) |
mark(dbl(x0)) |
mark(first(x0,x1)) |
mark(nil) |
mark(half(x0)) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
s#(active(X)) | → | s#(X) | (122) |
1 | > | 1 | |
s#(mark(X)) | → | s#(X) | (121) |
1 | > | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
add#(X1,mark(X2)) | → | add#(X1,X2) | (124) |
add#(mark(X1),X2) | → | add#(X1,X2) | (123) |
add#(active(X1),X2) | → | add#(X1,X2) | (125) |
add#(X1,active(X2)) | → | add#(X1,X2) | (126) |
We restrict the rewrite rules to the following usable rules of the DP problem.
There are no rules.
We restrict the innermost strategy to the following left hand sides.
active(terms(x0)) |
active(sqr(0)) |
active(sqr(s(x0))) |
active(dbl(0)) |
active(dbl(s(x0))) |
active(add(0,x0)) |
active(add(s(x0),x1)) |
active(first(0,x0)) |
active(first(s(x0),cons(x1,x2))) |
active(half(0)) |
active(half(s(0))) |
active(half(s(s(x0)))) |
active(half(dbl(x0))) |
mark(terms(x0)) |
mark(cons(x0,x1)) |
mark(recip(x0)) |
mark(sqr(x0)) |
mark(s(x0)) |
mark(0) |
mark(add(x0,x1)) |
mark(dbl(x0)) |
mark(first(x0,x1)) |
mark(nil) |
mark(half(x0)) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
add#(X1,mark(X2)) | → | add#(X1,X2) | (124) |
1 | ≥ | 1 | |
2 | > | 2 | |
add#(mark(X1),X2) | → | add#(X1,X2) | (123) |
1 | > | 1 | |
2 | ≥ | 2 | |
add#(active(X1),X2) | → | add#(X1,X2) | (125) |
1 | > | 1 | |
2 | ≥ | 2 | |
add#(X1,active(X2)) | → | add#(X1,X2) | (126) |
1 | ≥ | 1 | |
2 | > | 2 |
As there is no critical graph in the transitive closure, there are no infinite chains.
dbl#(active(X)) | → | dbl#(X) | (128) |
dbl#(mark(X)) | → | dbl#(X) | (127) |
We restrict the rewrite rules to the following usable rules of the DP problem.
There are no rules.
We restrict the innermost strategy to the following left hand sides.
active(terms(x0)) |
active(sqr(0)) |
active(sqr(s(x0))) |
active(dbl(0)) |
active(dbl(s(x0))) |
active(add(0,x0)) |
active(add(s(x0),x1)) |
active(first(0,x0)) |
active(first(s(x0),cons(x1,x2))) |
active(half(0)) |
active(half(s(0))) |
active(half(s(s(x0)))) |
active(half(dbl(x0))) |
mark(terms(x0)) |
mark(cons(x0,x1)) |
mark(recip(x0)) |
mark(sqr(x0)) |
mark(s(x0)) |
mark(0) |
mark(add(x0,x1)) |
mark(dbl(x0)) |
mark(first(x0,x1)) |
mark(nil) |
mark(half(x0)) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
dbl#(active(X)) | → | dbl#(X) | (128) |
1 | > | 1 | |
dbl#(mark(X)) | → | dbl#(X) | (127) |
1 | > | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
first#(X1,mark(X2)) | → | first#(X1,X2) | (130) |
first#(mark(X1),X2) | → | first#(X1,X2) | (129) |
first#(active(X1),X2) | → | first#(X1,X2) | (131) |
first#(X1,active(X2)) | → | first#(X1,X2) | (132) |
We restrict the rewrite rules to the following usable rules of the DP problem.
There are no rules.
We restrict the innermost strategy to the following left hand sides.
active(terms(x0)) |
active(sqr(0)) |
active(sqr(s(x0))) |
active(dbl(0)) |
active(dbl(s(x0))) |
active(add(0,x0)) |
active(add(s(x0),x1)) |
active(first(0,x0)) |
active(first(s(x0),cons(x1,x2))) |
active(half(0)) |
active(half(s(0))) |
active(half(s(s(x0)))) |
active(half(dbl(x0))) |
mark(terms(x0)) |
mark(cons(x0,x1)) |
mark(recip(x0)) |
mark(sqr(x0)) |
mark(s(x0)) |
mark(0) |
mark(add(x0,x1)) |
mark(dbl(x0)) |
mark(first(x0,x1)) |
mark(nil) |
mark(half(x0)) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
first#(X1,mark(X2)) | → | first#(X1,X2) | (130) |
1 | ≥ | 1 | |
2 | > | 2 | |
first#(mark(X1),X2) | → | first#(X1,X2) | (129) |
1 | > | 1 | |
2 | ≥ | 2 | |
first#(active(X1),X2) | → | first#(X1,X2) | (131) |
1 | > | 1 | |
2 | ≥ | 2 | |
first#(X1,active(X2)) | → | first#(X1,X2) | (132) |
1 | ≥ | 1 | |
2 | > | 2 |
As there is no critical graph in the transitive closure, there are no infinite chains.
half#(active(X)) | → | half#(X) | (134) |
half#(mark(X)) | → | half#(X) | (133) |
We restrict the rewrite rules to the following usable rules of the DP problem.
There are no rules.
We restrict the innermost strategy to the following left hand sides.
active(terms(x0)) |
active(sqr(0)) |
active(sqr(s(x0))) |
active(dbl(0)) |
active(dbl(s(x0))) |
active(add(0,x0)) |
active(add(s(x0),x1)) |
active(first(0,x0)) |
active(first(s(x0),cons(x1,x2))) |
active(half(0)) |
active(half(s(0))) |
active(half(s(s(x0)))) |
active(half(dbl(x0))) |
mark(terms(x0)) |
mark(cons(x0,x1)) |
mark(recip(x0)) |
mark(sqr(x0)) |
mark(s(x0)) |
mark(0) |
mark(add(x0,x1)) |
mark(dbl(x0)) |
mark(first(x0,x1)) |
mark(nil) |
mark(half(x0)) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
half#(active(X)) | → | half#(X) | (134) |
1 | > | 1 | |
half#(mark(X)) | → | half#(X) | (133) |
1 | > | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.