YES(O(1), O(n^2)) 21.95/6.07 YES(O(1), O(n^2)) 22.34/6.12 22.34/6.12 22.34/6.12
22.34/6.12 22.34/6.120 CpxRelTRS22.34/6.12
↳1 CpxRelTrsToCDT (UPPER BOUND (ID))22.34/6.12
↳2 CdtProblem22.34/6.12
↳3 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID))22.34/6.12
↳4 CdtProblem22.34/6.12
↳5 CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID))22.34/6.12
↳6 CdtProblem22.34/6.12
↳7 CdtLeafRemovalProof (ComplexityIfPolyImplication)22.34/6.12
↳8 CdtProblem22.34/6.12
↳9 CdtKnowledgeProof (BOTH BOUNDS(ID, ID))22.34/6.12
↳10 CdtProblem22.34/6.12
↳11 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))22.34/6.12
↳12 CdtProblem22.34/6.12
↳13 CdtKnowledgeProof (BOTH BOUNDS(ID, ID))22.34/6.12
↳14 CdtProblem22.34/6.12
↳15 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))22.34/6.12
↳16 CdtProblem22.34/6.12
↳17 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^2))))22.34/6.12
↳18 CdtProblem22.34/6.12
↳19 CdtKnowledgeProof (BOTH BOUNDS(ID, ID))22.34/6.12
↳20 CdtProblem22.34/6.12
↳21 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^2))))22.34/6.12
↳22 CdtProblem22.34/6.12
↳23 SIsEmptyProof (BOTH BOUNDS(ID, ID))22.34/6.12
↳24 BOUNDS(O(1), O(1))22.34/6.12
#less(@x, @y) → #cklt(#compare(@x, @y)) 22.34/6.12
append(@l1, @l2) → append#1(@l1, @l2) 22.34/6.12
append#1(::(@x, @xs), @l2) → ::(@x, append(@xs, @l2)) 22.34/6.12
append#1(nil, @l2) → @l2 22.34/6.12
flatten(@t) → flatten#1(@t) 22.34/6.12
flatten#1(leaf) → nil 22.34/6.12
flatten#1(node(@l, @t1, @t2)) → append(@l, append(flatten(@t1), flatten(@t2))) 22.34/6.12
flattensort(@t) → insertionsort(flatten(@t)) 22.34/6.12
insert(@x, @l) → insert#1(@l, @x) 22.34/6.12
insert#1(::(@y, @ys), @x) → insert#2(#less(@y, @x), @x, @y, @ys) 22.34/6.12
insert#1(nil, @x) → ::(@x, nil) 22.34/6.12
insert#2(#false, @x, @y, @ys) → ::(@x, ::(@y, @ys)) 22.34/6.12
insert#2(#true, @x, @y, @ys) → ::(@y, insert(@x, @ys)) 22.34/6.12
insertionsort(@l) → insertionsort#1(@l) 22.34/6.12
insertionsort#1(::(@x, @xs)) → insert(@x, insertionsort(@xs)) 22.34/6.12
insertionsort#1(nil) → nil
#cklt(#EQ) → #false 22.34/6.12
#cklt(#GT) → #false 22.34/6.12
#cklt(#LT) → #true 22.34/6.12
#compare(#0, #0) → #EQ 22.34/6.12
#compare(#0, #neg(@y)) → #GT 22.34/6.12
#compare(#0, #pos(@y)) → #LT 22.34/6.12
#compare(#0, #s(@y)) → #LT 22.34/6.12
#compare(#neg(@x), #0) → #LT 22.34/6.12
#compare(#neg(@x), #neg(@y)) → #compare(@y, @x) 22.34/6.12
#compare(#neg(@x), #pos(@y)) → #LT 22.34/6.12
#compare(#pos(@x), #0) → #GT 22.34/6.12
#compare(#pos(@x), #neg(@y)) → #GT 22.34/6.12
#compare(#pos(@x), #pos(@y)) → #compare(@x, @y) 22.34/6.12
#compare(#s(@x), #0) → #GT 22.34/6.12
#compare(#s(@x), #s(@y)) → #compare(@x, @y)
Tuples:
#cklt(#EQ) → #false 22.34/6.12
#cklt(#GT) → #false 22.34/6.12
#cklt(#LT) → #true 22.34/6.12
#compare(#0, #0) → #EQ 22.34/6.12
#compare(#0, #neg(z0)) → #GT 22.34/6.12
#compare(#0, #pos(z0)) → #LT 22.34/6.12
#compare(#0, #s(z0)) → #LT 22.34/6.12
#compare(#neg(z0), #0) → #LT 22.34/6.12
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.34/6.12
#compare(#neg(z0), #pos(z1)) → #LT 22.34/6.12
#compare(#pos(z0), #0) → #GT 22.34/6.12
#compare(#pos(z0), #neg(z1)) → #GT 22.34/6.12
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.34/6.12
#compare(#s(z0), #0) → #GT 22.34/6.12
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.34/6.12
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.34/6.12
append(z0, z1) → append#1(z0, z1) 22.34/6.12
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.34/6.12
append#1(nil, z0) → z0 22.34/6.12
flatten(z0) → flatten#1(z0) 22.34/6.12
flatten#1(leaf) → nil 22.34/6.12
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.34/6.12
flattensort(z0) → insertionsort(flatten(z0)) 22.34/6.12
insert(z0, z1) → insert#1(z1, z0) 22.34/6.12
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.34/6.12
insert#1(nil, z0) → ::(z0, nil) 22.34/6.12
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.34/6.12
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.34/6.12
insertionsort(z0) → insertionsort#1(z0) 22.34/6.12
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.34/6.12
insertionsort#1(nil) → nil
S tuples:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.34/6.12
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.34/6.12
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.34/6.12
#LESS(z0, z1) → c15(#CKLT(#compare(z0, z1)), #COMPARE(z0, z1)) 22.34/6.12
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.34/6.12
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.34/6.12
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.34/6.12
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.34/6.12
FLATTENSORT(z0) → c22(INSERTIONSORT(flatten(z0)), FLATTEN(z0)) 22.34/6.12
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.34/6.12
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.34/6.12
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.34/6.12
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.34/6.12
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1))
K tuples:none
#LESS(z0, z1) → c15(#CKLT(#compare(z0, z1)), #COMPARE(z0, z1)) 22.34/6.12
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.34/6.12
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.34/6.12
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.34/6.12
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.34/6.12
FLATTENSORT(z0) → c22(INSERTIONSORT(flatten(z0)), FLATTEN(z0)) 22.34/6.12
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.34/6.12
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.34/6.12
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.34/6.12
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.34/6.12
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1))
#less, append, append#1, flatten, flatten#1, flattensort, insert, insert#1, insert#2, insertionsort, insertionsort#1, #cklt, #compare
#COMPARE, #LESS, APPEND, APPEND#1, FLATTEN, FLATTEN#1, FLATTENSORT, INSERT, INSERT#1, INSERT#2, INSERTIONSORT, INSERTIONSORT#1
c8, c12, c14, c15, c16, c17, c19, c21, c22, c23, c24, c27, c28, c29
Tuples:
#cklt(#EQ) → #false 22.34/6.12
#cklt(#GT) → #false 22.34/6.12
#cklt(#LT) → #true 22.34/6.12
#compare(#0, #0) → #EQ 22.34/6.12
#compare(#0, #neg(z0)) → #GT 22.34/6.12
#compare(#0, #pos(z0)) → #LT 22.34/6.12
#compare(#0, #s(z0)) → #LT 22.34/6.12
#compare(#neg(z0), #0) → #LT 22.34/6.12
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.34/6.12
#compare(#neg(z0), #pos(z1)) → #LT 22.34/6.12
#compare(#pos(z0), #0) → #GT 22.34/6.12
#compare(#pos(z0), #neg(z1)) → #GT 22.34/6.12
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.34/6.12
#compare(#s(z0), #0) → #GT 22.34/6.12
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.34/6.12
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.34/6.12
append(z0, z1) → append#1(z0, z1) 22.34/6.12
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.34/6.12
append#1(nil, z0) → z0 22.34/6.12
flatten(z0) → flatten#1(z0) 22.34/6.12
flatten#1(leaf) → nil 22.34/6.12
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.34/6.12
flattensort(z0) → insertionsort(flatten(z0)) 22.34/6.12
insert(z0, z1) → insert#1(z1, z0) 22.34/6.12
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.34/6.12
insert#1(nil, z0) → ::(z0, nil) 22.34/6.12
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.34/6.12
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.34/6.12
insertionsort(z0) → insertionsort#1(z0) 22.34/6.12
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.34/6.12
insertionsort#1(nil) → nil
S tuples:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.34/6.12
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.34/6.12
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.34/6.12
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.34/6.12
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.34/6.12
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.34/6.12
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.34/6.12
FLATTENSORT(z0) → c22(INSERTIONSORT(flatten(z0)), FLATTEN(z0)) 22.34/6.12
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.34/6.12
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.34/6.12
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.34/6.12
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.34/6.12
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.34/6.12
#LESS(z0, z1) → c15(#COMPARE(z0, z1))
K tuples:none
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.34/6.12
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.34/6.12
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.34/6.12
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.34/6.12
FLATTENSORT(z0) → c22(INSERTIONSORT(flatten(z0)), FLATTEN(z0)) 22.34/6.12
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.34/6.12
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.34/6.12
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.34/6.12
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.34/6.12
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.34/6.12
#LESS(z0, z1) → c15(#COMPARE(z0, z1))
#less, append, append#1, flatten, flatten#1, flattensort, insert, insert#1, insert#2, insertionsort, insertionsort#1, #cklt, #compare
#COMPARE, APPEND, APPEND#1, FLATTEN, FLATTEN#1, FLATTENSORT, INSERT, INSERT#1, INSERT#2, INSERTIONSORT, INSERTIONSORT#1, #LESS
c8, c12, c14, c16, c17, c19, c21, c22, c23, c24, c27, c28, c29, c15
Tuples:
#cklt(#EQ) → #false 22.34/6.12
#cklt(#GT) → #false 22.34/6.12
#cklt(#LT) → #true 22.34/6.12
#compare(#0, #0) → #EQ 22.34/6.12
#compare(#0, #neg(z0)) → #GT 22.34/6.12
#compare(#0, #pos(z0)) → #LT 22.34/6.12
#compare(#0, #s(z0)) → #LT 22.34/6.12
#compare(#neg(z0), #0) → #LT 22.34/6.12
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.34/6.12
#compare(#neg(z0), #pos(z1)) → #LT 22.34/6.12
#compare(#pos(z0), #0) → #GT 22.34/6.12
#compare(#pos(z0), #neg(z1)) → #GT 22.34/6.20
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.34/6.20
#compare(#s(z0), #0) → #GT 22.34/6.20
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.34/6.20
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.34/6.20
append(z0, z1) → append#1(z0, z1) 22.34/6.20
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.34/6.20
append#1(nil, z0) → z0 22.34/6.20
flatten(z0) → flatten#1(z0) 22.34/6.20
flatten#1(leaf) → nil 22.34/6.20
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.34/6.20
flattensort(z0) → insertionsort(flatten(z0)) 22.34/6.20
insert(z0, z1) → insert#1(z1, z0) 22.34/6.20
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.34/6.20
insert#1(nil, z0) → ::(z0, nil) 22.34/6.20
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.34/6.20
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.34/6.20
insertionsort(z0) → insertionsort#1(z0) 22.34/6.20
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.34/6.20
insertionsort#1(nil) → nil
S tuples:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.34/6.20
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.34/6.20
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.34/6.20
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.34/6.20
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.34/6.20
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.34/6.20
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.34/6.20
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.34/6.20
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.34/6.20
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.34/6.20
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.34/6.20
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.34/6.20
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.34/6.20
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0))) 22.34/6.20
FLATTENSORT(z0) → c(FLATTEN(z0))
K tuples:none
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.34/6.20
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.34/6.20
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.34/6.20
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.34/6.20
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.34/6.20
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.34/6.20
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.34/6.20
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.34/6.20
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.34/6.20
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.34/6.20
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0))) 22.34/6.20
FLATTENSORT(z0) → c(FLATTEN(z0))
#less, append, append#1, flatten, flatten#1, flattensort, insert, insert#1, insert#2, insertionsort, insertionsort#1, #cklt, #compare
#COMPARE, APPEND, APPEND#1, FLATTEN, FLATTEN#1, INSERT, INSERT#1, INSERT#2, INSERTIONSORT, INSERTIONSORT#1, #LESS, FLATTENSORT
c8, c12, c14, c16, c17, c19, c21, c23, c24, c27, c28, c29, c15, c
FLATTENSORT(z0) → c(FLATTEN(z0))
Tuples:
#cklt(#EQ) → #false 22.34/6.20
#cklt(#GT) → #false 22.34/6.20
#cklt(#LT) → #true 22.34/6.20
#compare(#0, #0) → #EQ 22.34/6.20
#compare(#0, #neg(z0)) → #GT 22.34/6.20
#compare(#0, #pos(z0)) → #LT 22.34/6.20
#compare(#0, #s(z0)) → #LT 22.34/6.20
#compare(#neg(z0), #0) → #LT 22.34/6.20
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.34/6.20
#compare(#neg(z0), #pos(z1)) → #LT 22.34/6.20
#compare(#pos(z0), #0) → #GT 22.34/6.20
#compare(#pos(z0), #neg(z1)) → #GT 22.34/6.20
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.34/6.20
#compare(#s(z0), #0) → #GT 22.34/6.20
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.34/6.20
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.34/6.20
append(z0, z1) → append#1(z0, z1) 22.34/6.20
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.34/6.20
append#1(nil, z0) → z0 22.34/6.20
flatten(z0) → flatten#1(z0) 22.34/6.20
flatten#1(leaf) → nil 22.34/6.20
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.34/6.20
flattensort(z0) → insertionsort(flatten(z0)) 22.34/6.20
insert(z0, z1) → insert#1(z1, z0) 22.34/6.20
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.34/6.20
insert#1(nil, z0) → ::(z0, nil) 22.34/6.20
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.34/6.20
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.34/6.20
insertionsort(z0) → insertionsort#1(z0) 22.34/6.20
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.34/6.20
insertionsort#1(nil) → nil
S tuples:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.34/6.20
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.34/6.20
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.34/6.20
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.34/6.20
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.34/6.20
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.34/6.20
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.34/6.20
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.34/6.20
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.34/6.20
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.34/6.20
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.34/6.20
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.34/6.20
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.34/6.20
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
K tuples:none
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.34/6.20
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.34/6.20
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.34/6.20
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.34/6.20
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.34/6.20
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.34/6.20
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.34/6.20
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.34/6.20
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.34/6.20
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.34/6.20
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
#less, append, append#1, flatten, flatten#1, flattensort, insert, insert#1, insert#2, insertionsort, insertionsort#1, #cklt, #compare
#COMPARE, APPEND, APPEND#1, FLATTEN, FLATTEN#1, INSERT, INSERT#1, INSERT#2, INSERTIONSORT, INSERTIONSORT#1, #LESS, FLATTENSORT
c8, c12, c14, c16, c17, c19, c21, c23, c24, c27, c28, c29, c15, c
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
Tuples:
#cklt(#EQ) → #false 22.34/6.20
#cklt(#GT) → #false 22.34/6.20
#cklt(#LT) → #true 22.34/6.20
#compare(#0, #0) → #EQ 22.34/6.20
#compare(#0, #neg(z0)) → #GT 22.34/6.20
#compare(#0, #pos(z0)) → #LT 22.34/6.20
#compare(#0, #s(z0)) → #LT 22.34/6.20
#compare(#neg(z0), #0) → #LT 22.34/6.20
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.34/6.20
#compare(#neg(z0), #pos(z1)) → #LT 22.34/6.20
#compare(#pos(z0), #0) → #GT 22.34/6.20
#compare(#pos(z0), #neg(z1)) → #GT 22.34/6.20
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.34/6.20
#compare(#s(z0), #0) → #GT 22.34/6.20
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.34/6.20
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.34/6.20
append(z0, z1) → append#1(z0, z1) 22.34/6.20
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.34/6.20
append#1(nil, z0) → z0 22.34/6.20
flatten(z0) → flatten#1(z0) 22.34/6.20
flatten#1(leaf) → nil 22.34/6.20
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.34/6.20
flattensort(z0) → insertionsort(flatten(z0)) 22.34/6.20
insert(z0, z1) → insert#1(z1, z0) 22.34/6.20
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.34/6.20
insert#1(nil, z0) → ::(z0, nil) 22.34/6.20
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.34/6.20
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.34/6.20
insertionsort(z0) → insertionsort#1(z0) 22.34/6.20
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.34/6.20
insertionsort#1(nil) → nil
S tuples:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.34/6.20
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.69/6.21
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.69/6.21
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.69/6.21
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
K tuples:
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1))
Defined Rule Symbols:
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
#less, append, append#1, flatten, flatten#1, flattensort, insert, insert#1, insert#2, insertionsort, insertionsort#1, #cklt, #compare
#COMPARE, APPEND, APPEND#1, FLATTEN, FLATTEN#1, INSERT, INSERT#1, INSERT#2, INSERTIONSORT, INSERTIONSORT#1, #LESS, FLATTENSORT
c8, c12, c14, c16, c17, c19, c21, c23, c24, c27, c28, c29, c15, c
We considered the (Usable) Rules:
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1))
And the Tuples:
flatten(z0) → flatten#1(z0) 22.69/6.21
flatten#1(leaf) → nil 22.69/6.21
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.69/6.21
append(z0, z1) → append#1(z0, z1) 22.69/6.21
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.69/6.21
append#1(nil, z0) → z0 22.69/6.21
insertionsort(z0) → insertionsort#1(z0) 22.69/6.21
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.69/6.21
insertionsort#1(nil) → nil 22.69/6.21
insert(z0, z1) → insert#1(z1, z0) 22.69/6.21
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.69/6.21
insert#1(nil, z0) → ::(z0, nil) 22.69/6.21
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.69/6.21
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.69/6.21
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.69/6.21
#compare(#0, #0) → #EQ 22.69/6.21
#compare(#0, #neg(z0)) → #GT 22.69/6.21
#compare(#0, #pos(z0)) → #LT 22.69/6.21
#compare(#0, #s(z0)) → #LT 22.69/6.21
#compare(#neg(z0), #0) → #LT 22.69/6.21
#compare(#neg(z0), #pos(z1)) → #LT 22.69/6.21
#compare(#pos(z0), #0) → #GT 22.69/6.21
#compare(#pos(z0), #neg(z1)) → #GT 22.69/6.21
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.69/6.21
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.69/6.21
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.69/6.21
#compare(#s(z0), #0) → #GT 22.69/6.21
#cklt(#EQ) → #false 22.69/6.21
#cklt(#GT) → #false 22.69/6.21
#cklt(#LT) → #true
The order we found is given by the following interpretation:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.69/6.21
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.69/6.21
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.69/6.21
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.69/6.21
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
POL(#0) = 0 22.69/6.21
POL(#COMPARE(x1, x2)) = 0 22.69/6.21
POL(#EQ) = 0 22.69/6.21
POL(#GT) = 0 22.69/6.21
POL(#LESS(x1, x2)) = 0 22.69/6.21
POL(#LT) = 0 22.69/6.21
POL(#cklt(x1)) = [3] 22.69/6.21
POL(#compare(x1, x2)) = [1] 22.69/6.21
POL(#false) = [1] 22.69/6.21
POL(#less(x1, x2)) = [1] 22.69/6.21
POL(#neg(x1)) = 0 22.69/6.21
POL(#pos(x1)) = 0 22.69/6.21
POL(#s(x1)) = x1 22.69/6.21
POL(#true) = [4] 22.69/6.21
POL(::(x1, x2)) = [4] + x2 22.69/6.21
POL(APPEND(x1, x2)) = 0 22.69/6.21
POL(APPEND#1(x1, x2)) = 0 22.69/6.21
POL(FLATTEN(x1)) = 0 22.69/6.21
POL(FLATTEN#1(x1)) = 0 22.69/6.21
POL(FLATTENSORT(x1)) = [5] + [3]x1 22.69/6.21
POL(INSERT(x1, x2)) = 0 22.69/6.21
POL(INSERT#1(x1, x2)) = 0 22.69/6.21
POL(INSERT#2(x1, x2, x3, x4)) = 0 22.69/6.21
POL(INSERTIONSORT(x1)) = [2]x1 22.69/6.21
POL(INSERTIONSORT#1(x1)) = [2]x1 22.69/6.21
POL(append(x1, x2)) = x1 + x2 22.69/6.21
POL(append#1(x1, x2)) = x1 + x2 22.69/6.21
POL(c(x1)) = x1 22.69/6.21
POL(c12(x1)) = x1 22.69/6.21
POL(c14(x1)) = x1 22.69/6.21
POL(c15(x1)) = x1 22.69/6.21
POL(c16(x1)) = x1 22.69/6.21
POL(c17(x1)) = x1 22.69/6.21
POL(c19(x1)) = x1 22.69/6.21
POL(c21(x1, x2, x3, x4)) = x1 + x2 + x3 + x4 22.69/6.21
POL(c23(x1)) = x1 22.69/6.21
POL(c24(x1, x2)) = x1 + x2 22.69/6.21
POL(c27(x1)) = x1 22.69/6.21
POL(c28(x1)) = x1 22.69/6.21
POL(c29(x1, x2)) = x1 + x2 22.69/6.21
POL(c8(x1)) = x1 22.69/6.21
POL(flatten(x1)) = x1 22.69/6.21
POL(flatten#1(x1)) = x1 22.69/6.21
POL(insert(x1, x2)) = [4] + x2 22.69/6.21
POL(insert#1(x1, x2)) = [4] + x1 22.69/6.21
POL(insert#2(x1, x2, x3, x4)) = [4] + [4]x1 + x4 22.69/6.21
POL(insertionsort(x1)) = x1 22.69/6.21
POL(insertionsort#1(x1)) = x1 22.69/6.21
POL(leaf) = 0 22.69/6.21
POL(nil) = 0 22.69/6.21
POL(node(x1, x2, x3)) = x1 + x2 + x3
Tuples:
#cklt(#EQ) → #false 22.69/6.21
#cklt(#GT) → #false 22.69/6.21
#cklt(#LT) → #true 22.69/6.21
#compare(#0, #0) → #EQ 22.69/6.21
#compare(#0, #neg(z0)) → #GT 22.69/6.21
#compare(#0, #pos(z0)) → #LT 22.69/6.21
#compare(#0, #s(z0)) → #LT 22.69/6.21
#compare(#neg(z0), #0) → #LT 22.69/6.21
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.69/6.21
#compare(#neg(z0), #pos(z1)) → #LT 22.69/6.21
#compare(#pos(z0), #0) → #GT 22.69/6.21
#compare(#pos(z0), #neg(z1)) → #GT 22.69/6.21
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.69/6.21
#compare(#s(z0), #0) → #GT 22.69/6.21
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.69/6.21
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.69/6.21
append(z0, z1) → append#1(z0, z1) 22.69/6.21
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.69/6.21
append#1(nil, z0) → z0 22.69/6.21
flatten(z0) → flatten#1(z0) 22.69/6.21
flatten#1(leaf) → nil 22.69/6.21
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.69/6.21
flattensort(z0) → insertionsort(flatten(z0)) 22.69/6.21
insert(z0, z1) → insert#1(z1, z0) 22.69/6.21
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.69/6.21
insert#1(nil, z0) → ::(z0, nil) 22.69/6.21
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.69/6.21
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.69/6.21
insertionsort(z0) → insertionsort#1(z0) 22.69/6.21
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.69/6.21
insertionsort#1(nil) → nil
S tuples:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.69/6.21
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.69/6.21
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.69/6.21
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.69/6.21
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
K tuples:
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1))
Defined Rule Symbols:
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0))) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1))
#less, append, append#1, flatten, flatten#1, flattensort, insert, insert#1, insert#2, insertionsort, insertionsort#1, #cklt, #compare
#COMPARE, APPEND, APPEND#1, FLATTEN, FLATTEN#1, INSERT, INSERT#1, INSERT#2, INSERTIONSORT, INSERTIONSORT#1, #LESS, FLATTENSORT
c8, c12, c14, c16, c17, c19, c21, c23, c24, c27, c28, c29, c15, c
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1))
Tuples:
#cklt(#EQ) → #false 22.69/6.21
#cklt(#GT) → #false 22.69/6.21
#cklt(#LT) → #true 22.69/6.21
#compare(#0, #0) → #EQ 22.69/6.21
#compare(#0, #neg(z0)) → #GT 22.69/6.21
#compare(#0, #pos(z0)) → #LT 22.69/6.21
#compare(#0, #s(z0)) → #LT 22.69/6.21
#compare(#neg(z0), #0) → #LT 22.69/6.21
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.69/6.21
#compare(#neg(z0), #pos(z1)) → #LT 22.69/6.21
#compare(#pos(z0), #0) → #GT 22.69/6.21
#compare(#pos(z0), #neg(z1)) → #GT 22.69/6.21
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.69/6.21
#compare(#s(z0), #0) → #GT 22.69/6.21
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.69/6.21
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.69/6.21
append(z0, z1) → append#1(z0, z1) 22.69/6.21
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.69/6.21
append#1(nil, z0) → z0 22.69/6.21
flatten(z0) → flatten#1(z0) 22.69/6.21
flatten#1(leaf) → nil 22.69/6.21
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.69/6.21
flattensort(z0) → insertionsort(flatten(z0)) 22.69/6.21
insert(z0, z1) → insert#1(z1, z0) 22.69/6.21
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.69/6.21
insert#1(nil, z0) → ::(z0, nil) 22.69/6.21
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.69/6.21
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.69/6.21
insertionsort(z0) → insertionsort#1(z0) 22.69/6.21
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.69/6.21
insertionsort#1(nil) → nil
S tuples:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.69/6.21
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.69/6.21
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.69/6.21
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.69/6.21
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
K tuples:
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1))
Defined Rule Symbols:
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0))) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0))
#less, append, append#1, flatten, flatten#1, flattensort, insert, insert#1, insert#2, insertionsort, insertionsort#1, #cklt, #compare
#COMPARE, APPEND, APPEND#1, FLATTEN, FLATTEN#1, INSERT, INSERT#1, INSERT#2, INSERTIONSORT, INSERTIONSORT#1, #LESS, FLATTENSORT
c8, c12, c14, c16, c17, c19, c21, c23, c24, c27, c28, c29, c15, c
We considered the (Usable) Rules:
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2))
And the Tuples:
flatten(z0) → flatten#1(z0) 22.69/6.21
flatten#1(leaf) → nil 22.69/6.21
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.69/6.21
append(z0, z1) → append#1(z0, z1) 22.69/6.21
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.69/6.21
append#1(nil, z0) → z0 22.69/6.21
insertionsort(z0) → insertionsort#1(z0) 22.69/6.21
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.69/6.21
insertionsort#1(nil) → nil 22.69/6.21
insert(z0, z1) → insert#1(z1, z0) 22.69/6.21
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.69/6.21
insert#1(nil, z0) → ::(z0, nil) 22.69/6.21
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.69/6.21
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.69/6.21
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.69/6.21
#compare(#0, #0) → #EQ 22.69/6.21
#compare(#0, #neg(z0)) → #GT 22.69/6.21
#compare(#0, #pos(z0)) → #LT 22.69/6.21
#compare(#0, #s(z0)) → #LT 22.69/6.21
#compare(#neg(z0), #0) → #LT 22.69/6.21
#compare(#neg(z0), #pos(z1)) → #LT 22.69/6.21
#compare(#pos(z0), #0) → #GT 22.69/6.21
#compare(#pos(z0), #neg(z1)) → #GT 22.69/6.21
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.69/6.21
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.69/6.21
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.69/6.21
#compare(#s(z0), #0) → #GT 22.69/6.21
#cklt(#EQ) → #false 22.69/6.21
#cklt(#GT) → #false 22.69/6.21
#cklt(#LT) → #true
The order we found is given by the following interpretation:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.69/6.21
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.69/6.21
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.69/6.21
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.69/6.21
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
POL(#0) = 0 22.69/6.21
POL(#COMPARE(x1, x2)) = 0 22.69/6.21
POL(#EQ) = [2] 22.69/6.21
POL(#GT) = [4] 22.69/6.21
POL(#LESS(x1, x2)) = 0 22.69/6.21
POL(#LT) = 0 22.69/6.21
POL(#cklt(x1)) = [4]x1 22.69/6.21
POL(#compare(x1, x2)) = 0 22.69/6.21
POL(#false) = [4] 22.69/6.21
POL(#less(x1, x2)) = 0 22.69/6.21
POL(#neg(x1)) = 0 22.69/6.21
POL(#pos(x1)) = x1 22.69/6.21
POL(#s(x1)) = x1 22.69/6.21
POL(#true) = 0 22.69/6.21
POL(::(x1, x2)) = 0 22.69/6.21
POL(APPEND(x1, x2)) = 0 22.69/6.21
POL(APPEND#1(x1, x2)) = 0 22.69/6.21
POL(FLATTEN(x1)) = [1] + [4]x1 22.69/6.21
POL(FLATTEN#1(x1)) = [4]x1 22.69/6.21
POL(FLATTENSORT(x1)) = [3] + [5]x1 22.69/6.21
POL(INSERT(x1, x2)) = 0 22.69/6.21
POL(INSERT#1(x1, x2)) = 0 22.69/6.21
POL(INSERT#2(x1, x2, x3, x4)) = 0 22.69/6.21
POL(INSERTIONSORT(x1)) = 0 22.69/6.21
POL(INSERTIONSORT#1(x1)) = 0 22.69/6.21
POL(append(x1, x2)) = 0 22.69/6.21
POL(append#1(x1, x2)) = [3] + [3]x2 22.69/6.21
POL(c(x1)) = x1 22.69/6.21
POL(c12(x1)) = x1 22.69/6.21
POL(c14(x1)) = x1 22.69/6.21
POL(c15(x1)) = x1 22.69/6.21
POL(c16(x1)) = x1 22.69/6.21
POL(c17(x1)) = x1 22.69/6.21
POL(c19(x1)) = x1 22.69/6.21
POL(c21(x1, x2, x3, x4)) = x1 + x2 + x3 + x4 22.69/6.21
POL(c23(x1)) = x1 22.69/6.21
POL(c24(x1, x2)) = x1 + x2 22.69/6.21
POL(c27(x1)) = x1 22.69/6.21
POL(c28(x1)) = x1 22.69/6.21
POL(c29(x1, x2)) = x1 + x2 22.69/6.21
POL(c8(x1)) = x1 22.69/6.21
POL(flatten(x1)) = 0 22.69/6.21
POL(flatten#1(x1)) = [3] + [3]x1 22.69/6.21
POL(insert(x1, x2)) = [3] + [3]x1 + [3]x2 22.69/6.21
POL(insert#1(x1, x2)) = [3] + [3]x1 + [3]x2 22.69/6.21
POL(insert#2(x1, x2, x3, x4)) = [3] + [3]x2 + [3]x3 + [3]x4 22.69/6.21
POL(insertionsort(x1)) = 0 22.69/6.21
POL(insertionsort#1(x1)) = [3] + [3]x1 22.69/6.21
POL(leaf) = [1] 22.69/6.21
POL(nil) = 0 22.69/6.21
POL(node(x1, x2, x3)) = [4] + x2 + x3
Tuples:
#cklt(#EQ) → #false 22.69/6.21
#cklt(#GT) → #false 22.69/6.21
#cklt(#LT) → #true 22.69/6.21
#compare(#0, #0) → #EQ 22.69/6.21
#compare(#0, #neg(z0)) → #GT 22.69/6.21
#compare(#0, #pos(z0)) → #LT 22.69/6.21
#compare(#0, #s(z0)) → #LT 22.69/6.21
#compare(#neg(z0), #0) → #LT 22.69/6.21
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.69/6.21
#compare(#neg(z0), #pos(z1)) → #LT 22.69/6.21
#compare(#pos(z0), #0) → #GT 22.69/6.21
#compare(#pos(z0), #neg(z1)) → #GT 22.69/6.21
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.69/6.21
#compare(#s(z0), #0) → #GT 22.69/6.21
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.69/6.21
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.69/6.21
append(z0, z1) → append#1(z0, z1) 22.69/6.21
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.69/6.21
append#1(nil, z0) → z0 22.69/6.21
flatten(z0) → flatten#1(z0) 22.69/6.21
flatten#1(leaf) → nil 22.69/6.21
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.69/6.21
flattensort(z0) → insertionsort(flatten(z0)) 22.69/6.21
insert(z0, z1) → insert#1(z1, z0) 22.69/6.21
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.69/6.21
insert#1(nil, z0) → ::(z0, nil) 22.69/6.21
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.69/6.21
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.69/6.21
insertionsort(z0) → insertionsort#1(z0) 22.69/6.21
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.69/6.21
insertionsort#1(nil) → nil
S tuples:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.69/6.21
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.69/6.21
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.69/6.21
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.69/6.21
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
K tuples:
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1))
Defined Rule Symbols:
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0))) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2))
#less, append, append#1, flatten, flatten#1, flattensort, insert, insert#1, insert#2, insertionsort, insertionsort#1, #cklt, #compare
#COMPARE, APPEND, APPEND#1, FLATTEN, FLATTEN#1, INSERT, INSERT#1, INSERT#2, INSERTIONSORT, INSERTIONSORT#1, #LESS, FLATTENSORT
c8, c12, c14, c16, c17, c19, c21, c23, c24, c27, c28, c29, c15, c
We considered the (Usable) Rules:
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2))
And the Tuples:
flatten(z0) → flatten#1(z0) 22.69/6.21
flatten#1(leaf) → nil 22.69/6.21
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.69/6.21
append(z0, z1) → append#1(z0, z1) 22.69/6.21
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.69/6.21
append#1(nil, z0) → z0 22.69/6.21
insertionsort(z0) → insertionsort#1(z0) 22.69/6.21
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.69/6.21
insertionsort#1(nil) → nil 22.69/6.21
insert(z0, z1) → insert#1(z1, z0) 22.69/6.21
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.69/6.21
insert#1(nil, z0) → ::(z0, nil) 22.69/6.21
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.69/6.21
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.69/6.21
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.69/6.21
#compare(#0, #0) → #EQ 22.69/6.21
#compare(#0, #neg(z0)) → #GT 22.69/6.21
#compare(#0, #pos(z0)) → #LT 22.69/6.21
#compare(#0, #s(z0)) → #LT 22.69/6.21
#compare(#neg(z0), #0) → #LT 22.69/6.21
#compare(#neg(z0), #pos(z1)) → #LT 22.69/6.21
#compare(#pos(z0), #0) → #GT 22.69/6.21
#compare(#pos(z0), #neg(z1)) → #GT 22.69/6.21
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.69/6.21
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.69/6.21
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.69/6.21
#compare(#s(z0), #0) → #GT 22.69/6.21
#cklt(#EQ) → #false 22.69/6.21
#cklt(#GT) → #false 22.69/6.21
#cklt(#LT) → #true
The order we found is given by the following interpretation:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.69/6.21
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.69/6.21
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.69/6.21
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.69/6.21
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
POL(#0) = [2] 22.69/6.21
POL(#COMPARE(x1, x2)) = 0 22.69/6.21
POL(#EQ) = 0 22.69/6.21
POL(#GT) = 0 22.69/6.21
POL(#LESS(x1, x2)) = 0 22.69/6.21
POL(#LT) = [1] 22.69/6.21
POL(#cklt(x1)) = x1 22.69/6.21
POL(#compare(x1, x2)) = [2]x1·x2 22.69/6.21
POL(#false) = 0 22.69/6.21
POL(#less(x1, x2)) = [2]x1·x2 22.69/6.21
POL(#neg(x1)) = [2] + x1 22.69/6.21
POL(#pos(x1)) = [2] + x1 22.69/6.21
POL(#s(x1)) = [2] + x1 22.69/6.21
POL(#true) = [1] 22.69/6.21
POL(::(x1, x2)) = x1 + x2 22.69/6.21
POL(APPEND(x1, x2)) = 0 22.69/6.21
POL(APPEND#1(x1, x2)) = 0 22.69/6.21
POL(FLATTEN(x1)) = 0 22.69/6.21
POL(FLATTEN#1(x1)) = 0 22.69/6.21
POL(FLATTENSORT(x1)) = [1] + x12 22.69/6.21
POL(INSERT(x1, x2)) = [2]x1·x2 22.69/6.21
POL(INSERT#1(x1, x2)) = [2]x1·x2 22.69/6.21
POL(INSERT#2(x1, x2, x3, x4)) = x1 + [2]x2·x4 22.69/6.21
POL(INSERTIONSORT(x1)) = x12 22.69/6.21
POL(INSERTIONSORT#1(x1)) = x12 22.69/6.21
POL(append(x1, x2)) = x1 + x2 22.69/6.21
POL(append#1(x1, x2)) = x1 + x2 22.69/6.21
POL(c(x1)) = x1 22.69/6.21
POL(c12(x1)) = x1 22.69/6.21
POL(c14(x1)) = x1 22.69/6.21
POL(c15(x1)) = x1 22.69/6.21
POL(c16(x1)) = x1 22.69/6.21
POL(c17(x1)) = x1 22.69/6.21
POL(c19(x1)) = x1 22.69/6.21
POL(c21(x1, x2, x3, x4)) = x1 + x2 + x3 + x4 22.69/6.21
POL(c23(x1)) = x1 22.69/6.21
POL(c24(x1, x2)) = x1 + x2 22.69/6.21
POL(c27(x1)) = x1 22.69/6.21
POL(c28(x1)) = x1 22.69/6.21
POL(c29(x1, x2)) = x1 + x2 22.69/6.21
POL(c8(x1)) = x1 22.69/6.21
POL(flatten(x1)) = x1 22.69/6.21
POL(flatten#1(x1)) = x1 22.69/6.21
POL(insert(x1, x2)) = x1 + x2 22.69/6.21
POL(insert#1(x1, x2)) = x1 + x2 22.69/6.21
POL(insert#2(x1, x2, x3, x4)) = x2 + x3 + x4 22.69/6.21
POL(insertionsort(x1)) = x1 22.69/6.21
POL(insertionsort#1(x1)) = x1 22.69/6.21
POL(leaf) = 0 22.69/6.21
POL(nil) = 0 22.69/6.21
POL(node(x1, x2, x3)) = x1 + x2 + x3
Tuples:
#cklt(#EQ) → #false 22.69/6.21
#cklt(#GT) → #false 22.69/6.21
#cklt(#LT) → #true 22.69/6.21
#compare(#0, #0) → #EQ 22.69/6.21
#compare(#0, #neg(z0)) → #GT 22.69/6.21
#compare(#0, #pos(z0)) → #LT 22.69/6.21
#compare(#0, #s(z0)) → #LT 22.69/6.21
#compare(#neg(z0), #0) → #LT 22.69/6.21
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.69/6.21
#compare(#neg(z0), #pos(z1)) → #LT 22.69/6.21
#compare(#pos(z0), #0) → #GT 22.69/6.21
#compare(#pos(z0), #neg(z1)) → #GT 22.69/6.21
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.69/6.21
#compare(#s(z0), #0) → #GT 22.69/6.21
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.69/6.21
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.69/6.21
append(z0, z1) → append#1(z0, z1) 22.69/6.21
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.69/6.21
append#1(nil, z0) → z0 22.69/6.21
flatten(z0) → flatten#1(z0) 22.69/6.21
flatten#1(leaf) → nil 22.69/6.21
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.69/6.21
flattensort(z0) → insertionsort(flatten(z0)) 22.69/6.21
insert(z0, z1) → insert#1(z1, z0) 22.69/6.21
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.69/6.21
insert#1(nil, z0) → ::(z0, nil) 22.69/6.21
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.69/6.21
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.69/6.21
insertionsort(z0) → insertionsort#1(z0) 22.69/6.21
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.69/6.21
insertionsort#1(nil) → nil
S tuples:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.69/6.21
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.69/6.21
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.69/6.21
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.69/6.21
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
K tuples:
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1))
Defined Rule Symbols:
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0))) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2))
#less, append, append#1, flatten, flatten#1, flattensort, insert, insert#1, insert#2, insertionsort, insertionsort#1, #cklt, #compare
#COMPARE, APPEND, APPEND#1, FLATTEN, FLATTEN#1, INSERT, INSERT#1, INSERT#2, INSERTIONSORT, INSERTIONSORT#1, #LESS, FLATTENSORT
c8, c12, c14, c16, c17, c19, c21, c23, c24, c27, c28, c29, c15, c
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1))
Tuples:
#cklt(#EQ) → #false 22.69/6.21
#cklt(#GT) → #false 22.69/6.21
#cklt(#LT) → #true 22.69/6.21
#compare(#0, #0) → #EQ 22.69/6.21
#compare(#0, #neg(z0)) → #GT 22.69/6.21
#compare(#0, #pos(z0)) → #LT 22.69/6.21
#compare(#0, #s(z0)) → #LT 22.69/6.21
#compare(#neg(z0), #0) → #LT 22.69/6.21
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.69/6.21
#compare(#neg(z0), #pos(z1)) → #LT 22.69/6.21
#compare(#pos(z0), #0) → #GT 22.69/6.21
#compare(#pos(z0), #neg(z1)) → #GT 22.69/6.21
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.69/6.21
#compare(#s(z0), #0) → #GT 22.69/6.21
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.69/6.21
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.69/6.21
append(z0, z1) → append#1(z0, z1) 22.69/6.21
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.69/6.21
append#1(nil, z0) → z0 22.69/6.21
flatten(z0) → flatten#1(z0) 22.69/6.21
flatten#1(leaf) → nil 22.69/6.21
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.69/6.21
flattensort(z0) → insertionsort(flatten(z0)) 22.69/6.21
insert(z0, z1) → insert#1(z1, z0) 22.69/6.21
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.69/6.21
insert#1(nil, z0) → ::(z0, nil) 22.69/6.21
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.69/6.21
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.69/6.21
insertionsort(z0) → insertionsort#1(z0) 22.69/6.21
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.69/6.21
insertionsort#1(nil) → nil
S tuples:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.69/6.21
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.69/6.21
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.69/6.21
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.69/6.21
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
K tuples:
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2))
Defined Rule Symbols:
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0))) 22.69/6.21
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.21
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.21
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.21
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.21
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.21
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.21
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.21
#LESS(z0, z1) → c15(#COMPARE(z0, z1))
#less, append, append#1, flatten, flatten#1, flattensort, insert, insert#1, insert#2, insertionsort, insertionsort#1, #cklt, #compare
#COMPARE, APPEND, APPEND#1, FLATTEN, FLATTEN#1, INSERT, INSERT#1, INSERT#2, INSERTIONSORT, INSERTIONSORT#1, #LESS, FLATTENSORT
c8, c12, c14, c16, c17, c19, c21, c23, c24, c27, c28, c29, c15, c
We considered the (Usable) Rules:
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.21
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2))
And the Tuples:
flatten(z0) → flatten#1(z0) 22.69/6.22
flatten#1(leaf) → nil 22.69/6.22
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.69/6.22
append(z0, z1) → append#1(z0, z1) 22.69/6.22
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.69/6.22
append#1(nil, z0) → z0 22.69/6.22
insertionsort(z0) → insertionsort#1(z0) 22.69/6.22
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.69/6.22
insertionsort#1(nil) → nil 22.69/6.22
insert(z0, z1) → insert#1(z1, z0) 22.69/6.22
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.69/6.22
insert#1(nil, z0) → ::(z0, nil) 22.69/6.22
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.69/6.22
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.69/6.22
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.69/6.22
#compare(#0, #0) → #EQ 22.69/6.22
#compare(#0, #neg(z0)) → #GT 22.69/6.22
#compare(#0, #pos(z0)) → #LT 22.69/6.22
#compare(#0, #s(z0)) → #LT 22.69/6.22
#compare(#neg(z0), #0) → #LT 22.69/6.22
#compare(#neg(z0), #pos(z1)) → #LT 22.69/6.22
#compare(#pos(z0), #0) → #GT 22.69/6.22
#compare(#pos(z0), #neg(z1)) → #GT 22.69/6.22
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.69/6.22
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.69/6.22
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.69/6.22
#compare(#s(z0), #0) → #GT 22.69/6.22
#cklt(#EQ) → #false 22.69/6.22
#cklt(#GT) → #false 22.69/6.22
#cklt(#LT) → #true
The order we found is given by the following interpretation:
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.69/6.22
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.69/6.22
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.69/6.22
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.22
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.22
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.22
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.22
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.22
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.22
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.22
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.22
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.22
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.69/6.22
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
POL(#0) = [3] 22.69/6.22
POL(#COMPARE(x1, x2)) = 0 22.69/6.22
POL(#EQ) = 0 22.69/6.22
POL(#GT) = [1] 22.69/6.22
POL(#LESS(x1, x2)) = 0 22.69/6.22
POL(#LT) = 0 22.69/6.22
POL(#cklt(x1)) = [2]x1 22.69/6.22
POL(#compare(x1, x2)) = 0 22.69/6.22
POL(#false) = 0 22.69/6.22
POL(#less(x1, x2)) = 0 22.69/6.22
POL(#neg(x1)) = 0 22.69/6.22
POL(#pos(x1)) = 0 22.69/6.22
POL(#s(x1)) = 0 22.69/6.22
POL(#true) = 0 22.69/6.22
POL(::(x1, x2)) = [2] + x2 22.69/6.22
POL(APPEND(x1, x2)) = [2] + [2]x1 22.69/6.22
POL(APPEND#1(x1, x2)) = [2]x1 22.69/6.22
POL(FLATTEN(x1)) = [2] + x12 22.69/6.22
POL(FLATTEN#1(x1)) = x12 22.69/6.22
POL(FLATTENSORT(x1)) = [1] + x12 22.69/6.22
POL(INSERT(x1, x2)) = 0 22.69/6.22
POL(INSERT#1(x1, x2)) = 0 22.69/6.22
POL(INSERT#2(x1, x2, x3, x4)) = 0 22.69/6.22
POL(INSERTIONSORT(x1)) = 0 22.69/6.22
POL(INSERTIONSORT#1(x1)) = 0 22.69/6.22
POL(append(x1, x2)) = x1 + x2 22.69/6.22
POL(append#1(x1, x2)) = x1 + x2 22.69/6.22
POL(c(x1)) = x1 22.69/6.22
POL(c12(x1)) = x1 22.69/6.22
POL(c14(x1)) = x1 22.69/6.22
POL(c15(x1)) = x1 22.69/6.22
POL(c16(x1)) = x1 22.69/6.22
POL(c17(x1)) = x1 22.69/6.22
POL(c19(x1)) = x1 22.69/6.22
POL(c21(x1, x2, x3, x4)) = x1 + x2 + x3 + x4 22.69/6.22
POL(c23(x1)) = x1 22.69/6.22
POL(c24(x1, x2)) = x1 + x2 22.69/6.22
POL(c27(x1)) = x1 22.69/6.22
POL(c28(x1)) = x1 22.69/6.22
POL(c29(x1, x2)) = x1 + x2 22.69/6.22
POL(c8(x1)) = x1 22.69/6.22
POL(flatten(x1)) = [2]x1 22.69/6.22
POL(flatten#1(x1)) = [2]x1 22.69/6.22
POL(insert(x1, x2)) = [3] + [3]x1 + [3]x2 + [3]x22 + [3]x1·x2 + [3]x12 22.69/6.22
POL(insert#1(x1, x2)) = [3] + [3]x2 + [3]x22 22.69/6.22
POL(insert#2(x1, x2, x3, x4)) = [3] + [3]x2 + [3]x3 + [3]x4 + [3]x42 + [3]x3·x4 + [3]x2·x4 + [3]x32 + [3]x2·x3 + [3]x22 22.69/6.22
POL(insertionsort(x1)) = 0 22.69/6.22
POL(insertionsort#1(x1)) = [3] 22.69/6.22
POL(leaf) = 0 22.69/6.22
POL(nil) = 0 22.69/6.22
POL(node(x1, x2, x3)) = [3] + x1 + x2 + x3
Tuples:
#cklt(#EQ) → #false 22.69/6.22
#cklt(#GT) → #false 22.69/6.22
#cklt(#LT) → #true 22.69/6.22
#compare(#0, #0) → #EQ 22.69/6.22
#compare(#0, #neg(z0)) → #GT 22.69/6.22
#compare(#0, #pos(z0)) → #LT 22.69/6.22
#compare(#0, #s(z0)) → #LT 22.69/6.22
#compare(#neg(z0), #0) → #LT 22.69/6.22
#compare(#neg(z0), #neg(z1)) → #compare(z1, z0) 22.69/6.22
#compare(#neg(z0), #pos(z1)) → #LT 22.69/6.22
#compare(#pos(z0), #0) → #GT 22.69/6.22
#compare(#pos(z0), #neg(z1)) → #GT 22.69/6.22
#compare(#pos(z0), #pos(z1)) → #compare(z0, z1) 22.69/6.22
#compare(#s(z0), #0) → #GT 22.69/6.22
#compare(#s(z0), #s(z1)) → #compare(z0, z1) 22.69/6.22
#less(z0, z1) → #cklt(#compare(z0, z1)) 22.69/6.22
append(z0, z1) → append#1(z0, z1) 22.69/6.22
append#1(::(z0, z1), z2) → ::(z0, append(z1, z2)) 22.69/6.22
append#1(nil, z0) → z0 22.69/6.22
flatten(z0) → flatten#1(z0) 22.69/6.22
flatten#1(leaf) → nil 22.69/6.22
flatten#1(node(z0, z1, z2)) → append(z0, append(flatten(z1), flatten(z2))) 22.69/6.22
flattensort(z0) → insertionsort(flatten(z0)) 22.69/6.22
insert(z0, z1) → insert#1(z1, z0) 22.69/6.22
insert#1(::(z0, z1), z2) → insert#2(#less(z0, z2), z2, z0, z1) 22.69/6.22
insert#1(nil, z0) → ::(z0, nil) 22.69/6.22
insert#2(#false, z0, z1, z2) → ::(z0, ::(z1, z2)) 22.69/6.22
insert#2(#true, z0, z1, z2) → ::(z1, insert(z0, z2)) 22.69/6.22
insertionsort(z0) → insertionsort#1(z0) 22.69/6.22
insertionsort#1(::(z0, z1)) → insert(z0, insertionsort(z1)) 22.69/6.22
insertionsort#1(nil) → nil
S tuples:none
#COMPARE(#neg(z0), #neg(z1)) → c8(#COMPARE(z1, z0)) 22.69/6.22
#COMPARE(#pos(z0), #pos(z1)) → c12(#COMPARE(z0, z1)) 22.69/6.22
#COMPARE(#s(z0), #s(z1)) → c14(#COMPARE(z0, z1)) 22.69/6.22
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.22
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2)) 22.69/6.22
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.22
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.22
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.22
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.22
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.22
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.22
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.22
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.69/6.22
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0)))
Defined Rule Symbols:
FLATTENSORT(z0) → c(INSERTIONSORT(flatten(z0))) 22.69/6.22
INSERTIONSORT#1(::(z0, z1)) → c29(INSERT(z0, insertionsort(z1)), INSERTIONSORT(z1)) 22.69/6.22
INSERTIONSORT(z0) → c28(INSERTIONSORT#1(z0)) 22.69/6.22
FLATTEN(z0) → c19(FLATTEN#1(z0)) 22.69/6.22
FLATTEN#1(node(z0, z1, z2)) → c21(APPEND(z0, append(flatten(z1), flatten(z2))), APPEND(flatten(z1), flatten(z2)), FLATTEN(z1), FLATTEN(z2)) 22.69/6.22
INSERT#2(#true, z0, z1, z2) → c27(INSERT(z0, z2)) 22.69/6.22
INSERT(z0, z1) → c23(INSERT#1(z1, z0)) 22.69/6.22
INSERT#1(::(z0, z1), z2) → c24(INSERT#2(#less(z0, z2), z2, z0, z1), #LESS(z0, z2)) 22.69/6.22
#LESS(z0, z1) → c15(#COMPARE(z0, z1)) 22.69/6.22
APPEND(z0, z1) → c16(APPEND#1(z0, z1)) 22.69/6.22
APPEND#1(::(z0, z1), z2) → c17(APPEND(z1, z2))
#less, append, append#1, flatten, flatten#1, flattensort, insert, insert#1, insert#2, insertionsort, insertionsort#1, #cklt, #compare
#COMPARE, APPEND, APPEND#1, FLATTEN, FLATTEN#1, INSERT, INSERT#1, INSERT#2, INSERTIONSORT, INSERTIONSORT#1, #LESS, FLATTENSORT
c8, c12, c14, c16, c17, c19, c21, c23, c24, c27, c28, c29, c15, c