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) |
The evaluation strategy is innermost.
fold#3#(insert_ord(z0),Nil) |
→ |
c |
(12) |
|
originates from |
fold#3(insert_ord(z0),Nil) |
→ |
Nil |
(11) |
|
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) |
|
originates from |
fold#3(insert_ord(z0),Cons(z1,z2)) |
→ |
insert_ord#2(z0,z1,fold#3(insert_ord(z0),z2)) |
(13) |
|
cond_insert_ord_x_ys_1#(True,z0,z1,z2) |
→ |
c2 |
(16) |
|
originates from |
cond_insert_ord_x_ys_1(True,z0,z1,z2) |
→ |
Cons(z0,Cons(z1,z2)) |
(15) |
|
cond_insert_ord_x_ys_1#(False,z0,z1,z2) |
→ |
c3(insert_ord#2#(leq,z0,z2)) |
(18) |
|
originates from |
cond_insert_ord_x_ys_1(False,z0,z1,z2) |
→ |
Cons(z1,insert_ord#2(leq,z0,z2)) |
(17) |
|
insert_ord#2#(leq,z0,Nil) |
→ |
c4 |
(20) |
|
originates from |
insert_ord#2(leq,z0,Nil) |
→ |
Cons(z0,Nil) |
(19) |
|
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) |
|
originates from |
insert_ord#2(leq,z0,Cons(z1,z2)) |
→ |
cond_insert_ord_x_ys_1(leq#2(z0,z1),z0,z1,z2) |
(21) |
|
|
originates from |
|
leq#2#(S(z0),0) |
→ |
c7 |
(26) |
|
originates from |
leq#2(S(z0),0) |
→ |
False |
(25) |
|
leq#2#(S(z0),S(z1)) |
→ |
c8(leq#2#(z0,z1)) |
(28) |
|
originates from |
leq#2(S(z0),S(z1)) |
→ |
leq#2(z0,z1) |
(27) |
|
main#(z0) |
→ |
c9(fold#3#(insert_ord(leq),z0)) |
(30) |
|
originates from |
main(z0) |
→ |
fold#3(insert_ord(leq),z0) |
(29) |
|
Moreover, we add the following terms to the innermost strategy.
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) |
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) |
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) |
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) |
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) |
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) |
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).