

Begin[ "System`"]

Unprotect[GroebnerBasis]

Clear[GroebnerBasis]

GroebnerBasis::usage = "GroebnerBasis[{poly1, poly2, ...}, {x1, x2, ...}]
gives a list of polynomials which form a Groebner basis for the ideal
generated by the polyi."

Begin["`Private`"]

GroebnerBasis[polys_And, args___] := 
		GroebnerBasis[List @@ polys, args]

GroebnerBasis[{eqn__Equal}, args___] := 
		GroebnerBasis[Apply[#1-#2&, {eqn}, {1}], args]

GroebnerBasis[polys_List, args___] := Block[{v},
		Map[ #[[1]]-#[[2]]&, v[[6]] ]
		/; ( v = AlgebraicRules[Map[(#==0)&,polys],args];
			Head[v] == AlgebraicRulesData
		   )]

End[]

Protect[GroebnerBasis]

End[]

Null
