YES TRS: msort(nil()) -> nil() msort(.(x,y)) -> .(min(x,y),msort(del(min(x,y),.(x,y)))) min(x,nil()) -> x min(x,.(y,z)) -> if(<=(x,y),min(x,z),min(y,z)) del(x,nil()) -> nil() del(x,.(y,z)) -> if(=(x,y),z,.(y,del(x,z))) linear polynomial interpretations on N: msort_A(x1) = x1 + 1 msort#_A(x1) = x1 + 3 nil_A = 1 nil#_A = 0 ._A(x1,x2) = x1 + 2 .#_A(x1,x2) = x2 + 2 min_A(x1,x2) = x1 + 1 min#_A(x1,x2) = 1 del_A(x1,x2) = 1 del#_A(x1,x2) = 4 if_A(x1,x2,x3) = 0 if#_A(x1,x2,x3) = 0 <=_A(x1,x2) = x2 + 1 <=#_A(x1,x2) = 0 =_A(x1,x2) = x1 + x2 + 1 =#_A(x1,x2) = 0 precedence: msort > min = del > nil = . = if = <= = =