:- true pred sift(_1,_2)
         : ( list(_1,int), var(_2) )
        => ( list(_1,int), list(_2,int), length(_1,_A) )
         + cost(ub,steps,0.5*_A**2+3.5*_A+5.0).

:- true pred sift_i(_A,_B)
         : ( list(_A,int), var(_B) )
        => ( list(_A,int), list(_B,int), length(_A,_C) )
         + cost(ub,steps,0.5*_C**2+1.5*_C+1.0).

:- true pred remove(_A,_1,_2)
         : ( list(_A,int), int(_1), var(_2) )
        => ( list(_A,int), int(_1), list(_2,int), length(_A,_B) )
         + cost(ub,steps,_B+1).

:- true pred intlist(_A)
         : list(_A,int)
        => ( list(_A,int), length(_A,_B) )
         + cost(ub,steps,2*_B+1).