and S is the following TRS.
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(28) |
|
originates from |
#less(z0,z1) |
→ |
#cklt(#compare(z0,z1)) |
(27) |
|
findMin#(z0) |
→ |
c16(findMin#1#(z0)) |
(30) |
|
originates from |
findMin(z0) |
→ |
findMin#1(z0) |
(29) |
|
findMin#1#(::(z0,z1)) |
→ |
c17(findMin#2#(findMin(z1),z0),findMin#(z1)) |
(32) |
|
originates from |
findMin#1(::(z0,z1)) |
→ |
findMin#2(findMin(z1),z0) |
(31) |
|
findMin#1#(nil) |
→ |
c18 |
(33) |
|
originates from |
|
findMin#2#(::(z0,z1),z2) |
→ |
c19(findMin#3#(#less(z2,z0),z2,z0,z1),#less#(z2,z0)) |
(35) |
|
originates from |
findMin#2(::(z0,z1),z2) |
→ |
findMin#3(#less(z2,z0),z2,z0,z1) |
(34) |
|
findMin#2#(nil,z0) |
→ |
c20 |
(37) |
|
originates from |
findMin#2(nil,z0) |
→ |
::(z0,nil) |
(36) |
|
findMin#3#(#false,z0,z1,z2) |
→ |
c21 |
(39) |
|
originates from |
findMin#3(#false,z0,z1,z2) |
→ |
::(z1,::(z0,z2)) |
(38) |
|
findMin#3#(#true,z0,z1,z2) |
→ |
c22 |
(41) |
|
originates from |
findMin#3(#true,z0,z1,z2) |
→ |
::(z0,::(z1,z2)) |
(40) |
|
minSort#(z0) |
→ |
c23(minSort#1#(findMin(z0)),findMin#(z0)) |
(43) |
|
originates from |
minSort(z0) |
→ |
minSort#1(findMin(z0)) |
(42) |
|
minSort#1#(::(z0,z1)) |
→ |
c24(minSort#(z1)) |
(45) |
|
originates from |
minSort#1(::(z0,z1)) |
→ |
::(z0,minSort(z1)) |
(44) |
|
minSort#1#(nil) |
→ |
c25 |
(46) |
|
originates from |
minSort#1(nil) |
→ |
nil |
(11) |
|
|
originates from |
|
|
originates from |
|
|
originates from |
|
#compare#(#0,#0) |
→ |
c3 |
(50) |
|
originates from |
#compare(#0,#0) |
→ |
#EQ |
(15) |
|
#compare#(#0,#neg(z0)) |
→ |
c4 |
(52) |
|
originates from |
#compare(#0,#neg(z0)) |
→ |
#GT |
(51) |
|
#compare#(#0,#pos(z0)) |
→ |
c5 |
(54) |
|
originates from |
#compare(#0,#pos(z0)) |
→ |
#LT |
(53) |
|
#compare#(#0,#s(z0)) |
→ |
c6 |
(56) |
|
originates from |
#compare(#0,#s(z0)) |
→ |
#LT |
(55) |
|
#compare#(#neg(z0),#0) |
→ |
c7 |
(58) |
|
originates from |
#compare(#neg(z0),#0) |
→ |
#LT |
(57) |
|
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(60) |
|
originates from |
#compare(#neg(z0),#neg(z1)) |
→ |
#compare(z1,z0) |
(59) |
|
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(62) |
|
originates from |
#compare(#neg(z0),#pos(z1)) |
→ |
#LT |
(61) |
|
#compare#(#pos(z0),#0) |
→ |
c10 |
(64) |
|
originates from |
#compare(#pos(z0),#0) |
→ |
#GT |
(63) |
|
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(66) |
|
originates from |
#compare(#pos(z0),#neg(z1)) |
→ |
#GT |
(65) |
|
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(68) |
|
originates from |
#compare(#pos(z0),#pos(z1)) |
→ |
#compare(z0,z1) |
(67) |
|
#compare#(#s(z0),#0) |
→ |
c13 |
(70) |
|
originates from |
#compare(#s(z0),#0) |
→ |
#GT |
(69) |
|
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(72) |
|
originates from |
#compare(#s(z0),#s(z1)) |
→ |
#compare(z0,z1) |
(71) |
|
Moreover, we add the following terms to the innermost strategy.
#cklt#(#EQ) |
→ |
c |
(47) |
#cklt#(#GT) |
→ |
c1 |
(48) |
#cklt#(#LT) |
→ |
c2 |
(49) |
#compare#(#0,#0) |
→ |
c3 |
(50) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(52) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(54) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(56) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(58) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(60) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(62) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(64) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(66) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(68) |
#compare#(#s(z0),#0) |
→ |
c13 |
(70) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(72) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(28) |
findMin#(z0) |
→ |
c16(findMin#1#(z0)) |
(30) |
findMin#1#(::(z0,z1)) |
→ |
c17(findMin#2#(findMin(z1),z0),findMin#(z1)) |
(32) |
findMin#1#(nil) |
→ |
c18 |
(33) |
findMin#2#(::(z0,z1),z2) |
→ |
c19(findMin#3#(#less(z2,z0),z2,z0,z1),#less#(z2,z0)) |
(35) |
findMin#2#(nil,z0) |
→ |
c20 |
(37) |
findMin#3#(#false,z0,z1,z2) |
→ |
c21 |
(39) |
findMin#3#(#true,z0,z1,z2) |
→ |
c22 |
(41) |
minSort#(z0) |
→ |
c23(minSort#1#(findMin(z0)),findMin#(z0)) |
(43) |
minSort#1#(::(z0,z1)) |
→ |
c24(minSort#(z1)) |
(45) |
minSort#1#(nil) |
→ |
c25 |
(46) |
#cklt#(#EQ) |
→ |
c |
(47) |
#cklt#(#GT) |
→ |
c1 |
(48) |
#cklt#(#LT) |
→ |
c2 |
(49) |
#compare#(#0,#0) |
→ |
c3 |
(50) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(52) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(54) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(56) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(58) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(60) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(62) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(64) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(66) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(68) |
#compare#(#s(z0),#0) |
→ |
c13 |
(70) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(72) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(28) |
findMin#(z0) |
→ |
c16(findMin#1#(z0)) |
(30) |
findMin#1#(::(z0,z1)) |
→ |
c17(findMin#2#(findMin(z1),z0),findMin#(z1)) |
(32) |
findMin#1#(nil) |
→ |
c18 |
(33) |
findMin#2#(::(z0,z1),z2) |
→ |
c19(findMin#3#(#less(z2,z0),z2,z0,z1),#less#(z2,z0)) |
(35) |
findMin#2#(nil,z0) |
→ |
c20 |
(37) |
findMin#3#(#false,z0,z1,z2) |
→ |
c21 |
(39) |
findMin#3#(#true,z0,z1,z2) |
→ |
c22 |
(41) |
minSort#(z0) |
→ |
c23(minSort#1#(findMin(z0)),findMin#(z0)) |
(43) |
minSort#1#(::(z0,z1)) |
→ |
c24(minSort#(z1)) |
(45) |
minSort#1#(nil) |
→ |
c25 |
(46) |
findMin#2(nil,z0) |
→ |
::(z0,nil) |
(36) |
#compare(#0,#neg(z0)) |
→ |
#GT |
(51) |
findMin#1(nil) |
→ |
nil |
(4) |
findMin#3(#true,z0,z1,z2) |
→ |
::(z0,::(z1,z2)) |
(40) |
#compare(#0,#pos(z0)) |
→ |
#LT |
(53) |
findMin#2(::(z0,z1),z2) |
→ |
findMin#3(#less(z2,z0),z2,z0,z1) |
(34) |
findMin#3(#false,z0,z1,z2) |
→ |
::(z1,::(z0,z2)) |
(38) |
#compare(#0,#s(z0)) |
→ |
#LT |
(55) |
findMin(z0) |
→ |
findMin#1(z0) |
(29) |
#compare(#pos(z0),#0) |
→ |
#GT |
(63) |
#compare(#neg(z0),#neg(z1)) |
→ |
#compare(z1,z0) |
(59) |
#cklt(#GT) |
→ |
#false |
(13) |
#compare(#s(z0),#s(z1)) |
→ |
#compare(z0,z1) |
(71) |
#compare(#0,#0) |
→ |
#EQ |
(15) |
#compare(#s(z0),#0) |
→ |
#GT |
(69) |
#compare(#neg(z0),#pos(z1)) |
→ |
#LT |
(61) |
#compare(#neg(z0),#0) |
→ |
#LT |
(57) |
#cklt(#EQ) |
→ |
#false |
(12) |
#compare(#pos(z0),#pos(z1)) |
→ |
#compare(z0,z1) |
(67) |
#compare(#pos(z0),#neg(z1)) |
→ |
#GT |
(65) |
findMin#1(::(z0,z1)) |
→ |
findMin#2(findMin(z1),z0) |
(31) |
#less(z0,z1) |
→ |
#cklt(#compare(z0,z1)) |
(27) |
#cklt(#LT) |
→ |
#true |
(14) |
#cklt#(#EQ) |
→ |
c |
(47) |
#cklt#(#GT) |
→ |
c1 |
(48) |
#cklt#(#LT) |
→ |
c2 |
(49) |
#compare#(#0,#0) |
→ |
c3 |
(50) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(52) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(54) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(56) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(58) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(60) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(62) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(64) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(66) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(68) |
#compare#(#s(z0),#0) |
→ |
c13 |
(70) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(72) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(28) |
findMin#(z0) |
→ |
c16(findMin#1#(z0)) |
(30) |
findMin#1#(::(z0,z1)) |
→ |
c17(findMin#2#(findMin(z1),z0),findMin#(z1)) |
(32) |
findMin#1#(nil) |
→ |
c18 |
(33) |
findMin#2#(::(z0,z1),z2) |
→ |
c19(findMin#3#(#less(z2,z0),z2,z0,z1),#less#(z2,z0)) |
(35) |
findMin#2#(nil,z0) |
→ |
c20 |
(37) |
findMin#3#(#false,z0,z1,z2) |
→ |
c21 |
(39) |
findMin#3#(#true,z0,z1,z2) |
→ |
c22 |
(41) |
minSort#(z0) |
→ |
c23(minSort#1#(findMin(z0)),findMin#(z0)) |
(43) |
minSort#1#(::(z0,z1)) |
→ |
c24(minSort#(z1)) |
(45) |
minSort#1#(nil) |
→ |
c25 |
(46) |
findMin#2(nil,z0) |
→ |
::(z0,nil) |
(36) |
#compare(#0,#neg(z0)) |
→ |
#GT |
(51) |
findMin#1(nil) |
→ |
nil |
(4) |
findMin#3(#true,z0,z1,z2) |
→ |
::(z0,::(z1,z2)) |
(40) |
#compare(#0,#pos(z0)) |
→ |
#LT |
(53) |
findMin#2(::(z0,z1),z2) |
→ |
findMin#3(#less(z2,z0),z2,z0,z1) |
(34) |
findMin#3(#false,z0,z1,z2) |
→ |
::(z1,::(z0,z2)) |
(38) |
#compare(#0,#s(z0)) |
→ |
#LT |
(55) |
findMin(z0) |
→ |
findMin#1(z0) |
(29) |
#compare(#pos(z0),#0) |
→ |
#GT |
(63) |
#compare(#neg(z0),#neg(z1)) |
→ |
#compare(z1,z0) |
(59) |
#cklt(#GT) |
→ |
#false |
(13) |
#compare(#s(z0),#s(z1)) |
→ |
#compare(z0,z1) |
(71) |
#compare(#0,#0) |
→ |
#EQ |
(15) |
#compare(#s(z0),#0) |
→ |
#GT |
(69) |
#compare(#neg(z0),#pos(z1)) |
→ |
#LT |
(61) |
#compare(#neg(z0),#0) |
→ |
#LT |
(57) |
#cklt(#EQ) |
→ |
#false |
(12) |
#compare(#pos(z0),#pos(z1)) |
→ |
#compare(z0,z1) |
(67) |
#compare(#pos(z0),#neg(z1)) |
→ |
#GT |
(65) |
findMin#1(::(z0,z1)) |
→ |
findMin#2(findMin(z1),z0) |
(31) |
#less(z0,z1) |
→ |
#cklt(#compare(z0,z1)) |
(27) |
#cklt(#LT) |
→ |
#true |
(14) |
#cklt#(#EQ) |
→ |
c |
(47) |
#cklt#(#GT) |
→ |
c1 |
(48) |
#cklt#(#LT) |
→ |
c2 |
(49) |
#compare#(#0,#0) |
→ |
c3 |
(50) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(52) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(54) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(56) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(58) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(60) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(62) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(64) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(66) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(68) |
#compare#(#s(z0),#0) |
→ |
c13 |
(70) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(72) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(28) |
findMin#(z0) |
→ |
c16(findMin#1#(z0)) |
(30) |
findMin#1#(::(z0,z1)) |
→ |
c17(findMin#2#(findMin(z1),z0),findMin#(z1)) |
(32) |
findMin#1#(nil) |
→ |
c18 |
(33) |
findMin#2#(::(z0,z1),z2) |
→ |
c19(findMin#3#(#less(z2,z0),z2,z0,z1),#less#(z2,z0)) |
(35) |
findMin#2#(nil,z0) |
→ |
c20 |
(37) |
findMin#3#(#false,z0,z1,z2) |
→ |
c21 |
(39) |
findMin#3#(#true,z0,z1,z2) |
→ |
c22 |
(41) |
minSort#(z0) |
→ |
c23(minSort#1#(findMin(z0)),findMin#(z0)) |
(43) |
minSort#1#(::(z0,z1)) |
→ |
c24(minSort#(z1)) |
(45) |
minSort#1#(nil) |
→ |
c25 |
(46) |
findMin#2(nil,z0) |
→ |
::(z0,nil) |
(36) |
#compare(#0,#neg(z0)) |
→ |
#GT |
(51) |
findMin#1(nil) |
→ |
nil |
(4) |
findMin#3(#true,z0,z1,z2) |
→ |
::(z0,::(z1,z2)) |
(40) |
#compare(#0,#pos(z0)) |
→ |
#LT |
(53) |
findMin#2(::(z0,z1),z2) |
→ |
findMin#3(#less(z2,z0),z2,z0,z1) |
(34) |
findMin#3(#false,z0,z1,z2) |
→ |
::(z1,::(z0,z2)) |
(38) |
#compare(#0,#s(z0)) |
→ |
#LT |
(55) |
findMin(z0) |
→ |
findMin#1(z0) |
(29) |
#compare(#pos(z0),#0) |
→ |
#GT |
(63) |
#compare(#neg(z0),#neg(z1)) |
→ |
#compare(z1,z0) |
(59) |
#cklt(#GT) |
→ |
#false |
(13) |
#compare(#s(z0),#s(z1)) |
→ |
#compare(z0,z1) |
(71) |
#compare(#0,#0) |
→ |
#EQ |
(15) |
#compare(#s(z0),#0) |
→ |
#GT |
(69) |
#compare(#neg(z0),#pos(z1)) |
→ |
#LT |
(61) |
#compare(#neg(z0),#0) |
→ |
#LT |
(57) |
#cklt(#EQ) |
→ |
#false |
(12) |
#compare(#pos(z0),#pos(z1)) |
→ |
#compare(z0,z1) |
(67) |
#compare(#pos(z0),#neg(z1)) |
→ |
#GT |
(65) |
findMin#1(::(z0,z1)) |
→ |
findMin#2(findMin(z1),z0) |
(31) |
#less(z0,z1) |
→ |
#cklt(#compare(z0,z1)) |
(27) |
#cklt(#LT) |
→ |
#true |
(14) |
#cklt#(#EQ) |
→ |
c |
(47) |
#cklt#(#GT) |
→ |
c1 |
(48) |
#cklt#(#LT) |
→ |
c2 |
(49) |
#compare#(#0,#0) |
→ |
c3 |
(50) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(52) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(54) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(56) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(58) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(60) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(62) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(64) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(66) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(68) |
#compare#(#s(z0),#0) |
→ |
c13 |
(70) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(72) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(28) |
findMin#(z0) |
→ |
c16(findMin#1#(z0)) |
(30) |
findMin#1#(::(z0,z1)) |
→ |
c17(findMin#2#(findMin(z1),z0),findMin#(z1)) |
(32) |
findMin#1#(nil) |
→ |
c18 |
(33) |
findMin#2#(::(z0,z1),z2) |
→ |
c19(findMin#3#(#less(z2,z0),z2,z0,z1),#less#(z2,z0)) |
(35) |
findMin#2#(nil,z0) |
→ |
c20 |
(37) |
findMin#3#(#false,z0,z1,z2) |
→ |
c21 |
(39) |
findMin#3#(#true,z0,z1,z2) |
→ |
c22 |
(41) |
minSort#(z0) |
→ |
c23(minSort#1#(findMin(z0)),findMin#(z0)) |
(43) |
minSort#1#(::(z0,z1)) |
→ |
c24(minSort#(z1)) |
(45) |
minSort#1#(nil) |
→ |
c25 |
(46) |
findMin#2(nil,z0) |
→ |
::(z0,nil) |
(36) |
findMin#1(nil) |
→ |
nil |
(4) |
findMin#3(#true,z0,z1,z2) |
→ |
::(z0,::(z1,z2)) |
(40) |
findMin#2(::(z0,z1),z2) |
→ |
findMin#3(#less(z2,z0),z2,z0,z1) |
(34) |
findMin#3(#false,z0,z1,z2) |
→ |
::(z1,::(z0,z2)) |
(38) |
findMin(z0) |
→ |
findMin#1(z0) |
(29) |
findMin#1(::(z0,z1)) |
→ |
findMin#2(findMin(z1),z0) |
(31) |
#cklt#(#EQ) |
→ |
c |
(47) |
#cklt#(#GT) |
→ |
c1 |
(48) |
#cklt#(#LT) |
→ |
c2 |
(49) |
#compare#(#0,#0) |
→ |
c3 |
(50) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(52) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(54) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(56) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(58) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(60) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(62) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(64) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(66) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(68) |
#compare#(#s(z0),#0) |
→ |
c13 |
(70) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(72) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(28) |
findMin#(z0) |
→ |
c16(findMin#1#(z0)) |
(30) |
findMin#1#(::(z0,z1)) |
→ |
c17(findMin#2#(findMin(z1),z0),findMin#(z1)) |
(32) |
findMin#1#(nil) |
→ |
c18 |
(33) |
findMin#2#(::(z0,z1),z2) |
→ |
c19(findMin#3#(#less(z2,z0),z2,z0,z1),#less#(z2,z0)) |
(35) |
findMin#2#(nil,z0) |
→ |
c20 |
(37) |
findMin#3#(#false,z0,z1,z2) |
→ |
c21 |
(39) |
findMin#3#(#true,z0,z1,z2) |
→ |
c22 |
(41) |
minSort#(z0) |
→ |
c23(minSort#1#(findMin(z0)),findMin#(z0)) |
(43) |
minSort#1#(::(z0,z1)) |
→ |
c24(minSort#(z1)) |
(45) |
minSort#1#(nil) |
→ |
c25 |
(46) |
findMin#2(nil,z0) |
→ |
::(z0,nil) |
(36) |
findMin#1(nil) |
→ |
nil |
(4) |
findMin#3(#true,z0,z1,z2) |
→ |
::(z0,::(z1,z2)) |
(40) |
findMin#2(::(z0,z1),z2) |
→ |
findMin#3(#less(z2,z0),z2,z0,z1) |
(34) |
findMin#3(#false,z0,z1,z2) |
→ |
::(z1,::(z0,z2)) |
(38) |
findMin(z0) |
→ |
findMin#1(z0) |
(29) |
findMin#1(::(z0,z1)) |
→ |
findMin#2(findMin(z1),z0) |
(31) |
#cklt#(#EQ) |
→ |
c |
(47) |
#cklt#(#GT) |
→ |
c1 |
(48) |
#cklt#(#LT) |
→ |
c2 |
(49) |
#compare#(#0,#0) |
→ |
c3 |
(50) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(52) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(54) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(56) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(58) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(60) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(62) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(64) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(66) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(68) |
#compare#(#s(z0),#0) |
→ |
c13 |
(70) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(72) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(28) |
findMin#(z0) |
→ |
c16(findMin#1#(z0)) |
(30) |
findMin#1#(::(z0,z1)) |
→ |
c17(findMin#2#(findMin(z1),z0),findMin#(z1)) |
(32) |
findMin#1#(nil) |
→ |
c18 |
(33) |
findMin#2#(::(z0,z1),z2) |
→ |
c19(findMin#3#(#less(z2,z0),z2,z0,z1),#less#(z2,z0)) |
(35) |
findMin#2#(nil,z0) |
→ |
c20 |
(37) |
findMin#3#(#false,z0,z1,z2) |
→ |
c21 |
(39) |
findMin#3#(#true,z0,z1,z2) |
→ |
c22 |
(41) |
minSort#(z0) |
→ |
c23(minSort#1#(findMin(z0)),findMin#(z0)) |
(43) |
minSort#1#(::(z0,z1)) |
→ |
c24(minSort#(z1)) |
(45) |
minSort#1#(nil) |
→ |
c25 |
(46) |
findMin#2(nil,z0) |
→ |
::(z0,nil) |
(36) |
findMin#1(nil) |
→ |
nil |
(4) |
findMin#3(#true,z0,z1,z2) |
→ |
::(z0,::(z1,z2)) |
(40) |
findMin#2(::(z0,z1),z2) |
→ |
findMin#3(#less(z2,z0),z2,z0,z1) |
(34) |
findMin#3(#false,z0,z1,z2) |
→ |
::(z1,::(z0,z2)) |
(38) |
findMin(z0) |
→ |
findMin#1(z0) |
(29) |
findMin#1(::(z0,z1)) |
→ |
findMin#2(findMin(z1),z0) |
(31) |
#cklt#(#EQ) |
→ |
c |
(47) |
#cklt#(#GT) |
→ |
c1 |
(48) |
#cklt#(#LT) |
→ |
c2 |
(49) |
#compare#(#0,#0) |
→ |
c3 |
(50) |
#compare#(#0,#neg(z0)) |
→ |
c4 |
(52) |
#compare#(#0,#pos(z0)) |
→ |
c5 |
(54) |
#compare#(#0,#s(z0)) |
→ |
c6 |
(56) |
#compare#(#neg(z0),#0) |
→ |
c7 |
(58) |
#compare#(#neg(z0),#neg(z1)) |
→ |
c8(#compare#(z1,z0)) |
(60) |
#compare#(#neg(z0),#pos(z1)) |
→ |
c9 |
(62) |
#compare#(#pos(z0),#0) |
→ |
c10 |
(64) |
#compare#(#pos(z0),#neg(z1)) |
→ |
c11 |
(66) |
#compare#(#pos(z0),#pos(z1)) |
→ |
c12(#compare#(z0,z1)) |
(68) |
#compare#(#s(z0),#0) |
→ |
c13 |
(70) |
#compare#(#s(z0),#s(z1)) |
→ |
c14(#compare#(z0,z1)) |
(72) |
#less#(z0,z1) |
→ |
c15(#cklt#(#compare(z0,z1)),#compare#(z0,z1)) |
(28) |
findMin#(z0) |
→ |
c16(findMin#1#(z0)) |
(30) |
findMin#1#(::(z0,z1)) |
→ |
c17(findMin#2#(findMin(z1),z0),findMin#(z1)) |
(32) |
findMin#1#(nil) |
→ |
c18 |
(33) |
findMin#2#(::(z0,z1),z2) |
→ |
c19(findMin#3#(#less(z2,z0),z2,z0,z1),#less#(z2,z0)) |
(35) |
findMin#2#(nil,z0) |
→ |
c20 |
(37) |
findMin#3#(#false,z0,z1,z2) |
→ |
c21 |
(39) |
findMin#3#(#true,z0,z1,z2) |
→ |
c22 |
(41) |
minSort#(z0) |
→ |
c23(minSort#1#(findMin(z0)),findMin#(z0)) |
(43) |
minSort#1#(::(z0,z1)) |
→ |
c24(minSort#(z1)) |
(45) |
minSort#1#(nil) |
→ |
c25 |
(46) |
findMin#2(nil,z0) |
→ |
::(z0,nil) |
(36) |
findMin#1(nil) |
→ |
nil |
(4) |
findMin#3(#true,z0,z1,z2) |
→ |
::(z0,::(z1,z2)) |
(40) |
findMin#2(::(z0,z1),z2) |
→ |
findMin#3(#less(z2,z0),z2,z0,z1) |
(34) |
findMin#3(#false,z0,z1,z2) |
→ |
::(z1,::(z0,z2)) |
(38) |
findMin(z0) |
→ |
findMin#1(z0) |
(29) |
findMin#1(::(z0,z1)) |
→ |
findMin#2(findMin(z1),z0) |
(31) |
There are no rules in the TRS R. Hence, R/S has complexity O(1).