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. For principal and binomial ideals the algorithm simply returns its input.

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

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

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)

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