Groebner theory

Introduction

Tropical algebraic geometry incorporates the valuation of the underlying ground field, and therefore so does its Groebner theory. Tropical Groebner theory is a generalization of its classical counterpart to fields with valuation, and the classical Groebner theory is a specialization of tropical Groebner theory to fields with trivial valuation. Instead of monomial orderings there are term orderings which take the valuation into account, and initial forms and ideals live over the residue field. For details, see Chapter 2.4 in [MS15].

Groebner bases

Groebner bases in [MS15] are only defined for homogeneous ideals and they are finite sets whose initial forms generate the initial ideal. Groebner bases in OSCAR are defined for all ideals and they are finite generating sets whose initial forms generate the initial ideal. For homogeneous ideals generating the initial ideal implies generating the original ideal, so both notions coincide.

No general algorithm exists for computing Groebner bases for inhomogeneous ideals. The command groebner_basis computes a Groebner basis if it knows how, and raises an error if it does not. The cases in which a Groebner basis of an ideal I with respect to the tropical semiring map nu and weight vector w is returned are:

  • I looks principal
  • I looks binomial and w lies in tropical_variety(I)
  • I looks affine linear and nu is trivial
  • nu is trivial and (w is negative if convention(nu)==min or w is positive if convention(nu)==max)
  • I is homogeneous

Here, "looks" means gens(I) having the desired property. We are not computing a classical reduced Groebner basis to verify that I actually has the desired property.

groebner_basisMethod
groebner_basis(I::MPolyIdeal, nu::TropicalSemiringMap, w::Vector{<:Union{QQFieldElem,ZZRingElem,Rational,Integer}})

Return a (tropical) Groebner basis of I with respect to the tropical semiring map nu and weight vector w.

Warning

No general algorithm for (tropical) computing Groebner bases exist and groebner_basis will return an error if it does not know how to compute one for the input. For a list of cases in which Groebner bases can be computed, see Section "Groebner Theory" in the documentation.

Examples

julia> R,(x,y) = QQ["x","y"];

julia> I = ideal([x^3-5*x^2*y,3*y^3-2*x^2*y]);

julia> nu = tropical_semiring_map(QQ,2);

julia> w = [0,0];

julia> groebner_basis(I,nu,w)
2-element Vector{QQMPolyRingElem}:
 x^3 - 5*x^2*y
 -2*x^2*y + 3*y^3
source

Initial forms and initial ideals

initialMethod
initial(f::MPolyRingElem, nu::TropicalSemiringMap, w::Vector; perturbation::Vector=[])

Return the initial form of f with respect to the tropical semiring map nu and weight vector w.

Examples (trivial and $p$-adic valuation)

julia> R,(x,y) = QQ["x", "y"];

julia> nu_0 = tropical_semiring_map(QQ,max);

julia> nu_2 = tropical_semiring_map(QQ,2);

julia> w = [0,0];

julia> f = x+y+2;

julia> initial(f,nu_2,w) # polynomial over GF(2)
x + y

julia> initial(f,nu_0,w) # polynomial over QQ
x + y + 2

Examples ($t$-adic valuation)

julia> K,t = rational_function_field(GF(2),"t");

julia> nu_t = tropical_semiring_map(K,t,max);

julia> R,(x,y) = K["x", "y"];

julia> w = [1,1];

julia> f = t*x+t*y+1;

julia> initial(f,nu_t,w) # polynomial over GF(2)
x + y + 1
source
initialMethod
initial(I::MPolyIdeal, nu::TropicalSemiringMap, w::Vector; skip_groebner_basis_computation::Bool=false)

Return the initial ideal of I with respect to the tropical semiring map nu and weight vector w. If skip_groebner_basis_computation=true, skips the necessary Groebner basis computation and returns the ideal generated by the initial forms of gens(I).

Examples

julia> R,(x,y) = QQ["x","y"];

julia> I = ideal([x^3-5*x^2*y,3*y^3-2*x^2*y]);

julia> nu_2 = tropical_semiring_map(QQ,2);

julia> nu_0 = tropical_semiring_map(QQ);

julia> w = [0,0];

julia> initial(I,nu_2,w)
Ideal generated by
  x^3 + x^2*y
  y^3

julia> initial(I,nu_0,w)
Ideal generated by
  x^3 - 5*x^2*y
  -2*x^2*y + 3*y^3
source