The rewrite relation of the following TRS is considered.
fold#3(insert_ord(x2),Nil) | → | Nil | (1) |
fold#3(insert_ord(x6),Cons(x4,x2)) | → | insert_ord#2(x6,x4,fold#3(insert_ord(x6),x2)) | (2) |
cond_insert_ord_x_ys_1(True,x3,x2,x1) | → | Cons(x3,Cons(x2,x1)) | (3) |
cond_insert_ord_x_ys_1(False,x0,x5,x2) | → | Cons(x5,insert_ord#2(leq,x0,x2)) | (4) |
insert_ord#2(leq,x2,Nil) | → | Cons(x2,Nil) | (5) |
insert_ord#2(leq,x6,Cons(x4,x2)) | → | cond_insert_ord_x_ys_1(leq#2(x6,x4),x6,x4,x2) | (6) |
leq#2(0,x8) | → | True | (7) |
leq#2(S(x12),0) | → | False | (8) |
leq#2(S(x4),S(x2)) | → | leq#2(x4,x2) | (9) |
main(x3) | → | fold#3(insert_ord(leq),x3) | (10) |
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
||||||||
|
originates from |
|
fold#3#(insert_ord(z0),Nil) |
fold#3#(insert_ord(z0),Cons(z1,z2)) |
cond_insert_ord_x_ys_1#(True,z0,z1,z2) |
cond_insert_ord_x_ys_1#(False,z0,z1,z2) |
insert_ord#2#(leq,z0,Nil) |
insert_ord#2#(leq,z0,Cons(z1,z2)) |
leq#2#(0,z0) |
leq#2#(S(z0),0) |
leq#2#(S(z0),S(z1)) |
main#(z0) |
main(z0) | → | fold#3(insert_ord(leq),z0) | (29) |
main#(z0) | → | c9(fold#3#(insert_ord(leq),z0)) | (30) |
[c] | = | 0 |
[c1(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c2] | = | 0 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4] | = | 0 |
[c5(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8(x1)] | = | 1 · x1 + 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[fold#3(x1, x2)] | = | 1 + 1 · x1 + 2 · x2 |
[insert_ord#2(x1, x2, x3)] | = | 2 + 1 · x3 |
[cond_insert_ord_x_ys_1(x1,...,x4)] | = | 1 + 3 · x1 + 1 · x4 |
[leq#2(x1, x2)] | = | 1 |
[fold#3#(x1, x2)] | = | 0 |
[cond_insert_ord_x_ys_1#(x1,...,x4)] | = | 0 |
[insert_ord#2#(x1, x2, x3)] | = | 0 |
[leq#2#(x1, x2)] | = | 0 |
[main#(x1)] | = | 1 |
[0] | = | 0 |
[True] | = | 3 |
[S(x1)] | = | 1 · x1 + 0 |
[False] | = | 3 |
[insert_ord(x1)] | = | 1 |
[Nil] | = | 0 |
[Cons(x1, x2)] | = | 2 + 1 · x2 |
[leq] | = | 0 |
fold#3#(insert_ord(z0),Nil) | → | c | (12) |
fold#3#(insert_ord(z0),Cons(z1,z2)) | → | c1(insert_ord#2#(z0,z1,fold#3(insert_ord(z0),z2)),fold#3#(insert_ord(z0),z2)) | (14) |
cond_insert_ord_x_ys_1#(True,z0,z1,z2) | → | c2 | (16) |
cond_insert_ord_x_ys_1#(False,z0,z1,z2) | → | c3(insert_ord#2#(leq,z0,z2)) | (18) |
insert_ord#2#(leq,z0,Nil) | → | c4 | (20) |
insert_ord#2#(leq,z0,Cons(z1,z2)) | → | c5(cond_insert_ord_x_ys_1#(leq#2(z0,z1),z0,z1,z2),leq#2#(z0,z1)) | (22) |
leq#2#(0,z0) | → | c6 | (24) |
leq#2#(S(z0),0) | → | c7 | (26) |
leq#2#(S(z0),S(z1)) | → | c8(leq#2#(z0,z1)) | (28) |
main#(z0) | → | c9(fold#3#(insert_ord(leq),z0)) | (30) |
fold#3#(insert_ord(z0),Nil) | → | c | (12) |
cond_insert_ord_x_ys_1#(True,z0,z1,z2) | → | c2 | (16) |
insert_ord#2#(leq,z0,Nil) | → | c4 | (20) |
[c] | = | 0 |
[c1(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c2] | = | 0 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4] | = | 0 |
[c5(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8(x1)] | = | 1 · x1 + 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[fold#3(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[insert_ord#2(x1, x2, x3)] | = | 1 + 1 · x2 |
[cond_insert_ord_x_ys_1(x1,...,x4)] | = | 1 + 1 · x2 + 1 · x3 + 1 · x4 |
[leq#2(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[fold#3#(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[cond_insert_ord_x_ys_1#(x1,...,x4)] | = | 1 + 1 · x2 |
[insert_ord#2#(x1, x2, x3)] | = | 1 + 1 · x2 |
[leq#2#(x1, x2)] | = | 0 |
[main#(x1)] | = | 1 + 1 · x1 |
[0] | = | 1 |
[True] | = | 1 |
[S(x1)] | = | 1 + 1 · x1 |
[False] | = | 1 |
[insert_ord(x1)] | = | 1 |
[Nil] | = | 1 |
[Cons(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[leq] | = | 1 |
fold#3#(insert_ord(z0),Nil) | → | c | (12) |
fold#3#(insert_ord(z0),Cons(z1,z2)) | → | c1(insert_ord#2#(z0,z1,fold#3(insert_ord(z0),z2)),fold#3#(insert_ord(z0),z2)) | (14) |
cond_insert_ord_x_ys_1#(True,z0,z1,z2) | → | c2 | (16) |
cond_insert_ord_x_ys_1#(False,z0,z1,z2) | → | c3(insert_ord#2#(leq,z0,z2)) | (18) |
insert_ord#2#(leq,z0,Nil) | → | c4 | (20) |
insert_ord#2#(leq,z0,Cons(z1,z2)) | → | c5(cond_insert_ord_x_ys_1#(leq#2(z0,z1),z0,z1,z2),leq#2#(z0,z1)) | (22) |
leq#2#(0,z0) | → | c6 | (24) |
leq#2#(S(z0),0) | → | c7 | (26) |
leq#2#(S(z0),S(z1)) | → | c8(leq#2#(z0,z1)) | (28) |
main#(z0) | → | c9(fold#3#(insert_ord(leq),z0)) | (30) |
fold#3#(insert_ord(z0),Cons(z1,z2)) | → | c1(insert_ord#2#(z0,z1,fold#3(insert_ord(z0),z2)),fold#3#(insert_ord(z0),z2)) | (14) |
[c] | = | 0 |
[c1(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c2] | = | 0 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4] | = | 0 |
[c5(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8(x1)] | = | 1 · x1 + 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[fold#3(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[insert_ord#2(x1, x2, x3)] | = | 1 + 1 · x2 |
[cond_insert_ord_x_ys_1(x1,...,x4)] | = | 1 + 1 · x2 + 1 · x3 + 1 · x4 |
[leq#2(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[fold#3#(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[cond_insert_ord_x_ys_1#(x1,...,x4)] | = | 1 · x2 + 0 |
[insert_ord#2#(x1, x2, x3)] | = | 1 · x2 + 0 |
[leq#2#(x1, x2)] | = | 0 |
[main#(x1)] | = | 1 + 1 · x1 |
[0] | = | 1 |
[True] | = | 1 |
[S(x1)] | = | 1 + 1 · x1 |
[False] | = | 1 |
[insert_ord(x1)] | = | 1 |
[Nil] | = | 1 |
[Cons(x1, x2)] | = | 1 + 1 · x1 + 1 · x2 |
[leq] | = | 1 |
fold#3#(insert_ord(z0),Nil) | → | c | (12) |
fold#3#(insert_ord(z0),Cons(z1,z2)) | → | c1(insert_ord#2#(z0,z1,fold#3(insert_ord(z0),z2)),fold#3#(insert_ord(z0),z2)) | (14) |
cond_insert_ord_x_ys_1#(True,z0,z1,z2) | → | c2 | (16) |
cond_insert_ord_x_ys_1#(False,z0,z1,z2) | → | c3(insert_ord#2#(leq,z0,z2)) | (18) |
insert_ord#2#(leq,z0,Nil) | → | c4 | (20) |
insert_ord#2#(leq,z0,Cons(z1,z2)) | → | c5(cond_insert_ord_x_ys_1#(leq#2(z0,z1),z0,z1,z2),leq#2#(z0,z1)) | (22) |
leq#2#(0,z0) | → | c6 | (24) |
leq#2#(S(z0),0) | → | c7 | (26) |
leq#2#(S(z0),S(z1)) | → | c8(leq#2#(z0,z1)) | (28) |
main#(z0) | → | c9(fold#3#(insert_ord(leq),z0)) | (30) |
leq#2#(S(z0),S(z1)) | → | c8(leq#2#(z0,z1)) | (28) |
[c] | = | 0 |
[c1(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c2] | = | 0 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4] | = | 0 |
[c5(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8(x1)] | = | 1 · x1 + 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[fold#3(x1, x2)] | = | 1 · x2 + 0 |
[insert_ord#2(x1, x2, x3)] | = | 1 · x2 + 0 + 1 · x3 |
[cond_insert_ord_x_ys_1(x1,...,x4)] | = | 1 · x2 + 0 + 1 · x3 + 1 · x4 |
[leq#2(x1, x2)] | = | 0 |
[fold#3#(x1, x2)] | = | 1 · x2 · x2 + 0 |
[cond_insert_ord_x_ys_1#(x1,...,x4)] | = | 2 · x2 · x4 + 0 |
[insert_ord#2#(x1, x2, x3)] | = | 2 · x2 · x3 + 0 |
[leq#2#(x1, x2)] | = | 2 · x1 · x2 + 0 |
[main#(x1)] | = | 2 + 2 · x1 + 1 · x1 · x1 |
[0] | = | 0 |
[True] | = | 0 |
[S(x1)] | = | 2 + 1 · x1 |
[False] | = | 0 |
[insert_ord(x1)] | = | 0 |
[Nil] | = | 0 |
[Cons(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[leq] | = | 0 |
fold#3#(insert_ord(z0),Nil) | → | c | (12) |
fold#3#(insert_ord(z0),Cons(z1,z2)) | → | c1(insert_ord#2#(z0,z1,fold#3(insert_ord(z0),z2)),fold#3#(insert_ord(z0),z2)) | (14) |
cond_insert_ord_x_ys_1#(True,z0,z1,z2) | → | c2 | (16) |
cond_insert_ord_x_ys_1#(False,z0,z1,z2) | → | c3(insert_ord#2#(leq,z0,z2)) | (18) |
insert_ord#2#(leq,z0,Nil) | → | c4 | (20) |
insert_ord#2#(leq,z0,Cons(z1,z2)) | → | c5(cond_insert_ord_x_ys_1#(leq#2(z0,z1),z0,z1,z2),leq#2#(z0,z1)) | (22) |
leq#2#(0,z0) | → | c6 | (24) |
leq#2#(S(z0),0) | → | c7 | (26) |
leq#2#(S(z0),S(z1)) | → | c8(leq#2#(z0,z1)) | (28) |
main#(z0) | → | c9(fold#3#(insert_ord(leq),z0)) | (30) |
cond_insert_ord_x_ys_1(False,z0,z1,z2) | → | Cons(z1,insert_ord#2(leq,z0,z2)) | (17) |
cond_insert_ord_x_ys_1(True,z0,z1,z2) | → | Cons(z0,Cons(z1,z2)) | (15) |
insert_ord#2(leq,z0,Nil) | → | Cons(z0,Nil) | (19) |
insert_ord#2(leq,z0,Cons(z1,z2)) | → | cond_insert_ord_x_ys_1(leq#2(z0,z1),z0,z1,z2) | (21) |
fold#3(insert_ord(z0),Cons(z1,z2)) | → | insert_ord#2(z0,z1,fold#3(insert_ord(z0),z2)) | (13) |
fold#3(insert_ord(z0),Nil) | → | Nil | (11) |
insert_ord#2#(leq,z0,Cons(z1,z2)) | → | c5(cond_insert_ord_x_ys_1#(leq#2(z0,z1),z0,z1,z2),leq#2#(z0,z1)) | (22) |
leq#2#(0,z0) | → | c6 | (24) |
leq#2#(S(z0),0) | → | c7 | (26) |
[c] | = | 0 |
[c1(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c2] | = | 0 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4] | = | 0 |
[c5(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8(x1)] | = | 1 · x1 + 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[fold#3(x1, x2)] | = | 2 · x2 + 0 |
[insert_ord#2(x1, x2, x3)] | = | 1 + 1 · x3 |
[cond_insert_ord_x_ys_1(x1,...,x4)] | = | 2 + 1 · x4 |
[leq#2(x1, x2)] | = | 0 |
[fold#3#(x1, x2)] | = | 2 · x2 · x2 + 0 |
[cond_insert_ord_x_ys_1#(x1,...,x4)] | = | 1 + 2 · x4 |
[insert_ord#2#(x1, x2, x3)] | = | 1 + 2 · x3 |
[leq#2#(x1, x2)] | = | 1 |
[main#(x1)] | = | 2 + 2 · x1 + 2 · x1 · x1 |
[0] | = | 0 |
[True] | = | 0 |
[S(x1)] | = | 0 |
[False] | = | 0 |
[insert_ord(x1)] | = | 0 |
[Nil] | = | 0 |
[Cons(x1, x2)] | = | 1 + 1 · x2 |
[leq] | = | 0 |
fold#3#(insert_ord(z0),Nil) | → | c | (12) |
fold#3#(insert_ord(z0),Cons(z1,z2)) | → | c1(insert_ord#2#(z0,z1,fold#3(insert_ord(z0),z2)),fold#3#(insert_ord(z0),z2)) | (14) |
cond_insert_ord_x_ys_1#(True,z0,z1,z2) | → | c2 | (16) |
cond_insert_ord_x_ys_1#(False,z0,z1,z2) | → | c3(insert_ord#2#(leq,z0,z2)) | (18) |
insert_ord#2#(leq,z0,Nil) | → | c4 | (20) |
insert_ord#2#(leq,z0,Cons(z1,z2)) | → | c5(cond_insert_ord_x_ys_1#(leq#2(z0,z1),z0,z1,z2),leq#2#(z0,z1)) | (22) |
leq#2#(0,z0) | → | c6 | (24) |
leq#2#(S(z0),0) | → | c7 | (26) |
leq#2#(S(z0),S(z1)) | → | c8(leq#2#(z0,z1)) | (28) |
main#(z0) | → | c9(fold#3#(insert_ord(leq),z0)) | (30) |
cond_insert_ord_x_ys_1(False,z0,z1,z2) | → | Cons(z1,insert_ord#2(leq,z0,z2)) | (17) |
cond_insert_ord_x_ys_1(True,z0,z1,z2) | → | Cons(z0,Cons(z1,z2)) | (15) |
insert_ord#2(leq,z0,Nil) | → | Cons(z0,Nil) | (19) |
insert_ord#2(leq,z0,Cons(z1,z2)) | → | cond_insert_ord_x_ys_1(leq#2(z0,z1),z0,z1,z2) | (21) |
fold#3(insert_ord(z0),Cons(z1,z2)) | → | insert_ord#2(z0,z1,fold#3(insert_ord(z0),z2)) | (13) |
fold#3(insert_ord(z0),Nil) | → | Nil | (11) |
cond_insert_ord_x_ys_1#(False,z0,z1,z2) | → | c3(insert_ord#2#(leq,z0,z2)) | (18) |
[c] | = | 0 |
[c1(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c2] | = | 0 |
[c3(x1)] | = | 1 · x1 + 0 |
[c4] | = | 0 |
[c5(x1, x2)] | = | 1 · x1 + 0 + 1 · x2 |
[c6] | = | 0 |
[c7] | = | 0 |
[c8(x1)] | = | 1 · x1 + 0 |
[c9(x1)] | = | 1 · x1 + 0 |
[fold#3(x1, x2)] | = | 2 · x2 + 0 |
[insert_ord#2(x1, x2, x3)] | = | 1 + 1 · x3 |
[cond_insert_ord_x_ys_1(x1,...,x4)] | = | 2 + 1 · x4 |
[leq#2(x1, x2)] | = | 0 |
[fold#3#(x1, x2)] | = | 2 · x2 + 0 + 2 · x2 · x2 |
[cond_insert_ord_x_ys_1#(x1,...,x4)] | = | 2 + 2 · x4 |
[insert_ord#2#(x1, x2, x3)] | = | 2 · x3 + 0 |
[leq#2#(x1, x2)] | = | 0 |
[main#(x1)] | = | 2 + 2 · x1 + 2 · x1 · x1 |
[0] | = | 0 |
[True] | = | 0 |
[S(x1)] | = | 0 |
[False] | = | 0 |
[insert_ord(x1)] | = | 0 |
[Nil] | = | 0 |
[Cons(x1, x2)] | = | 1 + 1 · x2 |
[leq] | = | 0 |
fold#3#(insert_ord(z0),Nil) | → | c | (12) |
fold#3#(insert_ord(z0),Cons(z1,z2)) | → | c1(insert_ord#2#(z0,z1,fold#3(insert_ord(z0),z2)),fold#3#(insert_ord(z0),z2)) | (14) |
cond_insert_ord_x_ys_1#(True,z0,z1,z2) | → | c2 | (16) |
cond_insert_ord_x_ys_1#(False,z0,z1,z2) | → | c3(insert_ord#2#(leq,z0,z2)) | (18) |
insert_ord#2#(leq,z0,Nil) | → | c4 | (20) |
insert_ord#2#(leq,z0,Cons(z1,z2)) | → | c5(cond_insert_ord_x_ys_1#(leq#2(z0,z1),z0,z1,z2),leq#2#(z0,z1)) | (22) |
leq#2#(0,z0) | → | c6 | (24) |
leq#2#(S(z0),0) | → | c7 | (26) |
leq#2#(S(z0),S(z1)) | → | c8(leq#2#(z0,z1)) | (28) |
main#(z0) | → | c9(fold#3#(insert_ord(leq),z0)) | (30) |
cond_insert_ord_x_ys_1(False,z0,z1,z2) | → | Cons(z1,insert_ord#2(leq,z0,z2)) | (17) |
cond_insert_ord_x_ys_1(True,z0,z1,z2) | → | Cons(z0,Cons(z1,z2)) | (15) |
insert_ord#2(leq,z0,Nil) | → | Cons(z0,Nil) | (19) |
insert_ord#2(leq,z0,Cons(z1,z2)) | → | cond_insert_ord_x_ys_1(leq#2(z0,z1),z0,z1,z2) | (21) |
fold#3(insert_ord(z0),Cons(z1,z2)) | → | insert_ord#2(z0,z1,fold#3(insert_ord(z0),z2)) | (13) |
fold#3(insert_ord(z0),Nil) | → | Nil | (11) |
There are no rules in the TRS R. Hence, R/S has complexity O(1).