and S is the following TRS.
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(33) |
|
originates from |
#less(z0,z1) |
→ |
#cklt(#compare(z0,z1)) |
(32) |
|
append#(z0,z1) |
→ |
c16(append#1#(z0,z1)) |
(35) |
|
originates from |
append(z0,z1) |
→ |
append#1(z0,z1) |
(34) |
|
append#1#(::(z0,z1),z2) |
→ |
c17(append#(z1,z2)) |
(37) |
|
originates from |
append#1(::(z0,z1),z2) |
→ |
::(z0,append(z1,z2)) |
(36) |
|
append#1#(nil,z0) |
→ |
c18 |
(39) |
|
originates from |
append#1(nil,z0) |
→ |
z0 |
(38) |
|
flatten#(z0) |
→ |
c19(flatten#1#(z0)) |
(41) |
|
originates from |
flatten(z0) |
→ |
flatten#1(z0) |
(40) |
|
flatten#1#(leaf) |
→ |
c20 |
(42) |
|
originates from |
flatten#1(leaf) |
→ |
nil |
(6) |
|
flatten#1#(node(z0,z1,z2)) |
→ |
c21(append#(z0,append(flatten(z1),flatten(z2))),append#(flatten(z1),flatten(z2)),flatten#(z1),flatten#(z2)) |
(44) |
|
originates from |
flatten#1(node(z0,z1,z2)) |
→ |
append(z0,append(flatten(z1),flatten(z2))) |
(43) |
|
flattensort#(z0) |
→ |
c22(insertionsort#(flatten(z0)),flatten#(z0)) |
(46) |
|
originates from |
flattensort(z0) |
→ |
insertionsort(flatten(z0)) |
(45) |
|
insert#(z0,z1) |
→ |
c23(insert#1#(z1,z0)) |
(48) |
|
originates from |
insert(z0,z1) |
→ |
insert#1(z1,z0) |
(47) |
|
insert#1#(::(z0,z1),z2) |
→ |
c24(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) |
(50) |
|
originates from |
insert#1(::(z0,z1),z2) |
→ |
insert#2(#less(z0,z2),z2,z0,z1) |
(49) |
|
insert#1#(nil,z0) |
→ |
c25 |
(52) |
|
originates from |
insert#1(nil,z0) |
→ |
::(z0,nil) |
(51) |
|
insert#2#(#false,z0,z1,z2) |
→ |
c26 |
(54) |
|
originates from |
insert#2(#false,z0,z1,z2) |
→ |
::(z0,::(z1,z2)) |
(53) |
|
insert#2#(#true,z0,z1,z2) |
→ |
c27(insert#(z0,z2)) |
(56) |
|
originates from |
insert#2(#true,z0,z1,z2) |
→ |
::(z1,insert(z0,z2)) |
(55) |
|
insertionsort#(z0) |
→ |
c28(insertionsort#1#(z0)) |
(58) |
|
originates from |
insertionsort(z0) |
→ |
insertionsort#1(z0) |
(57) |
|
insertionsort#1#(::(z0,z1)) |
→ |
c29(insert#(z0,insertionsort(z1)),insertionsort#(z1)) |
(60) |
|
originates from |
insertionsort#1(::(z0,z1)) |
→ |
insert(z0,insertionsort(z1)) |
(59) |
|
insertionsort#1#(nil) |
→ |
c30 |
(61) |
|
originates from |
insertionsort#1(nil) |
→ |
nil |
(16) |
|
|
originates from |
|
|
originates from |
|
|
originates from |
|
#compare#(#0,#0) |
→ |
c3 |
(65) |
|
originates from |
#compare(#0,#0) |
→ |
#EQ |
(20) |
|
#compare#(#0,#neg(z0)) |
→ |
c4 |
(67) |
|
originates from |
#compare(#0,#neg(z0)) |
→ |
#GT |
(66) |
|
#compare#(#0,#pos(z0)) |
→ |
c5 |
(69) |
|
originates from |
#compare(#0,#pos(z0)) |
→ |
#LT |
(68) |
|
#compare#(#0,#s(z0)) |
→ |
c6 |
(71) |
|
originates from |
#compare(#0,#s(z0)) |
→ |
#LT |
(70) |
|
#compare#(#neg(z0),#0) |
→ |
c7 |
(73) |
|
originates from |
#compare(#neg(z0),#0) |
→ |
#LT |
(72) |
|
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(75) |
|
originates from |
#compare(#neg(z0),#neg(z1)) |
→ |
#compare(z1,z0) |
(74) |
|
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(77) |
|
originates from |
#compare(#neg(z0),#pos(z1)) |
→ |
#LT |
(76) |
|
#compare#(#pos(z0),#0) |
→ |
c10 |
(79) |
|
originates from |
#compare(#pos(z0),#0) |
→ |
#GT |
(78) |
|
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(81) |
|
originates from |
#compare(#pos(z0),#neg(z1)) |
→ |
#GT |
(80) |
|
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(83) |
|
originates from |
#compare(#pos(z0),#pos(z1)) |
→ |
#compare(z0,z1) |
(82) |
|
#compare#(#s(z0),#0) |
→ |
c13 |
(85) |
|
originates from |
#compare(#s(z0),#0) |
→ |
#GT |
(84) |
|
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(87) |
|
originates from |
#compare(#s(z0),#s(z1)) |
→ |
#compare(z0,z1) |
(86) |
|
Moreover, we add the following terms to the innermost strategy.
#cklt#(#EQ) |
→ |
c |
(62) |
#cklt#(#GT) |
→ |
c1 |
(63) |
#cklt#(#LT) |
→ |
c2 |
(64) |
#compare#(#0,#0) |
→ |
c3 |
(65) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(67) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(69) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(71) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(73) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(75) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(77) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(79) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(81) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(83) |
#compare#(#s(z0),#0) |
→ |
c13 |
(85) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(87) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(33) |
append#(z0,z1) |
→ |
c16(append#1#(z0,z1)) |
(35) |
append#1#(::(z0,z1),z2) |
→ |
c17(append#(z1,z2)) |
(37) |
append#1#(nil,z0) |
→ |
c18 |
(39) |
flatten#(z0) |
→ |
c19(flatten#1#(z0)) |
(41) |
flatten#1#(leaf) |
→ |
c20 |
(42) |
flatten#1#(node(z0,z1,z2)) |
→ |
c21(append#(z0,append(flatten(z1),flatten(z2))),append#(flatten(z1),flatten(z2)),flatten#(z1),flatten#(z2)) |
(44) |
flattensort#(z0) |
→ |
c22(insertionsort#(flatten(z0)),flatten#(z0)) |
(46) |
insert#(z0,z1) |
→ |
c23(insert#1#(z1,z0)) |
(48) |
insert#1#(::(z0,z1),z2) |
→ |
c24(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) |
(50) |
insert#1#(nil,z0) |
→ |
c25 |
(52) |
insert#2#(#false,z0,z1,z2) |
→ |
c26 |
(54) |
insert#2#(#true,z0,z1,z2) |
→ |
c27(insert#(z0,z2)) |
(56) |
insertionsort#(z0) |
→ |
c28(insertionsort#1#(z0)) |
(58) |
insertionsort#1#(::(z0,z1)) |
→ |
c29(insert#(z0,insertionsort(z1)),insertionsort#(z1)) |
(60) |
insertionsort#1#(nil) |
→ |
c30 |
(61) |
#cklt#(#EQ) |
→ |
c |
(62) |
#cklt#(#GT) |
→ |
c1 |
(63) |
#cklt#(#LT) |
→ |
c2 |
(64) |
#compare#(#0,#0) |
→ |
c3 |
(65) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(67) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(69) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(71) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(73) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(75) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(77) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(79) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(81) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(83) |
#compare#(#s(z0),#0) |
→ |
c13 |
(85) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(87) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(33) |
append#(z0,z1) |
→ |
c16(append#1#(z0,z1)) |
(35) |
append#1#(::(z0,z1),z2) |
→ |
c17(append#(z1,z2)) |
(37) |
append#1#(nil,z0) |
→ |
c18 |
(39) |
flatten#(z0) |
→ |
c19(flatten#1#(z0)) |
(41) |
flatten#1#(leaf) |
→ |
c20 |
(42) |
flatten#1#(node(z0,z1,z2)) |
→ |
c21(append#(z0,append(flatten(z1),flatten(z2))),append#(flatten(z1),flatten(z2)),flatten#(z1),flatten#(z2)) |
(44) |
flattensort#(z0) |
→ |
c22(insertionsort#(flatten(z0)),flatten#(z0)) |
(46) |
insert#(z0,z1) |
→ |
c23(insert#1#(z1,z0)) |
(48) |
insert#1#(::(z0,z1),z2) |
→ |
c24(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) |
(50) |
insert#1#(nil,z0) |
→ |
c25 |
(52) |
insert#2#(#false,z0,z1,z2) |
→ |
c26 |
(54) |
insert#2#(#true,z0,z1,z2) |
→ |
c27(insert#(z0,z2)) |
(56) |
insertionsort#(z0) |
→ |
c28(insertionsort#1#(z0)) |
(58) |
insertionsort#1#(::(z0,z1)) |
→ |
c29(insert#(z0,insertionsort(z1)),insertionsort#(z1)) |
(60) |
insertionsort#1#(nil) |
→ |
c30 |
(61) |
#cklt#(#EQ) |
→ |
c |
(62) |
#cklt#(#GT) |
→ |
c1 |
(63) |
#cklt#(#LT) |
→ |
c2 |
(64) |
#compare#(#0,#0) |
→ |
c3 |
(65) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(67) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(69) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(71) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(73) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(75) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(77) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(79) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(81) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(83) |
#compare#(#s(z0),#0) |
→ |
c13 |
(85) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(87) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(33) |
append#(z0,z1) |
→ |
c16(append#1#(z0,z1)) |
(35) |
append#1#(::(z0,z1),z2) |
→ |
c17(append#(z1,z2)) |
(37) |
append#1#(nil,z0) |
→ |
c18 |
(39) |
flatten#(z0) |
→ |
c19(flatten#1#(z0)) |
(41) |
flatten#1#(leaf) |
→ |
c20 |
(42) |
flatten#1#(node(z0,z1,z2)) |
→ |
c21(append#(z0,append(flatten(z1),flatten(z2))),append#(flatten(z1),flatten(z2)),flatten#(z1),flatten#(z2)) |
(44) |
flattensort#(z0) |
→ |
c22(insertionsort#(flatten(z0)),flatten#(z0)) |
(46) |
insert#(z0,z1) |
→ |
c23(insert#1#(z1,z0)) |
(48) |
insert#1#(::(z0,z1),z2) |
→ |
c24(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) |
(50) |
insert#1#(nil,z0) |
→ |
c25 |
(52) |
insert#2#(#false,z0,z1,z2) |
→ |
c26 |
(54) |
insert#2#(#true,z0,z1,z2) |
→ |
c27(insert#(z0,z2)) |
(56) |
insertionsort#(z0) |
→ |
c28(insertionsort#1#(z0)) |
(58) |
insertionsort#1#(::(z0,z1)) |
→ |
c29(insert#(z0,insertionsort(z1)),insertionsort#(z1)) |
(60) |
insertionsort#1#(nil) |
→ |
c30 |
(61) |
flatten#1(leaf) |
→ |
nil |
(6) |
flatten(z0) |
→ |
flatten#1(z0) |
(40) |
append(z0,z1) |
→ |
append#1(z0,z1) |
(34) |
append#1(nil,z0) |
→ |
z0 |
(38) |
flatten#1(node(z0,z1,z2)) |
→ |
append(z0,append(flatten(z1),flatten(z2))) |
(43) |
append#1(::(z0,z1),z2) |
→ |
::(z0,append(z1,z2)) |
(36) |
#cklt#(#EQ) |
→ |
c |
(62) |
#cklt#(#GT) |
→ |
c1 |
(63) |
#cklt#(#LT) |
→ |
c2 |
(64) |
#compare#(#0,#0) |
→ |
c3 |
(65) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(67) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(69) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(71) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(73) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(75) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(77) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(79) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(81) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(83) |
#compare#(#s(z0),#0) |
→ |
c13 |
(85) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(87) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(33) |
append#(z0,z1) |
→ |
c16(append#1#(z0,z1)) |
(35) |
append#1#(::(z0,z1),z2) |
→ |
c17(append#(z1,z2)) |
(37) |
append#1#(nil,z0) |
→ |
c18 |
(39) |
flatten#(z0) |
→ |
c19(flatten#1#(z0)) |
(41) |
flatten#1#(leaf) |
→ |
c20 |
(42) |
flatten#1#(node(z0,z1,z2)) |
→ |
c21(append#(z0,append(flatten(z1),flatten(z2))),append#(flatten(z1),flatten(z2)),flatten#(z1),flatten#(z2)) |
(44) |
flattensort#(z0) |
→ |
c22(insertionsort#(flatten(z0)),flatten#(z0)) |
(46) |
insert#(z0,z1) |
→ |
c23(insert#1#(z1,z0)) |
(48) |
insert#1#(::(z0,z1),z2) |
→ |
c24(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) |
(50) |
insert#1#(nil,z0) |
→ |
c25 |
(52) |
insert#2#(#false,z0,z1,z2) |
→ |
c26 |
(54) |
insert#2#(#true,z0,z1,z2) |
→ |
c27(insert#(z0,z2)) |
(56) |
insertionsort#(z0) |
→ |
c28(insertionsort#1#(z0)) |
(58) |
insertionsort#1#(::(z0,z1)) |
→ |
c29(insert#(z0,insertionsort(z1)),insertionsort#(z1)) |
(60) |
insertionsort#1#(nil) |
→ |
c30 |
(61) |
flatten#1(leaf) |
→ |
nil |
(6) |
flatten(z0) |
→ |
flatten#1(z0) |
(40) |
append(z0,z1) |
→ |
append#1(z0,z1) |
(34) |
append#1(nil,z0) |
→ |
z0 |
(38) |
flatten#1(node(z0,z1,z2)) |
→ |
append(z0,append(flatten(z1),flatten(z2))) |
(43) |
append#1(::(z0,z1),z2) |
→ |
::(z0,append(z1,z2)) |
(36) |
#cklt#(#EQ) |
→ |
c |
(62) |
#cklt#(#GT) |
→ |
c1 |
(63) |
#cklt#(#LT) |
→ |
c2 |
(64) |
#compare#(#0,#0) |
→ |
c3 |
(65) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(67) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(69) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(71) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(73) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(75) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(77) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(79) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(81) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(83) |
#compare#(#s(z0),#0) |
→ |
c13 |
(85) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(87) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(33) |
append#(z0,z1) |
→ |
c16(append#1#(z0,z1)) |
(35) |
append#1#(::(z0,z1),z2) |
→ |
c17(append#(z1,z2)) |
(37) |
append#1#(nil,z0) |
→ |
c18 |
(39) |
flatten#(z0) |
→ |
c19(flatten#1#(z0)) |
(41) |
flatten#1#(leaf) |
→ |
c20 |
(42) |
flatten#1#(node(z0,z1,z2)) |
→ |
c21(append#(z0,append(flatten(z1),flatten(z2))),append#(flatten(z1),flatten(z2)),flatten#(z1),flatten#(z2)) |
(44) |
flattensort#(z0) |
→ |
c22(insertionsort#(flatten(z0)),flatten#(z0)) |
(46) |
insert#(z0,z1) |
→ |
c23(insert#1#(z1,z0)) |
(48) |
insert#1#(::(z0,z1),z2) |
→ |
c24(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) |
(50) |
insert#1#(nil,z0) |
→ |
c25 |
(52) |
insert#2#(#false,z0,z1,z2) |
→ |
c26 |
(54) |
insert#2#(#true,z0,z1,z2) |
→ |
c27(insert#(z0,z2)) |
(56) |
insertionsort#(z0) |
→ |
c28(insertionsort#1#(z0)) |
(58) |
insertionsort#1#(::(z0,z1)) |
→ |
c29(insert#(z0,insertionsort(z1)),insertionsort#(z1)) |
(60) |
insertionsort#1#(nil) |
→ |
c30 |
(61) |
flatten#1(leaf) |
→ |
nil |
(6) |
flatten(z0) |
→ |
flatten#1(z0) |
(40) |
append(z0,z1) |
→ |
append#1(z0,z1) |
(34) |
append#1(nil,z0) |
→ |
z0 |
(38) |
flatten#1(node(z0,z1,z2)) |
→ |
append(z0,append(flatten(z1),flatten(z2))) |
(43) |
append#1(::(z0,z1),z2) |
→ |
::(z0,append(z1,z2)) |
(36) |
#cklt#(#EQ) |
→ |
c |
(62) |
#cklt#(#GT) |
→ |
c1 |
(63) |
#cklt#(#LT) |
→ |
c2 |
(64) |
#compare#(#0,#0) |
→ |
c3 |
(65) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(67) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(69) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(71) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(73) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(75) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(77) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(79) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(81) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(83) |
#compare#(#s(z0),#0) |
→ |
c13 |
(85) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(87) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(33) |
append#(z0,z1) |
→ |
c16(append#1#(z0,z1)) |
(35) |
append#1#(::(z0,z1),z2) |
→ |
c17(append#(z1,z2)) |
(37) |
append#1#(nil,z0) |
→ |
c18 |
(39) |
flatten#(z0) |
→ |
c19(flatten#1#(z0)) |
(41) |
flatten#1#(leaf) |
→ |
c20 |
(42) |
flatten#1#(node(z0,z1,z2)) |
→ |
c21(append#(z0,append(flatten(z1),flatten(z2))),append#(flatten(z1),flatten(z2)),flatten#(z1),flatten#(z2)) |
(44) |
flattensort#(z0) |
→ |
c22(insertionsort#(flatten(z0)),flatten#(z0)) |
(46) |
insert#(z0,z1) |
→ |
c23(insert#1#(z1,z0)) |
(48) |
insert#1#(::(z0,z1),z2) |
→ |
c24(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) |
(50) |
insert#1#(nil,z0) |
→ |
c25 |
(52) |
insert#2#(#false,z0,z1,z2) |
→ |
c26 |
(54) |
insert#2#(#true,z0,z1,z2) |
→ |
c27(insert#(z0,z2)) |
(56) |
insertionsort#(z0) |
→ |
c28(insertionsort#1#(z0)) |
(58) |
insertionsort#1#(::(z0,z1)) |
→ |
c29(insert#(z0,insertionsort(z1)),insertionsort#(z1)) |
(60) |
insertionsort#1#(nil) |
→ |
c30 |
(61) |
flatten#1(leaf) |
→ |
nil |
(6) |
flatten(z0) |
→ |
flatten#1(z0) |
(40) |
#compare(#0,#neg(z0)) |
→ |
#GT |
(66) |
#compare(#0,#pos(z0)) |
→ |
#LT |
(68) |
#compare(#0,#s(z0)) |
→ |
#LT |
(70) |
#compare(#pos(z0),#0) |
→ |
#GT |
(78) |
#compare(#neg(z0),#neg(z1)) |
→ |
#compare(z1,z0) |
(74) |
#compare(#s(z0),#s(z1)) |
→ |
#compare(z0,z1) |
(86) |
append(z0,z1) |
→ |
append#1(z0,z1) |
(34) |
append#1(nil,z0) |
→ |
z0 |
(38) |
#compare(#0,#0) |
→ |
#EQ |
(20) |
flatten#1(node(z0,z1,z2)) |
→ |
append(z0,append(flatten(z1),flatten(z2))) |
(43) |
#compare(#s(z0),#0) |
→ |
#GT |
(84) |
#compare(#neg(z0),#pos(z1)) |
→ |
#LT |
(76) |
#compare(#neg(z0),#0) |
→ |
#LT |
(72) |
#compare(#pos(z0),#pos(z1)) |
→ |
#compare(z0,z1) |
(82) |
#compare(#pos(z0),#neg(z1)) |
→ |
#GT |
(80) |
append#1(::(z0,z1),z2) |
→ |
::(z0,append(z1,z2)) |
(36) |
#cklt#(#EQ) |
→ |
c |
(62) |
#cklt#(#GT) |
→ |
c1 |
(63) |
#cklt#(#LT) |
→ |
c2 |
(64) |
#compare#(#0,#0) |
→ |
c3 |
(65) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(67) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(69) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(71) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(73) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(75) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(77) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(79) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(81) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(83) |
#compare#(#s(z0),#0) |
→ |
c13 |
(85) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(87) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(33) |
append#(z0,z1) |
→ |
c16(append#1#(z0,z1)) |
(35) |
append#1#(::(z0,z1),z2) |
→ |
c17(append#(z1,z2)) |
(37) |
append#1#(nil,z0) |
→ |
c18 |
(39) |
flatten#(z0) |
→ |
c19(flatten#1#(z0)) |
(41) |
flatten#1#(leaf) |
→ |
c20 |
(42) |
flatten#1#(node(z0,z1,z2)) |
→ |
c21(append#(z0,append(flatten(z1),flatten(z2))),append#(flatten(z1),flatten(z2)),flatten#(z1),flatten#(z2)) |
(44) |
flattensort#(z0) |
→ |
c22(insertionsort#(flatten(z0)),flatten#(z0)) |
(46) |
insert#(z0,z1) |
→ |
c23(insert#1#(z1,z0)) |
(48) |
insert#1#(::(z0,z1),z2) |
→ |
c24(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) |
(50) |
insert#1#(nil,z0) |
→ |
c25 |
(52) |
insert#2#(#false,z0,z1,z2) |
→ |
c26 |
(54) |
insert#2#(#true,z0,z1,z2) |
→ |
c27(insert#(z0,z2)) |
(56) |
insertionsort#(z0) |
→ |
c28(insertionsort#1#(z0)) |
(58) |
insertionsort#1#(::(z0,z1)) |
→ |
c29(insert#(z0,insertionsort(z1)),insertionsort#(z1)) |
(60) |
insertionsort#1#(nil) |
→ |
c30 |
(61) |
#cklt#(#EQ) |
→ |
c |
(62) |
#cklt#(#GT) |
→ |
c1 |
(63) |
#cklt#(#LT) |
→ |
c2 |
(64) |
#compare#(#0,#0) |
→ |
c3 |
(65) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(67) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(69) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(71) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(73) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(75) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(77) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(79) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(81) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(83) |
#compare#(#s(z0),#0) |
→ |
c13 |
(85) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(87) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(33) |
append#(z0,z1) |
→ |
c16(append#1#(z0,z1)) |
(35) |
append#1#(::(z0,z1),z2) |
→ |
c17(append#(z1,z2)) |
(37) |
append#1#(nil,z0) |
→ |
c18 |
(39) |
flatten#(z0) |
→ |
c19(flatten#1#(z0)) |
(41) |
flatten#1#(leaf) |
→ |
c20 |
(42) |
flatten#1#(node(z0,z1,z2)) |
→ |
c21(append#(z0,append(flatten(z1),flatten(z2))),append#(flatten(z1),flatten(z2)),flatten#(z1),flatten#(z2)) |
(44) |
flattensort#(z0) |
→ |
c22(insertionsort#(flatten(z0)),flatten#(z0)) |
(46) |
insert#(z0,z1) |
→ |
c23(insert#1#(z1,z0)) |
(48) |
insert#1#(::(z0,z1),z2) |
→ |
c24(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) |
(50) |
insert#1#(nil,z0) |
→ |
c25 |
(52) |
insert#2#(#false,z0,z1,z2) |
→ |
c26 |
(54) |
insert#2#(#true,z0,z1,z2) |
→ |
c27(insert#(z0,z2)) |
(56) |
insertionsort#(z0) |
→ |
c28(insertionsort#1#(z0)) |
(58) |
insertionsort#1#(::(z0,z1)) |
→ |
c29(insert#(z0,insertionsort(z1)),insertionsort#(z1)) |
(60) |
insertionsort#1#(nil) |
→ |
c30 |
(61) |
flatten#1(leaf) |
→ |
nil |
(6) |
flatten(z0) |
→ |
flatten#1(z0) |
(40) |
append(z0,z1) |
→ |
append#1(z0,z1) |
(34) |
append#1(nil,z0) |
→ |
z0 |
(38) |
flatten#1(node(z0,z1,z2)) |
→ |
append(z0,append(flatten(z1),flatten(z2))) |
(43) |
append#1(::(z0,z1),z2) |
→ |
::(z0,append(z1,z2)) |
(36) |
#cklt#(#EQ) |
→ |
c |
(62) |
#cklt#(#GT) |
→ |
c1 |
(63) |
#cklt#(#LT) |
→ |
c2 |
(64) |
#compare#(#0,#0) |
→ |
c3 |
(65) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(67) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(69) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(71) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(73) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(75) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(77) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(79) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(81) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(83) |
#compare#(#s(z0),#0) |
→ |
c13 |
(85) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(87) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(33) |
append#(z0,z1) |
→ |
c16(append#1#(z0,z1)) |
(35) |
append#1#(::(z0,z1),z2) |
→ |
c17(append#(z1,z2)) |
(37) |
append#1#(nil,z0) |
→ |
c18 |
(39) |
flatten#(z0) |
→ |
c19(flatten#1#(z0)) |
(41) |
flatten#1#(leaf) |
→ |
c20 |
(42) |
flatten#1#(node(z0,z1,z2)) |
→ |
c21(append#(z0,append(flatten(z1),flatten(z2))),append#(flatten(z1),flatten(z2)),flatten#(z1),flatten#(z2)) |
(44) |
flattensort#(z0) |
→ |
c22(insertionsort#(flatten(z0)),flatten#(z0)) |
(46) |
insert#(z0,z1) |
→ |
c23(insert#1#(z1,z0)) |
(48) |
insert#1#(::(z0,z1),z2) |
→ |
c24(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) |
(50) |
insert#1#(nil,z0) |
→ |
c25 |
(52) |
insert#2#(#false,z0,z1,z2) |
→ |
c26 |
(54) |
insert#2#(#true,z0,z1,z2) |
→ |
c27(insert#(z0,z2)) |
(56) |
insertionsort#(z0) |
→ |
c28(insertionsort#1#(z0)) |
(58) |
insertionsort#1#(::(z0,z1)) |
→ |
c29(insert#(z0,insertionsort(z1)),insertionsort#(z1)) |
(60) |
insertionsort#1#(nil) |
→ |
c30 |
(61) |
flatten#1(leaf) |
→ |
nil |
(6) |
flatten(z0) |
→ |
flatten#1(z0) |
(40) |
insert#2(#false,z0,z1,z2) |
→ |
::(z0,::(z1,z2)) |
(53) |
insert#1(::(z0,z1),z2) |
→ |
insert#2(#less(z0,z2),z2,z0,z1) |
(49) |
insert#2(#true,z0,z1,z2) |
→ |
::(z1,insert(z0,z2)) |
(55) |
append(z0,z1) |
→ |
append#1(z0,z1) |
(34) |
append#1(nil,z0) |
→ |
z0 |
(38) |
flatten#1(node(z0,z1,z2)) |
→ |
append(z0,append(flatten(z1),flatten(z2))) |
(43) |
insertionsort#1(nil) |
→ |
nil |
(16) |
insert(z0,z1) |
→ |
insert#1(z1,z0) |
(47) |
insertionsort#1(::(z0,z1)) |
→ |
insert(z0,insertionsort(z1)) |
(59) |
insert#1(nil,z0) |
→ |
::(z0,nil) |
(51) |
insertionsort(z0) |
→ |
insertionsort#1(z0) |
(57) |
append#1(::(z0,z1),z2) |
→ |
::(z0,append(z1,z2)) |
(36) |
#cklt#(#EQ) |
→ |
c |
(62) |
#cklt#(#GT) |
→ |
c1 |
(63) |
#cklt#(#LT) |
→ |
c2 |
(64) |
#compare#(#0,#0) |
→ |
c3 |
(65) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(67) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(69) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(71) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(73) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(75) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(77) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(79) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(81) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(83) |
#compare#(#s(z0),#0) |
→ |
c13 |
(85) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(87) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(33) |
append#(z0,z1) |
→ |
c16(append#1#(z0,z1)) |
(35) |
append#1#(::(z0,z1),z2) |
→ |
c17(append#(z1,z2)) |
(37) |
append#1#(nil,z0) |
→ |
c18 |
(39) |
flatten#(z0) |
→ |
c19(flatten#1#(z0)) |
(41) |
flatten#1#(leaf) |
→ |
c20 |
(42) |
flatten#1#(node(z0,z1,z2)) |
→ |
c21(append#(z0,append(flatten(z1),flatten(z2))),append#(flatten(z1),flatten(z2)),flatten#(z1),flatten#(z2)) |
(44) |
flattensort#(z0) |
→ |
c22(insertionsort#(flatten(z0)),flatten#(z0)) |
(46) |
insert#(z0,z1) |
→ |
c23(insert#1#(z1,z0)) |
(48) |
insert#1#(::(z0,z1),z2) |
→ |
c24(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) |
(50) |
insert#1#(nil,z0) |
→ |
c25 |
(52) |
insert#2#(#false,z0,z1,z2) |
→ |
c26 |
(54) |
insert#2#(#true,z0,z1,z2) |
→ |
c27(insert#(z0,z2)) |
(56) |
insertionsort#(z0) |
→ |
c28(insertionsort#1#(z0)) |
(58) |
insertionsort#1#(::(z0,z1)) |
→ |
c29(insert#(z0,insertionsort(z1)),insertionsort#(z1)) |
(60) |
insertionsort#1#(nil) |
→ |
c30 |
(61) |
flatten#1(leaf) |
→ |
nil |
(6) |
flatten(z0) |
→ |
flatten#1(z0) |
(40) |
append(z0,z1) |
→ |
append#1(z0,z1) |
(34) |
append#1(nil,z0) |
→ |
z0 |
(38) |
flatten#1(node(z0,z1,z2)) |
→ |
append(z0,append(flatten(z1),flatten(z2))) |
(43) |
append#1(::(z0,z1),z2) |
→ |
::(z0,append(z1,z2)) |
(36) |
#cklt#(#EQ) |
→ |
c |
(62) |
#cklt#(#GT) |
→ |
c1 |
(63) |
#cklt#(#LT) |
→ |
c2 |
(64) |
#compare#(#0,#0) |
→ |
c3 |
(65) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(67) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(69) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(71) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(73) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(75) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(77) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(79) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(81) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(83) |
#compare#(#s(z0),#0) |
→ |
c13 |
(85) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(87) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(33) |
append#(z0,z1) |
→ |
c16(append#1#(z0,z1)) |
(35) |
append#1#(::(z0,z1),z2) |
→ |
c17(append#(z1,z2)) |
(37) |
append#1#(nil,z0) |
→ |
c18 |
(39) |
flatten#(z0) |
→ |
c19(flatten#1#(z0)) |
(41) |
flatten#1#(leaf) |
→ |
c20 |
(42) |
flatten#1#(node(z0,z1,z2)) |
→ |
c21(append#(z0,append(flatten(z1),flatten(z2))),append#(flatten(z1),flatten(z2)),flatten#(z1),flatten#(z2)) |
(44) |
flattensort#(z0) |
→ |
c22(insertionsort#(flatten(z0)),flatten#(z0)) |
(46) |
insert#(z0,z1) |
→ |
c23(insert#1#(z1,z0)) |
(48) |
insert#1#(::(z0,z1),z2) |
→ |
c24(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) |
(50) |
insert#1#(nil,z0) |
→ |
c25 |
(52) |
insert#2#(#false,z0,z1,z2) |
→ |
c26 |
(54) |
insert#2#(#true,z0,z1,z2) |
→ |
c27(insert#(z0,z2)) |
(56) |
insertionsort#(z0) |
→ |
c28(insertionsort#1#(z0)) |
(58) |
insertionsort#1#(::(z0,z1)) |
→ |
c29(insert#(z0,insertionsort(z1)),insertionsort#(z1)) |
(60) |
insertionsort#1#(nil) |
→ |
c30 |
(61) |
flatten#1(leaf) |
→ |
nil |
(6) |
flatten(z0) |
→ |
flatten#1(z0) |
(40) |
insert#2(#false,z0,z1,z2) |
→ |
::(z0,::(z1,z2)) |
(53) |
insert#1(::(z0,z1),z2) |
→ |
insert#2(#less(z0,z2),z2,z0,z1) |
(49) |
insert#2(#true,z0,z1,z2) |
→ |
::(z1,insert(z0,z2)) |
(55) |
append(z0,z1) |
→ |
append#1(z0,z1) |
(34) |
append#1(nil,z0) |
→ |
z0 |
(38) |
flatten#1(node(z0,z1,z2)) |
→ |
append(z0,append(flatten(z1),flatten(z2))) |
(43) |
insertionsort#1(nil) |
→ |
nil |
(16) |
insert(z0,z1) |
→ |
insert#1(z1,z0) |
(47) |
insertionsort#1(::(z0,z1)) |
→ |
insert(z0,insertionsort(z1)) |
(59) |
insert#1(nil,z0) |
→ |
::(z0,nil) |
(51) |
insertionsort(z0) |
→ |
insertionsort#1(z0) |
(57) |
append#1(::(z0,z1),z2) |
→ |
::(z0,append(z1,z2)) |
(36) |
#cklt#(#EQ) |
→ |
c |
(62) |
#cklt#(#GT) |
→ |
c1 |
(63) |
#cklt#(#LT) |
→ |
c2 |
(64) |
#compare#(#0,#0) |
→ |
c3 |
(65) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(67) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(69) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(71) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(73) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(75) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(77) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(79) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(81) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(83) |
#compare#(#s(z0),#0) |
→ |
c13 |
(85) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(87) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(33) |
append#(z0,z1) |
→ |
c16(append#1#(z0,z1)) |
(35) |
append#1#(::(z0,z1),z2) |
→ |
c17(append#(z1,z2)) |
(37) |
append#1#(nil,z0) |
→ |
c18 |
(39) |
flatten#(z0) |
→ |
c19(flatten#1#(z0)) |
(41) |
flatten#1#(leaf) |
→ |
c20 |
(42) |
flatten#1#(node(z0,z1,z2)) |
→ |
c21(append#(z0,append(flatten(z1),flatten(z2))),append#(flatten(z1),flatten(z2)),flatten#(z1),flatten#(z2)) |
(44) |
flattensort#(z0) |
→ |
c22(insertionsort#(flatten(z0)),flatten#(z0)) |
(46) |
insert#(z0,z1) |
→ |
c23(insert#1#(z1,z0)) |
(48) |
insert#1#(::(z0,z1),z2) |
→ |
c24(insert#2#(#less(z0,z2),z2,z0,z1),#less#(z0,z2)) |
(50) |
insert#1#(nil,z0) |
→ |
c25 |
(52) |
insert#2#(#false,z0,z1,z2) |
→ |
c26 |
(54) |
insert#2#(#true,z0,z1,z2) |
→ |
c27(insert#(z0,z2)) |
(56) |
insertionsort#(z0) |
→ |
c28(insertionsort#1#(z0)) |
(58) |
insertionsort#1#(::(z0,z1)) |
→ |
c29(insert#(z0,insertionsort(z1)),insertionsort#(z1)) |
(60) |
insertionsort#1#(nil) |
→ |
c30 |
(61) |
flatten#1(leaf) |
→ |
nil |
(6) |
flatten(z0) |
→ |
flatten#1(z0) |
(40) |
insert#2(#false,z0,z1,z2) |
→ |
::(z0,::(z1,z2)) |
(53) |
insert#1(::(z0,z1),z2) |
→ |
insert#2(#less(z0,z2),z2,z0,z1) |
(49) |
insert#2(#true,z0,z1,z2) |
→ |
::(z1,insert(z0,z2)) |
(55) |
append(z0,z1) |
→ |
append#1(z0,z1) |
(34) |
append#1(nil,z0) |
→ |
z0 |
(38) |
flatten#1(node(z0,z1,z2)) |
→ |
append(z0,append(flatten(z1),flatten(z2))) |
(43) |
insertionsort#1(nil) |
→ |
nil |
(16) |
insert(z0,z1) |
→ |
insert#1(z1,z0) |
(47) |
insertionsort#1(::(z0,z1)) |
→ |
insert(z0,insertionsort(z1)) |
(59) |
insert#1(nil,z0) |
→ |
::(z0,nil) |
(51) |
insertionsort(z0) |
→ |
insertionsort#1(z0) |
(57) |
append#1(::(z0,z1),z2) |
→ |
::(z0,append(z1,z2)) |
(36) |
There are no rules in the TRS R. Hence, R/S has complexity O(1).