Does the function grobner_basis in Sage (which I think comes from the implementation in Singular) compute a reduced Grobner base for an ideal? Or is it just a Grobner base with no special property ?
Run this code:
P.<a,b,c> = PolynomialRing(QQ,3, order='lex') I = sage.rings.ideal.Katsura(P,3)
to read the documentation. In answer to your question, it says "Return the reduced Groebner basis of this ideal." It also gives you choice of algorithms to use, most but not all coming from Singular.